Ringkasan snapshot

Halaman ini menjelaskan definisi snapshot, cara kerjanya, serta membahas batasan dan praktik terbaik.

Untuk melihat cara menggunakan snapshot, lihat panduan berikut:

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 perintah READDIR atau READDIRPLUS, dan juga tidak tercantum dalam perintah bash ls -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, dan snapshot3 dibuat secara berurutan. Mengembalikan instance ke status yang diambil di snapshot2 berarti semua data yang ditulis setelah snapshot2, serta semua snapshot yang diambil setelah pembuatan snapshot2, 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