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


6

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

あるいは、2つの異なるPVにまたがるシンLVMプールがある場合、pvmoveコマンドを使用して、LV XのすべてのエクステントをPV YからZに移動することを簡単に指定できますか?

回答:


6

私はpvmoveを使用してそれをやろうとしましたが、うまくいきませんでした。pvmoveコマンドでこれを可能にするソースコードの修正への参照がGoogleにありますが、CentOS 7マシンではシンプールについて文句を言ったので、この修正がどのバージョンであるかはわかりません含まれています。機能するかどうかもわかりません。

とはいえ、LVをあるプールから別のプールに移動するのはそれほど難しくないはずです。実際のところ、私は別々のVGにある2つのプール間で移動しました(いずれの場合も問題ではありません)。私がやったことは次のとおりです。

LV my_logical_volume、VG first_vgおよびsecond_vg(これらはあなたの場合は同じです)、および宛先my_logical_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を削除してから再作成しますが、サイズ[-Vに続く数]に0.01を追加します):

# 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=sparse ddでは重要です。そうしないと、すべてのスペースがデスティネーションシンプールにプロビジョニングされ、シンではなくなります:-)。

新しい論理ボリュームが適切であることを確認します。Alles klarr、Herr Kommissar、必要に応じて新しいLVの名前を変更したり、元のLVを削除したりできます(作業する前にバックアップしましたか?)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.