"
Dim WshShell, FileSystem, RegularExpression, PFound1, Dummy, TheNVFile, TheLine, ThePattern1, ThePattern2
Dim Flag, SysName, NBTable, ThePattern3, PFound2, ThePattern4, WrkGrp, TheText, ThePattern, Match
Dim Matches, TheMatch, NBCommand, TheNBTFile
Const ForReading = 1
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set RegularExpression = New RegExp
Dummy = WshShell.Popup ("Finding Master Browser. Please Wait...",1,"Find Master Browser Utility",64)
WshShell.Run "Cmd.exe /c Net View > C:\Temp\NetViewList.txt", 2,True
Set TheNVFile = FileSystem.OpenTextFile("C:\Temp\NetViewList.txt", ForReading, True)
Do While TheNVFile.AtEndOfStream <> True
TheLine = TheNVFile.ReadLine
ThePattern1 = "\\"
PFound1 = FindPattern(TheLine, ThePattern1)
If PFound1 Then
ThePattern2 = "\\\\\w*"
Flag = "1"
SysName = GetPattern(TheLine, ThePattern2, Flag )
NBTable = GetNBTable(SysName)
ThePattern3 = "MSBROWSE"
PFound2 = FindPattern(NBTable, ThePattern3)
If PFound2 Then
ThePattern4 = "\w* \w* <1E>"
Flag = "2"
WrkGrp = GetPattern(NBTable, ThePattern4, Flag)
Exit Do
End If
End If
Loop
If PFound2 Then
Dummy = MsgBox("The computer acting as the Master Browser" & vbCrLf &_
" for the workgroup " & WrkGrp & vbCrLf &_
" is " & SysName, 4160, "Find Master Browser Utility")
Else
Dummy = MsgBox("No Master Browser found at this time. " & vbCrLf &_
"Chances are that an election is in progress.", 4144, "Find Master Browser Tool")
End If
TheNVFile.Close
FileSystem.DeleteFile("C:\Temp\NetViewList.txt")
Wscript.Quit
Function FindPattern(TheText, ThePattern)
RegularExpression.Pattern = ThePattern
If RegularExpression.Test(TheText) Then
FindPattern = "True"
Else
FindPattern = "False"
End If
End Function
Function GetPattern(TheText, ThePattern, Flag)
RegularExpression.Pattern = ThePattern
Set Matches = RegularExpression.Execute(TheText)
For Each Match in Matches
TheMatch = Match.Value
If Flag = "1" Then TheMatch = Mid(TheMatch, 3)
If Flag = "2" Then TheMatch = Left(TheMatch, 15)
Next
GetPattern = TheMatch
End Function
Function GetNBTable(SysName)
NBCommand = "nbtstat -a " & SysName
WshShell.Run "Cmd.exe /c " & NBCommand &" > C:\Temp\NBTList.txt", 2,True
Set TheNBTFile = FileSystem.OpenTextFile("C:\Temp\NBTList.txt", ForReading, True)
GetNBTable = TheNBTFile.ReadAll
TheNBTFile.Close
FileSystem.DeleteFile("C:\Temp\NBTList.txt")
End Function
"
Friday, February 5, 2010
Sunday, October 11, 2009
Hyper-V NIC Teaming
In a previous post I wrote about my experiences with Hyper-V on Server 2008 R2, and that teaming didn't work.
Well the good news is it works. The bad news is it feels like a house of cards.Working with HP DL380 G5 and the very latest Proliant Support Pack (PSP 7.6) I managed to setup Hyper-V (on 2008 R2 Core) for Live Migration on teamed NICs. The storage is fibre attached and I would imagine that iSCSI teams are still not possible, but if anyone manages to do this let me know.
Anyway, onto the details.
For an exisiting Hyper-V server:
- Do one host at a time Live Migrating everything off it before starting
- Delete your Virtual Networks through Hyper-V Manager
- Install the PSP, downloading and updating NIC firmware as required
- Reboot
- Download the HP Network Configuration Utility (NCU) for 2008 R2 and install
- Reboot
- Create the team using the util C:\Program Files\HP\NCU\hpteam.cpl
- Reboot
- Set the IP info for your net interface (sconfig)
- Restart Hyper-V and Cluster services
- Recreate your Virtual Networks in Hyper-V manager.
Note: The last step is that hardest and takes ages to process so BE PATIENT.
also if it does fail then you have to break your team, reboot, recreate your team and try again.
I'd recommend turning off Windows Updates and avoid doing them for the moment. There is talk of windows updates breaking the teaming. Your own testing will be required on this one.
EDIT; I found a hiccup with teaming and MAC address. Have a read just so you are aware; http://anicegameof.blogspot.com/2010/04/hyper-v-mac-conflicts.html
Thursday, October 8, 2009
Application Virtualization (AppV)
So I've had some fun installing AppV 4.5 recently and thus far it's all been a little too easy.
Tip:
Install IIS first - including all the IIS6 management and the Windows Authentication components.
Certificate - Hey another ceritificate. Setup the site for SSL.
Active Directory - Create a AppV management and an APPV user group (and also a service account) before you install. Add your admin account to the management group.
Gotcha:
No 64-bit support till the next version (4.6) is released.
That means no Windows 2008 R2 installs and no 64-bit client.
This will bite you if you deploy 64-bit Windows 7 (Which I would always do given the choice)
Update: Got a copy of the 4.6 Public Beta client and will be giving that a bash.
...and now time to sequence some apps. More about that to follow.
Tip:
Install IIS first - including all the IIS6 management and the Windows Authentication components.
Certificate - Hey another ceritificate. Setup the site for SSL.
Active Directory - Create a AppV management and an APPV user group (and also a service account) before you install. Add your admin account to the management group.
Gotcha:
No 64-bit support till the next version (4.6) is released.
That means no Windows 2008 R2 installs and no 64-bit client.
This will bite you if you deploy 64-bit Windows 7 (Which I would always do given the choice)
Update: Got a copy of the 4.6 Public Beta client and will be giving that a bash.
...and now time to sequence some apps. More about that to follow.
Thursday, October 1, 2009
Command Line
Changing the theme of this Blog for a moment I'm going to use this post as my own person dumping ground for stuff relating to Server 2008 Core and other Command Line thing... mostly so I have an easy reference place online. Steal / use whatever you like :)
Moving the Page File
diskpart.exe
DISKPART> select disk 0
DISKPART> select partition 1
DISKPART> shrink desired=2280
DISKPART> create partition primary
DISKPART> select partition 2
DISKPART> format fs=ntfs label="Swap"
DISKPART> assign letter=E
DISKPART> exit
wmic.exe computersystem where name=”%computername%” set AutomaticManagedPagefile=False
wmic.exe pagefileset create name="E:\pagefile.sys"
wmic.exe pagefileset where name="E:\\pagefile.sys" set InitialSize=2048,MaximumSize=2048
wmic.exe pagefileset where name="C:\\pagefile.sys" delete
Turning off Hibernation (on by default on 2008)
powercfg.exe /hibernate off
Wednesday, September 30, 2009
Windows Deployment Services 2008
At the same time as making great headway into a centralized computing model and all the technologies around that (Hyper-V, RDS, App-V), Microsoft haven't stopped developing the old and familiar.
Remote Installation Services (RIS) has been upgraded and rename Windows Deployment Services (WDS). Coupled with MS Deployment Toolkit 2010 and the Automated Install Kit this becomes very appealing for management of your desktop and non virtualized server environment, especially in like of the imminent Windows 7 release.
The biggest downfall of ye ol faithful RIS was that any images were either tied to a hardware / driver set or relied on Sysprep to effectively reinstall the drivers.
WDS takes advantage of the WIM format, which is a file based image format. This makes replacing files within the image and during it's deployment an easy task. The upshot is that this solves all the annoying issues with RIS.
Short version; Anyone undertaking a large Windows 7 deployment should take a serious look at WDS first. This coupled with "Easy Migration", which is part of Windows 7, makes this a lot less scary an undertaking.
What you need to do;
Server setup
- Install Server 2008 R2 and the Windows Deployment Services role.
- Download and install MDT2010 and the AIK.
- Open up the WDS management console
- Add a deployment point where you want to store all your data
- Add a source OS (basically copy the DVD) via a wizard
- Add some apps you want to be available, also via a wizard - Office is a good example
- Create a Task Sequence for the above
- Add the new WDS server to your DHCP server (option 67)
- Right Click "Distribution Share" and click update
- Let it rebuild everything and it will create an ISO as part of this.
Burn this ISO (x86 or x64) to a CD for later.
Image Creation
- Use the above (via PXE boot) to create a nice clean Windows 7 install.
- Once you have a base install, go ahead and install everything you want on their. Acrobat, Office, etc
- Install the AIK on this as well
- Once you are happy reboot the machine to the ISO which you burnt earlier.
- From the CD browse to the AIK install and run IMAGEX to create a WIM of your gold image machine. (imagex.exe /compress max /capture d: d:\image.wim "gold image")
- Once this is done reboot back to Windows 7 and copy the new gold image to your WDS server.
- On the WDS server import a new OS and make the source a WIM image, yes, the one you just created. Be sure to provide the location of your Windows 7 source file during this.
Drivers and disparate hardware
- Heaven only knows what hardware you are using. Thanking the stars above I've only had to do this on newish HP hardware, but for those not that lucky, you have the ability to provide WDS with any drivers you like.
- It's easy enough, just takes some testing to see what hardware works with Windows 7 and what requires additional drivers.
Deployment time
- Now the easy part; Install and run the Windows 7 Easy Transfer utility to copy all the local user profile data (depending on your situation you might have roaming profiles or not care about local settings).
- Dont save the profile locally. It wont be there after the rebuild. Setup a server location to save all this to. (And it can be a huge amount of data)
- Next PXE boot and install Windows 7 via RDS <- wow, wasn't that easy
- After the reboot check your drivers are good and the expected applications appear.
- Use the already installed Easy Transfer to restore the profile you backed up earlier.
- Reboot, and you're done. Congrats.
The "step by step with pictures" wheel, that I wont be reinventing, is located here:
Teaming NICs within Hyper-V R2
Well a new Proliant Support Pack (8.30) is available so it's time to put it to the test.
I'm currently getting setup to install this within a production Hyper-V R2 (running Live Migration) environment. I'm hoping it's going to be as simple as installing the PSP on the Server 2008 R2 Core Hosts - this is the recommended install order for the PSP - however only time will tell.
I'm also curious how the team interacts with the Cluster Services and if any there are performance gains to be had by running the vendor NIC drivers.
Watch this space for the results ( 10 days away at date of this post)
Thursday, September 3, 2009
Hyper-V Live Migration
Well Microsoft Hyper-V has been around for a little while now and has been playing the catchup game. However the release of Server 2008 R2 sees the introduction of features previously only available from other vendors.
One such feature is Live Migration, the ability to move a Virtual Machine from one Host to another without turning the guest off. Coupled with a case study deployment of Direct Access I got the opportunity to complete an implementation of Live Migration with great success.
Things I have learnt;
- There's a lot of useless information around for Hyper-V - I'll try not to add to it :)
- Hyper-V and Hyper-V R2 are quite different, dont expect them to behave the same.
- DO NOT team network cards - As of today (04/09/09) teaming is not supported, and when it is, it will be up to the vendor to provide and support any teaming of NICs.
Update: This has changed. Check this post for details. - You'll need more NICs - Hyper-V loves network cards. 2 teamed for production (when it actually works), 1 for heart beat, 1 for live migration traffic and 1+ for iSCSI, if you use it.
- You'll have to rethink your SAN - Cluster Shared Storage require a witness disk for the quorim data, and you can't store anything else on it. So plan to setup a new vDisk from your SAN at around 250 -> 500MB.
- You'll want more resources - One of the really appealing aspects to Live Migration is the ability to setup an N+1 High{ish} Availability Cluster, but that means the nearly 90% utalization you are currently running your poor, innocent hosts at, isn't going to do. Plan / Budget for it.
Server 2008 core
It is a huge pain. I do like working on core though, it feels (excuse the pun) hard-core, but it does make managing the hosts hard. Unless you are going to implement Virtual Machine Manager (which I do recommend btw) you aren't going to be able to do all the thing you want to within core. Troubleshooting is also made substantially harder.
The big appeal is of course the smaller footprint Core has - though dont expect some magic performance boost by just going to core.
That being said, I'd implement Hyper-V on 2008 Core whenever I can - it just seems appropriate.
As for your guests - You'll need to re setup their networking, moving to R2 will install new networking hardware with nice fresh DHCP settings [maybe an oversight from Microsoft but no biggie]. Just remember to record them before hard.
Micosoft Cluster Shared Storage
I've kept this seperate as it is required by Hyper-V Live Migration but IS NOT part of Hyper-V.
This means you should consider it seperately and carefully.
You'll need a static IP and hostname for your Cluster when you create it, you'll need to configure the Witness disk mentioned earlier and you'll need to seperate the heart beat, production and Live Migration network all setup in Cluster Manager.
TIP: Moving an already NTFS formatted disk to Cluster Shared Storage does not destroy the data. Be sure you have backups though.
Installation Order
Do things one at a time and test them carefully and you wont go wrong. - Measure twice, cut once and all that.
- SAN - Create the Witness Disk, Virtual Machine storage, LUNs etc
- Server 2008 R2 - Install the base OS, if at all possible stick with the Windows Drivers (I'd only use vendor drivers after careful testing) *See below for Core
- Networking - Assign your IPs, Name your NICs, test connectivity between all hosts and SAN [iSCSI]
- Storage - Connect to the SAN, check all the drives appear and make sure they have the same drive letters on all hosts.
- Clustering - Install MPIO and Clustering. Create your cluster, give it its IP and hostname, check your hosts and networking appears corrently. Configure your witness disk.
- Hyper-V - Install Hyper-V, configure all networking, dont create Guests!
- Live Migration - Enable Cluster Shared Storage and add your disks (No, not the witness disk)
- Add/create your Virtual Machine using Cluster Manager.
- Check their configuration using Hyper-V manager.
- Start your Guests using Hyper-V manager.
- Migrate your Guests using Cluster Manager.
Well thats all for now, have fun with Virtualization. It's powerful technology but there's a lot of room to break things, so please be careful.
Footnote about Server 2008 Core:
There's a lot of good info online about the basic setup of core as well as a few mini GUI tools to download. Check out http://www.petri.co.il/configuring-windows-server-2008-networking-settings.htm
One thing I'd recommend is get remote management working and do as much as you can from your Windows 7 management machine.
Update: As for this past weekend (12/10/09) I've managed to get NIC teaming working with Hyper-V. Have a read.
Subscribe to:
Posts (Atom)
