GNU/Linux >> Belajar Linux >  >> Linux

Linux – Memindahkan Volume Logis Dari Satu Grup Volume ke Grup Volume Lainnya?

Apakah mungkin untuk memindahkan volume logis dari satu grup volume ke grup volume lainnya secara keseluruhan?

Dimungkinkan untuk membuat (kurang lebih) lv yang cocok dan menyalin data, tetapi apakah ada cara untuk melakukannya hanya dengan alat LVM?

Jika tidak, apakah ada alasan teoretis atau batasan teknis (ukuran luas)?

Jawaban yang Diterima:

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

Atau, Anda dapat menggunakan pvmove untuk hanya memindahkan volume.

Sesi contoh lengkap yang lengkap menggunakan perangkat loop dan lvconvert berikut.

Ringkasan: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 lv1 dan lv2 masing-masing di 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

Opsional, tulis sesuatu di lv1 sehingga nanti Anda dapat memeriksa salinan telah
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 cermin RAID 1 dari lv1 menggunakan lvconvert . dest-pv argumen memberitahu lvconvert untuk membuat salinan cermin
pada /dev/loop2 .

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

Kemudian pisahkan cermin. LV baru sekarang 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

Kemudian (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 perlu dijalankan sebagai root.

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

Terkait:Bagaimana cara memprogram AVR Raven dengan Linux atau Mac?

3) Saat penggabungan, volume logis di vg1 harus tidak aktif. Dan pada split, volume logis di vg2 milik vg1 harus tidak aktif. Dalam kasus kami, ini adalah lv1 .


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

  2. Wormhole – Berbagi File dengan Aman dari Satu Komputer ke Komputer lain di Linux

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

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

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

  3. Contoh Perintah vgextend di Linux

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

  2. Apa cara tercepat untuk memindahkan sejuta gambar dari satu direktori ke direktori lain di Linux?

  3. Linux NFLOG - dokumentasi, konfigurasi dari C