ルートパーティションをあるディスクから別のディスクに移動するという失敗した試みで、私は次のことを行いました。
物理ボリュームを初期化しました
$ pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
この新しい物理ディスクを含むようにボリュームグループを拡張しました
$ vgextend myvg /dev/sdb3
Volume group "myvg" successfully extended
論理ボリュームを拡張しました(これが私がそれをまとめた場所だと思います:私はそのグループの新しいpvにpvmoveしたものをすべきだったと思います-誰かが確認できますか?)
$ lvextend /dev/mapper/myvg-root /dev/sdb3
ここで、lvextendを元に戻し、古い物理ボリュームのコンテンツを新しい物理ボリュームに移動するという当初の計画に進みたいと思います。 ext4ファイルシステムに損傷を与えることを恐れずに論理ボリュームを減らすことはできますか(/ dev/mapper/myvg-rootにあるext4パーティションにresizefsのようなものでまだ触れていません)?もしそうなら、どうすれば正確に正しい量だけ減らすように指示できますか?
$ lvreduce --by-exactly-the-amount-occupied-by-PV /ev/sdb3 /dev/mapper/myvg-root
要約すると、現在、論理ボリューム(myvg-root)内にext4ファイルシステム(root)があり、2つの物理ボリューム(そのうちの1つは新しく追加されたsdb3)で構成されるボリュームグループ(myvg)にあります。
Lvdisplayを使用して、論理エクステントから物理エクステントへのマッピングを検査できます。
$ lvdisplay -m
--- Logical volume ---
LV Name /dev/myvg/root
VG Name pfeifer
LV UUID 2LeFq8-zz3y-Y62m-931D-mD3m-XmK1-6Zp3Ir
LV Write Access read/write
LV Status available
# open 1
LV Size 3.62 TiB
Current LE 947851
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 251:0
--- Segments ---
Logical extent 0 to 470980:
Type linear
Physical volume /dev/sda3
Physical extents 0 to 470980
Logical extent 470981 to 947850:
Type linear
Physical volume /dev/sdb3
Physical extents 0 to 476869
Lvreduceを使用すると、この論理ボリュームのサイズを簡単に減らすことができます。
$ lvreduce -l -476870 /dev/myvg/root
WARNING: Reducing active and open logical volume to 1.80 TiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root? [y/n]: y
Reducing logical volume root to 1.80 TiB
Logical volume root successfully resized
削減されるsdb3の論理エクステントの数が476869+ 1であることに注意してください(カウントは0から始まります!)。それでおしまい。今、簡単なチェックは元の世界秩序を確認するようです:
--- Segments ---
Logical extent 0 to 470980:
Type linear
Physical volume /dev/sda3
Physical extents 0 to 470980
これで、遅くて退屈なpvmoveコマンドで、次のデータを移動できるようになります。
Nohup pvmove -n /dev/myvg/root /dev/sda3 /dev/sdb3 &