Considering that a fileserver at home will spend a lot (most) of its life idle, it makes sense to look at its power usage and see what steps can be taken to reduce its operational costs — i.e. power consumption.
The most obvious way to reduce power consumption is to simply turn the machine off when it’s not required. However, some people may wish to leave the machine powered on and put it into low-power mode when it’s not in use.
ACPI suspend state 3 seems to be the low power mode to use. This puts the machine in a low power consumption state, but the machine may be resumed (woken up) using a variety of wake-up events such as hitting a key on the keyboard, moving the mouse, or by sending a magic packet to the network port, known as ‘wake on LAN’, or WOL for short.
Using the hardware shown here, I applied the info found in Randy Fishel’s blog entry here: Solaris Suspend and Resume: How To!:
First, you need to add a line to the file /etc/power.conf:
S3-support enable
Please note that currently this is case sensitive, so ensure the the first ‘S’ of ‘S3’ is upper case! It caught me out.
Then, as root user, you need to enter the following to configure power management:
/usr/sbin/pmconfig
Then trigger suspend state. If your computer’s power button is configured in the BIOS settings to trigger suspend mode S3 then holding the power button down for a short time like a second should trigger suspend mode.
On my machine, using the hardware mentioned above, a dialog window appeared on the Gnome desktop asking if I wanted to suspend the machine or shut it down. I selected ‘suspend’ and then the screen blanked out, the disks span down, the machine became silent and the LED on the computer’s front panel flashed, indicating suspend mode had been activated. A quick look at the power meter shows around 20W of power consumption instead of around 120W. So far, so good.
However, then I did not manage to wake it up using a keypress, mouse movement or using WOL by sending a magic packet from another machine on the network.
After reboot I inspected /var/adm/messages for any error messages and there were none. The last message said:
Apr 5 20:06:36 solarisbox genunix: [ID 535284 kern.notice] System is being suspended
This is a real pity. Apparently, there was some issue prior to Solaris Nevada build 82, but it was fixed in build 82, and I’m using build 85.
So, time to hunt the newsgroups!
I will update this page with any info or bug id number found.
update December 10th 2008:
Well it seems I may have guessed right earlier — the suspend issue does seem to be related to the graphics card. See the following thread, related to the NVidia GPU-based graphics card I use (Asus EN6200LE):
http://www.opensolaris.org/jive/thread.jspa?threadID=81020&tstart=0
http://www.opensolaris.org/jive/thread.jspa?threadID=81811&tstart=0
However, it does seem that a fix has been made and should appear in build 104 (103 is the current build as of December 10th 2008). Once this build is available, this machine should be able to suspend and resume correctly.
For more ZFS Home Fileserver articles see here: A Home Fileserver using ZFS. Alternatively, see related articles in the following categories: ZFS, Storage, Fileservers, NAS.
WOL doesn’t work in opensolaris. What solution have you implemented to save energy?
Unfortunately, I’m not using suspend/resume due to the inability to make the hardware I have resume. I think it’s a problem with the video driver, but I’m not certain. I just switch the server on when it’s required. Hopefully, Sun will get suspend/resume working properly in OpenSolaris.
Any news yet on the suspend / resume issue with OpenSolaris?
Hi YY, I have no news as I didn’t retry this yet. Perhaps when I move to snv_94 I might give it another try and will post my results here.
Simon
Hmm…I’ve read on the net that suspend works on Intel only systems. I unfortunately also have an AMD based system like you so unless I swap out my motherboard and CPU it looks like suspend is still going to be an issue 🙁
YY, that sounds like a pity. Could you provide the URL?
Simon,
Any better support for suspend/resume in recent builds?
Hi Ilya,
I think they are gradually improving the suspend/resume support. I’m using SXCE snv_101 and with this build there is a remaining issue with the EN6200LE video driver, but I was following a forum thread on this, and it seems that it should be fixed in build 104 or 105, so I’ll try it out soon — hopefully I’ll find the thread I was reading and discover if it’s been fixed first 😉
If I find the post, I’ll put the link here.
Cheers,
Simon
My view before reading this page is that the network drivers need support WOL (i.e. put the machine into the correct state) before shutting down.. but the suspend mode issue is probably closely related if not the actual root reason.
The solution I eventually went with was to plug a USB power switch into my low-power server that’s on 24/7 to share internet connection, etc and control it from there: http://www.cleware.de/produkte/p-usbswitchC-E.html
This had the advantage for me that I have wired up a four-way adaptor to it so I can plug in a mains-powered extractor fan to help with ventilation in my cupboard when the server is in use…
suspend (hibernate) works for me using a amd x2 245 on an asus m4n78-vm.
keyboard won’t wake the box up, but a push of the start button will.
network works using the tip by Jason Fiset (Can’t thank him enough!!
I’d have bought another card without his great advice) at
http://www.sun.com/bigadmin/hcl/data/systems/details/14867.html
onboard vga works fine by default
cpu is either at 800 MHz or full speed, never in betwen, but that’s ok.
one pb: cpu fan never below 1800 rpm, it’s probably Qfan that’s crap
havent tried WOL yet.