Windows 8 RTM, Realtek NIC, and WOL

At home I have my NAS setup with VPN so that I can pretty much always get back on my home network if required.  This comes in handy for running virtual machines.  However, since I moved to the NAS I run my virtual machines from my desktop.

The whole point of the NAS was for less power and noise though, so I don’t want the desktop on all the time.  My solution was wake-on-lan (WOL) and in Windows 7 it worked great.  However, over the past couple of days, I’ve upgraded to Windows 8 RTM and I couldn’t get WOL working when the machine was powered off.  It worked great when the machine was asleep, but not completely off (most of the time).

Turns out the default realtek NIC drivers in Windows 8 aren’t really the best, but downloading the Windows 8 drivers from the realtek website fixed the issues.

P.S. Being able to run Hyper-V instead of Virtualbox is nice, plus you don’t loose hibernation!

SQL Server Issues

Last week I was beating my head against the table, because a VM I had quickly created wasn’t allowing SQL to install.  I kept receiving the following error in the detailed SQL error log:

Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.
External component has thrown an exception.
The configuration failure category of current exception is ConfigurationFailure
Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC.
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
at Microsoft.Win32.SafeNativeMethods.CloseHandle(IntPtr handle)
at System.Runtime.InteropServices.SafeHandle.InternalDispose()
at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing)
at System.Diagnostics.Process.Close()
at System.Diagnostics.Process.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceBase.WaitSqlServerStart(Process processSql)
at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases(EffectiveProperties properties, Boolean isConfiguringTemplateDBs, Boolean useInstallInputs)
at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig(ConfigActionTiming timing)
at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)
at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
Exception: System.Runtime.InteropServices.SEHException.
Source: System.
Message: External component has thrown an exception.

It turns out that I accidentally downloaded the debug check build version of Windows 2008 R2 SP1, and well, you can’t install SQL with that version.  Needless to say, the error message makes this completely obvious.  Found the hint to look at the ISO I was using on MSDN social.

Windows Home Server

With the release of Power Pack 3 for Windows Home Server, I have been thinking about trying it out.  Having an MSDN subscription and a virtual machine host made this quite a bit easier, as I didn’t need to purchase any additional hardware to use it. 

Prior to installing WHS, I had a Windows 2008 virtual machine that I installed all my stuff on and had shares.  It definitely worked, but some of the cool features of WHS kept me wanting to move in that direction.  Things like automated backups of client machines, a console, better managed and accessible shares, and Media Center tie-ins (I have a Win7 virtual machine as a Media Center and an Xbox 360 as the extender).  All in all, I think it is definitely going to be a move in the right direction, but that doesn’t mean there weren’t issues getting there.  I am going to outline a bunch of them here in the hopes that others can find comfort in the work I have done to resolve them.

  1. Installation – As I mentioned before, I was installing it to a virtual machine.  No big deal right?  Wrong.  My virtual machine host does not have a keyboard, monitor, or mouse hooked up to it normally.  I just have it sitting in the closet chugging a long.  The downside to that is when I am building a new virtual machine, it had better not need the mouse until I can directly connect to the machine or install the integration drivers.  This is because in Hyper-V when you are using Remote Desktop to manage the host, until you are able to install the drivers, you have no mouse.  Well, sadly, with the MSDN version (not sure about pressed CDs), the tabs are not correct with the EULA Accept page.  There is no way for you to accept the EULA to progress through the installation.  Boo.  That means I had to drag a monitor, keyboard, and mouse into the closet to get things working.  It just seems silly that this is an issue for something that is meant to run headless anyways (obviously not during the installation, but still).
  2. Domain Membership – Do not add the WHS machine to a domain.  I know you want to if you are running a domain at home, but don’t, just don’t.  I really wanted to run it as a domain member too, but there are just too many issues, and tricks MS has done to make it not worth your while.  Things such as the machine powering down every 48 hours when it is a member (annoying at best), to the console crashing after adding domain members to the local windows home group manually.  While I know you can work around most of these things (except for the console crashing), what benefit are you really getting?  Just leave it as a member of a workgroup.
  3. Firewall Rules – Much like domain membership, the best answer here is just to turn off the Windows Firewall on the box.  I am not sure if it was because it updated to Windows 2003 SP2 which enabled it by default after the base install or what, but there was nothing but headaches with the Windows Firewall enabled.  Some of the more quality examples were:
    • The website you are supposed to access resides on ports 55000/56000.  That was not allowed in the rules by default.
    • When setting up the Media Center connector, it uses DCOM to connect.  DCOM typically uses a random list of high ports (1024-65535) to do its bidding.  Granted, you can change the ports to only use a few, neither of which is added into the firewall rules.

    Just silly stuff like that, which take awhile to troubleshoot, when they don’t need to.  Turn it off.

  4. Carbonite Online Backup – This is the current beast I am dealing with and it is a fun one.  Carbonite works exactly how I want it to, and I have been using it on my Windows 2008 machine to do online backups for over a year now.  It works.  It isn’t fast, but it works.  Moving it to WHS has been a fun test of intelligence.  In my setup I had 2 drives, one was 80GB (the minimum to get it setup because I just wanted to play at first) and one 800GB.  Everything works great, except for Carbonite.  For the time being, I just wanted to backup the data in some of the shares.  No problem, right?  Just point it to where the share is located on disk (D:sharessharename) and we are good to go.  Wrong!  WHS has a special drive configuration that allows you to simply add drives whenever and whatever size and it will automatically add that space to your shares.  It does this via junctions, tombstone files, and a service that manages where all the files are stored.  I won’t delve into it here, but you can read all about it yourself.  Basically the files in your share are elaborate shortcuts to the actual files, which are spread across all your drives, and then the files are managed by the service, and then could move every hour.  So, when you point Carbonite to D:sharessharename, you are effectively backing up the shortcuts.  Instead you need to point it to the junction point and all the files there (these are hidden system files) at C:fsDE.  As I mentioned, these files are always moving around though based on the service.  Therefore, the only way for Carbonite to work correctly on a WHS is if you have a single large drive, which is exactly what I am going to do.  As soon as you add another one, files could get moved, and your backups will not be complete.
  5. Protocol Mismatch – For the longest time I was receiving the following error whenever I was trying to install the connector on a client machine (Windows 2003, Windows 2008, Win 7)

    Protocol mismatch. This computer uses protocol version 6.0.2030.2, but partner computer [server] uses protocol version 6.0.2030.0. A connection cannot be established

    This was because the http://server:55000/enrollid/id.aspx webservice that the connector uses on the WHS machine was returning the incorrect version.  The only way to fix it that I found was by installing the final build of Power Pack 3.  The beta didn’t work, nor did downgrading to a previous PP.

Hopefully this little guide helps someone else out there.  As I tinker with it some more, I will probably add additional articles, but it is amazing how long it has taken me to get this silly machine up and running, especially when this is supposed to be an appliance.  I know that MS is learning a lot from this, but the polish is still a bit missing, and this is after 3 Service Packs (Power Packs).

VI3, NFS and Windows VMs

See the second update for the correct way of setting this up 🙂

You may be like me, and have a test lab running VI3.  You may also only be running Microsoft VMs for whatever reason.  I happen to be because that’s all I deal with as I work for a MS Consulting company.  Anyways, whenever I wanted to create a new machine I needed to have the ISO copied out to the ESX storage device.  This was always a pain because I’d have to use WinSCP or Filezilla to copy it from a host virtual machine to the storage device.  Plus there was the fact that I was now using 2x the space on the storage device because it’s accessible to ESX and it’s stored in a VM.  Lame.

With VI3 you can use NFS shares as storage devices.  Downside is, is that by default Windows only uses CIFS (or SMB) sharing.  However, with Windows 2003 R2 (you may be able to do it in Win2k3 too) you can install the Unix NFS tools which allows for the creation of NFS shares.

From the Windows machine you want the NFS share(s) located on, you need to open Add/Remove Programs from the Control Panel and then Add the following Windows components.  Under Other Network File and Print Services select to install all of the Microsoft Services for NFS.  I don’t think if you need all of them, but it’s working with them all (feel free to leave feedback if you play).

After you install those, it will require a reboot.  Once you’re back up, open up the Microsoft Services for NFS in the Administrator Tools.  Right click on the root (Microsoft Services for NFS) and select the user name mapping you want.  I set mine to AD lookup, but I’m using anonymous read only access on the share anyways.

If the CIFS share has already been created, you will need to create the NFS share from the command line.  This can be done with the following command:  nfsshare -o anon=yes

=drive:path.  Obviously replace

with the name you like and drive:path with the location for the share. 

If the CIFS share hasn’t already been created, then you will see a NFS Sharing tab when you attempt to create the share.

Once the share has been created, within your VirtualCenter client (or host based VI Client), select the host, go to configuration tab, and then Storage (SCSI, SAN, and NFS).  Select Add Storage and select the Network File System option.  Enter the info for the server you just set this up on and the folder (/

).  Now you have a mounted storage device for your share.  Yay!

As mentioned before, this NFS mount point can be a virtual machine on the host.  I haven’t restarted the host yet, so I’m not sure how nicely it plays with that though.

Resources used for this:
http://levelsofdetail.kendeeter.com/2007/01/setting_up_an_nfs_server_on_wi.html
http://support.microsoft.com/kb/324089

**Update**

Ugh, so just doing the above doesn’t work.  At least it didn’t list the contents of the iso directory.  No good.  Further research comes up with one possible solution, but it’s ugly.

Add anonymous login read access to the share and ntfs permissions on the share.  This seems to work, but I’m not really a fan of it.  For some reason, user mapping doesn’t seem to be working.  You should be able to do user mapping by grabbing the /etc/passwd and /etc/group files from your VI3 host and then importing them into the Microsoft Services for NFS User Name Mapping section (right click and define the location for these two files). 

I’ve mapped the local admin to the root account.  I get no love though as soon as I disable anonymous access on the NFS share.  Boo.  What really makes me angry is that I want to host templates on this Windows NFS share.  That would require me to enable read/write access to the anonymous user.  Needless to say, something I’m really not comfortable with.  Maybe I can fix this stupid user mapping issue, and then I won’t have to worry.

Oh yeah, be sure to enable the NFS client firewall rule on your host…

**Update #2**  This is the way to get this setup
Alright, I’m retarded as to why I couldn’t get this figured out.  The real steps to get this going:

  1. Enable NFS Client through the firewall in VI3.  This is done from the host level, configuration, security profile.
  2. Install Microsoft Services for NFS.  From Add/Remove Programs in the Control Panel open up Windows Components and add all of the Microsoft Services for NFS found under Other Network File and Print Services.  Yes, you need them all.
  3. Reboot if required.
  4. Using WinSCP or Filezilla, get the /etc/passwd file from your VI3 host.
  5. Open up the Microsoft Services for NFS in the Administrator Tools.  Do not right click on the root (Microsoft Services for NFS) and delete the user name mapping server.  Be sure it is set to localhost.  Don’t worry about setting the domain unless you want to do additional user name mapping.
  6. Right click on User Name Mapping and select the Use Password and Group files and point to the path of the passwd file.
  7. Right click on User Maps under User Name Mapping and select create maps.
    • On the windows account side, change to the local host (if it’s not already selected) and click the List Windows Users button.
    • On the Unix account side, click the List Unix Users button.
    • Select the local Administrator on the Windows side and the root account on the Unix side.  ESX does everything as root, so don’t worry about selecting multiple mappings. (You can definitely map to a domain account, but DO NOT map to the domain admin account as this is usually disabled.)
  8. Create the NFS shares.  Ensure that the user you mapped to on the windows side (local Administrator) has the required (Windows) Share and NTFS permissions.
    • Right click on a folder and go to Sharing and Security.  Go to the NFS Sharing tab and select Share this folder and give it a name.  DO NOT allow anonymous access.  Instead select the permissions button.  Give the access required and be sure to check “Allow Root Access”.  As mentioned before, ESX does everything as root, so this box must be checked.
  9. Within VirtualCenter client (or host based VI Client) select the host, go to the configuration and then storage.  Select Add Storage and select the Network File System option.  Enter the info for the server you just set this up on and the folder (/).  Now you have a mounted storage device for your share.  Yay!
  10. Verify the storage device by double clicking on it.  If you can view stuff in the folder on windows, you will be able to view it on the ESX host.

ESX 3.5 Upgrade Woes

I really want to upgrade to ESX 3.5.  However, I’m not having that much luck with it.  I’ve tried 2x now, and have had the exact same experience.  So, I do the upgrade from 3.0.2 to 3.5.0.  However, after the upgrade, not all of my VMs function.  Some of them work just fine.  However, others are sitting at the command prompt saying that no OS has been found.  It’s weird because the drives are attached and recognized, but it doesn’t like to boot from them.  It’s like it can’t find the MBR. 

Things I’ve tried to fix this:

  • Analyze the differences in the VMX and VMDK files between the machines that are working and aren’t.  This hasn’t given me much as there isn’t any difference.  The only difference I noticed was in the VMDK files.  The ones that booted correctly listed the “ddb.toolsVersion”.  The ones that hadn’t booted listed it as “0”.  Sadly, changing this didn’t fix anything.
  • Mount the non-functioning disks on working VMs.  By doing this I was able to view the contents of the disks just fine.  And amazingly, sometimes after doing that, the original VM actually booted.  However, they are very flakey and sometime revert back.  There is a lot of chkdsks going on on bootups too. Nothing is ever found, but it seems to always run.

I really don’t know what to do at this point.  I know that I can downgrade again to 3.0.2 and it will work fine.  The machines will boot right up without issues.  However, to downgrade, that means I have to recreate all of my Virtual Machines again.  Not completely awful, but time consuming.  I may try to do a full install instead of any upgrade too, see if that works.  Any other ideas?

I’d really like to move to 3.5 as it has some nice features.  Plus I’ll be sitting the VCP class soon, which will be on 3.5.

Leostream

Leostream, who I’ve talked about before, has a few new demo’s up on their website.  Having used some of the demoed software before, these are pretty well done.  I would definitely take a look at them.  Oh, and it doesn’t seem to work in IE7 beta, and there are other people saying it doesn’t work in IE at all, so break out firefox or something else to check em out.

VMWare Infrastructure 3

Today was the official announcement of VI3, VMWare’s next release of ESX and Virtual Center.  After watching the webcast this morning, I’m more than a little bit stoked.

Some of the things I’m looking forward to are

  • NAS support
  • USB support
  • Drag and drop in virtual center
  • New, more performant VMFS 3
  • 4-way SMP and 16 GB of RAM support for virtual machines
  • DRS
  • High Availibility features
  • Support for Solaris
  • Ability to run non-VMWare machines
  • Removal of the web interface

I can’t wait to get the final bits loaded on my machine.  I’ve actually been debating installing beta 2 on my home machine for awhile, but haven’t because of time constraints.  However, I’ll have to put a few things on hold to install the final version.

There are also a few new whitepapers on VI3 already on VMWare’s website, so you can get a head start before it’s actually released.