はじめに
VIOS(Virtual I/O Server) vscsi環境で VIOS 側でhdiskを消す前にストレージ側でボリュームを削除した場合、VIOS側にhdisk定義が残ってしまうことが発生します。
その際の不要なhdiskを見分ける方法を確認したログです。
環境
VIOS 3.1.4.10
確認
VIOSで以下の hdisk が認識されていますが、ストレージ上のボリュームを先に消してしまいました。
しかしながら hdisk 定義は残っています。
$ lspv | grep hdisk | awk '{ print $1 }'
hdisk0
hdisk2
hdisk3
hdisk4
hdisk5
hdisk6
hdisk7
hdisk9
hdisk11
hdisk12
hdisk13
hdisk14
hdisk15
hdisk16
hdisk19
hdisk20
hdisk1
hdisk8
hdisk10
hdisk17
hdisk18
hdisk21
hdisk22
hdisk23
lspv -size コマンド
lspv -size コマンドは ディスクサイズを表示します。
ただし、実体がない場合は対象のhdiskはサイズが表示されないようです。
この差異を利用して不要な定義を判別します。
$ lspv -size | grep hdisk | awk '{ print $1 }'
hdisk0
hdisk2
hdisk3
hdisk4
hdisk5
hdisk6
hdisk7
hdisk9
hdisk11
hdisk12
hdisk13
hdisk14
hdisk15
hdisk16
hdisk19
hdisk20
hdisk1
hdisk8
差分は、hdisk10, hdisk17, hdisk18, hdisk21, hdisk22, hdisk23 の 6つです。
なお、sort コマンドで順番並べたり、ファイルに出力したりできれば良いのですが、どちらもVIOSのpadminでは実行できません。
不要なhdiskの削除
対象デバイスの削除を実施します。
$ rmdev -dev hdisk10
hdisk10 deleted
$ rmdev -dev hdisk17
hdisk17 deleted
$ rmdev -dev hdisk18
hdisk18 deleted
$ rmdev -dev hdisk21
hdisk21 deleted
$ rmdev -dev hdisk22
hdisk22 deleted
$ rmdev -dev hdisk23
hdisk23 deleted
デバイス再認識実行
$ cfgdev
$ echo $?
0
hdisk確認
$ lspv | grep hdisk | awk '{ print $1 }'
hdisk0
hdisk2
hdisk3
hdisk4
hdisk5
hdisk6
hdisk7
hdisk9
hdisk11
hdisk12
hdisk13
hdisk14
hdisk15
hdisk16
hdisk19
hdisk20
hdisk1
hdisk8
実体が存在しないため削除した hdisk が再度認識されていません。
再認識されないことで、削除対象が正しいことも確認できました。
以上です。