Anda harus membuat jadwal snapshot untuk mencadangkan Persistent Disk zona dan regional serta Google Cloud Hyperdisk secara rutin dan otomatis. Gunakan jadwal snapshot sebagai praktik terbaik untuk mencadangkan workload Compute Engine Anda.
Jika Anda ingin membuat jadwal snapshot yang menangkap status data aplikasi pada saat pencadangan, juga disebut sebagai aplikasi konsisten, guest-flush, atau snapshot VSS, lihat Membuat snapshot disk yang konsisten aplikasi Linux atau Membuat snapshot disk yang konsisten aplikasi Windows.
Untuk mengetahui informasi selengkapnya tentang properti jadwal snapshot, lihat Properti jadwal snapshot.
Sebelum memulai
- Tinjau Batasan untuk jadwal snapshot.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna membuat jadwal snapshot, minta administrator Anda untuk memberi Anda peran IAM berikut pada project:
-
Admin Instance Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Untuk terhubung ke VM yang dapat dijalankan sebagai akun layanan:
Service Account User (v1) (
roles/iam.serviceAccountUser
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat jadwal snapshot. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat jadwal snapshot:
-
Untuk membuat jadwal snapshot:
compute.resourcePolicies.create
di project atau organisasi -
Untuk memasang jadwal snapshot ke disk:
-
compute.disks.addResourcePolicies
pada disk -
compute.resourcePolicies.use
di kebijakan resource
-
-
Untuk membuat disk dengan jadwal snapshot:
-
compute.disks.create
pada project -
compute.resourcePolicies.create
pada project -
compute.disks.addResourcePolicies
pada disk
-
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Ringkasan pembuatan jadwal snapshot
Saat membuat jadwal snapshot, Anda membuat kebijakan resource yang dapat diterapkan ke satu atau beberapa volume Persistent Disk atau Hyperdisk.
Anda dapat membuat jadwal snapshot dengan cara berikut:
Menggunakan enkripsi dengan jadwal snapshot
Jika disk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK), saat Anda menggunakan jadwal snapshot untuk membuat snapshot disk tersebut, semua snapshot yang dibuat akan otomatis dienkripsi dengan kunci yang sama.
Anda tidak dapat menggunakan jadwal snapshot dengan disk yang menggunakan kunci enkripsi yang disediakan pelanggan (CSEK).
Membuat jadwal snapshot
Anda dapat membuat jadwal snapshot untuk disk menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST. Anda harus membuat jadwal snapshot di region yang sama dengan tempat disk Anda berada. Misalnya, jika disk Anda berada di zona us-west1-a
, Anda harus membuat jadwal snapshot di region us-west1
. Namun, Anda dapat memilih untuk menyimpan snapshot yang dihasilkan oleh jadwal snapshot di lokasi yang berbeda.
Konsol
-
Di Konsol Google Cloud, buka halaman Instance VM.
Buka instance VM
Langkah-langkah yang tersisa akan muncul secara otomatis di Konsol Google Cloud. - Pilih project yang berisi instance VM Anda.
- Di kolom Nama, klik nama VM yang memiliki persistent disk untuk membuat jadwal snapshot.
-
Di beberapa
Penyimpanan , klik nama Boot disk atau Disk tambahan untuk membuat jadwal snapshot. - Klik Edit. Anda mungkin perlu mengklik menu Tindakan lainnya, lalu Edit.
- Di Jadwal snapshot, pilih Buat jadwal.
-
Di bagian Name, masukkan salah satu nama berikut untuk jadwal snapshot:
boot-disk-snapshot-schedule
attached-persistent-disk-snapshot-schedule
-
Di bagian Location, pilih lokasi penyimpanan snapshot Anda. Lokasi default bawaan atau yang telah disesuaikan dalam setelan snapshot Anda akan otomatis dipilih. Secara opsional, Anda dapat mengganti setelan snapshot dan menyimpan snapshot Anda di lokasi penyimpanan kustom dengan melakukan hal berikut:
-
Pilih jenis lokasi penyimpanan yang diinginkan untuk snapshot Anda.
-
Pilih Multi-regional
untuk ketersediaan yang lebih tinggi dengan biaya lebih tinggi.
- Pilih Snapshot regional untuk mendapatkan kontrol lebih besar atas lokasi fisik data Anda dengan biaya yang lebih rendah.
-
Pilih Multi-regional
untuk ketersediaan yang lebih tinggi dengan biaya lebih tinggi.
-
Di kolom Pilih lokasi, pilih region atau multi-region spesifik yang ingin Anda gunakan. Untuk menggunakan region atau multi-region yang paling dekat dengan disk sumber, pilih Berdasarkan lokasi disk.
-
- Untuk menyelesaikan pembuatan jadwal snapshot, klik Buat.
- Untuk melampirkan jadwal snapshot ini ke persistent disk, klik Simpan.
gcloud
Untuk membuat jadwal snapshot untuk disk, gunakan
perintah gcloud compute resource-policies create snapshot-schedule
.
Tetapkan frekuensi jadwal Anda ke per jam, harian, atau mingguan.
gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
--description "SCHEDULE_DESCRIPTION" \
--max-retention-days MAX_RETENTION_DAYS \
--start-time START_TIME \
--hourly-schedule SNAPSHOT_INTERVAL \
--daily-schedule \
[--weekly-schedule SNAPSHOT_INTERVAL or \
--weekly-schedule-from-file FILE_NAME] \
--on-source-disk-delete DELETION_OPTION \
--storage-location=STORAGE_LOCATION
Ganti kode berikut:
SCHEDULE_NAME
: nama jadwal snapshot.SCHEDULE_DESCRIPTION
: deskripsi jadwal snapshot. Gunakan kutipan untuk deskripsi Anda.MAX_RETENTION_DAYS
: jumlah hari untuk mempertahankan snapshot.Misalnya, nilai
3
berarti snapshot dipertahankan selama 3 hari sebelum dihapus. Anda harus menggunakan nilai1
atau lebih tinggi.START_TIME
: waktu mulai dalam zona waktu UTC. Waktu harus dimulai di awal jam.Contoh:
- Pukul 14.00 PST harus ditentukan sebagai
22:00
. - Jika Anda menetapkan waktu mulai
22:13
, Anda akan menerima error.
Jika Anda menggunakan tanda
--weekly-schedule-from-file
dan menentukan waktu mulai dalam file, Anda tidak perlu menyertakan tanda ini.- Pukul 14.00 PST harus ditentukan sebagai
SNAPSHOT_INTERVAL
: interval antara pembuatan snapshot yang berurutan. Tanda frekuensi snapshothourly-schedule
,daily-schedule
,weekly-schedule
, danweekly-schedule-from-file
bersifat saling eksklusif. Anda hanya dapat menggunakan satu opsi untuk jadwal snapshot Anda.- Tetapkan jadwal harian dengan menyertakan flag
--daily-schedule
tanpa nilai apa pun. - Tetapkan jadwal per jam dengan flag
--hourly-schedule
yang ditetapkan ke nilai bilangan bulat antara 1 dan 23. Untuk membuat snapshot pada waktu yang sama setiap hari, pilih angka per jam yang dibagi merata menjadi 24. Misalnya, menetapkan--hourly-schedule
ke12
, berarti snapshot dibuat setiap 12 jam. - Tetapkan jadwal mingguan dengan tanda
--weekly-schedule
yang ditetapkan ke hari ketika Anda ingin snapshot dibuat. Anda harus mengeja hari kerja; nilainya tidak peka huruf besar/kecil. Misalnya, untuk mencadangkan disk setiap hari Jumat, perintah Anda akan menyertakan--weekly-schedule=friday
. Tetapkan jadwal mingguan lanjutan, yang menentukan hari lain dalam seminggu dan waktu mulai yang berbeda dengan menyertakan flag
--weekly-schedule-from-file
. GantiFILE_NAME
dengan nama file yang berisi jadwal snapshot mingguan. Meskipun dapat menentukan hari yang berbeda dalam seminggu dan waktu mulai yang berbeda menggunakan file, Anda tidak dapat menentukan beberapa jadwal mingguan langsung di command line. Misalnya, file Anda mungkin menentukan dua jadwal mingguan, pada hari Senin dan Rabu, tetapi Anda tidak dapat menduplikasi setelan ini pada command line:[ {"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"} ]
Jika menyertakan waktu mulai dalam file, Anda tidak perlu menetapkan tanda
--start-time
pada command line. Jadwal menggunakan zona waktu UTC.
- Tetapkan jadwal harian dengan menyertakan flag
DELETION_OPTION
: menentukan apa yang terjadi pada snapshot jika disk sumber dihapus. Jika ingin menyimpan semua snapshot yang dihasilkan, Anda dapat menghilangkan flag ini. Jika tidak, tentukanapply-retention-policy
untuk menggunakan setelan dalam kebijakan retensi.STORAGE_LOCATION
: Opsional: lokasi penyimpanan. Jika Anda menghapus flag ini, lokasi penyimpanan default akan digunakan.
Contoh
Dalam semua contoh berikut:
- Aturan penghapusan disk disertakan; flag
--on-source-disk-delete
disetel ke defaultkeep-auto-snapshots
untuk menyimpan secara permanen semua snapshot yang dihasilkan secara otomatis. Alternatifnya adalah menetapkan flag ini keapply-retention-policy
untuk menggunakan kebijakan retensi snapshot Anda. - Lokasi penyimpanan ditetapkan secara manual ke
US
, sehingga semua snapshot yang dihasilkan disimpan di multi-region AS. - Label
env=dev
danmedia=images
diterapkan ke semua snapshot yang dihasilkan. - Kebijakan retensi disetel ke 10 hari.
Jadwal per jam: Dalam contoh ini, jadwal snapshot dimulai pada pukul 22.00 UTC (14.00 PST) dan terjadi setiap 4 jam.
gcloud compute resource-policies create snapshot-schedule hourly-schedule1 \
--description "MY HOURLY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--hourly-schedule 4 \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
Jadwal harian: Dalam contoh ini, jadwal snapshot dimulai pada pukul 22.00
UTC (14.00 PST) dan terjadi setiap hari pada waktu yang sama. Flag
--daily-schedule
harus ada, tetapi tanpa nilai terkait.
gcloud compute resource-policies create snapshot-schedule daily-schedule2 \
--description "MY DAILY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--daily-schedule \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
Jadwal mingguan: Dalam contoh ini, jadwal snapshot dimulai pada pukul 22.00 UTC (14.00 PST) dan terjadi setiap minggu pada hari Selasa.
gcloud compute resource-policies create snapshot-schedule weekly-schedule3 \
--description "MY WEEKLY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--weekly-schedule tuesday \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
REST
Untuk membuat jadwal snapshot, buat permintaan POST
ke
resourcePolicies.insert
.
Anda harus menyertakan nama jadwal snapshot dan frekuensi snapshot.
Anda juga dapat menentukan lokasi penyimpanan snapshot secara manual dan menambahkan label resource dalam permintaan.
Secara default, parameter onSourceDiskDelete
ditetapkan ke
keepAutoSnapshots
. Artinya, jika disk sumber dihapus,
snapshot yang dihasilkan secara otomatis untuk disk tersebut akan dipertahankan tanpa batas waktu.
Atau, Anda dapat menetapkan tanda ke applyRetentionPolicy
untuk menerapkan
kebijakan retensi.
Contoh berikut menetapkan jadwal snapshot harian yang dimulai pada pukul 12.00 UTC (04.00 PST) dan berulang setiap hari. Contoh ini juga menetapkan kebijakan retensi selama 5 hari; setelah 5 hari, snapshot akan otomatis dihapus.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "SCHEDULE_NAME",
"description": "SCHEDULE_DESCRIPTION",
"snapshotSchedulePolicy": {
"schedule": {
"dailySchedule": {
"startTime": "12:00",
"daysInCycle": "1"
}
},
"retentionPolicy": {
"maxRetentionDays": "5"
},
"snapshotProperties": {
"guestFlush": "False",
"labels": {
"env": "dev",
"media": "images"
},
"storageLocations": "STORAGE_LOCATION"
}
}
}
Ganti kode berikut:
PROJECT_ID
: nama projectREGION
: lokasi kebijakan resource jadwal snapshotSCHEDULE_DESCRIPTION
: deskripsi jadwal snapshotSCHEDULE_NAME
: nama jadwal snapshotSTORAGE_LOCATION
: Opsional: lokasi penyimpanan. Jika Anda menghapus flag ini, lokasi penyimpanan default akan digunakan.
Demikian pula, Anda dapat membuat jadwal mingguan atau bulanan. Tinjau
metode resourcePolicies.insert
untuk mengetahui detail khusus terkait penetapan jadwal mingguan atau bulanan.
Misalnya, permintaan berikut membuat jadwal mingguan yang berjalan pada hari Selasa pukul 09.00 UTC.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "SCHEDULE_NAME",
"description": "SCHEDULE_DESCRIPTION",
"snapshotSchedulePolicy": {
"schedule": {
"weeklySchedule": {
"dayOfWeeks": [
{
"day": "Tuesday",
"startTime": "9:00"
}
]
}
},
"retentionPolicy": {
"maxRetentionDays": "5"
},
"snapshotProperties": {
"guestFlush": "False",
"labels": {
"production": "webserver"
},
"storageLocations": "US"
}
}
}
Melampirkan jadwal snapshot ke disk
Setelah Anda membuat jadwal, pasang jadwal tersebut ke disk yang ada. Gunakan konsol, gcloud CLI, atau Compute Engine API.
Konsol
Lampirkan jadwal snapshot ke disk yang ada.
Di Konsol Google Cloud, buka halaman Disks.
Pilih nama disk tempat Anda ingin melampirkan jadwal snapshot. Tindakan ini akan membuka halaman Kelola disk.
Di halaman Manage disk, klik
Edit. Anda mungkin perlu mengklik menu Tindakan lainnya terlebih dahulu.Gunakan menu drop-down Snapshot schedule untuk menambahkan jadwal ke disk. Atau buat jadwal baru.
Jika Anda membuat jadwal baru, klik Create.
Klik Save untuk menyelesaikan tugas.
gcloud
Untuk menyertakan jadwal snapshot ke disk, gunakan
perintah gcloud disks add-resource-policies
.
gcloud compute disks add-resource-policies DISK_NAME \
--resource-policies SCHEDULE_NAME \
--zone ZONE
Ganti kode berikut:
DISK_NAME
: nama disk yang adaSCHEDULE_NAME
: nama jadwal snapshotZONE
: lokasi disk Anda
REST
Buat permintaan POST
ke
disks.addResourcePolicies
untuk melampirkan jadwal snapshot ke disk yang ada.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies
{
"resourcePolicies": [
"regions/REGION/resourcePolicies/SCHEDULE_NAME"
]
}
Ganti kode berikut:
PROJECT_ID
: nama projectZONE
: zona tempat disk beradaREGION
: wilayah tempat jadwal snapshot dibuatDISK_NAME
: nama diskSCHEDULE_NAME
: nama jadwal snapshot yang Anda terapkan ke disk ini
Membuat disk dengan jadwal snapshot
Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk membuat disk dan jadwal snapshot secara bersamaan.
Konsol
Di konsol Google Cloud, buka halaman Disks.
Klik Buat Disk.
Lengkapi kolom wajib diisi untuk membuat disk zona atau regional.
Buat disk di region yang sama dengan jadwal snapshot Anda.
Isi kolom untuk Jadwal snapshot Anda.
Gunakan menu drop-down dan lengkapi kolom untuk membuat jadwal.
Klik Buat untuk membuat jadwal.
Klik Create untuk membuat disk.
gcloud
Gunakan perintah gcloud disks create
untuk membuat Persistent Disk atau Hyperdisk zona atau regional dan melampirkan jadwal snapshot ke dalamnya.
gcloud compute disks create DISK_NAME \
--resource-policies SCHEDULE_NAME \
--zone ZONE
Ganti kode berikut:
DISK_NAME
: nama disk baruSCHEDULE_NAME
: nama jadwal snapshotZONE
: lokasi Anda membuat disk. Disk harus berada di zona yang sama dengan region snapshot.
Langkah selanjutnya
- Pelajari cara mengelola jadwal snapshot.
- Pelajari frekuensi snapshot terjadwal, kebijakan retensi, dan aturan penamaan di Tentang jadwal snapshot untuk disk.
- Pelajari cara membuat gambar kustom dari snapshot Anda.
- Pelajari cara melihat log.