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. Izin berikut memungkinkan pengguna membaca dan memulihkan data dari snapshot atau snapshot instan:
compute.snapshots.useReadOnly
compute.instantSnapshots.useReadOnly
Setiap akun utama yang memiliki salah satu izin sebelumnya dapat memulihkan data dari snapshot atau snapshot instan di project Anda ke project yang mereka kontrol, termasuk project yang berada di organisasi lain. Misalnya, jika pelaku buruk memperoleh peran IAM snapshot di project Anda, mereka dapat memulihkan snapshot di project pribadi mereka dan mengakses data yang terdapat dalam snapshot.
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:
- Ambil snapshot saat aplikasi sedang berjalan, dengan asumsi akan ada beberapa inkonsistensi data aplikasi.
- Pastikan Anda dapat memulihkan beban kerja ke status aplikasi yang dapat diterima dari snapshot.
- 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 di 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 setiap disk maksimal 6 kali setiap 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:
- Membuat snapshot Persistent Disk
- Membuat snapshot volume Hyperdisk
- Membuat image dari Persistent Disk
Batas ini tidak berlaku untuk operasi berikut:
- Membuat jadwal untuk snapshot disk. Snapshot terjadwal memiliki pertimbangan frekuensi terpisah dan tidak berkontribusi pada batas frekuensi snapshot.
- Mengimpor image boot disk secara manual
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.
Membuat disk zona baru dari snapshot
Anda dapat membuat Persistent Disk atau Hyperdisk zona baru dari snapshot tertentu per zona target maksimal sekali setiap 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 yang lebih cepat dari itu, meskipun Anda mungkin dapat membuat disk lebih sering jika belum membuat disk apa pun dari snapshot dalam satu jam terakhir.
Perhatikan bahwa beberapa snapshot dari disk yang sama dianggap sebagai snapshot yang berbeda berdasarkan 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:
Untuk disk non-booting, ikuti petunjuk untuk membuat persistent disk dari image dan gunakan langkah-langkah berikut:
- Di konsol Google Cloud, pilih Image sebagai Source type disk.
- 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 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 pada disk yang sama, keduanya akan 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 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.
- Menjadwalkan 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 pada tengah malam. Pembuatan snapshot biasanya mencapai puncaknya pada tengah malam.
Mengatur data Anda di disk 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 data yang diperlukan saja, atur data Anda di disk terpisah.
- Simpan data penting di disk sekunder, atau data, bukan boot disk. 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, pagefile, file cache, dan log 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 serupa secara bersamaan dalam satu disk. Pisahkan sistem operasi dan data yang tidak stabil dari data yang ingin Anda 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 yang lebih 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 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 hapus di disk, lihat
Memformat dan memasang non-boot disk 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 buat 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
- Pelajari cara membuat snapshot disk.
- Pelajari cara melihat, mencantumkan, membagikan, dan menghapus snapshot.
- Pelajari cara membuat jadwal untuk snapshot disk.