metaview - pretty print Solstice DiskSuite metadevice status
In my line of work as a Data Storage engineer I use Solstice DiskSuite (aka ODS, SDS, SVM) pretty much every day of the week (and weekends when needed). One of it's many utilities is the metastat
command which simply prints the status of it's metadevices.
Sample metastat
output:
# metastat d0: Mirror Submirror 0: d20 State: Okay Thu 07 Jun 2001 06:03:48 PM BST Submirror 1: d10 State: Needs maintenance Sun 16 Dec 2001 11:35:50 PM BST [...] d20: Submirror of d0 State: Okay Thu 07 Jun 2001 06:03:48 PM BST Size: 10241505 blocks Stripe 0: Device Start Dbase State Hot Spare Time c1t1d0s0 0 No Okay Thu 07 Jun 2001 06:03:31 PM BST [...]
Whilst metastat
provides nice output, I wanted something that would give me a quick overview of all metadevices and associated mirrors, so I created the metaview
script to do exactually that.
For example:
# metaview ======PRIMARY MIRROR====== ======SECONDARY MIRROR==== MetaDev Size MetaDev State Device MetaDev State Device d10 16 GB d11 OK c0t0d0s0 d12 OK c1t1d0s0 d20 32 GB d21 OK c0t0d0s1 d22 OK c1t1d0s1 d30 16 GB d31 OK c0t0d0s3 d32 OK c1t1d0s3 d40 16 GB d41 OK c0t0d0s4 d42 OK c1t1d0s4 d50 16 GB d51 OK c0t0d0s5 d52 OK c1t1d0s5 d60 40 GB d61 OK c0t0d0s6 d62 OK c1t1d0s6 d70 99 GB d73 OK emcpower25a d71 OK emcpower28a
Below are some addditional outputs with metadevices in various states:
Sample output - metadevice in LAST ERRED state
======PRIMARY MIRROR====== ======SECONDARY MIRROR==== MetaDev Size MetaDev State Device MetaDev State Device d10 12 GB d11 OK c0t0d0s0 d12 OK c1t1d0s0 d101 67 GB d102 ERRED c0t2d0s0 d20 12 GB d21 OK c0t0d0s1 d22 OK c1t1d0s1 d30 12 GB d31 OK c0t0d0s3 d32 OK c1t1d0s3 d40 12 GB d41 OK c0t0d0s4 d42 OK c1t1d0s4 d50 12 GB d51 OK c0t0d0s5 d52 OK c1t1d0s5 d60 7.8 GB d61 OK c0t0d0s6 d62 OK c1t1d0s6
Sample output - metadevice RESYNCING
======PRIMARY MIRROR====== ======SECONDARY MIRROR==== MetaDev Size MetaDev State Device MetaDev State Device d10 15 GB d11 OK c1t0d0s0 d12 OK c0t1d0s0 d140 15 GB d141 OK c1t0d0s4 d142 OK c0t1d0s4 d150 15 GB d151 OK c1t0d0s5 d152 OK c0t1d0s5 d20 31 GB d22 OK c1t1d0s1 d21 OK c0t0d0s1 d30 15 GB d31 OK c1t0d0s3 d32 SYNC c0t1d0s3 d40 3.0 GB d42 OK c1t1d0s6 d41 SYNC c0t0d0s6 d50 40 GB d100 OK c1t2d0s4 d101 OK c0t3d0s4
Sample output - devices in SYNC, FAULT LAST ERRED state
======PRIMARY MIRROR====== ======SECONDARY MIRROR==== MetaDev Size MetaDev State Device MetaDev State Device d10 12 GB d11 OK c1t0d0s0 d12 OK c2t1d0s0 d20 19 GB d23 OK c1t0d0s1 d22 SYNC c2t1d0s1 d30 12 GB d31 OK c1t0d0s3 d32 SYNC c2t1d0s3 d40 12 GB d41 FAULT c1t0d0s4 d50 12 GB d51 OK c1t0d0s5 d60 67 GB d61 OK c1t2d0s6 d62 OK c2t3d0s6 d70 499 GB d71 ERRED emcpower0a d80 49 GB d81 OK emcpower3a d90 99 GB d91 FAULT emcpower2a
Todo
- Modify the script to show % percentage done on SYNC entries.
Download
The script is freely available for download here.