Wednesday, January 25, 2017

Prawn PC - 1st watercooling build

So it's finally time, after wanting to do a custom water cooling loop for years now I've finally broken done and started the process... and it turns out there is a lot to learn.

I'm hoping to complete it with a video vlog on Youtube, but I'll document some of the more important information here.  Initially expect these posts to be rambling braindumps - I'll mold them into something more readable over time

So to start with some background and a WIP parts list:

I came across the below case, the Thermaletake Core P5, and was inspired by the look to start this project.  It's a huge beast at 608 x 333 x 570 mm  and 12.2 kg  for just the case


Simply figuring out where to potentially put it was tough, but I've ambitiously opted to wall mount it.  I say ambitiously because the sheer weight, when fully built may make that impossible.

I also have recently upgraded my existing PC so I'll be reusing those parts:

Motherboard: Asus Z170 Pro Gaming
CPU: Intel I7 6700K
RAM: 2 X G.Skills Trident Z Series 16GB Dimms @ 2800Mhz
GPU: EVGA Geforce GTX1070 FTW
Storage: a couple of SSDs and larger SATA disk
PSU: Cooler Master V-Series 1000 Gold

Now a couple of immediate issues presented themselves.
1) The Core P5 supports 4 Disks... I have 6
2) The sheer size
3) Dust!
4) and of course... I have no idea what I'm doing

To the Reddit!  /r/watercooling specifically and lots of reading.

Didn't take long to settle on EKWB for parts since they are the only ones doing a waterblock for the EVGA 1070 FTW, and for simplicity I'm going to get pretty much everything from them.

I also needed to pick a colour scheme for this build.  And inspired by District 9's prawn assault rifle I settled on White, Black, and Orange.  Credit to Weta Workshop for the design below.



To this end I took apart the Core P5 case and sent parts of it to a powder coating company, to spray white, as this will form the background / base colour of the build.

So onto the business end - the water loop parts list:

Order1:
GPU Block: EK-FC1080 GTX FTW - Nickel
CPU Block: EK-Supremacy EVO - Nickel
GPU backplate: EK-FC1080 GTX FTW Backplate - Nickel
Radiator: EK-CoolStream XE 480 (Quad)
Fans: EK-Vardar F4-120 (2200rpm)
Extra: EK-Cable Splitter 4-Fan PWM Extended


Order2:
TBA


The first order list was the easy ones.  GPU and CPU blocks were a given, and I chose the Nikel option since I want to maximise the Orange coolant displayed
.
The Radiator is overkill but it's a big case and I wanted to try fill it as much as possible.

The Vardar fans where a tough choice.  I wanted the Thermaltake RGB fans but opted for function over form for this part.  I'm hoping the much higher static pressure of the 2200rpm Vardar fans will deal with the very large (60mm) radiator better, potentially allowing both slower fan speeds during normal usage, and higher cooling capacity for playing with overclocking.

The 2nd order is the hard one I'm still working on.  Tubing, Coolant, Fitting, and RAM block.
* Tubing will be hardline PETG - cause I'm brave and want to learn to bend tubing.
* RAM block - unsure if I want one, I plan to build the case mostly and then decide based on what it looks like.
* Fittings - again, unsure what right angles and such I'll want and what colour.  I'll build what I can before deciding.
* Coolant - Orange obviously, but pastel vs transparent.  And premixed or mix my own... tba

Finally I've ordered a cable sleeving kit, as that will give me something to do while I wait for the above parts to arrive.

So next post will be me building the Core P5 with the bits from Order 1... it wont be a complete build but I might be able to include some cable sleeving news.

Till next time






Thursday, November 24, 2016

MSCRM and the ever growing database

Not for the first time I've come across a SQL server with a full disk.
The culprit database was a MSCRM organization database which had grow to ridiculous size.
TLDR version: activity logging in CRM will generate a lot of data and consume your disk space.

Troubleshooting and fixing your oversize SQL database looks something like:

Open Dynamics CRM Deployment Manager.
Right click on your Organization and click Disable.  This will prevent access to the Org and stop it from accessing the database while you fix it.
Consider a SQL restart to clear any connections if you can.

Set Database to simple mode and flush old logs
USE ORGNAME_MSCRM
GO
ALTER DATABASE ORGNAME_MSCRM
SET RECOVERY SIMPLE; 
GO 
DBCC SHRINKFILE (mscrm_log, truncateonly)
GO 

Find the oversize table
USE {YOURDATABASE}
SELECT 
    t.NAME AS TableName,
    i.name as indexName,
    sum(p.rows) as RowCounts,
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' AND
    i.OBJECT_ID > 255 AND   
    i.index_id <= 1
GROUP BY 
    t.NAME, i.object_id, i.index_id, i.name 
ORDER BY 
    object_name(i.object_id) 

Empty the oversized table (assuming your table isn't one you like very much)
DECLARE @Deleted_Rows INT;
SET @Deleted_Rows = 1;

WHILE (@Deleted_Rows > 0)
 BEGIN
  BEGIN TRANSACTION
   DELETE TOP (10000) ActivityPointerBase 
  COMMIT TRANSACTION
CHECKPOINT
SET @Deleted_Rows = @@ROWCOUNT;
END

Set Database back to normal
USE ORGNAME_MSCRM
GO
ALTER DATBASE ORGNAME_MSCRM
SET RECOVERY FULL; 
GO 

Depending on the size this may take a very long time.  In my case I went a step further and switched the database to Single User access while the above was completed.  YMMV


If you encounter this and have success or problems resolving the issue please leave a comment and let me know.
I'd be curious what others have done to either fix or prevent this for occurring.



Wednesday, April 20, 2016

CRM 2016 Claims based authentication bug

EDIT:  There is another cause for this particular error.  It related to publishing CRM IFD via WAP.  

Run  Set-WebApplicationProxyApplication -ID -DisableTranslateUrlInResponseHeaders

on the WAP server for each published URL and see if that help

***********

Well it's been a long time since my last post but here's a good one that took far too long to resolve.

If you have a CRM 2016 IFD (Internet Facing Deployment) and are having authentication issues via ADFS this might apply to you.

You might be seeing errors like

Microsoft.IdentityServer.Web.InvalidRequestException: MSIS7042: The same client browser session has made '6' requests in the last '1' seconds. Contact your administrator for details.

Also if you test it you'll find the external URL (Forms based auth) works.
And if you authenticate to the external url then the internal URL will start working.
Until you IISRESET the CRM server and it will break again.
Madness!  

Turns out it's a bug in CRM 2016 Update 0.1  There was a change in how the ADFS token is handeled for Claims Based authentication.
This is why authencitaion via the external URL (Forms based) work, and once you have a good token from ADFS you can connect via either URL

Below from a ticket someone raised with Microsoft (2nd March, 2016)


We opened a support ticket with Microsoft and they have acknowledged it as a bug and are working on a fix for this (with no ETA)
From MS Support :
Cause: It’s a known bug with recently reported in 0.1 Update for CRM 2016.
 Possible Case for the Issue: There were major code changes in Ara UR1 for authentication. The affected code is in Microsoft.Crm.Core.Security.Identity.IdentityExtensions.GetUserPrincipalName(). We are unable to cast to a from type ClaimsIdentity to a new type CrmIdentity.
Therefore, the variable is null, and we cannot retrieve the information.

Only solution for the moment is to uninstall the 0.1 update and wait.
It's worth noting the updates for other components (mail router, Report Server Extensions) are fine to install.

There are a ton of fixes in update 0.1 so I'm hoping they sort this out soon.  Would be very good to be able to install CRM 2016 update 0.1


Wednesday, April 21, 2010

Hyper-V MAC conflicts

So here's an interesting one I came across recently;

When you run (in this case) HP Teaming on your NICs with Hyper-V on Server 2008 R2 you will get the following error... a lot.

Port {Teaming NIC GUID} was prevented from using MAC address {MAC of a VM} because it is pinned to port {GUID of VMs NIC}.

The real symptom is erratic pings and/or connectivity to your VMs. It will show mostly as 1 or 2 dropped packets every now and then.

Reason is, after 2008 R2 the networking in Hyper-V was secured to prevent MAC spoofing (A huge vulnerability up to this point). Problem is, the HP Teaming NIC want to effectively spoof all the MACs behind it, so it can control the load balancing etc... tsk tsk, what to do, what to do...

Solution is simple, thankfully there's a real easy tick box to turn that shiz off;
(This is from within System Centre Virtual Machine Manager, but same setting is there in Hyper-V Manager)



















Hopefully this saves someone some pain.

EDIT: Please post your mileage on this one if you do come across it. Not 100% sure that it's the final answer in my particular problem. I may be looking at deciding NIC teaming (With HP at least) is not workable.

As it turns out this didn't solve our particular problem at all.
In our case the error being reported around the MAC addresses jump between ports was symptomatic of a loop in the network (Split Horizon)
Hyper-V switching seems to be very sensitive to this and there was no other evidence of this on the network, however when the offending device (Cisco Airport) was removed the problem vanished immediately.

A great success! So if you see this MAC address changing very often then check your network for loops (via segment isolation)


Thursday, March 18, 2010

My 2008 Logs are tooo big

Maintenance plans not working? Running out of disk space?
Clean out those log files.

USE SharePoint_Config
GO
ALTER DATABASE SharePoint_Config
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (SharePoint_Config_Log, truncateonly)
GO
ALTER DATABASE SharePoint_Config
SET RECOVERY FULL;
GO

Wednesday, March 17, 2010

App-V 4.6 and Office 2010

Cross Post from MS for easy reference;

Install;
XPSEP XP and Server 2003 32 bit
dotnetfx3setup
Windows Search 4.0
C:\Documents and Settings\Administrator.SEQUENSER\Desktop>msiexec /i OffVirt.msi
PROFESSIONALPLUS=1

Install App-v 32 bit sequencer RC (2)

Begin sequencing
Start Office 2010 beta installation, use the following folder;
Q:\mo2k1b32.004\Microsoft Office

Open Excel,OneNote, PowerPoint, Wor. Set to note download any updates

reg add "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs"
reg delete "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs" /va /f
reg add "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs"
reg delete "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs" /va /f

Copy everything from c:\program files\common files\microsoft shared\filters to another folder and then back


reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{4154494E-BFF9-01B8-00AA-0037D96E0000}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{C0A19454-7F29-1B10-A587-08002B2A2517}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{70fab278-f7af-cd11-9bc8-00aa002fc45a}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{c34f5c97-eb05-bb4b-b199-2a7570ec7cf9}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{0077B49E-E474-CE11-8C5E-00AA004254E2}" /t REG_DWORD /d "1" /f

Versionnumber for all office-applications:14.0.4514.004

Add the following applications;
Simple MAPI Proxy Server
%commonprogramfiles%\microsoft shared\virtualization handler\MapiServer.exe

Virtual SharePoint proxy
%commonprogramfiles%\microsoft shared\virtualization handler\VirtualSearchHost.exe

Virtual OWSSupp Manager
%commonprogramfiles%\microsoft shared\virtualization handler\VirtualOWSSuppManager.exe

Mail Control Panel
%windir%\system32\Control.exe” “%SFT_MNT%\mo2k1b32.004\Office14\mlcfg32.cpl


Edit the following registry-keys and change the value to:
%SFT_MNT%\mo2k1b32.004\VFS\CSIDL_PROGRAM_FILES\Microsoft Office\Office14\OWSSUPP.DLL
HKEY_CLASSES_ROOT\CLSID\{3FD37ABB-F90A-4DE5-AA38-179629E64C2F}\InprocServer32\(Default)
b. HKEY_CLASSES_ROOT\CLSID\{62B4D041-4667-40B6-BB50-4BC0A5043A73}\InprocServer32\(Default)
c. HKEY_CLASSES_ROOT\CLSID\{9203C2CB-1DC1-482D-967E-597AFF270F0D}\InprocServer32\(Default)
d. HKEY_CLASSES_ROOT\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\InprocServer32\(Default)


In the sequencer, add the following element to each OSD, and type “TRUE” in the Element Text: SOFTPKG -> IMPLEMENTATION -> VIRTUALENV -> POLICIES -> LOCAL_INTERACTION_ALLOWED.


Save Package

The adding of the proxies I usually did when editing the detected programs.

/Znack
----
msiexec /i OffVirt.msi ADDDEFAULT=Click2runOneNoteProxy,Click2runOutlookProxies,Click2runWDSProxy,Click2runOWSSuppProxies PACKAGEGUID={EF2D625D-2BD3-4226-A480-CFE325BBDCDE} PACKAGEVERSION=14.0.4514.1004 OUTLOOKNAME=”Microsoft Outlook 2010 (Beta)” ONENOTENAME=”Microsoft OneNote 2010 (Beta)” MAPISERVER=”Simple Mapi Proxy Server” VIRTUALSEARCHHOST=”Virtual Search Host” MLCFG32CPL=”Mail Control Panel” OWSSUPPServer=”Virtual OWSSupp Manager”

Windows Installer doesn't recognize ”. Replace ” with " on the command line

------

http://www.softgridblog.com/

-----

presales guff type stuff:
http://windowsteamblog.com/blogs/springboard/archive/2010/02/22/app-v-4-6-release-q-amp-a.aspx

-------------

Sequencing best practise: http://technet.microsoft.com/en-us/library/dd351420.aspx

http://support.microsoft.com/Default.aspx?kbid=980861

-----------

Also this is now released with new software, and instructions available. (22 April 2010)

Tuesday, March 2, 2010

Symantec Endpoint Protection Manager (SEPM) def update issue

So you've installed the latest sepm and all went well until you realize your defninitions are dated 2009. easy fix, run liveupdate in the manager console... Wait, what, they're up-to-date!?

Guess something is stuck then, hey :)

step 1: make sure you are on the Internet, can get to the liveupdate servers: http://definitions.symantec.com/defs/{updatefile}.exe OR FTP://FTP.symantec.com/public/blahblah
step 2: run luall.exe location in c:\program files\symantec\liveupdate and see if it downloads anything (prob not)
step FIX: I'll cross post later but

http://service1.symantec.com/support/ent-security.NSF/docid/2008041516215948

seems to give it a proper cleanout of the old defs and you can expand the process to do all your definitions with a little care

good luck with sep, here's hoping the next version is better ;-)

Friday, February 5, 2010

Masterbrowser script

"
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
"

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.

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.
  1. SAN - Create the Witness Disk, Virtual Machine storage, LUNs etc
  2. 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
  3. Networking - Assign your IPs, Name your NICs, test connectivity between all hosts and SAN [iSCSI]
  4. Storage - Connect to the SAN, check all the drives appear and make sure they have the same drive letters on all hosts.
  5. 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.
  6. Hyper-V - Install Hyper-V, configure all networking, dont create Guests!
  7. Live Migration - Enable Cluster Shared Storage and add your disks (No, not the witness disk)
  8. Add/create your Virtual Machine using Cluster Manager.
  9. Check their configuration using Hyper-V manager.
  10. Start your Guests using Hyper-V manager.
  11. 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.

Tuesday, August 25, 2009

Microsoft Direct Access

Microsoft Direct Access has just been released and there is always a lot of hype with new solutions. However this one has truly impressed me and I hope to see some serious market uptake.

I recently had the opportunity to assist with New Zealand’s first production implementation of this, in conjunction with Microsoft Prof Services and I'll try to detail the experience below.

The first thing you need to know is that Direct Access is awesome, but comes with some friends. Like the hot blonde you're excited to let into your party, until you see the not-that-hot friends she's bringing too.

In this case I'm referring to IPv6 and Public Key infrastructure (PKI). Both technologies have very nice personalities, but they are a lot of work and aren't good looking enough to sell to your boss. If you create a plan to get these technologies in place properly, in addition to the Direct Access planning, you'll do fine.

Public Key Infrastructure

If you dont already have one, put it in place. It's useful in many other places too.

The catches;

  • Whatever server to decide to make your Certificate Authority will be with you for a long, long time. Virtualize if possible and choose a smart name.
  • Lots of certificates will be handed out - things like DCs are going to jump on the PKI bandwagon straight away. That’s OK, it doesn't hurt. It will only hurt if you start trying to be clever and stop them.
  • Server 2008 R2 - if you can, make it your CA. Newest templates and distribution points out of the box are nice.

For Direct Access use you will have to publish a CRL to the outside world. If you happen to have an ISA box, a web publishing rule is an easy option. But as long as you can get to the CRL how you do it is up to you. And no, you can’t reuse one of the DA boxes external IP addresses.

IPv6

It's coming and you can't ignore it anymore :) That being said there an army of technologies to make getting IPv6 going easier (and ironically, more complicated)

The one we are particularly interested in is ISATAP. Short version is it creates a IPv6 addresses based on [Address type][network prefix][IPv4 address].

In our case it would look something like 2002:0000:0000:0000:0000:5efe:192.168.1.1 or 2002::5efe:192.168.1.1

What you need to know is;

  • Any server taking part in the Direct Access communications will need one of these ISATAP addresses.
  • This is supported on Server 2003 and up.
  • The address is generated by doing a DNS request to ISATAP.{domain}
  • ISATAP.{domain} is blocked by default on your DNS server and will need to be allowed.
  • You can bypass this lookup, by configuring the address this resolves to, directly on the ISATAP interface, on the server you are configuring. (NETSH INTERFACE ISATAP SET ROUTER {ipv4 address of DA box})
  • You can disable and re-enable this interface to force it to do this DNS query again.

If you are doing IPv6 just for Direct Access the best results have been from leaving ISATAP blocked on your DNS servers and manually configuring the router address on the servers you want to take part in Direct Access. This leaves your other servers unaffected. Up to you though.

Direct Access

The irony of this name shouldn't escape anyone, this access is about as tunnelled as it gets. Packets get packaged in other packets, NATs traversed and the like.

Before you install you should read this. Lots of good info and instructions.

I'm not going to cover the install in details just the highlight and some tips I discovered. RTFM for the how to... and just 'cause you haven't downloaded it yet, click me.

  • 2 sequential Public IPv4 addresses both assigned to the same interface.
  • Un-firewall access to those IPs (OK if you have to, then check the guide for ports - but open it up for testing)
  • If you're doing it as a Hyper-V Virtual Machine use Legacy Network Adapters.
  • Use an IP Address, not a hostname for the Location Awareness URL (LAU)*
  • Get yourself an external IP for a Windows 7 client that you can stick in your DMZ - great for testing.
  • Enable your local admin account on your Windows 7 machines! - When things go wrong you will want to log in locally... and by 'things' I mean net being able to get ANY network comms.

The install of the Direct Access role itself and the configuration wizard are stupidly easy. The skill is in the planning, so be sure you do lots of it.

*Almost forgot. You'll want an IIS website hosted somewhere internal with a Certificate on it matching its IP address (and the PKI is useful again). You should be able to access this site securely and without any warning from the internal network, and not at all externally. The content of the site doesn’t matter, just that it exists. - This is how Windows 7 figures out if it's on the network or not. Location Awareness - pray it never gets it wrong.

Well, have fun and do me a personal favour. Do lots and lots of testing before giving this to your users. If we want this to be a hit in the industry the user experience has to be a good one. So let’s get it right and get people talking about it.

{Written while over Direct Access on Windows 7}

Tuesday, August 11, 2009

... Chess

For those that missed it the title of this Blog is a reference to the movie WarGames (1983).

This will be a blog about my exploits in the IT industry.

I am a Senior Systems Engineer working for Lexel Systems Ltd based in Auckland New Zealand.
Hopefully I can provide some insight and assistance to other working in the IT industry through this Blog. I work with all Microsoft, VMware, Citrix and Cisco technologies and get he opportunity to work with a lot of Beta and early adoptor releases.

Thanks for reading.