論理ボリュームをあるボリュームグループから別のボリュームグループに全体的に移動することは可能ですか?
(多かれ少なかれ)一致するlvを作成し、データをコピーすることは可能ですが、LVMツールのみでこれを行う方法はありますか?
そうでない場合、理論的理由または技術的限界(範囲サイズ)はありますか?
承認された回答:
Debianストレッチ(9.0)のLVM、つまり2.02.168-2の時点では、
vgmerge
可能です。>> 、 lvconvert
、および vgsplit
。移動は
コピーと削除の組み合わせであるため、これは移動でも機能します。
または、 pvmove
を使用することもできます ボリュームを移動するだけです。
ループデバイスとlvconvert
を使用した完全な自己完結型のサンプルセッション
概要:ボリュームグループ vg1
を作成します 論理ボリュームlv1
を使用 、および vg2
lv2
を使用 、 lv1
のコピーを作成します vg2
で 。
ファイルを作成します。
truncate pv1 --size 100MB
truncate pv2 --size 100MB
ファイルにループデバイスを設定します。
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
ループデバイス上に物理ボリュームを作成します(
LVMで使用するためにループデバイスを初期化します)。
pvcreate /dev/loop1 /dev/loop2
/ dev/loop1と/dev/loop2にそれぞれボリュームグループvg1とvg2を作成します
。
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
論理ボリュームlv1とlv2をそれぞれvg1とvg2に作成します。
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
lv1とlv2にext4ファイルシステムを作成します。
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
必要に応じて、後でコピーが正しく作成されたことを確認できるように、lv1に何かを書き込みます。
vg1を非アクティブにします。
vgchange -a n vg1
テストモードでmergeコマンドを実行します。これにより、vg1がvg2にマージされます。
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
そして実際に。
vgmerge -A y -l -v vg2 vg1
次に、 lv1
からRAID1ミラーペアを作成します lvconvert
を使用する 。 dest-pv
引数はlvconvert
に指示します ミラーコピーを作成するには/ dev / loop2
。
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
次に、ミラーを分割します。新しいLVはlv1_copy
になりました 。
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
vg2 / lv1
を作成します 非アクティブ。
lvchange -a n /dev/vg2/lv1
次に(テストモード)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
実際に
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
結果の出力:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
注:
1)これらのコマンドのほとんどはrootとして実行する必要があります。
2)2つのボリュームグループ
に論理ボリュームの名前が重複している場合は、 vgmerge
続行を拒否します。
3)マージ時に、 vg1
の論理ボリューム 非アクティブである必要があります。また、分割された場合、 vg2
の論理ボリューム vg1
に属する 非アクティブである必要があります。この場合、これは lv1
です。 。