Bagaimana saya bisa menggunakan snapshot LVM di Ubuntu?

19

Saya telah menginstal Ubuntu menggunakan opsi ini:

  • Hapus disk dan instal Ubuntu
  • Enkripsi instalasi Ubuntu baru
  • Gunakan LVM

Bagaimana saya bisa membuat snapshot LVM, sehingga saya bisa mengembalikan perubahan sistem saat diperlukan?

Aleksandr Gornostal
sumber

Jawaban:

22

Catatan: semua perintah harus dilakukan sudo

Pertama, kurangi ukuran volume root Anda untuk memberikan ruang bagi volume snapshot

  • Boot dari Live CD
  • fdisk -l untuk melihat nama perangkat Anda.
    Tipe Ukuran Mulai Sektor Perangkat
    / dev / sda1 2048 1050623 1048576 512M Sistem EFI
    / dev / sda2 1050624 2050047 999424 488M sistem file Linux
    / dev / sda3 2050048 500117503 498067456 237.5G sistem file Linux
    
    /dev/sda3 dalam kasus saya
  • cryptsetup luksOpen /dev/sda3 crypt1 untuk mendekripsi volume Anda
  • vgscan --mknodes untuk menemukan semua grup volume
    Membaca semua volume fisik. Ini mungkin memakan waktu cukup lama ...
    Ditemukan grup volume "ubuntu-vg" menggunakan metadata type lvm2
    
  • vgchange -ay untuk mengaktifkan semua grup volume Anda
    2 volume logis dalam grup volume "ubuntu-vg" sekarang aktif
    
  • lvreduce -r -L -20G /dev/ubuntu-vg/rootuntuk mengurangi ukuran volume root Anda hingga 20 Gb. Ini mungkin butuh waktu (butuh ~ 4 menit untuk saya).
    Ruang itu nantinya akan digunakan untuk membuat snapshot LVM.
  • vgs untuk melihat bahwa Anda benar-benar mendapatkan 20G ruang kosong
    VG #PV #LV #SN Attr VSize VFree
    ubuntu-vg 1 2 0 wz - n- 230.44g 20.01g
    
  • reboot dan hapus Live CD

Buat snapshot (yaitu, aktifkan mode "eksperimen")

Sekarang setiap kali Anda ingin melakukan sesuatu yang berisiko dengan sistem Anda, jalankan perintah berikut

  • lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
    Catatan: /dev/ubuntu-vg/rootadalah volume logis yang ingin Anda jepret
  • lvs untuk melihat bahwa volume telah dibuat
    LV VG Attr LSize Pool Asal Data% Meta% Pindahkan Log Cpy% Sync Konversi
    root ubuntu-vg owi-aos --- 201.59g                                                    
    snap ubuntu-vg swi-as --- 20.00g root 0.00                                   
    swap_1 ubuntu-vg -wi-ao ---- 15.90g
    
    Cuplikan aktif dari saat Anda menjalankan lvcreate. Anda sekarang dapat mulai bereksperimen dengan hal-hal baru.

Skenario # 1: Anda ingin mengembalikan perubahan

  • lvconvert --merge /dev/mapper/ubuntu--vg-snap
    Volume logis ubuntu-vg / root berisi sistem file yang digunakan.
    Tidak dapat menggabungkan volume asal terbuka.
    Penggabungan snapshot ubuntu-vg / snap akan terjadi pada aktivasi ubuntu-vg / root berikutnya.
    
  • reboot

Skenario # 2: Anda ingin tetap melakukan perubahan

  • lvremove /dev/mapper/ubuntu--vg-snap

Kesimpulannya

Anda pada dasarnya harus menjalankan lvcreateuntuk memulai proses dan kemudian menjalankan lvconvert --mergeatau lvremovemengakhirinya.

Perlu diingat bahwa ketika snapshot aktif, karena strategi Copy-On-Write semua perubahan disimpan ke 20GB ruang (atau nilai apa pun yang Anda tetapkan). Salah satu cara untuk memeriksa kapasitas yang tersisa adalah dengan melihat data% kolom lvsperintah.

Aleksandr Gornostal
sumber
Senang mendengar :) Terima kasih @ cl-netbox
Aleksandr Gornostal
Apakah Anda tidak perlu mengecilkan sistem file sebelum Anda menjalankannya lvreducepada wadahnya?
Markus
@Mark -rflag melakukan itu
Aleksandr Gornostal
Apakah aman dijalankan lvconvert --mergeketika filesystem di-mount, atau apakah Anda perlu melakukannya dari LiveCD?
CharlesB
1
@CharlesB ya, Anda harus menjalankannya ketika sudah terpasang
Aleksandr Gornostal