Altiris Notification Server and Green IT
Now days a lot of companies look for ways to cut down power consumption by the infrastructure, beginning in server consolidation, server virtualization and power management of user's workstations.
This article is based on a real world scenario and was implemented in a real company. Although some of the decisions may look odd, they are all based on our needs.
This article explaining the concept idea, can be implemented in many ways to get the best results for your infrastructure.
We decided to implement such a solution after "checking the numbers" and discover that shutdown of all unnecessary workstations can cut down power consumption and the cost of operation. For reasons that I will expand later we decided not to use sleep mode or hibernate mode but full shutdown.
Altiris notification server was selected as a base to our solution for these reasons:
- Altiris NS has a strong Wake on LAN (WOL)capabilities.
Since we wanted full control over computers, not only to shutdown but also to turn on, the software we based on should have good WOL capabilities. - Fast infrastructure deploys.
Altiris agents are quick and easy to deploy. It starts to work as soon as discover and the push is ends. - Live report system for agent actions.
All reports on computers shutdown and wake up are build on the fly so we can check any time for computers that failed to shutdown or turn on. Beside that we can measure the percent of success. - Low cost.
The NS don't require license to operate, most of the power management software require license per workstation and we are on low budget.
The infrastructure:
To take advantage of the WOL capabilities we needed to allow broadcast in our network infrastructure. Note that not any network equipment allow WOL broadcast, some old equipment allow only DHCP broadcast.
Since our network is built of several subnets that connected via WAN we decided to deploy the task server on each subnet and this task server will be the source for the WOL broadcast. This way we don't need to send WOL packet thru the WAN.
For the task server we use a server that already exist on site. All we had to do is deploy an agent to it and set it as task server.
This image shows a schematics network infrastructure for implementation:
The NS server installed in servers segment, no broadcasting is allowed between the servers segment and site A or B. Broadcast is allowed only inside the sites.
Server component:
To save money we decided to use only components that not required a license.
Beside the NS itself we used SQL 2005 EXPRESS for the database and we add the Task agent, power management and script agents to the basic agent.
These components are necessary for this solution to work.
We have AD in our network but we preferred to base our computer collections on IP filters instead of AD connector. Since the network is divided by subnets it was easy to accomplish. If your network is more complicated you can use AD connector, as far as I know it does not require a license to use.
Power management:
Most of our hardware is still running on windows 2000, our testing with sleep mode and hibernate on windows 2000 created lot of issues. Starting with computers that hang during resuming from hibernate and network drives that disconnected until the next full restart. Sometime computers just worked slowly after resume from sleep mode. Since most of the time the users had to restart the computer any way after resume from sleep, we came to conclusion that only full shutdown will give as the best result.
Most of the users didn't like the idea of an automatically full shutdown of their workstation every day because of the potential data lose. That's why we decided to shutdown only on weekends and automatically start the computer on Monday morning.
To avoid data lose as much as we can, we created a scheduled task that send a reminder message box to all users. The task is simple VB script that displays a message and have OK button to close it. This is the script:
dim msg
msg=MsgBox("Attention! Shutdown initiate in 20:00, please save all your documents.",0,"Shutdown reminder")
For the shutdown task we also created a scheduled VB script, this time we used the script to run a costume application that we wrote. The application has the ability to:
- Choice of sleep/hibernate/shutdown.
- Delay counter for the selected operation.
- Snooze button; give the user another 30 min of delay.
- Custom message and logo.
If you can't (or don't want to) write such application you can use third party application like PSshutdown.
Note that you must also deploy the file to the target computer before using it. you can store it in a share (like SYSVOL), create simple script that will copy the file
and apply it to your computer collection.
To avoid a situation of a script trying to run when a computer is supposed to be on but turn it off again we used a VB script that will check the time before it runs and make sure that the shutdown application runs only when it supposed to. This the script we used (also available as download):
On error resume next
Err.Clear
dim objshell
dim startTime
dim endTime
dim useTime
dim nCurrHour
dim sameday
' Enable or Disable the time check.
' set 0 to disable time check
' set 1 to enable time check
useTime=1
' Set if the time check is for the same day.
' set this to 1 if the start and ent time are in the same day.
' set this to 0 if the end time is in the next day.
sameday=0
' Set start time of the script.
startTime=10
' Set end time of the script.
endTime=8
nCurrHour=hour(now)
wscript.echo "Current Time: " & nCurrHour
if sameday = 0 then
if ( useTime and not ((nCurrHour >= startTime and nCurrHour <= 24) or (nCurrHour >= 0 and nCurrHour < endTime ))) then
wscript.echo "should run in: " & startTime & " and " & endTime
wscript.quit (-1)
end if
else
if ( useTime and not ((nCurrHour >= startTime and nCurrHour <= endTime ))) then
wscript.echo "should run in: " & startTime & " and " & endTime
wscript.quit (-1)
end if
end if
set objshell = CreateObject("WScript.Shell")
' Insert here your Application to run
objshell.run "%windir%\psshutdown.exe /your params"
if Err.number<>0 then
wscript.echo "Error: " & Err.number & "," & Err.description
wscript.quit Err.number
else
wscript.echo "DONE OK! "
wscript.quit 0
end if
Since we wanted our users to get there workstation ready for use in the morning and saving the boot time we created a schedule task with WOL command.
This is a built-in feature of the NS and beside the schedule itself there nothing special to set.
For some special computers that we needed to stay on we created a separate collection. We added these computers to the collection and then use it as exclusion with the main collection. This give us some control over which computers will stay on during the weekend.
To keep track of success and failure percentage we set the tasks to keep the script results. This allowed us troubleshooting errors with computers that didn't run the scripts.
That's it!
For now we are running the system with almost 10,000 computers with 95% of success in shutdown and about 87% success in Wake on LAN.
Beside of the direct saving in power consumption there is indirect saving in air conditioning (when it's automatic).
Point to ponder:
Windows XP and Vista are more stable with Sleep and Hibernate mode. In environments that run with these OS using sleep mode and hibernate will probably get better results both in power consumption and user experience since most of the documents not closed and there is lower potential to data lose.
In this mode the recovery time is lower so you don't have to use WOL to start the computers.


Great Article! We have
Great Article! We have implemented a similar plan at our organization. Being a healthcare organization, we have also implemented an exclude collection. Also, we have time specific collections due to varying work hours of different departments. Our systems are HP and have bios settings that allow us to set a wake up time and which days of the week it should execute. This would take load of the server for WOL if you already have a busy NS server. You can also make your WOL less server taxing if you exclude laptops and/or any desktop models that do not support WOL.
thanks!
i'm familiar with this HP BIOS feature.
we have few DELL machines and we could configure them with Altiris but didn't bother to install it.
most of our network consist of IBM machines and they don't have this feature.
the altiris to IBM director connector is not very useful so we had a painful stage of machine BIOS configuration.
but we did what we had to do...
HP BIOS Settting
Are you using the HP Client Manager to manage the time in the BIOS For Wake On. I have been looking at that, but the HPCM has many entries for days, but nothing that I can find that relates to the WakeOn Time.
Thanks.
we not using the HP client manager
and we didn't check it. we only checked the dell connector and it can configure the station for WOL.
i'm not sure if DELL have the scheduled turn on like HP does...
Check carefully. It is
Check carefully. It is there though I remember the name is off a bit from what you'd expect. It does appear only once. In our experience we were unable to set it once we found it. HP & Altiris confirmened it is a problem with the way that time setting is brought in form the bios. We were able to set the days of the week though.
Great article, just a
Great article, just a details to correct...
[quote]If you can't (or don't want to) write such application you can use third party application like PSshutdown.[/quote] The PSshutdown link is incorrect. The right one can be find at this web link : http://technet.microsoft.com/en-us/sysinternals/bb...
psShutdown is part of the PsTools v2.44 by Mark Russinovich.
Regards
Paolo
are you sure?
well, the link i wrote is working...
you gave a link to the full PStools package.
i wrote a link directly to the tool page
(the download link at the bottom is for the full package)
any way, it's the same version....
so what is the problem with it?
Page not found
The error msg is Page not found (), but it works if you're already logon in the Ms technet.
Just check the link , maybe it's better to remove http: //www. microsoft.com/germany/technet/sysinternals/utilities/psShutdown.mspx
and leave
http: //www. microsoft.com/technet/sysinternals/utilities/psShutdown.mspx
P.S.
but don't worry , it's a detail in an interesting article.
Paolo
OK...
thanks for comment and URL fix! :)
Power saving
Very good article and very "green" project, too.
It would be interesting to have an idea about how much could be saved and about the ROIC. As far as I understood, you had only the NS licenses as software costs as well as the Taskservers as new hardware. If you compare the power savings with the cost for one client license of NS (although I do not know whether one has to license the clients seperately, but I expect it), could you say, that it was an easy task to convince the management from the investments?
Just another note, as I saw that there was a lot of discussion about PSShutdown...
In Windows 2000 there is a "Shutdown.exe" commandline tool in the Resource kit available which allows even remote shutdown of clients and servers. Since Windows XP, this tool is natively part of the OS.
Or, for a schedule task based solution, you could also use the following command line:
C:\WINNT\System32\RUNDLL32.EXE user,exitWindows
Best regards,
Thomas.
Would you like to reply?
Login or Register to post your comment.