Storage DRS is probably one of, if not the coolest feature in vSphere 5. Storage DRS allows you to cluster your datastores into what is known as a datastore cluster (storage pod) and automatically balances both your storage I/O and capacity just like DRS does with your compute. The user interface is extremely easy to use but as always, if you need to click through several screens to get to the outcome, some automation can never hurt 🙂
I decided to create a vSphere SDK for Perl script called datastoreClusterManagement.pl which allows you to automate all aspects of creating and managing your storage pod/cluster. You will need a system that has the vCLI installed or you can use VMware vMA 5 to run the script. You will also need to connect to a vCenter Server 5 for all SDRS operations.
The script supports 8 different types of operations and are describe below:
Operation | Description |
---|---|
List | List all available datastore clusters |
Query | Query details for a specific datastore cluster |
Create | Create a datastore cluster |
Delete | Delete a datastore cluster (Datastores are left intact) |
Add Datastore | Add datastore(s) to an existing datastore cluster |
Remove Datastore | Remove datastore(s) from an existing datastore cluster |
Enter Maintenance Mode | Put a datastore into maintenance mode |
Exit Maintenance Mode | Take a datastore out of maintenance mode |
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation list
Here is an example of performing the "query" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation query --pod homer-NFS-pod
Here is an example of performing the "create" operation w/single datastore:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation create --datacenter MN-physical --enable_sdrs true --enable_sdrs_iometric true --pod moe-NFS-pod --sdrs_automation automated --sdrs_evaluate_period 480 --sdrs_imbal_thres 30 --sdrs_latency 15 --sdrs_util_diff 20 --sdrs_util_space 60 --datastore himalaya-NFS-moe-primp-1
Here is an example of performing the "create" operation w/datastore file:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation create --datacenter MN-physical --enable_sdrs true --enable_sdrs_iometric true --pod moe-NFS-pod --sdrs_automation automated --sdrs_evaluate_period 480 --sdrs_imbal_thres 30 --sdrs_latency 15 --sdrs_util_diff 20 --sdrs_util_space 60 --datastore_file dsfile
Here is an example of performing the "delete" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation delete --pod moe-NFS-pod
Here is an example of performing the "add_datastore" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation add_datastore --pod moe-NFS-pod --datastore himalaya-NFS-moe-primp-2
Here is an example of performing the "remove_datastore" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation remove_datastore --pod moe-NFS-pod --datastore himalaya-NFS-moe-primp-1
Note: Both "add_datastore" and "remove_datastore" operation support single datastore and/or datastore file
Here is an example of performing the "ent_maint" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation ent_maint --pod homer-NFS-pod --datastore himalaya-NFS-moe-primp-5
Here is an example of performing the "ext_maint" operation:
./datastoreClusterManagement.pl --server vcenter50-1 --username root --operation exi_maint --pod homer-NFS-pod --datastore himalaya-NFS-moe-primp-5
There is also complete perl docs for this script which can be called using the following command:
perldoc datastoreClusterManagement.pl
[…] year I wrote an article called Automating Storage DRS & Datastore Cluster Management in vSphere 5 and I provided a pretty comprehensive vSphere SDK for Perl script to help administrators automate […]