The equivalent of ClusterSSH or PSSH, for Windows

Mark Baggett over at PauldotCom put together an interesting article on running a command on every machine in your domain from the command line. I genuinely hadn't considered tying dsquery and wmi together in this way. The best thing is that with a little tweaking you can easily run the same command against a subset of your domain. For instance, say you had X terminal/web/sql servers that all lived in the same OU - just dsquery against that and you're laughing.

If you're looking after any more than a handful of servers, without something like SMS/MOM/something you've rolled yourself, then this is a real time saver.

Microsoft Licensing and Virtualisation

Licensing is a pain in my arse. There are whole companies full of people who can tell you that you're doing it wrong. Personally I cannot stand licensing, and the only thing that I find more annoying (in this field) than the proliferation of Open Source and Free Software licenses (and figuring out what I'm allowed and not allowed to do and what is an "arms length" exactly - but thats another rant for another time), is the software licensing by Microsoft and other vendors who shall remain nameless for this article.

To try and make things easier at work two and a half years ago I put together a very small document/cheatsheet describing the licensing terms for various Microsoft products and virtualisation. Yesterday Microsoft released an updated document for Windows Server 2008 R2, and interestingly not much has changed for Window Server, with the exception of a few new products. The table below should help out a bit if you're confused 1.

Instances
Server ProductLicense TypePhysical 2Virtual 3
Windows Server Foundation (2008 only)OEM10
Windows Server StandardOEM, Retail, VL, SPLA11
Windows Server EnterpriseOEM, Retail, VL, SPLA14
Windows Server DatacenterOEM, VL1Unlimited
Windows Server WebOEM, Retail, VL, SPLA10
Windows Server HPCOEM, Retail, VL, SPLA11

I decided to check the licensing for other products, just incase I'd missed any changes. It doesn't look like it, so here the run down (as I understand it).

As a general rule, for anything per processor licensed, if you're running it in a virtual environment it will simply count the number of virtual processors you assign it.

It gets a bit complicated with SQL 2005 and newer. To quote Microsoft:

When licensed per Server or CAL Workgroup and Standard editions allow you to run any number of instances of the server software in one physical or virtual operating system environment on the licensed server at a time. Previously, only the Enterprise edition of the Server license allowed multi-instancing. When licensed per Processor Workgroup, Web, and Standard editions for each server you have assigned the required number of per processor licenses, you may run, at any one time, any number of instances of the server software in physical and virtual operating system environments on the licensed server. However, the total number of physical and virtual processors used by those operating system environments cannot exceed the number of software licenses assigned to that server. For Enterprise if all physical processors in a machine have been licensed, then you may run unlimited instances of SQL server 2008 in one physical and an unlimited number of virtual operating environments on that same machine.

As far as I'm aware anything else licensed per server doesn't currently have any special rules regarding virtualisation; so this includes Exchange, Sharepoint, and so on.

  1. It should be noted that I've only gone so far back as Windows Server 2003 for this table. I suspect that there are no particular dos or don'ts for anything older and you should probably just treat any virtualised instances as you would physical machines. If you know any different I'd love to hear it.
  2. You can, of course, use the licence in a purely virtual environment.
  3. On the same hardware as the physical licence.

Defective By Design Perceptions in the Real World

Whilst I totally support the goals of the FSF I'm not sure that I can totally endorse their militant wing; Defective By Design.

Now don't get me wrong, I'm not opposed to DBD as a concept. I totally support what they intend to achieve. It's just a shame that their methods and actions are perceived as being completely mental by real people, in the outside world, and it's starting to show that these perceptions are beginning to be applied to anyone who supports Free or Open software.

Cisco IOS 15: Community Pain?

I've not been doing anything that could be considered interesting with Cisco kit recently, although at work do have have some of their products in use. Before rolling out the solutions simulators were rather handy to try out different scenarios, but it seems that this may become a bit of an issue from IOS 15 - at least at the moment.

If you want to know more I'd suggest taking a gander at Strech's article on the need for educational IOS licensing.

Graphing Micromiser with Munin

I've been playing with Micromiser for a few days, and wanted to graph what it claims to be saving on one of the servers. Luckily this is pretty easy with Munin (which is already running on the box), since Micromiser logs into syslog occasionally. Below is the plugin I hacked together that looks at syslog and uses sed to extract the percentage saving. It's not pretty, but it does work.

Perhaps this'll save you a few minutes.

#!/bin/sh

# Plugin to graph the savings made by micromiser

if [ "$1" = "autoconf" ]; then
        echo yes
        exit 0
fi

if [ "$1" = "config" ]; then

        echo 'graph_title Micromiser Savings (percentage)'
        echo 'graph_args --upper-limit 100 -l 0'
        echo 'graph_vlabel savings'
        echo 'graph_category system'
        echo 'savings.label savings'
	echo 'savings.draw AREA'
        echo 'savings.min 0'
        exit 0
fi

RES=`grep Estimated /var/log/syslog | tail -1 | sed 's/.*(\([0-9\.]*\)%)$/\1/'`
echo -n "savings.value $RES"

 1 2 3 … 42 Next →