V7000のボリュームのリストを出す

近頃のストレージ装置はもう当然のように仮想化という概念が入っていて、各社そこから上の機能での勝負になってきているのでしょうか。

そこそこ簡単操作で管理できるミドルレンジのストレージ装置 V7000 というやつがあります。ブラウザ上に描画されるグラフィカルな画面上で様々な操作ができます。こんな感じです。

ブラウザ上でキレイに画面が出るのは大変うれしいところなのですが、多数のオブジェクトについて値の集計なんかをしたいときは不便です。一覧で値だけが欲しい、すなわちコンソール上で文字情報だけ欲しいという場面に多々遭遇します。ブラウザ上で、たくさんあるオブジェクトを一つずつクリックして開いて詳細情報をコピーして、というのを繰り返す方法もありますが、何十個もあるのを繰り返すのは大変骨が折れます。

V7000 は SSH でリモートアクセスできますので、SSH でアクセスして SVC のコンソールみたいのが出てきますからそこでコマンドを打てば情報が取得できます。これをやってみました。

lsvdisk コマンドで vdisk(ボリューム) の一覧を出すと、それぞれの仮想割り当て容量は簡単に確認可能です。しかし vdisk ごとの実使用容量は一覧に出てきません。vdisk を指定して実行すれば、対象 vdisk についてのみ情報が出ますが、コマンドを vdisk 数だけ繰り返し入力するのは美しくありません。一括で欲しい情報だけ取り出したいですが、awksedgrep もありません。困りました。

と思ってたら dW にステキなページがありました。SVC Scripting - SVC & V7000 Scripting です。コレを参考にしましょう。こんな感じのができました。

lsvdisk -nohdr | while read -a vdisk
do
  lsvdisk ${vdisk[1]} | while read -a v
  do
    [[ ${v[0]} =~ ^name$ ]] && printf "%-15s" ${v[1]}
    [[ ${v[0]} =~ ^capacity$ ]] && printf "%10s" ${v[1]}
    [[ ${v[0]} =~ ^real_capacity$ ]] && printf "%10s\n" ${v[1]}
  done
done

上記コードをそのままプロンプト行に貼り付けると、こんな感じで結果が表示されます。一つ目のフィールドが vdisk 名、二つ目のフィールドが仮想割り当て容量、三つ目のフィールドが現在ディスクを占有してる容量、です。

vdisk0          70.00GB   11.82GB
vdisk1         850.00GB  447.00GB
vdisk2           1.90TB  996.07GB 
vdisk3 ……
………
……

文字として出てしまえばあとは切り貼りも楽ちんですね。