Sunday, May 23, 2010

Re-sizing Virtual Disks ESX Vsphere

SkyHi @ Sunday, May 23, 2010
There are several methods to re-sizing virtual disks listed below. If you want to shrink the disk in ESX3 then using VMmware Converter is the best way to do this, you can no longer use vmkfstools to shrink a disk in ESX3, you can also try using QpartEd to shrink a disk. With all these methods you should make a backup copy of your original vmdk file in case something goes wrong. Also make sure you shutdown the OS cleanly before restarting the VM (GpartEd will sometimes fail otherwise). Methods 1, 4 & 5 are essentially the same using Linux boot CD’s and either GpartEd or QpartEd.

You can also check out my articles I wrote on this that use the methods below:


Method 1 - Using vmkfstools and GParted to extend a disk


  1. Download the GParted Live CD ISO and make it available so it can be mounted by the virtual machine’s CD-ROM
  2. Shutdown the virtual machine you want to resize
  3. Log into the ESX Server console via Putty
  4. Type “vmkfstools -X /vmfs/volumes/<volume name>/<VM directory name>/<virtual disk file name>” ie. /vmfs/volumes/Storage1/my_vm.vmdk. New disk size can be specified in kilo, mega or gigabytes and will be the total size of the new disk. So if you want to increase a virtual disk from 20GB to 24GB you would specify either 24000m or 24g
  5. Power on the Virtual Machine and make sure it boots properly, load Disk Management and you will see the new unallocated space
  6. Now to join the unallocated space to the primary partition, first shutdown the Virtual Machine
  7. Connect the Virtual Machine to the GParted ISO file and make sure you enable Connected at Power On
  8. Power on the Virtual Machine
  9. Press ESC at the Bios screen to get to the Boot Menu
  10. Select CD-ROM as the Boot device
  11. Gnome Partition Editor will load, press Enter at the boot screen
  12. At the Boot option screen select Manual Video Card and then select Done
  13. Select US English at the Language screen
  14. Select qwerty/us.map at the Keyboard screen
  15. Select Generic VESA Compatiable at the Video Driver screen
  16. Select 8 at the Display Depth screen
  17. Select 1024×768 at the Resolution screen
  18. Once the partition editor loads, click on /dev/sda1 in the partition list
  19. Click the Resize/Move button
  20. Click and drag the arrow to extend the size of the partition, make sure you do a resize (double arrow) and not a move (four way arrow) so you should 0 free space preceding and following and then click the Resize/Move button
  21. Next click the Apply button and then the operation will start, you can expand Details to see the progress, once completed click the Close button
  22. Click the power button in the bottom right corner, then select reboot
  23. Edit the VM and remove the ISO from the CD/ROM device (change to Client)
  24. When the server restarts it will do a Check Disk, let this complete, Windows will prompt for a reboot after you login
  25. Reboot and load Disk Management and your Primary Partion will be the new size without any unallocated space

Method 2 - Using VMware Converter to shrink or extend a disk


When you use Converter to copy a VM it will transfer the data to the destination server by one of two ways. If you do not change the disk size or increase the size of your original disks then it does a block level clone of the drive. If you reduce the size of your original disks it instead does a file level clone of the drive.

  1. Download Converter and install it on the VM that you want to resize the drives, reboot after the install completes
  2. Start Converter application, click the Import Machine button
  3. Click Next at the Welcome screen and then Next again at the Source screen
  4. Select ‘Physical Computer’ and click Next o Select “This Local Machine” and click Next
  5. At the Source Data screen select your volumes and change “Maintain Size” to “Type Size in GB” and enter your new disk size and click Next
  6. At the Destination screen click Next
  7. Select “Import this machine to a Vmware ESX Server or VirtualCenter virtual machine” and click Next
  8. At the Destination login screen, select your ESX/VC server and enter the login information and click Next
  9. At the Virtual Machine Name and Folder screen enter a new name for your VM and select a folder and click Next
  10. At the Host or Cluster screen select a host for your destination and click Next
  11. At the Datastore screen, select a datastore and click Next
  12. At the Networks screen, configure your NICs and click Next
  13. At the Customization screen, click Next
  14. Click Finish and the conversion will begin
  15. Once the Conversion is complete, edit the new VM settings and remove any extra hardware that Converter adds (USB/serial/parallel ports, etc.)
  16. Shutdown your original source VM and power on your new destination VM
  17. Make sure everything is functioning properly on the new VM and you can delete the original VM

Method 3 - Using vmkfstools and another Windows virtual machine to extend a disk


  1. Shutdown the virtual machine you want to resize
  2. Log into the ESX Server console via Putty
  3. Type ”vmkfstools -X /vmfs/volumes/<volume name>/<VM directory name>/<virtual disk file name>” ie. /vmfs/volumes/Storage1/my_vm.vmdk. New disk size can be specified in kilo, mega or gigabytes and will be the total size of the new disk. So if you want to increase a virtual disk from 20GB to 24GB you would specify either 24000m or 24g
  4. Shutdown the second helper virtual machine
  5. Edit the settings of the second VM and add the hard disk from the first VM
  6. Power on the second VM and load the Disk Management snap-in and verify that the disk from the first VM has un-allocated space on it
  7. Select Start, Run and enter diskpart.exe
  8. The command ‘list volume’ will show you all volumes.
  9. Select your volume based on the results of the list volume command, ie. ‘select volume 1′
  10. Type the command ‘extend’ to extend the volume
  11. Check the Disk Management snap-in again and the volume should be extended with a larger capacity
  12. Shutdown the second VM and remove (not delete) the disk from it
  13. Power on your first VM and the new space should be there and ready to use

Method 4 - Using vmkfstools and System Rescue CD to extend a disk


  1. Download the System Rescue ISO and make it available so it can be mounted by the virtual machine’s CD-ROM
  2. Shutdown the virtual machine you want to resize
  3. Log into the ESX Server console via Putty
  4. Type “vmkfstools -X /vmfs/volumes/<volume name>/<VM directory name>/<virtual disk file name>” ie. /vmfs/volumes/Storage1/my_vm.vmdk. New disk size can be specified in kilo, mega or gigabytes and will be the total size of the new disk. So if you want to increase a virtual disk from 20GB to 24GB you would specify either 24000m or 24g
  5. Power on the Virtual Machine and make sure it boots properly, load Disk Management and you will see the new unallocated space
  6. Now to join the unallocated space to the primary partition, first shutdown the Virtual Machine
  7. Connect the Virtual Machine to the System Rescue ISO file and make sure you enable Connected at Power On
  8. Power on the Virtual Machine
  9. Press ESC at the Bios screen to get to the Boot Menu
  10. Select CD-ROM as the Boot device
  11. Press Enter at the boot screen
  12. Press Enter after boot sequence is complete and then type ‘startx’
  13. Once X-windows loads, double-click the GpartEd icon (drive icon, 3rd down on the right hand side)
  14. Once the partition editor loads, click on /dev/sda1 in the partition list
  15. Click the Resize/Move button
  16. Click and drag the arrow to extend the size of the partition, make sure you do a resize (double arrow) and not a move (four way arrow) so you should 0 free space preceding and following and then click the Resize/Move button
  17. Next click the Apply button and then the operation will start, you can expand Details to see the progress, once completed click the Close button
  18. Click the power button in the bottom right corner, then select reboot
  19. Edit the VM and remove the ISO from the CD/ROM device (change to Client)
  20. When the server restarts it will do a Check Disk, let this complete, Windows will prompt for a reboot after you login
  21. Reboot and load Disk Management and your Primary Partion will be the new size without any unallocated space

Method 5 - Using Knoppix Live CD with QtPartEd to shrink a disk


  1. Download the Knoppix Live CD ISO and make it available so it can be mounted by the virtual machine’s CD-ROM
  2. Shutdown the virtual machine you want to resize
  3. Add a second virtual disk of the new smaller desired size to the VM you want to resize
  4. Connect the Virtual Machine to the Knoppix Live CD ISO file and make sure you enable Connected at Power On
  5. Power on the Virtual Machine
  6. Press ESC at the Bios screen to get to the Boot Menu
  7. Select CD-ROM as the Boot device
  8. Press Enter at the boot screen
  9. Click on the K Menu icon and then select System and then QTPartEd
  10. Select your original drive (usually sda) and click on the partition 1
  11. Select Operations from the top menu and then Resize, resize the drive so it is just less then the new drives (sdb) capacity
  12. Select File from the top menu and then Commit, click Yes at the warning window
  13. Once complete, select Cancel if you get a unmounted hard disk window and then OK at the Progress window
  14. Open a Konsole window and type “dd if=/dev/sda of=/dev/sdb” This copy will take a long time and will not show a status while it is running. Yyou will get an insufficient space error at the end of the copy, this is normal because the drive you’re copying from is bigger then the destination. But as long as the partition is smaller, everything will work
  15. Shutdown the VM and edit the VM settings, remove the original C: drive and change the SCSI ID of the new drive to match the old one (usually 0:0)
  16. Power on the VM and it will run a Chkdsk and you will be all set

Method 6 - Use Ghost or another 3rd party imaging product to shrink a disk


  1. Shutdown the virtual machine you want to resize
  2. Add a second virtual disk of the new smaller desired size to the VM you want to resize o Use Ghost to clone the first disks partition to your second virtual disk
  3. Once complete make sure the second virtual disk is ‘Active’
  4. Switch your disks by editing the virtual machine settings and switching the SCSI id’s (0:0 and 0:1)
  5. If the virtual machine boots OK and you verify that everything works then shutdown the VM and remove the larger disk and delete it


ESXi 4.0 resize a VM hard drive size

You can use the VMWare Converter to clone the machine, but change the size of the virtual disk in the process. When configuring the Source Data, indicate that you want to "Select volumes and resize to save or add space". You will then be able to specify the size of the destination drive in the "New Disk Space" column below. If you're simply trying to resize rather than clone and resize at this point, you can then remove the original once you verify the converted version works.


    REFERENCES
    http://vsphere-land.com/tips-tricks/re-sizing-virtual-disks
    http://serverfault.com/questions/73386/esxi-4-0-resize-a-vm-hard-drive-size