LVMでディスクを交換するときは最初にやるのはこれ
新しいディスクをLVMに接続し LVに割り当てる。
pvmove でディスク交換
vg から取り外し
物理的に取り出し
vgから古いディスクの取り外し( VG容量に余裕があるとき、容量を拡張するとき)
vg からディスクを外す前に pvmoveコマンドを先に実行する必要がある。
pvmove は物理ディスクにかきこまれたlvmが使っている領域をべつのlvm/ lv の割り当てディスクに移動させて、物理ディスクを安全に解放してくれる。
なんて便利な機能。
しかし、よくミスる。 「取り外しー>容量減らすー>ディスク減らす」と考えて、ついついvgreduce を打ってしまいまがち
pvmove /dev/sdX /dev/sdY vgreduce vg-name /dev/sdX pvremove /dev/sdX resize2fs /dev/mapper/vg-name-lvname
この順番が大事
ついつい vgreduce をやlvextend先にやろうとしてしまう。
pvmove は本当に便利なのにね。
容量の大きなディスクに入れ替えるとき( VG容量が満杯の余裕がないとき)
pvcreate /dev/sdX vgextent VGNAME /dev/sdX pvmove /dev/sdY /dev/sdX vgreduce VGNAME /dev/sdY pvremove /dev/sdY
- 新しいディスクを pvcreate
- vg に新HDDを追加
- pvmove で旧HDD→新HDDへ
- vgreduce でVGの旧HDDを削減
- pvcremove で旧HDDを削除
こちらも順番が大事。
もし、pvmove をやめたいとき
pvmove 中に再起動が必要になったとか。pvmove 中に端末がおちちゃって経過がわからないとか、time コマンドをつけたかったとか。そういときに一旦中止する時にどうするのか。
pvmove --abort
これでpvmoveをキャンセルできます。
縮小するとき
LVMを必要以上に確保ししていて別のディスクに移したいとときは、
sudo mv /mnt/cryptDisk01/SOME_DATA /mnt/newDISK # 必要に応じ容量確保 sudo lvreduce -L -8T data/video --resizefs # 必要に応じて適当にLVを調整 sudo pvmove /dev/mapper/cryptDisk01 sudo vgreduce data /dev/mapper/cryptDisk01 sudo pvremove /dev/mapper/cryptDisk01 sudo lvextend -l 100%FREE data/video sudo resize2fs /dev/mapper/data-video
適宜やれば確実に終わる。8TBは数日かかった・・・
2020-07-17
記述を変更