Halaman ini menjelaskan definisi snapshot, cara kerjanya, serta membahas batasan dan praktik terbaik.
Untuk melihat cara menggunakan snapshot, lihat panduan berikut:
- Mempertahankan status data Anda dengan snapshot
- Memulihkan file dari snapshot
- Mengembalikan berbagi file ke snapshot sebelumnya
- Menjadwalkan snapshot Filestore Enterprise
Apa yang dimaksud dengan snapshot?
Snapshot Filestore adalah status data fileshare Anda yang dipertahankan saat snapshot dibuat. Instance mempertahankan status file yang diubah setelah snapshot dibuat. Jika ingin memulihkan file ke status yang dipertahankan dalam snapshot, Anda dapat menimpa file saat ini dengan file dari direktori snapshot yang relevan.
Snapshot disimpan dalam instance Filestore dan merupakan resource turunan dari instance. Instance tersebut tidak mereplikasi data atau menggunakan kapasitas hingga data di instance diubah. Semua snapshot instance memiliki data yang sama, yang berarti instance hanya mempertahankan perbedaan antara snapshot.
Meskipun snapshot menawarkan efisiensi biaya jika dibandingkan dengan operasi pemulihan data Filestore lainnya, kapasitas instance yang tersedia terus menurun seiring dengan dilakukannya modifikasi file.
Pembuatan snapshot
Setiap direktori berbagi file berisi direktori .snapshot
tersembunyi. Setiap
direktori .snapshot
berisi snapshot direktori induknya yang Anda
buat, misalnya:
volume1/
│ genomics-file.txt
│
└───.snapshot
│
├───snap1/
│ genomics-file.txt
│
├───snap2/
│ genomics-file.txt
│
└───snap3/
genomics-file.txt
Snapshot berisi tampilan hanya baca dari semua file dan subdirektori yang
ada dalam direktori induknya pada saat pembuatan snapshot. Semua atribut
file seperti atime
, ownership
, serta izin baca dan tulis
akan dipertahankan.
Pembuatan snapshot biasanya tidak memerlukan waktu lebih dari dua menit karena tidak memerlukan penyalinan data, dan tidak memengaruhi performa instance.
Anda dapat memiliki hingga 240 snapshot per instance sekaligus. Nama berbagi file dan nama snapshot dapat memiliki panjang gabungan hingga 78 karakter.
Konsistensi snapshot
Snapshot Filestore memiliki semantik konsistensi NFSv3. Sebelum snapshot dimulai, setiap operasi tulis yang diakui instance Filestore sebagai ditulis ke penyimpanan stabil atau yang diikuti dengan COMMIT
yang diakui akan disertakan dalam snapshot. Untuk mengetahui detailnya, lihat
NFSv3 RFC-1813 bagian 3.3.7.
Menyiapkan berbagi file untuk konsistensi snapshot terbaik
Kualitas snapshot bergantung pada kemampuan aplikasi Anda untuk memulihkan dari snapshot yang dibuat selama beban kerja penulisan yang berat. Dalam sebagian besar situasi, Anda dapat membuat snapshot yang memiliki konsistensi yang baik meskipun saat aplikasi menulis data ke berbagi file. Namun, jika aplikasi Anda memerlukan konsistensi yang ketat, sebaiknya lakukan satu atau beberapa hal berikut:
- Gunakan opsi pemasangan sinkronisasi atau buka file
dengan
O_DIRECT|O_SYNC
. Salah satu metode ini meningkatkan konsistensi, tetapi tidak menjaminnya. - Jeda aplikasi atau proses sistem operasi yang menulis data ke file share dan menyebabkannya menghapus perubahan ke file share sebelum memulai snapshot. Untuk informasi selengkapnya, lihat fsync(2).
- Jika aplikasi Anda memerlukan konsistensi di antara beberapa share, jeda semua aplikasi di semua instance yang menulis ke semua share file dan buat snapshot semua share file sebelum melanjutkan aplikasi Anda.
- Jika Anda memerlukan konsistensi tingkat aplikasi, hentikan aplikasi dan lepas pemasangan berbagi file sebelum membuat snapshot.
Semantik NFS direktori .snapshot
Direktori .snapshot
adalah direktori tersembunyi khusus yang berisi
snapshot yang diambil untuk direktori induknya. Semua perintah NFS dan bash berfungsi untuk
direktori ini dengan pengecualian berikut:
- Anda tidak dapat membuat file atau direktori bernama
.snapshot
karena disediakan untuk snapshot. - Direktori
.snapshot
tidak tercantum dalam output perintahREADDIR
atauREADDIRPLUS
, dan juga tidak tercantum dalam perintah bashls -a
. - Untuk beralih ke direktori
.snapshot
, Anda harus mengetik string.snapshot
secara eksplisit. Contoh:cd somedir/.snapshot/
- Pelengkapan otomatis untuk perintah shell tidak akan mencantumkan
.snapshot
sebagai opsi.
Menghapus file yang diambil dalam snapshot
Jika file diambil dalam snapshot, menghapusnya tidak akan menambah ruang disk kosong di instance Anda.
Mengembalikan ke status snapshot
Mengembalikan instance ke status snapshot umumnya tersedia hanya untuk instance zonal, SSD skala tinggi, regional, dan perusahaan.
Saat instance dikembalikan ke status yang diambil dalam snapshot, semua data baru yang ditulis sejak pembuatan snapshot target akan dihapus dan tidak dapat dipulihkan. Snapshot yang dibuat setelah snapshot target juga dihapus oleh proses pengembalian.
Batasan fitur
Fitur snapshot kembali adalah operasi yang tidak dapat dibatalkan, yang menghapus data dari sistem file aktif dan menghapus setiap snapshot baru berikutnya dalam rantai. Oleh karena itu, metode ini memiliki risiko kehilangan data yang tidak disengaja yang lebih tinggi. Perilaku ini berbeda secara signifikan jika dibandingkan dengan pemulihan dari cadangan, dengan cadangan akan tetap dalam status saat ini setelah digunakan, sehingga Anda dapat mencoba memulihkan dari beberapa cadangan untuk menemukan cadangan terbaik. Gunakan fitur rollback dengan hati-hati.
Semua data yang ditulis setelah pembuatan snapshot target akan dihapus di awal proses pengembalian dan tidak dapat dipulihkan. Semua snapshot yang lebih baru dari snapshot target juga akan dihapus. Misalnya,
snapshot1
,snapshot2
, dansnapshot3
dibuat secara berurutan. Mengembalikan instance ke status yang diambil disnapshot2
berarti semua data yang ditulis setelahsnapshot2
, serta semua snapshot yang diambil setelah pembuatansnapshot2
, akan dihapus dalam proses pengembalian.Pembersihan data yang dihapus ini dapat memerlukan waktu antara enam jam hingga sepuluh hari. Kapasitas dan performa instance mungkin terpengaruh selama waktu ini.
Mengembalikan instance ke status snapshot akan memperbarui ID sistem file NFS (fsid). Upaya untuk mengakses klien menggunakan pemasangan yang ada akan menampilkan error penanganan file yang sudah tidak berlaku. Sebagai praktik terbaik, unmount semua klien dari instance sebelum operasi pembalikan, dan pasang ulang setelah selesai.
Operasi pembatalan dapat memerlukan waktu hingga dua menit untuk selesai.
- Pembersihan terkait yang terkait dengan operasi pembatalan, seperti menghapus snapshot berikutnya dalam rantai, dapat memerlukan waktu antara enam jam hingga sepuluh hari untuk selesai, bergantung pada jumlah file yang terlibat.
- Anda dapat menjalankan operasi lain saat operasi pembatalan berjalan dan saat pembersihan selesai.
- Anda harus menunggu operasi pembatalan selesai sebelum memulai operasi pembatalan lainnya.
Snapshot dan operasi
revert
terkaitnya tersedia untuk sebagian besar tingkat layanan. Snapshot tidak tersedia di tingkat layanan SSD dasar dan HDD dasar.Hanya instance dengan satu bagian yang dapat dikembalikan ke status snapshot.
Meskipun snapshot didukung di tingkat layanan perusahaan, snapshot tidak dapat digabungkan dengan fitur multishare Filestore.
Langkah selanjutnya
- Pelajari cara membuat dan mengelola snapshot.
- Pelajari pencadangan.