Membuat jadwal untuk snapshot disk


Anda membuat jadwal snapshot untuk mencadangkan Persistent Disk zona dan regional serta Hyperdisk Google Cloud secara rutin dan otomatis. Gunakan jadwal snapshot sebagai praktik terbaik untuk mencadangkan workload Compute Engine Anda.

Jika Anda ingin membuat jadwal snapshot yang merekam status data aplikasi pada saat pencadangan, yang juga disebut sebagai konsisten aplikasi, pengosongan tamu, atau snapshot VSS, lihat Membuat snapshot disk yang konsisten dengan aplikasi Linux atau Membuat snapshot disk yang konsisten dengan aplikasi Windows.

Untuk mengetahui informasi selengkapnya tentang properti jadwal snapshot, lihat Properti jadwal snapshot.

Sebelum memulai

  • Tinjau Batasan untuk jadwal snapshot.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna membuat jadwal snapshot, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat jadwal snapshot. Untuk melihat izin yang benar-benar diperlukan, luaskan 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 melampirkan jadwal snapshot ke disk:
    • compute.disks.addResourcePolicies pada disk
    • compute.resourcePolicies.use pada kebijakan resource
  • Untuk membuat disk dengan jadwal snapshot:
    • compute.disks.create dalam project
    • compute.resourcePolicies.create dalam project
    • compute.disks.addResourcePolicies pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Ringkasan pembuatan jadwal snapshot

Saat membuat jadwal snapshot, buat kebijakan resource yang dapat Anda terapkan ke satu atau beberapa volume Hyperdisk atau Persistent Disk.

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 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

  1. Di Konsol Google Cloud, buka halaman Instance VM.

    Buka instance VM
    Langkah-langkah yang tersisa akan muncul secara otomatis di Konsol Google Cloud.

  2. Pilih project yang berisi instance VM Anda.
  3. Di kolom Nama, klik nama VM yang memiliki persistent disk untuk membuat jadwal snapshot.
  4. Di beberapa Penyimpanan, klik nama Boot disk atau Disk tambahan untuk membuat jadwal snapshot.
  5. Klik Edit. Anda mungkin perlu mengklik menu Tindakan lainnya, lalu Edit.
  6. Di Jadwal snapshot, pilih Buat jadwal.
  7. Di bagian Name, masukkan salah satu nama berikut untuk jadwal snapshot:
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. 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:

    1. 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.
    2. 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.

  9. Untuk menyelesaikan pembuatan jadwal snapshot, klik Buat.
  10. 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 nilai 1 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 menggunakan flag --weekly-schedule-from-file dan menentukan waktu mulai dalam file, Anda tidak perlu menyertakan flag ini.

  • SNAPSHOT_INTERVAL: interval antara pembuatan snapshot berturut-turut. Flag frekuensi snapshot hourly-schedule, daily-schedule, weekly-schedule, dan weekly-schedule-from-file bersifat eksklusif satu sama lain. 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 ke 12, berarti snapshot dibuat setiap 12 jam.
    • Tetapkan jadwal mingguan dengan flag --weekly-schedule yang ditetapkan ke hari dalam seminggu yang Anda inginkan untuk membuat snapshot. Anda harus menguraikan hari kerja; nilai-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 yang berbeda dalam minggu dan dengan waktu mulai yang berbeda dengan menyertakan tanda --weekly-schedule-from-file. Ganti FILE_NAME dengan nama file yang berisi jadwal snapshot mingguan. Meskipun Anda 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 di 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 di command line. Jadwal menggunakan zona waktu UTC.

  • 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, tentukan apply-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 default keep-auto-snapshots untuk menyimpan secara permanen semua snapshot yang dihasilkan secara otomatis. Alternatifnya adalah menetapkan flag ini ke apply-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 dan media=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 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 project
  • REGION: lokasi kebijakan resource jadwal snapshot
  • SCHEDULE_DESCRIPTION: deskripsi jadwal snapshot
  • SCHEDULE_NAME: nama jadwal snapshot
  • STORAGE_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 menyetel 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 membuat jadwal, lampirkan ke disk yang ada. Gunakan konsol, gcloud CLI, atau Compute Engine API.

Konsol

Lampirkan jadwal snapshot ke disk yang ada.

  1. Di konsol Google Cloud, buka halaman Disks.

    Buka Disk

  2. Pilih nama disk tempat Anda ingin melampirkan jadwal snapshot. Tindakan ini akan membuka halaman Kelola disk.

  3. Di halaman Manage disk, klik Edit. Anda mungkin perlu mengklik menu More actions terlebih dahulu.

  4. Gunakan menu drop-down Snapshot schedule untuk menambahkan jadwal ke disk. Atau buat jadwal baru.

  5. Jika Anda membuat jadwal baru, klik Create.

  6. 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 ada
  • SCHEDULE_NAME: nama jadwal snapshot
  • ZONE: 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 project
  • ZONE: zona tempat disk berada
  • REGION: region tempat jadwal snapshot dibuat
  • DISK_NAME: nama disk
  • SCHEDULE_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

  1. Di konsol Google Cloud, buka halaman Disks.

    Buka Disk

  2. Klik Buat Disk.

  3. Lengkapi kolom wajib diisi untuk membuat disk zona atau regional.

  4. Buat disk di region yang sama dengan jadwal snapshot Anda.

  5. Isi kolom untuk Jadwal snapshot Anda.

  6. Gunakan menu drop-down dan lengkapi kolom untuk membuat jadwal.

  7. Klik Buat untuk membuat jadwal.

  8. Klik Create untuk membuat disk.

gcloud

Gunakan perintah gcloud disks create untuk membuat Persistent Disk atau Hyperdisk zona atau regional dan sertakan jadwal snapshot.

gcloud compute disks create DISK_NAME \
     --resource-policies SCHEDULE_NAME \
     --zone ZONE

Ganti kode berikut:

  • DISK_NAME: nama disk baru
  • SCHEDULE_NAME: nama jadwal snapshot
  • ZONE: lokasi Anda membuat disk. Disk harus berada di zona yang berada di region yang sama dengan jadwal snapshot.

Langkah selanjutnya