web-dev-qa-db-ja.com

内部のext4パーティションを失うことなく、lvextendの後にlvreduceを実行できますか?

ルートパーティションをあるディスクから別のディスクに移動するという失敗した試みで、私は次のことを行いました。

  • 新しいディスクを追加しました
  • それをpartedで分割しました(パート#3はほぼ完全にディスクを埋めています)
  • 物理ボリュームを初期化しました

    $ 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
1
DrSAR

要約すると、現在、論理ボリューム(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 &
4
DrSAR