Snapshots LVM dimaksudkan untuk menangkap sistem file dalam keadaan beku. Mereka tidak dimaksudkan untuk menjadi cadangan di dalam dan dari diri mereka sendiri. Namun, mereka berguna untuk mendapatkan gambar cadangan yang konsisten karena gambar beku tidak dapat dan tidak akan berubah selama proses pencadangan. Jadi, sementara Anda tidak akan menggunakannya secara langsung untuk membuat cadangan jangka panjang, mereka akan sangat bermanfaat dalam proses pencadangan apa pun yang Anda putuskan untuk digunakan.
Ada beberapa langkah untuk mengimplementasikan snapshot. Yang pertama adalah bahwa volume logis baru harus dialokasikan. Tujuan dari volume ini adalah untuk menyediakan area di mana delta (perubahan) ke sistem file dicatat. Ini memungkinkan volume asli untuk melanjutkan tanpa mengganggu akses baca / tulis yang ada. Kelemahan dari ini adalah bahwa area snapshot berukuran terbatas, yang berarti pada sistem dengan penulisan yang sibuk, dapat mengisi lebih cepat. Untuk volume yang memiliki aktivitas penulisan yang signifikan, Anda ingin menambah ukuran snapshot Anda untuk memberikan ruang yang cukup untuk semua perubahan yang akan direkam. Jika foto Anda meluap (terisi), foto itu akan berhenti dan ditandai sebagai tidak dapat digunakan. Jika ini terjadi, Anda akan ingin melepaskan snapshot Anda sehingga Anda bisa mendapatkan volume aslinya kembali online. Setelah rilis selesai, Anda
Hal kedua yang terjadi adalah LVM sekarang "menukar" tujuan sebenarnya dari volume yang dimaksud. Anda akan berpikir bahwa snapshot yang baru dialokasikan akan menjadi tempat untuk mencari perubahan pada sistem file, setelah semua, di situlah semua penulisan akan dilakukan, kan? Tidak, itu sebaliknya. Filesystem di-mount ke nama volume LVM , jadi menukar nama dari bawah sistem akan menjadi tidak-tidak (karena snapshot menggunakan nama yang berbeda ). Jadi solusinya di sini sederhana: Ketika Anda mengakses nama volume asli, itu akan terus merujuk ke versi langsung (baca / tulis) volume yang Anda buat snapshot. Volume foto yang Anda buat akan merujuk ke beku(hanya baca) versi volume yang ingin Anda buat cadangannya. Sedikit membingungkan pada awalnya, tetapi itu masuk akal.
Semua ini terjadi dalam waktu kurang dari 2 detik. Sisa dari sistem bahkan tidak memperhatikan. Kecuali, tentu saja, Anda tidak melepaskan snapshot sebelum meluap ...
Pada titik tertentu Anda akan ingin melepaskan snapshot Anda untuk mendapatkan kembali ruang yang ditempati. Setelah rilis selesai, volume foto dirilis kembali ke volume, dan yang asli tetap.
Saya tidak menyarankan mengejar ini sebagai strategi cadangan jangka panjang. Anda masih meng-hosting data pada drive fisik yang sama yang dapat gagal, dan pemulihan sistem file Anda dari drive yang gagal tidak ada cadangan sama sekali.
Jadi, singkatnya:
- Snapshots baik untuk membantu backup
- Snapshots bukanlah, dalam dan dari diri mereka sendiri, suatu bentuk cadangan
- Jepretan tidak bertahan selamanya
- Cuplikan penuh bukanlah hal yang baik
- Snapshots perlu dirilis di beberapa titik
- LVM adalah teman Anda, jika Anda menggunakannya dengan bijak.
Snapshots LVM sangat bagus untuk dapat membuat cadangan server Anda tanpa membuatnya offline. Seperti yang dinyatakan snapshot LVM adalah salinan hampir instan. Anda membuatnya menggunakan
lvcreate
perintah seperti halnya Anda akan membuat LV itu sendiri, hanya Anda yang memberikannya--snapshot
opsi dan LV asli alih-alih VG. Contohnya:Ini akan membuat snapshot dari LV yang diberikan dengan nama snapshot yang ditentukan yang kemudian Anda bisa pasang dan gunakan LV snapshot ini untuk melakukan backup Anda tanpa khawatir tentang file yang sedang digunakan secara aktif. Ini sangat membantu jika Anda mencoba membuat cadangan server database aktif.
Setelah Anda selesai mencadangkan dari snapshot, Anda ingin menghapusnya untuk mengurangi overhead I / O tambahan atau masalah kinerja lainnya seperti yang disebutkan orang lain menggunakan:
Walaupun snapshot LVM sangat berharga dalam menghasilkan cadangan sistem yang andal seperti basis data dan Anda biasanya ingin melakukan shutdown ke cadangan untuk menghindari pertengkaran file, mereka tidak ideal untuk operasi jangka panjang sebagai pemulihan cepat.
sumber
Bukan ide yang bagus, IMO.
Snapshots diimplementasikan dalam mode copy-on-write sehingga Anda mengubah setiap penulisan menjadi read dan two write (blok yang Anda perbarui adalah yang pertama dibaca dari volume utama dan disimpan dalam volume snapshot sebelum data baru Anda ditempatkan di tempatnya) sehingga Anda akan melihat beberapa penurunan kinerja jika banyak tulisan yang umum di VM.
Juga, IIRC, jika volume foto menjadi penuh hanya dijatuhkan tanpa basa-basi. Ini tidak baik untuk keperluan pencadangan! Jadi jika Anda mencoba ini sebagai metode cadangan, pastikan untuk membuat volume snapshot cukup besar untuk menangani semua perubahan yang akan terjadi selama masa manfaat snapshot. Tentu saja jika Anda mengetahui dan memantau masalah ukuran dan masalah kinerja bukan masalah bagi Anda, maka apa yang Anda sarankan dapat membuat tambahan yang berguna untuk proses pencadangan lain yang Anda miliki.
Snapshots LVM sangat berguna sebagai bagian dari proses pencadangan (mengambil snapshot, mencadangkan snapshot ke tempat lain untuk memastikan cadangan konsisten tanpa harus menonaktifkan pembaruan pada volume "nyata", letakkan snapshot sesudahnya), antara lain, tetapi tidak dimaksudkan sebagai fasilitas cadangan sendiri.
sumber
Anda perlu memastikan bahwa data pada disk dalam keadaan konsisten sebelum foto dibuat. misal mysql mungkin memiliki data yang di-cache di memori yang perlu dipaksa ke disk, baik dengan membuang database atau mematikannya. Lihat manual aplikasi Anda untuk detailnya.
sumber
Di bawah hal-hal yang tampak cerdas, LVM sebenarnya 'hanya' trik perangkat mapper. Membuat snapshot dengan lvcreate tidak lebih dari bungkus untuk beberapa hal dmsetup. Wrapper membuat perangkat baru (volume foto) dari satu volume lama (volume asli) dan yang baru (volume copy-on-write). Bersamaan dengan itu, LV asli diganti namanya menjadi -real (lihat di bawah, yang merupakan dmsetup ls --tree output). LV nyata ini dipetakan ke volume snapshot dan volume asli, sehingga dapat digunakan di kedua tempat. Volume copy-on-write berfungsi sebagai overlay ke -real LV. -Snap LV menampilkan kombinasi volume copy-on-write dan -real volume. Ini memang menciptakan beberapa overhead kinerja.
Saat menghapus snapshot, sekali lagi terjadi penggantian nama dan pemetaan. Setelah itu, situasinya akan kembali terlihat seperti
Adapun dalam howfar ini adalah metode yang baik untuk mencadangkan barang: bisa jadi, jika Anda memperhitungkan ini akan (1) tidak membantu RAM mesin virtual, (2) membuat penalti kinerja dan (3) Anda perlu untuk menyimpan gambar foto di tempat lain.
VMware VCB juga berfungsi dengan snapshot, btw, meskipun bukan LVM.
sumber
Sekalipun snapshot tidak memengaruhi kinerja, Anda harus memahami: Snapshots tidak lebih dari cadangan daripada salinan ke folder lain pada disk yang sama.
Jika disk mengerem, data dan cadangan Anda hilang. Bahkan jika Anda menetapkan area snapshot ke PE lain di VG, itu hanya berisi data yang diubah sejak snapshot.
Mencadangkan berarti salinan setidaknya ke drive yang sepenuhnya terpisah sebagai persyaratan minimum.
sumber
saya menggunakan pengaturan seperti itu untuk snapshot dari mesin server vmware dan database mysql. berfungsi dengan baik sejauh ini. ada beberapa mengembalikan - semua tanpa masalah. satu hal yang perlu dipertimbangkan - saat berjalan dengan snapshot lvm mendapat hit kinerja yang signifikan untuk operasi i / o. lihat di sini . abaikan fakta mereka berbicara tentang mysql, i / o ops adalah i / o ops ... tidak peduli apa pun jenis data yang ada di lvm.
sumber
Saya menggunakan snapshot lvm hanya untuk menyalin DomU Lv yang lain dalam Vg terpisah, di mana setiap Domain memiliki tiga "node" cadangan untuk dibuang.
Setelah itu, snapshot dihancurkan, dan cadangan Lv akan tetap sampai babak berikutnya. Jika saya harus mengembalikan, saya hanya perlu memilih sumber Lv dari cadangan Vg dan menyalinnya ke domain Lv.
Sesekali, Lv cadangan dibuang ke file gambar di server terpisah.
Semua ini otomatis melalui skrip, dengan cadangan setiap dua hari dan dump setiap minggu.
Saya bahkan memiliki mode "panik" dalam pikiran, di mana Domain Lv akan dipulihkan tetapi dijalankan dari snapshot, dan reset-ed setiap 2 jam, untuk menjaga situs online jika terjadi peretasan serius, sampai pertahanan yang tepat dapat diatur .
sumber
Apa yang menjadi garis ide pertahanan 'mode panik'?
sumber