I have to test SDRS initial placement exact behavior (blog post here) therefore I need multiple VMFS datastores to form an Datastore Cluster with SDRS. Unfortunately, I'm constraint with storage resources in my home lab therefore I would like to use one local 220GB SSD to simulate multiple VMFS datastores.
Warning: This is not recommended practice for productional systems. It is recommended to have single partition (LUN) per single device.
I did not find GUI way how to create multiple partitions per single disks therefore I used CLI.
You cannot use old good fdisk for VMFS partitions. Instead PartedUtil has to be used because of GPT. PartedUtil is included in ESXi so you can login to ESXi over SSH and use partedUtil.
Note: It is worth to mention that you can have maximally 16 partitions in GUID Partition Table (GPT) in ESXi 6. This is what I have tested. When I tried to create 17 partitions the partedUtil failed with message - "Too many partitions (17)".
In my lab I have Intel NUC with local SSD identified as "t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____".
To get partition table use following command
If disk is empty you should see follwoing output:
10Gb is 20971519 in sectors. Sector is 512Bytes
First 2048 should be skipped to keep space for GPT and to be aligned with 512B sectors. Below is my partition plan in format [Partition number, Start sector, End Sector]
Now you can list partitions again and you should see following output:
So we have 5 partitions and the last step is to format it to VMFS5 file system. We have to leverage vmkfstools which is also included in ESXi 6 system.
Let's start with first partition and we will use datastore name Datastore1.
The same procedure has to be repeated for each partition.
Here is Perl script which generates commands for partedUtil and vmkfstools based on several variables.
If you want to unmount 16 datastores it is very handy to use following command line:
Hope this helps at least one other vSphere dude in his lab exercises.
Warning: This is not recommended practice for productional systems. It is recommended to have single partition (LUN) per single device.
I did not find GUI way how to create multiple partitions per single disks therefore I used CLI.
You cannot use old good fdisk for VMFS partitions. Instead PartedUtil has to be used because of GPT. PartedUtil is included in ESXi so you can login to ESXi over SSH and use partedUtil.
Note: It is worth to mention that you can have maximally 16 partitions in GUID Partition Table (GPT) in ESXi 6. This is what I have tested. When I tried to create 17 partitions the partedUtil failed with message - "Too many partitions (17)".
In my lab I have Intel NUC with local SSD identified as "t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____".
To get partition table use following command
partedUtil getptbl "t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____"
If disk is empty you should see follwoing output:
msdosI would like to have 5 x 10Gb LUNs.
29185 255 63 468862128
10Gb is 20971519 in sectors. Sector is 512Bytes
First 2048 should be skipped to keep space for GPT and to be aligned with 512B sectors. Below is my partition plan in format [Partition number, Start sector, End Sector]
P1 2048-20973567Following command is used to create these 5 partitions.
P2 20973568-41945087
P3 41945088-62916607
P4 62916608-83888127
P5 83888128-104859647
partedUtil setptbl "t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____" gpt "1 2048 20973567 AA31E02A400F11DB9590000C2911D1B8 0" "2 20973568 41945087 AA31E02A400F11DB9590000C2911D1B8 0" "3 41945088 62916607 AA31E02A400F11DB9590000C2911D1B8 0" "4 62916608 83888127 AA31E02A400F11DB9590000C2911D1B8 0" "5 83888128 104859647 AA31E02A400F11DB9590000C2911D1B8 0"
Now you can list partitions again and you should see following output:
gpt
29185 255 63 468862128
1 2048 20973567 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
2 20973568 41945087 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
3 41945088 62916607 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
4 62916608 83888127 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
5 83888128 104859647 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
So we have 5 partitions and the last step is to format it to VMFS5 file system. We have to leverage vmkfstools which is also included in ESXi 6 system.
Let's start with first partition and we will use datastore name Datastore1.
vmkfstools -C vmfs5 -S Datastore1 t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____:1
The same procedure has to be repeated for each partition.
Here is Perl script which generates commands for partedUtil and vmkfstools based on several variables.
#!/usr/bin/perl
#
my $disk_device = "t10.ATA_____INTEL_SSDMCEAW240A4_____________________CVDA4426003E240M____";
my $starting_sector = 2048;
my $partition_size_in_sectors = 4000000;
my $datastore_prefix = "Datastore";
my $num_of_partitions = 16; # Maximum is 16 partitions
my $partitions;
my $start = $starting_sector;
my $end;
my $i;
# Generate command for GPT partitions
for ($i=1; $i<$num_of_partitions; $i=$i+1) {
$end = $start + $partition_size_in_sectors;
$partitions .= "\"$i $start $end AA31E02A400F11DB9590000C2911D1B8 0\" ";
$start = $end + 1;
}
print "partedUtil setptbl \"$disk_device\" gpt $partitions\n";
# Generate commands to format partitions with VMFS5 file system
#
for ($i=1; $i<$num_of_partitions; $i=$i+1) {
print "vmkfstools -C vmfs5 -S $datastore_prefix$i $disk_device:$i\n";
}
If you want to unmount 16 datastores it is very handy to use following command line:
esxcli storage filesystem unmount -l Datastore1
Hope this helps at least one other vSphere dude in his lab exercises.
1 comment:
Thanks !!!
Post a Comment