I recently installed for the first time PernixData FVP at a customer. He has three HP Proliant DL380 G7 servers, each one with an integrated Smart Array P410i disk controller. There are some suggested configurations coming from Pernix in order to optimize the usage of SSDs, and if you are one of their costumers there is a technical document you can request. Some of these steps and configurations are really useful anytime you are going to use SSDs on ESXi.
First of all, starting from the new version 1.5, HP offline bundle has removed the command HPACUCLI (I described it in details in this article more than a year ago) and replaced it with the new HPSSACLI. Most of the command options are the same, but it also have many mor options and it supports many more controller models.
In my scenario, I’m going to configure a single disk per server, an Intel DCS3700, that is going to be used with Pernix. If you have different needs, have a look at “HP VMware Utilities User Guide”. The paper is written for vSphere 5.5, but the command options for HPSSACLI are the same also on vSphere 5.1, as in my case.
All these operations can be done in the command line, without any need for maintenance mode or reboots. First, you need to identify the controller:
~ # esxcli hpssacli cmd -q “controller all show”
Smart Array P410i in Slot 0 (Embedded) (sn: 5001438019071530)
Then, let’s verify the SSD has been correctly identified:
~ # esxcli hpssacli cmd -q “controller slot=0 physicaldrive all show”
Smart Array P410i in Slot 0 (Embedded)
array A
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, Solid State SATA, 200 GB, OK)
You can see the SSD is the only installed disk (ESXi is installed on some SD memories), and its type and size is correct. The HP controller, if there is no other volume, automatically initialize the disk and creates a Logical Drive. You can see this behaviour here:
~ # esxcli hpssacli cmd -q “ctrl slot=0 ld all show”
Smart Array P410i in Slot 0 (Embedded)
array A
logicaldrive 1 (186.3 GB, RAID 0, OK)
Smart Array controllers cannot use single disk in JBOD configurations, so the only way to use a single disk is a Raid 0 made with only the desired disk, without any stripe. So, even if the automatic configuration made by the Smart Array is almost correct, it’s better to destroy and re-create the logical drive so you can configure both stripe size and cache behaviour, as suggested by Pernix. So, first delete the logical drive:
~ # esxcli hpssacli cmd -q “ctrl slot=0 ld 1 delete forced”
If the server has additional logical drives, DON’T run commands with the “all” option, but always use the number of the logical drive, as in my example. Once it has been deleted, you create a new one with the desired parameters:
~ # esxcli hpssacli cmd -q “ctrl slot=0 create type=ld drives=1I:1:1 raid=0 ss=64 size=max aa=disable”
This string means you are going to create a Raid 0, which uses the SSD we identified before, with a 64k stripe size, and you are requesting to disable the controller cache for this specific logical volume. Then, we configure two further options: we disable Surface Scan, since it’s useful for mechanical disks but it can damage SSDs:
~ # esxcli hpssacli cmd -q “ctrl slot=0 modify surfacescanmode=disable”
And we enable SSD Write Cache:
~ # esxcli hpssacli cmd -q “ctrl slot=0 modify dwc=enable forced”
Be careful here! DO NOT enable dwc if the controller is managing additional drives and you care about the data in them.
The final result is this:
~ # esxcli hpssacli cmd -q “ctrl slot=0 ld 1 show”
Smart Array P410i in Slot 0 (Embedded)
array A
Logical Drive: 1
Size: 186.3 GB
Fault Tolerance: 0
Heads: 255
Sectors Per Track: 32
Cylinders: 47874
Strip Size: 64 KB
Full Stripe Size: 64 KB
Status: OK
Caching: Disabled
Unique Identifier: 600508B1001CA9133881F40F4080BC55
Disk Name: unknown
Mount Points: None
Logical Drive Label: A40F558650014380190715304C93
Drive Type: Data
LD Acceleration Method: All disabled
At this point, the logical drive can be seen in ESXi (you can see the Unique Identifier is the same), and you wil so be able to use it for Pernix or something else:
One final note: the logical drive in my case is hiding the SSD properties to ESXi, and that is why the volume appears as “Non-SSD”. I understood is something related to the controller firmware version. Pernix can use that disk even if it is not marked as SSD, but if you need it to appear as SSD, you can follow this article from VMware Knowledge Base.