Thin LVを別のLVMプールに移動できますか?

Thin LVを別のLVMプールに移動できますか?

同じボリュームグループに2つのシンプール(vg / pool1)と(vg / pool2)があり、最初のプールにLVがある場合、LVを2番目のプールに移動するLVMコマンドはありますか? pvmoveはこれを行うか?

あるいは、2つの異なるPVに分散されたシンLVMプールがある場合は、pvmoveコマンドを使用してLV Xのすべての範囲をPV YからZに移動するように簡単に指定できますか?

答え1

私は成功せずにこれを行うためにpvmoveを使ってみました。 pvmoveコマンドでこれを行うことができるソースコードの修正への参照はGoogleにありますが、私のCentOS 7システムではシンプールについて文句を言うので、この修正がどのバージョンであるかわかりません。もしそうなら)それがうまくいくかどうかわかりません。

つまり、LVをあるプールから別のプールに移動することはそれほど難しくありません。実際、別のVGの2つのプールの間でプールを移動しました(とにかく関係ありません)。これが私がしたことです:

LV my_logic_volume、VG first_vg、second_vg(あなたの場合でも同じ)を呼び出し、my_logic_volume2をターゲットにします。私のインスタンスでLVの名前を変更しました。異なるシーンプールにあっても、同じVGで同じ名前の2つのlvを作成できるかどうかはわかりません。試してみてください。とにかく、移動した後はいつでもlvrenameを使用できます。簡単です。

順序は次のとおりです。

# lvs
LV                VG        Attr       LSize   Pool      Origin Data%  Move Log Cpy%Sync Convert
my_logical_volume first_vg  Vwi-a-tz--  10.74g thinpool0         31.39  
thinpool1         second_vg twi-a-tz--   1.20t                    0.29        
thinpool0         first_vg  twi-a-tz-- 500.89g                   86.87                                 

上記の論理ボリュームのLSizeを確認してください。このコマンドは次のとおりです。

# lvcreate -V 10.74g -n my_logical_volume2 -T second_vg/thinpool1

...一致する適切な数のLEを生成します。 lvsが示すものとまったく同じ寸法を使用してください。 lvdisplay を使用して、同じサイズの論理ボリュームを作成したことを確認します。このCurrent LE行を確認してください(結果のLEの数が少ない場合は、lvを削除して再作成しますが、サイズに0.01を追加します[-Vの後の数字))。 :

# lvdisplay first_vg/my_logical_volume
  --- Logical volume ---
  LV Path                /dev/first_vg/my_logical_volume
  LV Name                my_logical_volume
  VG Name                first_vg
  LV Pool name           thinpool0
  LV Size                10.74 GiB
  Mapped size            31.39%
  Current LE             2750

# lvdisplay second_vg/my_logical_volume2
  --- Logical volume ---
  LV Path                /dev/second_vg/my_logical_volume2
  LV Name                my_logical_volume2
  VG Name                second_vg
  LV Pool name           thinpool1
  LV Size                10.74 GiB
  Mapped size            0.00%
  Current LE             2750

次に、最初のlvから新しく作成されたlvにコピーします。

# time dd if=/dev/first_vg/my_logical_volume of=/dev/second_vg/my_logical_volume2 bs=4194304 conv=sparse

conv=sparseddの場合は非常に重要です。それ以外の場合は、すべてのスペースがターゲットシーンプールにプロビジョニングされ、シーンではなくなります。 :-).

新しい論理ボリュームが希望どおりになっていることを確認してください。すべてを確認したら、Kommissarさん、ご希望の場合は、新しいLVの名前を変更したり、元のLVを削除することができます(作業する前にバックアップしましたか?)。

関連情報