Halaman ini menjelaskan apa itu 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 ringkasan sebelumnya
- Menjadwalkan snapshot Filestore
Apa itu snapshot?
Snapshot Filestore adalah status data file share Anda yang dipertahankan pada 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. Replika tidak mereplikasi data apa pun atau menggunakan kapasitas hingga data di instance diubah. Semua snapshot instance berbagi 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 berkurang saat modifikasi file dilakukan.
Tingkatan yang didukung
Tabel berikut menunjukkan tingkat layanan Filestore yang mendukung snapshot dan operasi revert instance
:
Tingkat | Buat snapshot | Mengembalikan instance |
---|---|---|
HDD Dasar | Tidak | Tidak |
SSD Dasar | Tidak | Tidak |
Zonal | Ya | Ya |
Regional | Ya | Ya |
Enterprise | Ya | Ya |
Snapshot dan operasi revert
terkait juga didukung di tingkat layanan SSD skala tinggi yang sebelumnya tersedia.
Meskipun snapshot didukung di tingkat layanan Enterprise, snapshot tidak dapat digabungkan dengan fitur multishare Filestore.
Pembuatan snapshot
Setiap direktori berbagi file berisi direktori .snapshot
tersembunyi. Setiap direktori
.snapshot
berisi snapshot direktori induk 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 dipertahankan.
Pembuatan snapshot biasanya tidak memerlukan waktu lebih dari dua menit karena tidak melibatkan 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 penulisan yang diakui oleh instance Filestore sebagai
ditulis ke penyimpanan stabil atau yang diikuti oleh 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 pulih dari snapshot yang dibuat selama beban kerja penulisan yang berat. Dalam sebagian besar situasi, Anda dapat membuat snapshot yang memiliki konsistensi yang baik meskipun aplikasi Anda menulis data ke berbagi file. Namun, jika aplikasi Anda memerlukan konsistensi yang ketat, sebaiknya lakukan satu atau beberapa hal berikut:
- Gunakan opsi pemasangan sync 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 berbagi file dan menyebabkan aplikasi atau proses tersebut menghapus perubahannya ke berbagi file sebelum memulai snapshot. Untuk mengetahui informasi selengkapnya, lihat fsync(2).
- Jika aplikasi Anda memerlukan konsistensi di antara beberapa berbagi, jeda semua aplikasi di semua instance yang menulis ke semua berbagi file dan buat snapshot semua berbagi file sebelum melanjutkan aplikasi Anda.
- Jika Anda memerlukan konsistensi tingkat aplikasi, hentikan aplikasi dan batalkan pemasangan berbagi file sebelum membuat snapshot.
Semantik NFS dari 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 nama tersebut dicadangkan untuk snapshot. - Direktori
.snapshot
tidak tercantum dalam output perintahREADDIR
atauREADDIRPLUS
, dan juga tidak tercantum dalam perintah bashls -a
. - Untuk berpindah 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
Saat file diambil dalam snapshot, menghapusnya tidak akan menambah ruang disk kosong di instance Anda.
Mengembalikan ke status snapshot
Mengembalikan instance ke status snapshot tersedia secara umum hanya untuk instance zonal, regional, dan enterprise.
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 kembalikan snapshot adalah operasi yang tidak dapat dibatalkan, yang menghapus data dari sistem file aktif dan menghapus setiap snapshot berikutnya yang lebih baru dalam rantai. Oleh karena itu, ada risiko kehilangan data yang tidak disengaja lebih tinggi. Perilaku ini sangat berbeda jika dibandingkan dengan memulihkan dari cadangan, di mana cadangan akan tetap dalam statusnya saat ini setelah digunakan, sehingga Anda dapat mencoba memulihkan dari beberapa cadangan untuk menemukan cadangan terbaik. Gunakan fitur kembalikan dengan hati-hati.
Semua data yang ditulis setelah pembuatan snapshot target 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 direkam dalamsnapshot2
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 (fsid) NFS. Upaya untuk mengakses klien menggunakan pemasangan yang ada akan menampilkan error handle file yang tidak valid. Sebagai praktik terbaik, lepaskan semua klien dari instance sebelum operasi pengembalian, dan pasang kembali setelah selesai.
Operasi pengembalian dapat memerlukan waktu hingga dua menit untuk selesai.
- Pembersihan terkait yang dikaitkan dengan operasi pengembalian, seperti menghapus snapshot berikutnya dalam rantai, dapat memerlukan waktu antara enam jam hingga sepuluh hari untuk diselesaikan, bergantung pada jumlah file yang terlibat.
- Anda dapat menjalankan operasi lain saat operasi kembali berjalan dan saat pembersihan selesai.
- Anda harus menunggu hingga operasi pengembalian selesai sebelum memulai operasi pengembalian lainnya.
Snapshot dan operasi
revert
terkait tersedia untuk sebagian besar tingkat layanan. Snapshot tidak tersedia di tingkat layanan SSD dasar dan HDD dasar.Hanya instance dengan satu berbagi yang dapat dikembalikan ke status snapshot.
Meskipun snapshot didukung di tingkat layanan Enterprise, snapshot tidak dapat digabungkan dengan fitur multishare Filestore.
Langkah berikutnya
- Pelajari cara membuat dan mengelola snapshot.
- Pelajari pencadangan.