When I began deploying Promise Pegasus2 storage devices, I wasn’t happy with the state of the Promise Utility app. It doesn’t provide email alerts except when a user is logged in and this is isn’t optimal for most of our deployments.
Then I stumbled on a couple of Ruby scripts by GriffithStudio that showed a way around many of the limitations of the Promise GUI.
When you install the Promise Utility for Promise Pegasus2, it includes a command line utility. You can view status and even change the settings of the device. In a Terminal window, type:
promiseutil
You’ll be greeted with an interactive command line.
------------------------------------------------------------- Promise Utility Version: 3.18.0000.18 Build Date: Oct 29, 2013 ------------------------------------------------------------- List available RAID HBAs and Subsystems ============================================================= Type # Model Alias WWN ============================================================= hba 1 * Pegasus2 R4 2000-0001-5557-98bf Totally 1 HBA(s) and 0 Subsystem(s) ------------------------------------------------------------- The row with '*' sign refers the current working HBA/Subsystem path To change the current HBA/Subsystem path, you may use the following command: spath -a chgpath -t hba|subsys -p <path #>. Type help or ? to display all the available commands ------------------------------------------------------------- cliib>
To get a list of commands, type ? and press return. Some of the available commands include:
subsys - Model, serial number, hardware revision. enclosure - Enclosure status. ctrl - Firmware version, array & RAID status. phydrv - Physical drive status. array - Array status. logdrv - Logical drive status. event - Event log, including abnormal shutdowns.
Many of the commands yield a brief Pass/Fail style response:
cliib> enclosure ============================================================= Id EnclosureType OpStatus StatusDescription ============================================================= 1 Pegasus2-R4 OK Everything is OK
If you want more details, you can add the verbose flag, -v. Want the serial number, model and hardware revision?
cliib> subsys -v ------------------------------------------------------------- Alias: Vendor: Promise Technology,Inc. Model: Pegasus2 R4 PartNo: F29DS4722000000 SerialNo: M00H00CXXXXXXXX Rev: B3 WWN: 2000-0001-5557-98bf
You can grab enclosure information, including temperature of box, backplane and controller card, as well as the rotation speed of the fans and voltage on the power rails with this:
cliib> enclosure -v ------------------------------------------------------------- Enclosure Setting: EnclosureId: 1 CtrlWarningTempThreshold: 63C/145F CtrlCriticalTempThreshold: 68C/154F ------------------------------------------------------------- Enclosure Info and Status: EnclosureId: 1 EnclosureType: Pegasus2-R4 SEPFwVersion: 1.00 MaxNumOfControllers: 1 MaxNumOfPhyDrvSlots: 4 MaxNumOfFans: 1 MaxNumOfBlowers: 0 MaxNumOfTempSensors: 2 MaxNumOfPSUs: 1 MaxNumOfBatteries: 0 MaxNumOfVoltageSensors: 3 ============================================================= PSU Status ============================================================= 1 Powered On and Functional ============================================================= Fan Location FanStatus HealthyThreshold CurrentFanSpeed ============================================================= 1 Backplane Functional > 1000 RPM 1200 RPM ============================================================= TemperatureSensor Location HealthThreshold CurrentTemp Status ============================================================= 1 Controller < 63C/145F 49C/120F normal 2 Backplane < 53C/127F 47C/116F normal ============================================================= VoltageSensor Type HealthyThreshold CurrentVoltage Status ============================================================= 1 3.3V +/- 5% (3.13 - 3.46) V 3.2V Operational 2 5.0V +/- 5% (4.75 - 5.25) V 5.0V Operational 3 12.0V +/- 8% (11.04 - 12.96) V 12.0V Operational
How about the state of the physical drives?
cliib> phydrv ============================================================= PdId Model Type Capacity Location OpStatus ConfigStatus ============================================================= 1 TOSHIBA DT01 SATA HDD 2TB Encl1 Slot1 OK Array0 No.0 2 TOSHIBA DT01 SATA HDD 2TB Encl1 Slot2 OK Array0 No.1 3 TOSHIBA DT01 SATA HDD 2TB Encl1 Slot3 OK Array0 No.2 4 TOSHIBA DT01 SATA HDD 2TB Encl1 Slot4 OK Array0 No.3
You can also run commands without entering interactive mode and this is useful when incorporating into bash scripts. Simply add the -C flag, followed by the command you want to run. For example:
krieger:~ admin$ promiseutil -C logdrv -v
will let you view the logical drives.
Many of these commands will run on the previous generation Promise Pegasus units.
Be aware: it’s possible to change the configuration of your Pegasus2 or even destroy your RAID setup from the command line, so use caution when working on production systems.