Membuat snapshot disk yang konsisten dengan 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 image disk lengkap.

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

Sebelum memulai

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

Batasan

Ringkasan disk di Windows memiliki batasan berikut:

  • Snapshot VSS hanya berfungsi di instance Windows dengan versi gambar v20160810 dan yang lebih baru. Untuk instance dengan image yang lebih lama, buat snapshot tanpa menggunakan VSS.
  • Disk yang terpasang harus menggunakan sistem file NTFS, exFAT, atau ReFS.
  • Snapshot VSS membantu mempertahankan data Anda 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 VSS Windows

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 mendukung VSS.

Harga snapshot VSS sama dengan snapshot Hyperdisk atau Persistent Disk normal, dan hanya mengenakan biaya untuk total ukuran 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.

    Pilih Archive snapshot untuk retensi data yang lebih hemat biaya.

  4. Opsional: Masukkan Deskripsi snapshot.
  5. Pada Source disk, pilih disk yang sudah ada yang ingin Anda buat snapshot-nya.
  6. 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 Select location, 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.
  7. Centang opsi Enable application consistent snapshot.
  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 atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default bawaan 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 tanda --storage-location untuk menunjukkan tempat penyimpanan 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, baik STANDARD atau ARCHIVE. 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, dalam 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 atau menggunakan lokasi penyimpanan alternatif pilihan Anda. Untuk informasi selengkapnya, lihat Memilih lokasi penyimpanan snapshot.

  • Untuk membuat snapshot di lokasi default bawaan 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 disk tempat Anda ingin membuat snapshot.
  • SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. 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, dalam permintaan POST yang ditampilkan sebelumnya, ganti baris berikut:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
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 dari boot disk yang ada, flag hanya baca di 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 non-boot data disk, Anda dapat memasang disk 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 dipasang.

  3. Buka command prompt PowerShell dan 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. Mencantumkan semua volume dalam disk.

    DISKPART> list volume
    
  8. Pilih volume baru.

    DISKPART> select volume VOLUME_NUMBER
    

    Ganti VOLUME_NUMBER dengan nomor 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 hal berikut:

  1. Siapkan sistem untuk snapshot yang sempurna.
  2. Buat snapshot.
  3. Memasang ulang disk
  4. Menandai disk sebagai tersedia untuk operasi baca/tulis

Menyiapkan sistem untuk snapshot yang sempurna

Sebelum membuat snapshot disk, pastikan Anda mengambil snapshot yang konsisten dengan status yang Anda inginkan untuk disk. Jika Anda mengambil snapshot disk dalam status "tidak sempurna", snapshot dapat memaksa pemeriksaan disk dan mungkin menyebabkan hilangnya data. Pertimbangkan untuk menyinkronkan dan melepas sistem file Anda.

Menyinkronkan sistem file

Jika disk tidak dapat dilepas, seperti dalam skenario ketika aplikasi mungkin menulis data ke disk, Anda dapat menyinkronkan sistem file untuk mengosongkan buffer disk. Untuk menyinkronkan sistem file Anda:

  1. Login ke VM Windows Anda.
  2. Download dan instal alat Sync dari Microsoft.
  3. Hentikan aplikasi Anda agar tidak 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 dan jalankan alat diskpart.

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

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

    DISKPART> select disk DISK_NUMBER
    

    Ganti DISK_NUMBER dengan nomor disk yang ingin Anda pasang ulang.

  5. Lepaskan disk.

    DISKPART> offline disk
    

Membuat snapshot

Memasang ulang disk

  1. Login ke VM Windows Anda.

  2. Buka command prompt PowerShell dan 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 diperlukan, selesaikan langkah-langkah berikut:

    1. Login ke VM Windows Anda.

    2. Buka command prompt PowerShell dan jalankan alat diskpart.

      PS C:\> diskpart
      
  2. Mencantumkan semua volume dalam disk.

    DISKPART> list volume
    
  3. Pilih volume baru.

    DISKPART> select volume VOLUME_NUMBER
    

    Ganti VOLUME_NUMBER dengan nomor volume yang ingin Anda konfigurasikan untuk operasi 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, di 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