Mengunggah VHD ke Azure atau menyalin disk terkelola ke wilayah lain - Azure CLI

Berlaku untuk: ✔️ mesin virtual Linux ✔️ mesin virtual Windows ✔️ Set skala fleksibel

Artikel ini menjelaskan cara mengunggah VHD dari komputer lokal Anda ke disk yang dikelola Azure atau menyalin disk terkelola ke wilayah lain, menggunakan AzCopy. Proses ini, unggahan langsung, memungkinkan Anda mengunggah VHD hingga ukuran 32 TiB langsung ke disk yang dikelola. Saat ini, unggahan langsung didukung untuk Ultra Disk, Premium SSD v2, Premium SSD, Standard SSD, dan HDD Standar.

Jika Anda menyediakan solusi cadangan untuk mesin virtual IaaS di Azure, Anda harus menggunakan unggahan langsung untuk memulihkan cadangan pelanggan ke disk yang dikelola. Saat mengunggah VHD dari sumber eksternal ke Azure, kecepatan bergantung pada bandwidth lokal Anda. Saat mengunggah atau menyalin dari mesin virtual Azure, bandwidth Anda akan sama dengan HDD standar.

Unggahan aman dengan ID Microsoft Entra

Jika Anda menggunakan ID Microsoft Entra untuk mengontrol akses sumber daya, Anda sekarang dapat menggunakannya untuk membatasi pengunggahan disk terkelola Azure. Fitur ini tersedia sebagai penawaran GA di semua wilayah. Saat pengguna mencoba mengunggah disk, Azure memvalidasi identitas pengguna yang meminta di ID Microsoft Entra, dan mengonfirmasi bahwa pengguna memiliki izin yang diperlukan. Pada tingkat yang lebih tinggi, administrator sistem dapat mengatur kebijakan di tingkat akun Azure atau langganan, untuk memastikan bahwa identitas Microsoft Entra memiliki izin yang diperlukan untuk mengunggah sebelum mengizinkan disk atau rekam jepret disk diunggah. Jika Anda memiliki pertanyaan tentang mengamankan unggahan dengan ID Microsoft Entra, hubungi email ini: azuredisks@microsoft .com

Prasyarat

Batasan

  • VHD tidak dapat diunggah ke snapshot kosong.
  • Azure Backup saat ini tidak mendukung disk yang diamankan dengan ID Microsoft Entra.
  • Azure Site Recovery saat ini tidak mendukung disk yang diamankan dengan ID Microsoft Entra.

Menetapkan peran RBAC

Untuk mengakses disk terkelola yang diamankan dengan ID Microsoft Entra, pengguna yang meminta harus memiliki peran Operator Data untuk Disk Terkelola, atau peran kustom dengan izin berikut:

  • Microsoft.Compute/disks/download/action
  • Microsoft.Compute/disks/upload/action
  • Microsoft.Compute/snapshots/download/action
  • Microsoft.Compute/snapshots/upload/action

Untuk langkah-langkah mendetail dalam menetapkan peran, lihat Menetapkan peran Azure menggunakan Azure CLI. Untuk membuat atau memperbarui peran kustom, lihat Membuat atau memperbarui peran kustom Azure menggunakan Azure CLI.

Mulai

Jika Anda lebih suka untuk mengunggah disk melalui GUI, Anda dapat melakukannya menggunakan Azure Storage Explorer. Untuk detailnya, lihat: Gunakan Azure Storage Explorer untuk mengelola disk terkelola Azure

Prasyarat

Untuk mengunggah VHD ke Azure, Anda harus membuat disk terkelola kosong yang dikonfigurasi untuk proses pengunggahan ini. Sebelum membuatnya, ada beberapa informasi tambahan yang harus Anda ketahui tentang disk ini.

Disk terkelola semacam ini memiliki dua kondisi unik:

  • ReadToUpload, yang berarti disk siap menerima unggahan, tetapi tidak ada tanda tangan akses aman (SAS) yang dihasilkan.
  • ActiveUpload, yang berarti disk siap untuk menerima unggahan dan SAS telah dihasilkan.

Catatan

Untuk kondisi apa pun, disk terkelola akan ditagih dengan harga HDD standar, terlepas dari jenis disk yang sebenarnya. Contohnya, P10 akan ditagih sebagai S10. Ini akan berlaku sampai revoke-access diperintahkan pada disk terkelola, yang diperlukan untuk melampirkan disk ke VM.

Buat disk terkelola kosong

Sebelum dapat membuat HDD standar kosong untuk pengunggahan, Anda memerlukan ukuran file VHD yang ingin Anda unggah, dalam byte. Untuk mendapatkan itu, Anda dapat menggunakan wc -c <yourFileName>.vhd atau ls -al <yourFileName>.vhd. Nilai ini digunakan saat menentukan parameter --upload-size-bytes.

Buat HDD standar kosong untuk diunggah dengan menentukan parameter -–for-upload dan parameter --upload-size-bytes di disk yang membuat cmdlet:

Ganti <yourdiskname>, <yourresourcegroupname>, <yourregion> dengan nilai pilihan Anda. Parameter --upload-size-bytes berisi contoh nilai 34359738880, ganti dengan nilai yang sesuai untuk Anda.

Penting

Jika Anda membuat disk OS, tambahkan --hyper-v-generation <yourGeneration> ke az disk create.

Jika Anda menggunakan ID Microsoft Entra untuk mengamankan unggahan disk, tambahkan -dataAccessAuthmode 'AzureActiveDirectory'. Saat mengunggah ke Disk Ultra atau Premium SSD v2, Anda perlu memilih ukuran sektor disk target yang benar. Jika Anda menggunakan file VHDX dengan ukuran sektor logis 4k, disk target harus diatur ke 4k. Jika Anda menggunakan file VHD dengan ukuran sektor logis 512, disk target harus diatur ke 512.

File VHDX dengan ukuran sektor logis 512k tidak didukung.

##For Ultra Disk or Premium SSD v2, add --logical-sector-size and specify either 512 or 4096, depending on if you're using a VHD or VHDX

az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs

Jika Anda ingin mengunggah jenis disk yang berbeda, ganti standard_lrs dengan premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs, atau ultrassd_lrs.

(Opsional) Memberikan akses ke disk

Jika Anda menggunakan ID Microsoft Entra untuk mengamankan unggahan, Anda harus menetapkan izin RBAC untuk memberikan akses ke disk dan menghasilkan SAS yang dapat ditulis.

az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"

Menghasilkan SAS yang dapat ditulis

Setelah membuat disk terkelola kosong yang dikonfigurasi untuk proses pengunggahan, Anda dapat mengunggah VHD ke sana. Untuk mengunggah VHD ke disk, Anda memerlukan SAS yang dapat ditulis, sehingga Anda dapat mereferensikannya sebagai tujuan unggahan Anda.

Untuk menghasilkan SAS yang dapat ditulis dari disk terkelola kosong Anda, ganti <yourdiskname> dan <yourresourcegroupname>, lalu gunakan perintah berikut:

az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400

Contoh nilai yang ditampilkan:

{
  "accessSas": "https://md-impexp-t0rdsfgsdfg4.blob.core.windows.net/w2c3mj0ksfgl/abcd?sv=2017-04-17&sr=b&si=600a9281-d39e-4cc3-91d2-923c4a696537&sig=xXaT6mFgf139ycT87CADyFxb%2BnPXBElYirYRlbnJZbs%3D"
}

Mengunggah VHD atau VHDX

Sekarang setelah memiliki SAS untuk disk terkelola kosong, Anda dapat menggunakannya untuk mengatur disk terkelola sebagai tujuan untuk perintah pengunggahan.

Gunakan AzCopy v10 untuk mengunggah file VHD atau VHDX lokal Anda ke disk terkelola dengan menentukan URI SAS yang Anda buat.

Pengunggahan ini memiliki throughput yang sama dengan HDD standar yang setara. Contohnya, jika Anda memiliki ukuran yang setara dengan S4, Anda akan memiliki throughput hingga 60 MiB/s. Tetapi, jika Anda memiliki ukuran yang setara dengan S70, Anda akan memiliki throughput hingga 500 MiB/ s.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob

Setelah pengunggahan selesai, dan Anda tidak perlu menulis data lagi ke disk, cabut SAS. Pencabutan SAS akan mengubah status disk terkelola dan memungkinkan Anda untuk melampirkan disk ke VM.

Ganti <yourdiskname> dan <yourresourcegroupname>, lalu gunakan perintah berikut untuk membuat disk dapat digunakan:

az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>

Menyalin disk terkelola

Pengunggahan langsung juga menyederhanakan proses penyalinan disk terkelola. Anda dapat menyalin dalam wilayah atau lintas wilayah yang sama (ke wilayah lain).

Skrip berikut akan melakukan hal ini untuk Anda, prosesnya mirip dengan langkah-langkah yang dijelaskan sebelumnya, dengan beberapa perbedaan karena Anda menggunakan disk yang ada.

Penting

Anda perlu menambahkan offset 512 saat Anda menyediakan ukuran disk dalam byte disk terkelola dari Azure. Ini dikarenakan Azure menghilangkan footer saat menampilkan ukuran disk. Salinan akan gagal jika Anda tidak melakukan ini. Skrip berikut ini sudah melakukan tindakan ini untuk Anda.

Ganti <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere>, dan <yourTargetLocationHere> (contoh nilai lokasi akan menjadi uswest2) dengan nilai Anda, lalu jalankan skrip berikut untuk menyalin disk terkelola.

Tip

Jika Anda membuat disk OS, tambahkan --hyper-v-generation <yourGeneration> ke az disk create.

sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>
#Expected value for OS is either "Windows" or "Linux"
targetOS=<yourOSTypeHere>

sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)

az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs

targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG  --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)

sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --duration-in-seconds 86400 --query [accessSas] -o tsv)

azcopy copy $sourceSASURI $targetSASURI --blob-type PageBlob

az disk revoke-access -n $sourceDiskName -g $sourceRG

az disk revoke-access -n $targetDiskName -g $targetRG

Langkah berikutnya

Setelah berhasil mengunggah VHD ke disk terkelola, Anda dapat melampirkan disk sebagai disk data ke VM yang ada atau melampirkan disk ke VM sebagai disk OS, untuk membuat VM baru.

Jika Anda memiliki pertanyaan tambahan, lihat bagian mengunggah disk terkelola di FAQ.