Saya mencoba mencari tahu cara kerja snapshot LVM sehingga saya dapat mengimplementasikannya di server file saya, tetapi saya mengalami kesulitan menemukan apa pun di google yang menjelaskan cara kerjanya, daripada bagaimana menggunakannya untuk sistem cadangan dasar.
Dari apa yang saya baca saya pikir itu berfungsi seperti ini:
- Anda memiliki LVM dengan partisi primer dan banyak dan banyak ruang bebas yang tidak terisi tidak di dalam partisi
- Kemudian Anda mengambil snapshot dan memasangnya pada Volume Logical baru. Snapshots seharusnya memiliki perubahan sehingga snapshot pertama ini akan menjadi salinan keseluruhan, benar?
- Kemudian, hari berikutnya Anda mengambil snapshot lain (ukuran partisi yang satu ini tidak harus terlalu besar) dan pasanglah.
- Entah bagaimana LVM melacak snapshot, dan tidak menyimpan bit yang tidak berubah pada volume primer.
- Kemudian Anda memutuskan bahwa Anda memiliki snapshot yang cukup dan menyingkirkan yang pertama. Saya tidak tahu bagaimana ini bekerja atau bagaimana itu akan mempengaruhi snapshot berikutnya.
Dapatkah seseorang mengoreksi saya di mana saya salah. Paling-paling, saya kira, saya tidak dapat menemukan apa pun di google.
vgdiplay
obu1: / home / jail / home / qps / backup / D # vgdisplay --- Kelompok volume --- VG Name fileserverLVM ID sistem Format lvm2 Wilayah Metadata 1 Metadata Sequence No 3 VG Access baca / tulis VG Status dapat diubah ukurannya MAX LV 0 Cur LV 2 Buka LV 2 Max PV 0 Cur PV 1 Undang-Undang PV 1 VG Ukuran 931,51 GB PE Ukuran 4,00 MB Total PE 238467 Alloc PE / Ukuran 238336 / 931.00 GB Gratis PE / Ukuran 131 / 524.00 MB VG UUID qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU
Snapshots LVM adalah contoh dari solusi snapshot copy-on-write, seperti kata Evan. Cara kerjanya sedikit berbeda dari Evan yang tersirat, tetapi tidak secara keseluruhan.
Ketika Anda memiliki volume LVM tanpa snapshot, menulis ke volume terjadi seperti yang Anda harapkan. Blok diubah, dan hanya itu.
Segera setelah Anda membuat snapshot, LVM membuat kumpulan blok. Kelompok ini juga berisi salinan lengkap metadata LVM volume. Ketika menulis terjadi pada volume utama seperti memperbarui inode, blok yang ditimpa akan disalin ke kumpulan baru ini dan blok baru ditulis ke volume utama. Ini adalah 'copy-on-write'. Karena itu, semakin banyak data yang berubah antara saat foto diambil dan status volume utama saat ini, semakin banyak ruang yang dikonsumsi oleh kumpulan foto itu.
Saat Anda memasang snapshot, meta-data yang ditulis ketika snapshot diambil memungkinkan pemetaan blok kumpulan snapshot atas blok yang diubah dalam volume (atau snapshot level yang lebih tinggi). Dengan cara ini ketika akses datang untuk blok tertentu, LVM tahu yang memblokir akses. Sejauh menyangkut filesystem pada volume itu, tidak ada snapshot.
James menunjukkan salah satu kesalahan sistem ini. Ketika Anda memiliki beberapa snapshot dari volume yang sama, setiap kali Anda menulis ke sebuah blok di volume utama yang berpotensi memicu Anda menulis di setiap snapshot tunggal. Ini karena setiap foto mempertahankan kumpulan blok yang diubah sendiri. Juga, untuk pohon snapshot yang panjang, mengakses snapshot dapat menyebabkan sedikit perhitungan pada server untuk mencari tahu blok mana yang perlu dilayani untuk akses.
Ketika Anda membuang snapshot, LVM hanya menjatuhkan snapshot pool dan memperbarui pohon snapshot sesuai kebutuhan. Jika snapshot yang dijatuhkan adalah bagian dari pohon snapshot, beberapa blok akan disalin ke snapshot level yang lebih rendah. Jika itu adalah snapshot terendah (atau satu-satunya), pool hanya akan terjatuh dan operasinya sangat cepat.
Beberapa sistem file memang menawarkan snapshot dalam sistem file, ZFS dan BTRFS hanyalah dua dari yang lebih dikenal. Mereka bekerja dengan cara yang sama, meskipun sistem file itu sendiri mengelola pemetaan yang diubah / tidak berubah. Ini bisa dibilang cara yang lebih baik untuk melakukannya karena Anda dapat fsck seluruh keluarga snapshot untuk konsistensi, yang merupakan sesuatu yang tidak dapat Anda lakukan dengan LVM lurus.
sumber
Anda tidak menentukan apakah Anda menggunakan Linux atau HP-UX. Di HP-UX, Anda membuat volume logis dan memasangnya sebagai snapshot dari volume logis lain. Di Linux, Anda membuat volume logis sebagai volume snapshot.
Menghapus snapshot dalam HP-UX dilakukan dengan umounting volume; di Linux itu dilakukan dengan menggunakan lvremove untuk menghapus volume logis.
Bagaimanapun, perubahan adalah satu-satunya hal yang disimpan pada foto Anda. Semakin lama snapshot tetap tersedia, semakin banyak perubahan yang disimpannya - dan ada kemungkinan ia bisa terisi jika tidak diukur atau dirilis dengan benar.
Kecepatan akses disk pada volume snapshot lebih lambat daripada volume normal; Anda harus memperhitungkannya.
sumber
Snapshots LVM tidak efisien, semakin banyak snapshots semakin lambat sistem berjalan.
Saya hanya mendukung xfs seperti yang kami gunakan dan xfs_freeze dapat digunakan untuk menghentikan akses baru ke sistem file dan membuat image yang stabil pada disk.
Copy on Write digunakan sehingga ruang disk digunakan secara efisien.
Anda telah membuat sistem file dalam volume logis yang memiliki ruang kosong di dalamnya untuk snapshot.
Ini adalah contoh dari FAQ
sumber