近頃のストレージ装置はもう当然のように仮想化という概念が入っていて、各社そこから上の機能での勝負になってきているのでしょうか。
そこそこ簡単操作で管理できるミドルレンジのストレージ装置 V7000 というやつがあります。ブラウザ上に描画されるグラフィカルな画面上で様々な操作ができます。こんな感じです。
ブラウザ上でキレイに画面が出るのは大変うれしいところなのですが、多数のオブジェクトについて値の集計なんかをしたいときは不便です。一覧で値だけが欲しい、すなわちコンソール上で文字情報だけ欲しいという場面に多々遭遇します。ブラウザ上で、たくさんあるオブジェクトを一つずつクリックして開いて詳細情報をコピーして、というのを繰り返す方法もありますが、何十個もあるのを繰り返すのは大変骨が折れます。
V7000 は SSH でリモートアクセスできますので、SSH でアクセスして SVC のコンソールみたいのが出てきますからそこでコマンドを打てば情報が取得できます。これをやってみました。
lsvdisk
コマンドで vdisk(ボリューム) の一覧を出すと、それぞれの仮想割り当て容量は簡単に確認可能です。しかし vdisk ごとの実使用容量は一覧に出てきません。vdisk を指定して実行すれば、対象 vdisk についてのみ情報が出ますが、コマンドを vdisk 数だけ繰り返し入力するのは美しくありません。一括で欲しい情報だけ取り出したいですが、awk も sed も grep もありません。困りました。
と思ってたら 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 …… ……… ……
文字として出てしまえばあとは切り貼りも楽ちんですね。