lvをdisable/enableにする

iSCSIとして見せてるlvのtargetをerrorにしたらiSCSIとして見てる人にSCSIエラー出せるよ、と聞いたのでlvをdisable(targetをerrorにする)方法と元に戻す方法を調べた。


まず、対象のlvの現在のtableを確認する。

# dmsetup table testvg-lv1
0 409600 linear 8:5 411648


start/endがわかったので、次に対象lvのtableをerror targetのものに変える。

# dmsetup reload testvg-lv1 --table "0 409600 error"


suspend/resumeしたらtableをロードし直してくれる。

# dmsetup suspend testvg-lv1; dmsetup resume testvg-lv1


なったか確認。

# dmsetup table testvg-lv1
0 409600 error


できました。
元に戻す場合は、元のtableの内容に書き換えてあげればいいので

# dmsetup reload testvg-lv1 --table "0 409600 linear 8:5 411648"
# dmsetup suspend testvg-lv1; dmsetup resume testvg-lv1
# dmsetup table testvg-lv1
0 409600 linear 8:5 411648

のようにする。


バックアップのtableを保持しつつ自動でやるにはこんな感じか。

元のlvはlinearのtargetがひとつある状態しか考慮してないのでちうい。