Ringkasan snapshot

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

Untuk melihat cara menggunakan snapshot, lihat panduan berikut:

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 perintah READDIR atau READDIRPLUS, dan juga tidak tercantum dalam perintah bash ls -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, dan snapshot3 dibuat secara berurutan. Mengembalikan instance ke status yang direkam dalam 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 (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