Membuat jadwal untuk snapshot disk


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

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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:

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

  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 Anda menggunakan tanda --weekly-schedule-from-file dan menentukan waktu mulai dalam file, Anda tidak perlu menyertakan tanda ini.

  • SNAPSHOT_INTERVAL: interval antara pembuatan snapshot yang berurutan. Tanda frekuensi snapshot hourly-schedule, daily-schedule, weekly-schedule, dan weekly-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 ke 12, 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. Ganti FILE_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.

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

  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 Tindakan lainnya 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: wilayah 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 melampirkan jadwal snapshot ke dalamnya.

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 sama dengan region snapshot.

Langkah selanjutnya