Linux: LVM 論理ボリュームマネージャの情報が消えないとき
 2007.08.12

作成したPVやVGをpvremove, vgremove 等で削除したつもりなのに,pvdisplayで以前のLVMに関する情報が消えない場合.
# pvdisplay 
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find all physical volumes for volume group backupvg.
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find all physical volumes for volume group backupvg.
  Can't read backupvg: skipping
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find all physical volumes for volume group backupvg.
  Couldn't find device with uuid 'toYmWV-fAdc-1JaM-Qu6z-Kv2W-Xckd-4RUljU'.
  Couldn't find all physical volumes for volume group backupvg.
  Can't read backupvg: skipping
pvremove したはずなのに,こんな表示がいつまでも残っている. これらのLVMに関する情報はどこに保存されているのか?/etcの下をgrepかけたりしましたが,見つかりません.そこで pvdisplay を実行する時に strace をかけてシステムコールの流れを追って,やっとのことで見つけました. どうやら,ディスクドライブの先頭からベタに書いてあるようです.パーティション (/dev/hdb{1,2}等)にPVを作った場合は,パーティションを作成し直す事でこの問題は解決するかもしれません.しかし,今回の私のケースではディスク全体(/dev/hdb)に対してPVを作成していました.なので,fdiskでパーティション操作をしてもPVの情報が残っていた? とにかく,PVの情報をきれいさっぱり消すためにディスクの先頭から適当なデータを書き込んだところ,やっとLVM情報の残骸は無くなりました.
# dd if=/dev/random of=/dev/hdb count=1024
当然,中身のデータもきれいさっぱり見えなくなるのでofオプションのデバイスは注意して指定してください.
カテゴリー:サーバ管理