Menyiapkan Snapshot LVM sebagai cadangan / titik pemulihan di ubuntu

29

Menyiapkan Snapshot LVM sebagai cadangan / titik pemulihan di ubuntu.

Mengapa?

Yah, seperti yang saya lihat, dengan semua manfaat besar Linux, kelemahan terbesarnya adalah dengan cara menginstal aplikasi yang campur aduk. Semua dll pergi ke satu direktori. Semua file konfigurasi ke yang lain. Dan binari juga dimasukkan dalam banyak. Ya, Windows bekerja dengan cara yang sama kurang lebih, tetapi dengan sifat perangkat lunak sistem / server yang diinstal pada Linux, adalah bahwa sebagian besar perangkat lunak yang diinstal hanya sekitar 95% matang pada waktu tertentu, mengacaukan sistem Anda dua kali sebulan adalah sangat mungkin ..

Tentu saja, kita dapat membuat cadangan sistem sebelum dan setelah setiap instalasi, tetapi itu membutuhkan jutaan tahun. Cadangan sistem (tidak seperti cadangan data / file saja) mengharuskan Anda mematikan komputer dan menggunakan beberapa bentuk CD langsung yang dapat di-boot dan media cadangan. Dan, jika drive lebih dari 15% penuh, mungkin perlu waktu lama untuk melakukan backup, bahkan dengan perangkat keras modern.

Jadi, bagaimana ini bisa dilakukan?

menggosok
sumber
3
Ini bukan pertanyaan ... juga saya kira Anda tidak terlihat terlalu keras; google cepat untuk "ubuntu lvm snapshot" dan hal pertama yang muncul adalah wiki.ubuntu.com/Lvm
psusi
1
Tidak ada hubungannya dengan ... apakah Anda membacanya? Ini mencakup semua yang Anda katakan di sini.
psusi
5
Tentu saja Anda dapat mengajukan pertanyaan dan kemudian menjawabnya sendiri - tetapi perlu diingat bahwa situs ini berfungsi sebagai T&J - tidak dimaksudkan untuk tutorial formulir gratis.
guntbert
3
Itu masalahnya. AskUbuntu menyediakan tutorial, tetapi saya tidak dapat menemukan cara yang mudah untuk meletakkannya. Dan karena saya ingin berbagi kerja keras saya dengan siapa pun yang dapat memperoleh manfaat, saya memutuskan untuk mempostingnya di sini.
Gosok
4
Voting untuk dibuka kembali sehingga kami dapat membaginya menjadi Q&A
muru

Jawaban:

11

Alternatifnya - LVM Snapshots - Anda dapat membaca tentang snapshot LVM di sini: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

Singkatnya - snapshots adalah cara untuk membekukan sektor yang digunakan pada HardDisk, memberi tahu sistem untuk menulis setiap perubahan / hapus / tambahkan pada bagian yang dicadangkan dari HardDisk, yang disebut volume snapshot, sehingga menunda keputusan menjaga / membuang perubahan. pada drive ke waktu mendatang, sejauh yang disediakan oleh ruang volume foto. Jadi, setelah Anda memutuskan untuk mengembalikan perubahan (atau menyimpannya), Anda dapat melakukannya dengan satu baris.

Mungkin kelihatannya rumit pada awalnya, tetapi saya dapat meyakinkan Anda bahwa setelah upaya pertama kali, semua yang diperlukan untuk menggunakan mekanisme snapshot hanya 2 skrip baris (unduhan disediakan!)

Garansi - Tidak ada jaminan apa pun yang pernah diberikan untuk instruksi di bawah ini. Gunakan dengan risiko Anda sendiri!

Bagaimana?

Jika Anda tidak memiliki grup volume pra-konfigurasi, Anda mungkin perlu menginstal Ubuntu bersih baru. Kemudian, Anda harus melakukan upaya mengkonfigurasi sistem dengan benar untuk pertama kalinya, tetapi mulai saat ini, snapshot akan menjadi mudah . Dan maksud saya adalah perintah one liner, dengan menggunakan skrip yang sudah dikonfigurasi sebelumnya.

  1. Boot ke live cd ubuntu (belum ada instalasi .. hanya live cd)
  2. Buka Aksesori -> Terminal
  3. Kami akan membersihkan hard drive! Harap cadangkan sesuatu yang penting sebelum melewati tahap ini.

    Pertama, mari kita hapus partisi yang ada:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Buat partisi boot dan sisa drive sebagai partisi lainnya

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    Untuk memeriksa apakah perubahan bekerja dengan baik:

    # fdisk --list
    

    Anda harus mendapatkan sesuatu seperti ini:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Hapus semua grup volume / volume logis sebelumnya:

    # lvdisplay 
    

    Akan menampilkan volume logis yang Anda miliki di sistem

    # lvremove <existing_logical_volume_name>
    

    Jika ada volume instalasi yang dapat mengganggu instalasi ini perlu dihapus.

    # vgdisplay 
    

    Akan menunjukkan grup volume yang ada pada sistem

    # vgremove <existing_volume_group>
    

    Sama seperti untuk grup volume ..

  6. Buat Grup Volume 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Harus dihasilkan dengan:

      Volume group "vgsnap" successfully created
    
  7. Buat Volume Logis

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    Volume root logis, dimulai dengan 100% perangkat.

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    Ini akan melepas 30G untuk volume swap & snapshot. Tentu saja - Anda dapat memilih ukuran yang lebih kecil untuk swap / snapshot.

    > 'y'
      for the warning shown.
    

    Dan buat volume swap:

    # lvcreate --size 15G --name lvswap vgsnap
    

    Catatan: sekarang kami menyisakan 15G ruang drive yang tidak digunakan, disediakan untuk snapshot masa depan.

  8. Menginstal Ubuntu

    Tutup terimnal dan mulai Installer.

    Pilih "Gunakan LVM ..." (Anda juga dapat memilih untuk mengaktifkan enkripsi seluruh disk - tapi saya tidak mengujinya ..)

    Pilih "Sesuatu Yang Lain" dan tekan lanjutkan. Pada tahap ini Anda akan menemukan pembagian volume / dev / mapper / ... ditentukan. Beberapa di antaranya dihasilkan secara otomatis (lvsnap- *) - Anda dapat mengabaikannya untuk saat ini.

    Pilih: / dev / mapper / vgsnap-lvroot volume. Pilih "ext4" sebagai format, dan mount sebagai '/'

    Pilih: / dev / mapper / vgsnap-lvswap volume, dan pilih "swap area"

    Jika Anda ingin membuat drive terenkripsi (saya tidak tahu apakah itu akan berfungsi dengan snapshot?), Anda mungkin ingin memilih / dev / sda2 dan menandai "volume untuk enkripsi". Tidak mengujinya ..

    Catatan: 15G yang tidak digunakan dibiarkan bebas untuk volume foto.

    Pilih: / dev / sda1 partisi. Format itu sebagai 'ext2' dan pasang sebagai '/ boot'

    Di bawah - pilih: / dev / sda1 partisi sebagai boot

    Memasang!

Menggunakan snapshot

Langkah-langkah berikut akan menunjukkan cara menggunakan snapshot pada waktu tertentu:

  1. Memasang snapshot:

    Buat volume foto

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    Buat direktori mount

    # mkdir /mnt/vgsnap-lvsnap
    

    Pasang snapshot sebagai mount hanya-baca

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    Snapshot Aktif!

    Pada titik ini Anda dapat mulai mengacaukan sistem Anda, menginstal driver beta, dan bahkan (Tidak! Itu tidak pantas).

    Mulai sekarang Anda dapat kapan saja (sejauh yang disediakan snapshot ..) kembali ke kondisi sebelumnya, atau, jika puas dengan tampilan baru - pertahankan.

  2. Pemantauan ruang disk volume bebas snapshot otomatis: Menggunakan skrip versi yang disediakan di sini: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ Saya membuat skrip monitor_snapshot .

    Bagaimana cara menggunakan / menginstalnya? - Cukup banyak dengan tautan di atas:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    Sebelum menjalankannya untuk pertama kali Anda lebih baik mengedit nilai-nilai di dalamnya, seperti alamat email Anda (di mana pemberitahuan akan dikirim, dll.) Jika dikonfigurasi dengan benar, daemon cron akan menjalankan skrip setiap X jam / hari - saat Anda memutuskan - dan memberi tahu Anda setelah foto akan segera penuh.

    Untuk menguji menjalankan skrip:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Ini akan mencetak persentase (jumlah) ruang kosong dalam foto itu.

    Penting! Setelah Anda selesai dengan pengujian / instalasi Anda - kembalikan atau pertahankan perubahan - dan sesuaikan snapshot!

  3. Memutar kembali perubahan: (Lihat skrip rollback_snapshot , dengan instruksi berikut di dalamnya, tautan di akhir dokumen)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Ini juga akan menghitung snapshot, tetapi akan mengabaikan perubahan Anda. Juga - Anda akan melihat peringatan yang menunjukkan bahwa pengembalian hanya akan terjadi aktivasi berikutnya, jadi:

    # reboot
    

    Catatan: Jika Anda melewatkan penggabungan, perubahan Anda akan dilakukan setelah Anda Mengunggah foto itu.

  4. Mengkomit perubahan - umounting snapshot: (Lihat skrip commit_snapshot , dengan instruksi berikut di dalamnya - tautan di akhir dokumen)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Pasang kembali snapshot: (Lihat skrip remount , dengan instruksi berikut di dalamnya - tautan di akhir dokumen) Seperti sebelumnya:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    Jika Anda menyimpan monitor_snapshot di dir home Anda, Anda dapat mengembalikannya:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

Itu semua orang! Instruksi berikut hanya untuk orang yang menyerah;)

  1. Membuang volume foto (Jika tidak diperlukan lagi)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (Anda mungkin juga ingin mengubah ukuran partisi root atau swap untuk menempati 15G hilang yang disediakan untuk swap)

  2. Membuang grup volume - Hanya dimungkinkan dengan menghapus volume grup volume, yang mungkin berarti menghapus instalasi OS. Tapi tentu saja, tidak ada kebutuhan nyata untuk menghapus grup volume ...

    Untuk menghapus grup volume:

    # vgremove vgsnap
    

Catatan penting! - memformat / menjalankan fdisk dan menghapus semua partisi TIDAK akan menghapus volume maupun grup, karena ini ditulis pada bagian yang berbeda dari drive ... Jadi, cukup gunakan instruksi penghapusan yang diberikan di atas dan hapus volume dan grup jika diperlukan.

menggosok
sumber
Terima kasih banyak untuk petunjuk terperinci ini ... wow.
Adriano Lucas
2

Membuat cronjob untuk melakukan pencadangan dengan menggunakan lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Di sini nama volume adalah nama volume yang foto yang ingin Anda ambil. Untuk perincian lebih lanjut Anda juga bisa membaca tutorial ini

Bidyut
sumber
1
Panduan yang bagus! Namun perlu dicatat, bahwa niat saya di mana menyediakan sarana untuk membuat cadangan tanpa media cadangan . Sebagai bentuk cadangan malas. Di masa lalu ini adalah penyelamat hidup, dengan Norton GoBack dan Windows 2000 :) Saya dulu benar-benar mengacaukan sistem yang saya kerjakan, dan dapat mengandalkan bahwa saya dapat mengembalikan kesalahan saya dalam waktu singkat sangat mudah. ! Cadangan mungkin adalah cara yang tepat untuk menggunakan server yang sebenarnya, tetapi untuk workstation yang tidak memakai VMWare / VirtualBox (yang menyediakan snapshots secara eksternal) Saya percaya snapshots adalah cara untuk pergi.
Gosok