HP buys 3Com?

I see HP is buying 3Com.  I was surprised to read this and all I can think is why?  I still have a bad taste in my mouth from 2000 when 3Com pulled out of the high-end corporate network market.  Before then I had a good amount of 3Com gear in the IT closets and 3Com was considered a very solid network provider.  It was them or Cisco in the rack.  Then after they pulled out in 2000 I was really wondered what they were planning to do.

In 2003 they started working with Huawei in China and appeared to be trying to get back into the enterprise network market with the joint venture H3C line.  It sounds like that gear has done well in China and overseas, but I don’t know anyone running 3Com in their data centers today (although I’m sure there is somewhere).

I read that HP is buying 3Com to fill out their data center product line.  Really?  I would think HP would be better off continuing down the path they are currently on without spending 2.7 Billion for 3Com.  Oh well, HP should know what they’re doing……right?

RAID limitations – an interesting read

I was doing some reading the other day and came across several blogs about the limitations of RAID and in particular RAID 5.  Since I use RAID 5 on a number of systems at work, this of course gave me some pause.  On my larger SANs I’m using RAID 50 which should mitigate most of the potential issues.  I’m not saying these blogs are gospel, but they are worth thinking about next time you configure new storage and definitely worth reading.

Limitation of RAID 5 in large storage systems (>12 TB) (note the blog entries are dated 2007 so a bit old)

http://blogs.zdnet.com/storage/?p=162

http://storagemojo.com/2007/02/20/everything-you-know-about-disks-is-wrong/

Interesting bit on Suns RAIDZ which overcomes RAID 5 limitations.  Good if your running sun gear. 

http://blogs.sun.com/bonwick/entry/raid_z

HP Blackscreen of Nothing

Sometimes you have things happen at work that are silly, weird and illogical – especially when you work with computers.  I’ve had 2 recent brushes with the HP Black Screen of Nothing (BSON).  One on a brand new HP Proliant DL380 G5 and one on an old Proliant DL380 G3.  Both had the same symptoms and the same fix.

The BSON is characterized by a server that doesn’t POST, has no video, no RED LEDs, no beep codes; just a whole lot of no booting.  The usual procedure is to re-seat and/or remove hardware (RAM, PCI cards, riser boards) in a orderly fashion until you get a POST of some type.  In both these cases the usual hardware didn’t help.  In both these cases what did help is to remove and then re-seat the PPM (processor power module). 

What was weirdest is on the new G5 this didn’t work at first.  This was a dual processor machine, so after I added the 2nd processor I got the BSON.   If I removed the 2nd processor, bam POST.  Great, I figured I borked the 2nd proggy on install.  I finally got the thing to POST and boot by – get this – switching the 2 PPMs around (i.e. slot 1 -> slot 2 and vice versa) – which of course is really the same as removing and re-seating.

Anyway, if you have an HP Proliant that won’t post, no video, no beep codes, no red leds.  Pull the PPM for a bit.  And pray…..that doesn’t hurt.  If that doesn’t work, pop the reset dip switch on the motherboard.

Blue Screen – Windows XP BAD_SYSTEM_CONFIG_INFO

So the other week I hear from a user that their machine is borked. Typical BSOD I thought, let’s get into safe mode and find out what’s up. Doh – BSOD trying to get into safe mode. Nothing worked.  Everything I try results in the same error – BAD_SYSTEM_CONFIG_INFO STOP 0×00000074 (0×00000003, 0×00000002, 0×80087000, 0xc000014c) Well I figured I’d have to re-image the machine, but I came across a procedure to get around this error without rebuilding. I cleaned it up and posted it below. See here for the original post.  Also, Microsoft KB here.

This fix is a 3 phase process

  • Phase 1 – use recovery console to access os and replace default registry files.
  • Phase 2 – boot to Windows and grab files from system recovery area.
  • Phase 3 – replace default registry files with recovery area files.
  1. Boot to Windows XP
  2. When you get to the XP installation menu choose R
  3. Once the recovery console starts you will be asked to choose which windows installation you want to login to.  For most people this will be 1: C:Windows.  Hit 1 or select the correct windows installation.
  4. Log in with the administrators password.
  5. First create a new temporary directory “md c:\windows\tmpcopy”
  6. Now copy the existing registry files to the temp directory created in step 5
    1. Copy C:\Windows\system32\config\system  C:\Windows\tmpcopy\system.bak
    2. Copy C:\Windows\system32\config\software  C:\Windows\tmpcopy\software.bak
    3. Copy C:\Windows\system32\config\sam  C:\Windows\tmpcopy\sam.bak
    4. Copy C:\Windows\system32\config\security   C:\Windows\tmpcopy\security.bak
    5. Copy C:\Windows\system32\config\default   C:\Windows\tmpcopy\default.bak
  7. Remove the existing registry files after creating the backup files
    1. Del C:\Windows\system32\config\system
    2. Del C:\Windows\system32\config\software
    3. Del C:\Windows\system32\config\sam
    4. Del C:\Windows\system32\config\security
    5. Del C:\Windows\system32\config\default
    6. Note: if you receive an error when trying to delete these files, rename them instead by using a non-standard extension (CD C:\Windows\system32\config  rename system system.foo).
  8. Now copy some default reg files to C:\Windows\system32\config to get the system to boot.  Windows won’t look the same and most programs won’t work after this boot, but that is fine.  We are just trying to get windows to boot.  These default registry files are located in C:\Windows\repair (XP) or C:\Windows\System32\config\regback (Vista).
    1. copy c:\windows\repair\system  c:\windows\system32\config\system
    2. copy c:\windows\repair\software  c:\windows\system32\config\software
    3. copy c:\windows\repair\sam  c:\windows\system32\config\sam
    4. copy c:\windows\repair\security  c:\windows\system32\config\security
    5. copy c:\windows\repair\default  c:\windows\system32\config\default
  9. Exit the Recovery Console and Boot into Windows………If it worked then you are on the right track.  If not well?
  10. In this part we will prepare to copy files from one of the system restore points that was created before the wheels came off.  You are using system restore aren’t you?  If not it’s probably time to reinstall all your applications
  11. To copy registry files from a system restore point, you will need to make the system restore directory visible.  Using the system restore utility will not work because of what we did in steps 7 and 8.  Here is what to do.
    1. Start Windows Explorer
    2. Tools > Folder Options
    3. Click the view tab. Select “Show hidden files” and then clear “Hide operating system files” and click yes to confirm and ok.
    4. Navigate to the drive that Windows is installed on and look for the “System Volume Information” folder.  Most likely you will not be able to get into the “System Volume Information”.  To remedy this, right click on the folder, go to sharing and security and then the security tab.  If you don’t have a security tab, right click and choose “share this folder”.  Check both the “share this folder”  and “allow network users to change my files”. 
    5. On the security tab choose Add and then add the user you are logged in as.
    6. Now you should be able to open the folder.  Inside you will see (hopefully) a bunch of folders named similar to “_restore{guid}” like “”_restore{81AC3458-3199-486Z-145F-F86E60B3D3E3}”  These are the snapshots.
    7. Choose a folder that is dated before the event and open it.  Inside there should be a snapshot folder. (ex. C:\System Volume Information\_restore{81AC3458-3199-486Z-145F-F86E60B3D3E3}RP1Snapshot)
    8. From this folder copy the 5 registry files into C:\Windows\Tmpcopy folder.  The files you will copy are “registry_user_.default”,” _registry_machine_security”,”_registr_machine_software”, “_registry_machine_system”, “_registry_machine_sam”
  12. Boot back to XP Recovery
  13. Replace the temporariy default registry files
    1. delete c:\windows\system32\config\sam
       delete c:\windows\system32\config\security
       delete c:\windows\system32\config\software
       delete c:\windows\system32\config\default
       delete c:\windows\system32\config\system
       
       copy c:\windows\tmp\_registry_machine_software c:\windows\system32\config\software
       copy c:\windows\tmp\_registry_machine_system c:\windows\system32\config\system
       copy c:\windows\tmp\_registry_machine_sam c:\windows\system32\config\sam
       copy c:\windows\tmp\_registry_machine_security c:\windows\system32\config\security
       copy c:\windows\tmp\_registry_user_.default c:\windows\system32\config\default (Notice the period (”.”)
  14. That’s it.  You should now be able to boot the system to XP and all your programs should work.
  15. Consider running chkdisk or some other disk checker.  This type of problem is usually caused by a corrupt registry file which may indicate disk problems.

 

HP & Transcend Know How to Market

Everyone knows that geeks love toys.  So HP and Transcend cranked up their marketing machines and wondered what they can give a IT geek that will get them to pick up the phone?  Other than the obvious answer  (which is illegal in 49 out of 50 states) , how about a shiney Ferrari Enzo?  Yep, that will work.

The other day after coming back from lunch I noticed a big box on my desk.  I didn’t rember ordering anything so I was curious.  I turn over the box and on it is a picture of a red Ferrari Enzo with the HP logo on it.   Now my interest is piqued!  I wonder what’s inside.

box   ferrari_kit   duped

Cool, a R/C Ferrari Enzo – something I can use to relieve the day to day stress.  A real team building piece of gear if I ever saw one.  Something that I absolutely need.  Uh wait, somethings missing.  Doh! Take a closer look at the third picture.   Oh you cheaky buggers, the radio controller is missing.  Wait here’s a piece of paper with a URL I can fill in to get my controller.  Sweet.

Now of course to actually get the controller you need to meet with Transcend Communications about HP Switching and stuff.  I’m always meeting new resellers and vars so what’s one more. I love HP Servers and run a ton of HP Proliants.  My network is almost all Cisco, but I do have places where HP network gear would fit.  It’s worth knowing what they might have to offer.

Anyway, the meeting was had, the controller was delivered, and rubber was burnt.   Well Played HP & Transcend.

ferrari_controller   ferrari_full   ferrari_side   ferrari_front

Image resize options greyed out in Wordpress 2.8

I recently jumped from Wordpress 2.6 to 2.8.  After doing this I was unable to resize images before posting.  The image resize buttons were greyed out.  I’m using the built in image resizing tool in Wordpress.  The solution for my problem was easy – after some digging.  Turns out Wordpress changed the way it deals with image resizing in 2.7 and above.   If the GD library isn’t present to create the thumbnails  the buttons are greyed out.  In previous versions Wordpress would post the full size and then scale using image size tags.

  • Verify php-gd is installed (#php -m)
  • Install php-gd if missing (#yum install php-gd -on Centos)
  • Restart apache (#service httpd restart)
  • Verify php-gd is now installed (#php -m)
  • I also had to remove the existing images I’d uploaded and then re-upload them to get the resize option to work. GD creates the thumbnails at upload.

You can use the script below originally posted here (thanks blaser) to test your php-gd. If it’s working you will see a black text box with red text. If php-gd isn’t working you will see the image box with a red x.

<?php

header(”Content-type: image/png”);
$im = @imagecreate(110, 20)
or die(”Cannot Initialize new GD image stream”);
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, “A Simple Text String”, $text_color);
imagepng($im);
imagedestroy($im);’

?>

Thin provisioning an existing VM guest in Esx 4i

Since upgrading to esx 4i I’ve been playing with disk thin-provisioning.   I talked a bit about the procedure when I had my mis-adventure with vmware snapshots here .   If you want to read more about thin provisioning in vmware click here.

I’ve since converted serveral more vm guests to thin provisioned disks using the command line and vmkfstools.

  1. Browse the datastores on the host containing the vm to be clone.  Verify path to vmdk file  (ex. /vmfs/volumes/datastore/Vm-name/Vm-name.vmdk)
  2. SSH to host (esxi check here for how to enable ssh)
  3. Use vmkfstools to clone the existing vmdk to new thin-provisioned vmdk.   [ # vmkfstools -i /vmfs/volumes/datastore/Vm-name/Vm-name.vmdk /vmfs/volumes/datastore/Vm-name/Vm-name-thin.vmdk -d thin -a lsilogic]
    vmware-clone
  4. Once the clone is complete you will see both the original .vmdk file and then newly cloned thin vmdk file.  Notice the size difference.
    vmware-datastore
  5. Modify the .vmx file for the VM guest to point to the newly created VM-name-thin.vmdk for it’s disk.
    vmware-config
  6. Boot the VM and verify everything is working
  7. Delete old vmdk file (back up first of course ).

Note:  If you using snapshot, take a look here for how I cloned and converted a vm that was using snapshots. 

Note 2: After the conversion, the vsphere client still showed Thick as the hard drive type, but browsing the data store showed the file had strunk.  Right clicking  on the thin file allowed an ‘inflate’ which indicates it is thin provisioned.   UPDATE: after a shutdown of the guest and reboot or 2 of the host it now shows thin as the disk type.

Other Good information on Thin Provisioning:

Kent’s Blog  (however don’t waste your time in Esxi with the vmware tool option for ‘prepare to shrink’ – step 2 in Kent’s.  It just took a bunch of time to write large empty files and then after the shrink failed erased them automatically.  I guess it’s a good procedure if you want to test your host server drives or something?)

Duplicate IP on Hidden network card after copying VM guest files to new ESX 4i host

I’ve run into an error a couple times now after moving vm guest files between different esxi hosts.  These have been disk to disk moves from a version 3.5 esxi to a esx 4i host.  After configuring the vm guest on the new host and upgrading the drivers / hardware I’d notice the machine had a dynamic IP instead of the expected static addresss. 

When I tried to set the corret static IP on the Guest I got the following error, “The IP address you have entered for the network adapter is already assigned to another adapter” (see full error below) even though there is no other visible network adapter.   Turns out the old AMD PCNet adapter is still installed on the VM but is hidden from view.  The new machine is using the e1000 driver for the virtual network.  You need to remove the non-present card before you can set the desired static IP.  The guests were running Windows 2003 Server RC2.

error message

error message

Solution:

  1. Open command line
  2. Set Device Manager to show non-present hardware Set.  Type at cmd line: SET DEVMGR_SHOW_NONPRESENT_DEVICES=1

  3. Start Device Manager.  Type at cmd line: START DEVMGMT.MSC
  4. Device Manager > View > Show Hidden Devices
  5. Device Manager > Network Adapters > Uninstall greyed out adapter.  In my case it was the VMware Accelerated AMD PCNet Adapter.
    hidden network card

After uninstalling the driver I was able to assign the desired IP and everything was good.

Exchange 2003 – Restrict sender from sending internet email

For whatever reason you may want to restrict a user from sending email to external users or even certain distribution lists within your Exchange environment.  There are numerous ways to do this, and there are plenty of resources on the web.  Some don’t mention the critical step of adding a registry key that tells Exchange to look for these restrictions.  Without this key it won’t work.  I am using a distribution list to identify the users I don’t want sending email email outside my organization.

  1. In Active Directory create a distribution list for example: no external email
  2. Add whatever users you want to this group.
  3. In Exchange System Manager navigate to your Internet Mail SMTP connector (mine was in Administrative Groups > First Administrative Group > Routing Groups > Connectors>)
  4. Go to properties on the Internet Mail SMTP connector > Delivery Restrictions tab > Reject Messages from: section.
  5. Add the no external email group you created in step 1
  6. On the Exchange Server create the following registry key:  HKEY_Local_Machine\SYSTEM\CurrentControlSet\Services\RESvc\Parameters   Add or Edit REG_DWORD Key called CheckConnectorRestrictions and set to 1
  7. Restart the Microsoft Exchange Routing Engine service and Simple Mail Transfer Protocol Service in service manager.
  8. You can also restrict these users from sending to various internal distribution lists by adding them to the distribution list properties > exchange general tab – accept messages from everyone except and add the distribution list in step 1.  It’s also a good idea to check the “authenticated users” check box so your internal lists don’t get pegged from the outside.

URL for Microsoft KB on setting the registry key

A Word on Vmware Snapshots

So I just got schooled in Vmware snapshots.  I got all fired up to change one of my VM’s that runs Centos and houses my Samba shares to use thin provisioning on esxi 4.  So I cloned the .vmdk file, pointed the guest VM to it and fired it up.  Whoops, where’s my data? I had a nice, small .vmdk that worked great but my shares and data were missing.

Now I remembered that I had created a few snapshots this VM in the past.  One immediately after doing the base OS install.  Doing a bit of research pointed me to the fact that Vmware snapshots are a bit different then my SAN snapshots.  When a snapshot is created on Vmware, it stops writing data to the original .vmdk and instead creates a new delta file that contains any changes to the VM.  In short when you store a new file or make a change on the Vm, it gets written to the delta file, not the original. If you create another snapshot the same procedure occurs until you have a linked step ladder of .vmdk delta files linked to the previous delta all the way up to the original.

Great, so all of my data is stored in the delta files.  Normally you can take care of this by deleting the snapshots in order (newest to oldest) through the Infrastructure client (Right click on the VM -> snapshots -> snapshot mgr and delete). Doing this commits the changes in the delta to the original vmdk. But I had screwed up and removed some of the older .vmsn files which hold the metadata for the snapshots.  I had the delta .vmdk without its corresponding .vmsn. This wasn’t working. What I had was an interdependent mess of linked files making up my VM guest. Now there are ways to commit the snapshots back to the VM from the command line, but since I was going to clone it anyway, I thought I’d try pointing the clone command to the latest snapshot file and see what happened. It appears that this worked fine and pointing to the snapshot during the clone caused it to work its way up the ladder during the process.

Solution: I cloned the Vm by pointing to the latest snapshot file, which in turned worked it’s way up the ladder and spit out a finished, thin-provisioned VM.  Glad I learned these lessons on a test box!

Most recent VM snapshot file: testvm-000005.vmdk
Command used to clone using last snapshot:
vmkfstools -i /vmfs/volumes/datastore4/testbox/testbox-000005.vmdk /vmfs/volumes/datastore4/testbox/testbox-thin.vmdk -d ‘thin’ -a lsilogic

I took a 200GB .vmdk and using thin-provisioning knocked it down to 3.2 GB. Nice.   Note: I’d test this really carefully before trying it on a production system.