~ # /sbin/partedUtil
Not enough arguments
Usage:
Get Partitions : get
Set Partitions : set
Delete Partition : delete
Resize Partition : resize
Get Partitions : getptbl
Set Partitions : setptbl
With ESXi 5, an MBR (Master Boot Record) partition table is no longer used and has been replaced with a GPT (GUID Partition Table) partition table. There is also only one block size of 1MB versus the 2,4 and 8 that was available in ESX(i) 4.x
We can view the partitions of a device by using the "getptbl" option and ensure we don't have an existing VMFS volume:
~ # /sbin/partedUtil "getptbl" "/vmfs/devices/disks/mpx.vmhba1:C0:T2:L0"
gpt
652 255 63 10485760
Next we will need to create a partition by using the "setptbl" option:
/sbin/partedUtil "setptbl" "/vmfs/devices/disks/mpx.vmhba1:C0:T2:L0" "gpt" "1 2048 10474379 AA31E02A400F11DB9590000C2911D1B8 0"
The "setptbl" accepts 3 arguments:
- diskName
- label
- partitionNumber startSector endSector type/GUID attribute
The label will be gpt
The last argument is actually a string comprised of 5 individual parameters:
- partitionNumber - Pretty straight forward
- startSector - This will always be 2048 for 1MB alignment for VMFS5
- endSector - This will need to be calculated based on size of your device
- type/GUID - This is the GUID key for a particular partition type, for VMFS it will always be AA31E02A400F11DB9590000C2911D1B8
~ # /sbin/partedUtil showGuids
Partition Type GUID
vmfs AA31E02A400F11DB9590000C2911D1B8
vmkDiagnostic 9D27538040AD11DBBF97000C2911D1B8
VMware Reserved 9198EFFC31C011DB8F78000C2911D1B8
Basic Data EBD0A0A2B9E5443387C068B6B72699C7
Linux Swap 0657FD6DA4AB43C484E50933C84B4F4F
Linux Lvm E6D6D379F50744C2A23C238F2A3DF928
Linux Raid A19D880F05FC4D3BA006743F0F84911E
Efi System C12A7328F81F11D2BA4B00A0C93EC93B
Microsoft Reserved E3C9E3160B5C4DB8817DF92DF00215AE
Unused Entry 00000000000000000000000000000000
- attribute - will be 0
~ # /sbin/partedUtil "setptbl" "/vmfs/devices/disks/mpx.vmhba1:C0:T2:L0" "gpt" "1 2048 10474379 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
0 0 0 0
1 2048 10474379 AA31E02A400F11DB9590000C2911D1B8 0
We can verify by running the "getptbl" option on the device that we formatted:
~ # /sbin/partedUtil "getptbl" "/vmfs/devices/disks/mpx.vmhba1:C0:T2:L0"
gpt
652 255 63 10485760
1 2048 10474379 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
Finally we will now create the VMFS volume using our favorite vmkfstools, the syntax is the same as previous release of ESX(i):
~ # /sbin/vmkfstools -C vmfs5 -b 1m -S himalaya-SSD-storage-3 /vmfs/devices/disks/mpx.vmhba1:C0:T2:L0:1
Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
Creating vmfs5 file system on "mpx.vmhba1:C0:T2:L0:1" with blockSize 1048576 and volume label "himalaya-SSD-storage-3".
Successfully created new volume: 4dfdb7b0-8c0dcdb5-e574-0050568f0111
Now you can refresh the vSphere Client or run vim-cmd hostsvc/datastore/refresh to view the new datastore that was created.









AFAIK the partition for a VMFS volume must end on a cylinder boundary, so selecting the last sector for the partition table needs to be done using the formula endSector = ( C * H * S - 1).
ReplyDeleteIn your example, C=652, H=255, S = 63, taking the product and subtracting one gives 10474379 as shown.
@Dredd,
ReplyDeleteThanks for the information, the numbers are actually from a VMware installation and I was looking through the esxi_install.log to get these numbers, I was interested in how this was calculated as well.
Either of you know any way to avoid the check "Checking if remote hosts are using this device as a valid file system. This may take a few seconds..." prior to creating the filesystem? I'd like to measure the time it takes to create filesystems backed by various types of storage. Thanks.
ReplyDelete