GNU/Linux >> Belajar Linux >  >> Linux

Pindahkan volume logis dari satu grup volume ke grup volume lainnya

Grup volume terdiri dari seluruh volume fisik. Volume fisik terdiri dari banyak luasan (luasan biasanya 4MB); setiap tingkat mungkin milik volume logis yang berbeda. Untuk mentransfer volume logis ke grup lain, Anda tidak bisa begitu saja mentransfer luasan, karena hal itu dapat membagi volume fisik antara VG sumber dan VG target.

Yang dapat Anda lakukan adalah mentransfer satu atau lebih PV dari VG sumber ke VG target, dengan vgsplit memerintah. Anda dapat menentukan PV mana yang ingin Anda transfer, atau LV mana (tetapi hanya satu per satu). Jika Anda menentukan LV, itu dan LV lain di VG sumber harus berada di PV terpisah. VG tujuan akan dibuat jika tidak ada VG dengan nama yang ditentukan.

vgsplit -n source_group/volume_to_copy source_group target_group
vgsplit source_group target_group /dev/sdy99 /dev/sdz99

Anda mungkin perlu menggunakan pvmove pertama untuk mengatur volume logis yang ingin Anda pindahkan ke PV terpisah.

Jika Anda ingin mempertahankan batas fisik VG dan memindahkan data, tidak ada alat bawaan, tetapi Anda dapat membuat cermin lalu menghapus yang asli.


Pada LVM di bentangan Debian (9.0), yaitu 2.02.168-2, dimungkinkan untuk menyalin volume logis di seluruh grup volume menggunakan kombinasi vgmerge , lvconvert , dan vgsplit . Karena pemindahan adalah kombinasi dari salinan dan penghapusan, ini juga akan berfungsi untuk pemindahan.

Sebagai alternatif, Anda dapat menggunakan pvmove untuk hanya memindahkan volume.

Sesi contoh mandiri lengkap menggunakan perangkat loop danlvconvert mengikuti.

Rangkuman:kami membuat grup volume vg1 dengan volume logis lv1 , dan vg2 dengan lv2 , dan buat salinan lv1 di vg2 .

Buat file.

truncate pv1 --size 100MB
truncate pv2 --size 100MB

Siapkan perangkat loop pada file.

losetup /dev/loop1 pv1
losetup /dev/loop2 pv2

Buat volume fisik pada perangkat loop (inisialisasi perangkat loop untuk digunakan oleh LVM).

pvcreate /dev/loop1 /dev/loop2

Buat grup volume vg1 dan vg2 masing-masing di /dev/loop1 dan /dev/loop2.

vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2

Buat volume logis masing-masing lv1 dan lv2 pada vg1 dan vg2.

lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2

Buat sistem file ext4 di lv1 dan lv2.

mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2

Secara opsional, tulis sesuatu di lv1 sehingga nanti Anda dapat memeriksa salinan yang dibuat dengan benar. Jadikan vg1 tidak aktif.

vgchange -a n vg1

Jalankan perintah gabungan dalam mode uji. Ini menggabungkan vg1 menjadi vg2.

vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1

Dan kemudian nyata.

vgmerge -A y -l -v vg2 vg1

Kemudian buat pasangan mirror RAID 1 dari lv1 menggunakan lvconvert . dest-pv argumen memberi tahu lvconvert untuk membuat salinan cermin di /dev/loop2 .

lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2

Kemudian membagi cermin. LV baru sekarang adalah lv1_copy .

lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1

Buat vg2/lv1 tidak aktif.

lvchange -a n /dev/vg2/lv1

Lalu (mode pengujian)

vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1

Sungguh

vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1

Keluaran yang dihasilkan:

lvs
[...]
lv1        vg1       -wi-a-----  12.00m
lv1_copy   vg2       -wi-a-----  12.00m
lv2        vg2       -wi-a-----  12.00m

CATATAN:

1) Sebagian besar perintah ini harus dijalankan sebagai root.

2) Jika ada duplikasi nama volume logis di kedua grup volume, vgmerge akan menolak untuk melanjutkan.

3) Saat digabungkan, volume logis di vg1 harus tidak aktif. Dan secara terpisah, volume logis di vg2 milik vg1 harus tidak aktif. Dalam kasus kita, ini adalah lv1 .


Saya akan menawarkan milik saya:

umount /somedir/

lvdisplay /dev/vgsource/lv0 --units b

lvcreate -L 12345b -n lv0 vgtarget

dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress

mount /dev/vgtarget/lv0 /somedir/

jika semuanya baik, hapus sumbernya

lvremove vgsource/lv0

Linux
  1. CentOS / RHEL :Pindahkan Volume Fisik dari Grup Volume yang ada ke Grup Volume lain

  2. CentOS / RHEL :Cara memindahkan Grup Volume dari satu sistem ke sistem lainnya

  3. Cara Memindahkan Swap Dari Partisi Disk ke Volume LVM di Linux

  1. Bagaimana cara memindahkan (dan menimpa) semua file dari satu direktori ke direktori lain?

  2. Apakah ada cara sederhana untuk memindahkan/menyalin volume logis dari satu grup volume ke grup volume lainnya? (LVM2)

  3. Salin seluruh hierarki sistem file dari satu drive ke drive lainnya

  1. Bagaimana Memindahkan Semua File (termasuk Tersembunyi) Dari Satu Direktori Ke Yang Lain?

  2. Bagaimana Cara Menyalin Pengaturan Dari Satu Mesin Ke Mesin Lainnya?

  3. Bagaimana cara meneruskan port dari satu mesin ke mesin lainnya?