Ringkasan snapshot

Halaman ini menjelaskan definisi snapshot, cara kerjanya, beberapa kasus penggunaan umum, dan praktik terbaik saat membuat dan menggunakan snapshot. Untuk mempelajari cara membuat dan mengelola snapshot, serta cara memulihkan data Filestore dari snapshot, lihat Mempertahankan status data Anda dengan snapshot.

Apa itu snapshot?

Snapshot Filestore adalah status yang dipertahankan dari data berbagi file Anda 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. Pengujian ini tidak mereplikasi data apa pun atau menggunakan kapasitas hingga data pada instance diubah. Semua snapshot instance berbagi data yang sama, yang berarti bahwa instance hanya mempertahankan perbedaan antar-snapshot.

Pembuatan snapshot

Setiap direktori dari sebuah file yang dibagikan berisi direktori .snapshot tersembunyi. Setiap direktori .snapshot berisi snapshot direktori induknya yang Anda buat, misalnya:

foo/
│   bar.txt
│
└───.snapshot
    │
    ├───snap1/
    │        bar.txt
    │
    ├───snap2/
    │        bar.txt
    │
    └───snap3/
             bar.txt

Snapshot tersebut berisi tampilan hanya baca semua file dan subdirektori yang ada dalam direktori induknya pada saat pembuatan snapshot. Semua atribut file seperti atime, ownership, dan izin baca/tulis dipertahankan.

Pembuatan snapshot biasanya memerlukan waktu tidak 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 instance Filestore sebagai ditulis ke penyimpanan stabil atau yang diikuti oleh COMMIT yang dikonfirmasi akan disertakan dalam snapshot. Untuk mengetahui detailnya, lihat NFSv3 RFC-1813 bagian 3.3.7.

Siapkan aktivitas berbagi file Anda untuk konsistensi snapshot terbaik

Kualitas snapshot bergantung pada kemampuan aplikasi Anda untuk pulih dari snapshot yang dibuat selama beban kerja operasi tulis yang berat. Pada sebagian besar situasi, Anda dapat membuat snapshot yang memiliki konsistensi yang baik bahkan saat aplikasi Anda menulis data ke file yang dibagikan. 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 dari metode ini meningkatkan konsistensi, tetapi tidak menjaminnya.
  • Jeda aplikasi atau proses sistem operasi yang menulis data ke berbagi file dan buat aplikasi menghapus perubahannya ke bagian file sebelum memulai snapshot. Untuk informasi selengkapnya, lihat fsync(2).
  • Jika aplikasi Anda memerlukan konsistensi di antara beberapa kali berbagi, jeda semua aplikasi di semua instance yang menulis untuk semua pembagian file dan buat snapshot dari semua pembagian file sebelum melanjutkan aplikasi Anda.
  • Jika Anda memerlukan konsistensi tingkat aplikasi, hentikan aplikasi Anda dan lepaskan 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 sudah dicadangkan 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, penghapusan file tersebut tidak akan meningkatkan kapasitas disk kosong pada instance Anda.

Mengembalikan ke status snapshot

Pengembalian instance ke status snapshot tersedia sebagai fitur Pratinjau hanya untuk SSD skala tinggi dan instance 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 akan dihapus oleh proses pengembalian.

Batasan fitur

  • Fitur snapshot kembali adalah operasi destruktif, baik pada sistem file live maupun snapshot yang lebih baru dalam rantai. Oleh karena itu, metode ini memiliki risiko kehilangan data yang tidak disengaja. Perilaku ini sangat berbeda jika dibandingkan dengan memulihkan dari cadangan, dengan cadangan akan tetap dalam keadaan saat ini setelah digunakan, memungkinkan Anda mencoba memulihkan dari beberapa cadangan untuk menemukan cadangan terbaik. Gunakan fitur pengembalian 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 daripada snapshot target juga akan dihapus. Misalnya, snapshot1, snapshot2, dan snapshot3 dibuat secara berurutan. Dengan mengembalikan instance ke status yang diambil pada snapshot2, berarti snapshot3 dan semua perubahan setelah snapshot3 akan dihapus dalam proses pengembalian.

    Pembersihan data yang dihapus ini dapat memerlukan waktu hingga tiga hari. Kapasitas dan performa instance mungkin terpengaruh selama waktu ini.

  • Mengembalikan instance ke status snapshot akan memperbarui ID sistem file NFS (fsid). Akibatnya, upaya untuk mengakses klien yang menggunakan pemasangan yang ada akan menampilkan error penanganan file yang sudah tidak berlaku. Sebagai praktik terbaik, lepas semua klien dari instance sebelum operasi pengembalian, lalu pasang kembali setelah selesai.

  • Operasi pengembalian mungkin memerlukan waktu beberapa jam untuk diselesaikan, bergantung pada jumlah file yang terlibat. Anda harus menunggu hingga operasi pengembalian selesai sebelum memulai operasi pengembalian lainnya.

  • Tidak ada operasi lain, baik untuk instance maupun snapshot, yang dapat berjalan saat operasi pengembalian selesai. Semua operasi lain ditolak atau dimasukkan dalam antrean, bergantung pada konfigurasi operasi tersebut.

  • Saat ini, hanya instance dengan satu kali berbagi yang dapat kembali ke status snapshot. Fitur snapshot kembali tidak dapat digabungkan dengan multishare Filestore untuk GKE.

Langkah selanjutnya