GNU/Linux >> Belajar Linux >  >> Linux

Pemetaan perangkat Linux memetakan LVM PV yang bersarang di dalam LV saat mengambil snapshot

Solusi 1:

Terkadang dokumentasi yang relevan disembunyikan di file konfigurasi daripada di, katakanlah, dokumentasi. Begitu pula dengan LVM.

Secara default, LVM akan secara otomatis mencoba mengaktifkan volume pada perangkat fisik apa pun yang terhubung ke sistem setelah boot, selama semua PV ada, dan lvmetad dan udev (atau yang lebih baru systemd) sedang berjalan. Saat snapshot LVM dibuat, acara udev dijalankan, dan karena snapshot berisi PV, lvmetad secara otomatis menjalankan pvscan , dan seterusnya.

Dengan melihat /etc/lvm/backup/docker-volumes Saya dapat menentukan bahwa lvmetad telah menjalankan pvscan secara eksplisit pada snapshot dengan menggunakan nomor mayor dan minor perangkat, yang melewati filter LVM yang biasanya akan mencegah hal ini. File tersebut berisi:

description = "Created *after* executing 'pvscan --cache --activate ay 253:13'"

Perilaku ini dapat dikontrol dengan menyetel auto_activation_volume_list di /etc/lvm/lvm.conf . Ini memungkinkan Anda untuk mengatur grup volume, volume, atau tag mana yang diizinkan untuk diaktifkan secara otomatis.

Jadi, saya cukup menyetel filter agar memuat kedua grup volume untuk host; apa pun tidak akan cocok dengan filter dan tidak diaktifkan secara otomatis.

auto_activation_volume_list = [ "mandragora", "vm-volumes" ]

Volume LVM tamu tidak lagi muncul di host, dan akhirnya, cadangan saya berjalan...

Solusi 2:

Anda ingin mengedit nilai 'filter' di /etc/lvm/lvm.conf untuk memeriksa hanya perangkat fisik di host KVM; nilai default menerima 'setiap perangkat blok' yang mencakup LV itu sendiri. Komentar di atas nilai default cukup komprehensif dan dapat menjelaskan penggunaan dengan lebih baik daripada yang saya bisa.

Solusi 3:

Saya mengalami masalah yang kira-kira sama dalam kombinasi dengan vgimportclone . Terkadang gagal dengan ini:

  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Physical volume "/tmp/snap.iwOkcP9B/vgimport0" changed
  1 physical volume changed / 0 physical volumes not changed
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Volume group "insidevgname" successfully changed
  /dev/myvm-vg: already exists in filesystem
  New volume group name "myvm-vg" is invalid
Fatal: Unable to rename insidevgname to myvm-vg, error: 5

Pada saat itu, jika saya ingin menghancurkan snapshot, pertama-tama saya harus menonaktifkan sementara udev karena bug yang dijelaskan di https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081

Namun demikian, setelah tampaknya berhasil menonaktifkan grup volume LVM bersarang, pemetaan partisi untuk PV bersarang, dibuat oleh kpartx , entah bagaimana tetap digunakan.

Triknya adalah bahwa pembuat perangkat menyimpan pemetaan induk tambahan menggunakan nama grup volume lama, seperti ini di daftar hierarki:

insidevgname-lvroot (252:44)
 └─outsidevgname-myvm--root-p2 (252:43)
    └─outsidevgname-myvm--root (252:36)

Solusinya adalah menghapus pemetaan khusus itu dengan dmsetup remove insidevgname-lvroot . Setelah itu, kpartx -d dan lvremove bekerja dengan baik.


Linux
  1. Cara Cepat Membuat File Di Dalam Direktori Bersarang Di Linux

  2. Cara membuat volume fisik di Linux menggunakan LVM

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

  1. lvremove Contoh Perintah di Linux

  2. lvtampilkan Contoh Perintah di Linux

  3. Contoh Perintah lvmconf di Linux

  1. Cara Memperpanjang LVM Ketika tidak ada Ruang Kosong di Grup Volume

  2. Membuat volume logis di Linux dengan LVM

  3. Apakah ini cara kerja snapshot LVM?