Membuat snapshot disk yang konsisten untuk aplikasi Windows

Di Compute Engine, Anda dapat menggunakan snapshot untuk mencadangkan data disk. Karena snapshot bersifat inkremental, Anda dapat membuatnya dengan performa yang lebih tinggi dan total biaya penyimpanan yang lebih rendah dibandingkan dengan membuat disk image lengkap.

Snapshot Konsisten aplikasi merekam status data aplikasi pada saat pencadangan dengan semua transaksi aplikasi selesai dan semua penulisan yang tertunda di-flush ke disk. Di VM Windows, Anda menggunakan Volume Shadow Copy Service (VSS) untuk membuat snapshot yang konsisten di aplikasi tanpa terlebih dahulu menghentikan instance atau melepaskan disk dari VM.

Sebelum memulai

  • Buat instance Windows.
  • Tinjau praktik terbaik untuk membuat 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

Batasan

Snapshot disk di Windows memiliki batasan berikut:

  • Snapshot VSS hanya berfungsi pada instance Windows dengan image versi v20160810 dan yang lebih baru. Untuk instance dengan gambar lama, buat snapshot tanpa menggunakan VSS.
  • Disk yang terpasang harus menggunakan sistem file NTFS, exFAT, atau ReFS.
  • Snapshot VSS membantu mempertahankan data hanya jika Anda menjalankan aplikasi yang mendukung VSS yang dapat berkoordinasi untuk membuat cadangan data yang konsisten.
  • Jika operasi snapshot VSS tidak selesai dalam 300 detik, snapshot akan gagal karena error waktu tunggu habis.

Membuat snapshot Windows VSS

Anda dapat membuat snapshot Volume Shadow Copy Service (VSS) tanpa harus menghentikan instance atau melepaskan disk dari VM. Snapshot VSS ditujukan untuk tujuan pencadangan dan pemulihan pada sistem dengan aplikasi yang peka terhadap VSS.

Snapshot VSS memiliki harga yang sama dengan snapshot Persistent Disk atau Hyperdisk biasa, dan hanya mengenakan biaya untuk ukuran total snapshot.

Buat snapshot

Konsol

  1. Buka halaman Create a Snapshot di Konsol Google Cloud.

    Buka halaman Create a Snapshot
  2. Masukkan Name snapshot.
  3. Pilih Snapshot type. Defaultnya adalah snapshot STANDARD, yang merupakan opsi terbaik untuk pencadangan jangka panjang dan pemulihan dari bencana (disaster recovery).

    Pilih Archive snapshot untuk retensi data yang lebih hemat biaya.

  4. Opsional: Masukkan Deskripsi snapshot.
  5. Di bagian Source disk, pilih disk yang ada, yang ingin Anda buatkan snapshot-nya.
  6. Di bagian Location, pilih lokasi penyimpanan snapshot Anda.

    Lokasi default yang telah ditentukan sebelumnya atau disesuaikan yang ditentukan di 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 lebih tinggi dengan biaya lebih tinggi.
      • Pilih Snapshot regional untuk mendapatkan kontrol lebih besar atas lokasi fisik data dengan biaya yang lebih rendah.
    2. Di kolom Select location, pilih region atau multi-region tertentu yang ingin Anda gunakan. Untuk menggunakan region atau multi-region yang terdekat dengan disk sumber, pilih Based on disk's location.
  7. Centang opsi Aktifkan snapshot konsisten aplikasi.
  8. Klik Create untuk membuat snapshot.

gcloud

Untuk membuat snapshot VSS, gunakan perintah gcloud compute snapshots create dan sertakan flag --guest-flush.

Anda dapat membuat snapshot dalam kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot Anda atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda, gunakan perintah gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --guest-flush
    
  • Atau, untuk mengganti setelan snapshot dan membuat snapshot di lokasi penyimpanan kustom, sertakan flag --storage-location untuk menunjukkan tempat untuk menyimpan snapshot Anda.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION \
        --guest-flush
    

    Ganti kode berikut:

    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_ZONE: Zona disk sumber.
    • SOURCE_DISK_NAME: Nama volume disk tempat Anda ingin membuat snapshot.
    • SNAPSHOT_TYPE: Jenis snapshot, STANDARD atau Arsip. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.
    • STORAGE_LOCATION: Opsional: Multi-region Cloud Storage atau region Cloud Storage tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.

      Gunakan parameter --storage-location hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.

    Untuk membuat snapshot VSS dari Persistent Disk regional, pada contoh sebelumnya, ganti --source-disk-zone= dengan --source-disk-region=, dan tentukan region tempat Persistent Disk regional Anda berada.

    Google Cloud CLI akan menunggu hingga operasi menampilkan status READY, FAILED, atau mencapai waktu tunggu maksimum dan menampilkan detail snapshot terakhir yang diketahui.

REST

Saat membuat snapshot, untuk menunjukkan bahwa Anda ingin membuat snapshot VSS, sertakan properti guestFlush dalam isi permintaan untuk permintaan POST ke metode compute.snapshots.insert.

Anda dapat membuat snapshot dalam kebijakan lokasi penyimpanan yang ditentukan oleh setelan snapshot Anda atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda, buat permintaan POST ke metode snapshots.insert:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "guestFlush": true,
    }
    
  • Atau, untuk mengganti setelan snapshot dan membuat snapshot di lokasi penyimpanan kustom, buat permintaan POST ke metode snapshots.insert dan sertakan properti storageLocations dalam permintaan Anda:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "storageLocations": [
          "STORAGE_LOCATION"
      ],
      "guestFlush": true,
    }
    

Ganti kode berikut:

  • DESTINATION_PROJECT_ID: ID project tempat Anda ingin membuat snapshot.
  • SNAPSHOT_NAME: Nama untuk snapshot.
  • SOURCE_PROJECT_ID: ID project disk sumber.
  • SOURCE_ZONE: Zona disk sumber.
  • SOURCE_DISK_NAME: Nama volume disk tempat Anda ingin membuat snapshot.
  • SNAPSHOT_TYPE: Jenis snapshot, STANDARD atau Arsip. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.
  • STORAGE_LOCATION: Opsional: Multi-region Cloud Storage atau region Cloud Storage tempat Anda ingin menyimpan snapshot. Anda hanya dapat menentukan satu lokasi penyimpanan.

    Gunakan parameter storageLocations hanya jika Anda ingin mengganti lokasi penyimpanan default yang telah ditentukan sebelumnya atau disesuaikan yang dikonfigurasi di setelan snapshot Anda.

Untuk membuat snapshot VSS dari Persistent Disk regional, pada permintaan POST yang ditampilkan sebelumnya, ganti baris berikut:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Sebagai gantinya, gunakan baris ini saat membuat snapshot Persistent Disk regional:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Opsional: Menandai disk Anda sebagai tersedia untuk dibaca dan ditulis

Saat Anda membuat snapshot VSS, Windows Server akan menandai volume dalam snapshot sebagai hanya baca. Saat Anda membuat disk baru dari snapshot VSS, disk tersebut juga akan disetel ke mode hanya baca.

Hal ini dapat menyebabkan masalah. Misalnya, jika Anda membuat instance VM dengan boot disk baru dari snapshot VSS boot disk yang sudah ada, flag hanya baca pada boot disk baru akan mencegah VM melakukan booting dengan benar.

Untuk mengatasi masalah ini, hapus flag hanya baca dari disk baru yang Anda buat dari snapshot VSS menggunakan langkah-langkah berikut:

  1. Pastikan disk terpasang ke VM:

    • Jika disk yang Anda buat dari snapshot VSS adalah disk data non-boot, Anda dapat memasang disk tersebut ke VM baru atau yang sudah ada.
    • Jika disk yang Anda buat dari snapshot VSS adalah boot disk dan Anda ingin menggunakannya untuk mem-booting VM, Anda harus memasang disk untuk sementara ke VM terpisah yang sudah ada. Setelah menyelesaikan langkah-langkah berikut, Anda dapat melepaskan disk dari VM tersebut dan menggunakannya untuk mem-booting instance VM baru.
  2. Login ke VM Windows tempat disk terpasang.

  3. Buka command prompt PowerShell, lalu jalankan alat diskpart.

    PS C:\> diskpart
    
  4. Identifikasi disk yang ingin dipasang.

    DISKPART> list disk
    
  5. Gunakan perintah select disk untuk memilih disk.

    DISKPART> select disk DISK_NUMBER
    

    Ganti DISK_NUMBER dengan nomor disk yang ingin Anda pasang.

  6. Pasang disk.

    DISKPART> online disk
    
  7. Menampilkan daftar semua volume di {i>disk<i}.

    DISKPART> list volume
    
  8. Pilih volume baru.

    DISKPART> select volume VOLUME_NUMBER
    

    Ganti VOLUME_NUMBER dengan jumlah volume yang akan dikonfigurasi sebagai baca dan tulis.

  9. Hapus tanda hanya baca.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Keluar dari alat diskpart.

    DISKPART> exit
    
  11. Jika disk adalah boot disk untuk VM lain, sinkronkan file boot disk dengan tanda tangan disk baru.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Ganti DRIVE_LETTER dengan huruf drive untuk volume yang ingin Anda sinkronkan. Misalnya, F untuk F:\.

Membuat snapshot tanpa menggunakan VSS

Dalam beberapa situasi, Anda mungkin ingin membuat snapshot disk yang terpasang ke VM Windows tanpa menggunakan VSS.

Untuk membuat snapshot disk di VM Windows tanpa menggunakan VSS, lakukan langkah berikut:

  1. Siapkan sistem untuk snapshot yang sempurna.
  2. Buat snapshot.
  3. Memasang kembali disk
  4. Menandai disk sebagai tersedia untuk dibaca/ditulis

Menyiapkan sistem untuk snapshot yang sempurna

Sebelum membuat snapshot disk, pastikan Anda mengambil snapshot yang konsisten dengan status disk yang Anda inginkan. Jika Anda mengambil snapshot disk dalam keadaan "tidak bersih", tindakan ini dapat memaksa pemeriksaan disk dan kemungkinan menyebabkan kehilangan data. Pertimbangkan untuk menyinkronkan dan melepas sistem file Anda.

Menyinkronkan sistem file

Jika pelepasan disk tidak memungkinkan, seperti dalam skenario saat aplikasi mungkin menulis data ke disk, Anda dapat menyinkronkan sistem file untuk menghapus buffer disk. Untuk menyinkronkan sistem file Anda:

  1. Login ke VM Windows Anda.
  2. Download dan instal alat Sync dari Microsoft.
  3. Menghentikan aplikasi Anda dari menulis ke disk.
  4. Buka jendela command prompt yang lebih tinggi.
  5. Di jendela command line, jalankan:

    PS C:\> sync DRIVE_LETTER
    

    Ganti DRIVE_LETTER dengan huruf drive untuk volume yang ingin Anda sinkronkan. Misalnya, F untuk F:\.

Melepaskan disk

  1. Login ke VM Windows Anda.

  2. Buka command prompt PowerShell, lalu jalankan alat diskpart.

    PS C:\> diskpart
    
  3. Identifikasi disk yang ingin Anda lepaskan dan ambil snapshot-nya.

    DISKPART> list disk
    
  4. Selanjutnya, pilih {i>disk<i} menggunakan nomor {i>disk<i} yang baru saja Anda temukan.

    DISKPART> select disk DISK_NUMBER
    

    Ganti DISK_NUMBER dengan nomor disk yang ingin Anda pasang kembali.

  5. Lepaskan disk.

    DISKPART> offline disk
    

Membuat snapshot

Pasang kembali disk Anda

  1. Login ke VM Windows Anda.

  2. Buka command prompt PowerShell, lalu jalankan alat diskpart.

    PS C:\> diskpart
    
  3. Identifikasi disk yang ingin dipasang.

    DISKPART> list disk
    
  4. Gunakan perintah select disk untuk memilih disk.

    DISKPART> select disk DISK_NUMBER
    

    Ganti DISK_NUMBER dengan nomor disk yang ingin Anda pasang.

  5. Pasang disk.

    DISKPART> online disk
    

Menghapus flag hanya-baca dari disk

  1. Jika perlu, selesaikan langkah-langkah berikut:

    1. Login ke VM Windows Anda.

    2. Buka command prompt PowerShell, lalu jalankan alat diskpart.

      PS C:\> diskpart
      
  2. Menampilkan daftar semua volume di {i>disk<i}.

    DISKPART> list volume
    
  3. Pilih volume baru.

    DISKPART> select volume VOLUME_NUMBER
    

    Ganti VOLUME_NUMBER dengan jumlah volume yang ingin dikonfigurasi untuk baca dan tulis.

  4. Hapus tanda hanya baca.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  5. Keluar dari alat diskpart.

    DISKPART> exit
    
  6. Jika disk adalah boot disk untuk instance VM lain, pada command prompt PowerShell, sinkronkan file boot disk dengan tanda tangan disk baru.

    PS C:\> bcdboot DRIVE_LETTER:\Windows /s DRIVE_LETTER
    

    Ganti DRIVE_LETTER dengan huruf drive untuk volume yang ingin Anda sinkronkan. Misalnya, F untuk F:\.

Langkah selanjutnya