Praktik terbaik untuk snapshot disk Compute Engine


Anda dapat membuat snapshot Persistent Disk dan Google Cloud Hyperdisk kapan saja, tetapi Anda dapat membuat snapshot dengan lebih cepat dan dengan keandalan yang lebih baik jika menggunakan praktik terbaik berikut.

Pertimbangan keamanan

Untuk mencegah eskalasi hak istimewa yang tidak diinginkan, pastikan Anda hanya memberikan izin IAM terkait snapshot kepada akun utama yang Anda percayai untuk membaca dan memulihkan data snapshot atau snapshot instan (Pratinjau). Izin berikut memungkinkan pengguna membaca dan memulihkan data dari snapshot atau snapshot instan (Pratinjau):

  • compute.snapshots.useReadOnly
  • compute.instantSnapshots.useReadOnly

Semua akun utama yang memiliki salah satu izin sebelumnya dapat memulihkan data dari snapshot atau snapshot instan dalam project Anda ke project yang dikontrol, termasuk project yang berada di organisasi berbeda. Misalnya, jika pihak tidak bertanggung jawab mendapatkan peran IAM snapshot dalam project Anda, mereka dapat memulihkan snapshot tersebut dalam project pribadi mereka dan mengakses data yang terdapat dalam snapshot tersebut.

Untuk mempelajari cara memeriksa izin yang dimiliki akun utama, lihat Menentukan akun utama yang memiliki peran atau izin tertentu.

Mempersiapkan snapshot yang konsisten

Jika Anda membuat snapshot Persistent Disk atau Hyperdisk saat aplikasi sedang berjalan, snapshot tersebut mungkin tidak menangkap penulisan tertunda yang sedang transit dari memori ke disk. Karena inkonsistensi ini, snapshot mungkin tidak mencerminkan status persis aplikasi Anda pada saat Anda mengambil snapshot. Dalam skenario ini, snapshot dianggap konsistensi error karena merekam status aplikasi seolah-olah mesin mengalami error pada saat snapshot diambil.

Jika ingin, Anda dapat menjeda aplikasi sehingga semua transaksi aplikasi selesai dan sistem dapat menghapus semua penulisan yang tertunda dari memori ke disk sebelum snapshot diambil. Dalam skenario ini, snapshot dianggap konsisten aplikasi.

Membuat snapshot yang konsisten saat terjadi error

Saat mengambil snapshot Persistent Disk atau Hyperdisk, Anda tidak perlu melakukan langkah tambahan apa pun untuk membuat error snapshot konsisten. Secara khusus, Anda tidak perlu menjeda beban kerja.

Jika beban kerja Anda tidak dapat menoleransi jeda sementara, pertimbangkan proses berikut untuk membuat snapshot yang konsisten untuk error:

  1. Ambil snapshot saat aplikasi sedang berjalan, dengan asumsi akan ada beberapa inkonsistensi data aplikasi.
  2. Pastikan Anda dapat memulihkan beban kerja ke status aplikasi yang dapat diterima dari snapshot.
  3. Berdasarkan langkah sebelumnya, pertahankan atau hapus snapshot.

Snapshot yang konsisten saat error mungkin memerlukan pemutaran ulang sistem file dan jurnal level aplikasi sebelum digunakan. Oleh karena itu, kualitas snapshot bergantung pada kemampuan aplikasi untuk memulihkan dengan cepat dari status konsisten error kembali ke penayangan.

Membuat snapshot yang konsisten untuk operasi aplikasi

  • Pengguna Windows Server: Untuk disk yang terpasang ke instance Windows Server, gunakan snapshot VSS.
  • Pengguna Linux: Guna mencapai konsistensi aplikasi untuk snapshot disk yang terpasang ke instance Linux, buat skrip shell snapshot sebelum dan sesudah snapshot guna mempersiapkan sistem Anda untuk konsistensi aplikasi. Kemudian, buat snapshot dengan opsi guest-flush diaktifkan. Tindakan ini akan menjalankan skrip pra dan pasca sebelum dan sesudah snapshot diambil. Untuk mengetahui petunjuknya, lihat Membuat snapshot yang konsisten di aplikasi Linux.

Membuat secara manual snapshot yang konsisten untuk operasi aplikasi

Dalam beberapa skenario, Anda mungkin perlu menjeda aplikasi secara manual untuk mencapai snapshot yang konsisten dengan aplikasi.

Misalnya, gunakan opsi ini jika Anda memerlukan konsistensi aplikasi antara beberapa volume Persistent Disk atau Hyperdisk. Dalam hal ini, Anda harus membekukan semua sistem file pada setiap disk dan menyelesaikan semua snapshot untuk disk tersebut sebelum melanjutkan aplikasi.

Anda tidak perlu menghentikan VM. Jeda aplikasi dapat menyebabkan, misalnya, membekukan dan melepas sistem file. Setelah Anda menjeda aplikasi secara manual, lanjutkan workload Anda hanya setelah resource snapshot mencapai status UPLOADING.

Saat Anda meminta snapshot, periksa status operasi dengan memanggil metode globalOperations.get. Tabel berikut menunjukkan hubungan antara status operasi snapshot dan status resource snapshot.

Status operasi Status resource snapshot
PENDING Belum ada resource snapshot.
RUNNING CREATING atau UPLOADING

CREATING: Pembuatan snapshot belum selesai.
UPLOADING: Snapshot telah dibuat tetapi belum disimpan ke Cloud Storage.
DONE FAILED atau READY.

Batas frekuensi snapshot

Ada batasan frekuensi pengambilan snapshot disk.

Membuat snapshot dari Persistent Disk atau Hyperdisk

Anda dapat mengambil snapshot disk maksimal sekali setiap 10 menit. Jika ingin mengirimkan burst permintaan untuk mengambil snapshot disk, Anda dapat mengirimkan maksimal 6 permintaan dalam 60 menit.

Jika batas terlampaui, operasi akan gagal dan menampilkan error berikut:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'.
Too frequent operations from the source resource."

Batas ini berlaku untuk operasi berikut:

Batas ini tidak berlaku untuk operasi berikut:

Sebagai praktik terbaik, ambil snapshot disk sekali per jam. Hindari mengambil snapshot lebih sering dari itu. Cara termudah untuk mencapainya adalah dengan mengatur jadwal snapshot.

Membuat disk zona baru dari snapshot

Anda dapat membuat Persistent Disk atau Hyperdisk zona baru dari snapshot tertentu per zona target paling banyak sekali dalam sepuluh menit. Zona target mengacu pada lokasi penyimpanan disk baru yang dibuat dari snapshot. Google Cloud tidak menjamin bahwa Anda akan dapat membuat disk dari snapshot dengan kecepatan lebih cepat dari itu, meskipun Anda mungkin dapat membuat disk lebih sering jika Anda belum membuat disk apa pun dari snapshot dalam waktu satu jam terakhir.

Perhatikan bahwa beberapa snapshot disk yang sama dianggap sebagai snapshot berbeda sehubungan dengan batas frekuensi ini.

Jika batas ini terlampaui, operasi akan gagal dan menampilkan error berikut:

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."

Batas ini berlaku untuk operasi berikut:

Batas ini tidak berlaku untuk operasi berikut:

  • Membuat Persistent Disk regional baru dari snapshot.
  • Membuat Persistent Disk zona atau regional baru menggunakan image sebagai sumber.

Untuk membuat beberapa disk dari snapshot, gunakan snapshot tersebut untuk membuat image, lalu buat disk Anda dari image tersebut:

  1. Buat image dari snapshot.
  2. Buat disk dari image.

Untuk disk non-boot, ikuti petunjuk untuk membuat persistent disk dari image dan ikuti langkah-langkah berikut:

  • Di konsol Google Cloud, pilih Image sebagai disk Source type.
  • Dengan gcloud CLI, gunakan flag image.
  • Jika menggunakan REST, gunakan parameter sourceImage.

Menggunakan snapshot yang ada sebagai baseline untuk snapshot berikutnya

Jika Anda sudah memiliki snapshot disk (Persistent Disk atau Hyperdisk), sistem akan otomatis menggunakannya sebagai dasar pengukuran untuk snapshot berikutnya yang Anda buat dari disk yang sama.

  • Buat snapshot baru dari disk sebelum Anda menghapus snapshot sebelumnya dari disk yang sama. Sistem dapat membuat snapshot baru dengan lebih cepat jika dapat menggunakan snapshot sebelumnya dan hanya membaca data baru atau data yang diubah dari disk.
  • Tunggu hingga snapshot baru selesai sebelum Anda mengambil snapshot berikutnya dari disk yang sama. Jika Anda menjalankan dua snapshot secara bersamaan di disk yang sama, keduanya dimulai dari dasar pengukuran dan upaya duplikat yang sama. Jika Anda menunggu snapshot baru selesai, snapshot berikutnya akan berjalan lebih cepat karena hanya mendapatkan data yang telah berubah sejak snapshot terakhir selesai.

Menjadwalkan snapshot di luar jam sibuk

Jika Anda menjadwalkan snapshot reguler untuk disk (Persistent Disk atau Hyperdisk), Anda dapat mengurangi waktu yang diperlukan untuk menyelesaikan setiap snapshot dengan membuatnya di luar jam sibuk jika memungkinkan.

  • Jadwalkan snapshot otomatis selama hari kerja di zona tempat disk Anda berada. Pembuatan snapshot biasanya mencapai puncaknya pada akhir hari kerja.
  • Jadwalkan snapshot otomatis pagi-pagi sekali di zona tempat disk Anda berada, bukan langsung tengah malam. Pembuatan snapshot biasanya mencapai puncaknya pada tengah malam.

Mengatur data Anda di {i>disk<i} yang terpisah.

Jika Anda membuat snapshot disk (Persistent Disk atau Hyperdisk), data apa pun yang Anda simpan di disk akan disertakan dalam snapshot. Jumlah data yang lebih besar akan menghasilkan snapshot yang lebih besar, yang biayanya lebih mahal dan waktu pembuatannya lebih lama. Untuk memastikan Anda membuat snapshot yang hanya berisi data yang Anda butuhkan, atur data Anda pada disk yang terpisah.

  • Simpan data penting pada disk sekunder, atau data, daripada {i>boot disk<i} Anda. Dengan demikian, Anda dapat membuat snapshot boot disk hanya saat diperlukan atau pada jadwal yang lebih jarang.
  • Jika Anda membuat snapshot boot disk, simpan partisi swap, file halaman, file cache, dan log yang tidak penting di disk terpisah. File dan partisi ini sering berubah, dan proses snapshot kemungkinan akan mengidentifikasinya sebagai data yang diubah yang harus disertakan dalam snapshot inkremental.
  • Kurangi jumlah snapshot yang perlu Anda buat dengan menyimpan data yang serupa bersama-sama di satu disk. Pisahkan sistem operasi dan data volatil Anda dari data yang ingin di-snapshot, tetapi Anda tidak perlu mendistribusikan data penting di beberapa disk seperti yang Anda lakukan untuk mesin fisik. Satu disk besar dapat mencapai performa yang sama seperti beberapa disk kecil dengan ukuran total yang sama.

Aktifkan opsi discard atau jalankan fstrim di disk Anda

Pada instance Linux, jika Anda tidak memformat dan memasang disk (Persistent Disk atau Hyperdisk) dengan opsi hapus, jalankan perintah fstrim pada instance sebelum Anda membuat snapshot. Perintah ini menghapus blok yang tidak lagi diperlukan sistem file, sehingga sistem dapat membuat snapshot lebih cepat dan dengan ukuran yang lebih kecil. Untuk mempelajari cara mengonfigurasi opsi penghapusan pada disk, lihat Memformat dan memasang disk non-booting di VM Linux.

Membuat image snapshot yang sering digunakan

Jika Anda berulang kali menggunakan snapshot di zona yang sama untuk membuat disk (Persistent Disk atau Hyperdisk), hemat biaya jaringan dengan menggunakan snapshot satu kali dan membuat image snapshot tersebut. Simpan image ini dan gunakan untuk membuat disk Anda dan memulai instance VM. Untuk mengetahui petunjuknya, lihat Membuat image kustom.

Sebagai praktik terbaik, ambil snapshot disk sekali per jam. Hindari mengambil snapshot lebih sering dari itu. Cara termudah untuk mencapainya adalah dengan menyiapkan jadwal snapshot.

Praktik terbaik lainnya

  • Gunakan sistem file jurnal seperti ext4 untuk mengurangi risiko data disimpan di cache tanpa benar-benar ditulis ke persistent disk.
  • Buat snapshot data Anda sesuai jadwal rutin untuk meminimalkan kehilangan data akibat kegagalan tak terduga.

Langkah selanjutnya