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.
Memulai
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
- Unduh versi AzCopy v10 terbaru.
- Instal Azure CLI.
- Jika Anda bermaksud mengunggah VHD dari lokal: VHD ukuran tetap yang telah disiapkan untuk Azure, disimpan secara lokal.
- Atau, disk terkelola di Azure, jika Anda bermaksud melakukan tindakan penyalinan.
Untuk mengunggah VHD ke Azure, Anda perlu membuat disk terkelola kosong yang dikonfigurasi untuk proses pengunggah 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 diunggah, 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 perlu 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.
Penting
Pada 15 Februari 2025, waktu akses Tanda Tangan Akses Bersama (SAS) untuk disk dan rekam jepret akan dibatasi hingga maksimum 60 hari. Mencoba menghasilkan SAS dengan kedaluwarsa lebih dari 60 hari menghasilkan kesalahan. Setiap SAS disk atau rekam jepret yang ada yang dibuat dengan kedaluwarsa lebih dari 60 hari dapat berhenti bekerja 60 hari setelah tanggal pembuatan dan akan mengakibatkan kesalahan 403 selama otorisasi.
Jika disk terkelola atau kedaluwarsa SAS rekam jepret lebih dari 60 hari, cabut aksesnya, dan hasilkan SAS baru yang meminta akses selama 60 hari (5.184.000 detik) atau kurang. Tingkatkan keamanan Anda secara keseluruhan dengan menggunakan SAS dengan tanggal kedaluwarsa yang lebih pendek. Lakukan perubahan ini sebelum 15 Februari 2025 untuk mencegah gangguan layanan. Tautan berikut dapat digunakan untuk menemukan, mencabut, dan meminta SAS baru.
- Untuk memeriksa apakah disk memiliki SAS aktif, Anda dapat menggunakan REST API, Azure CLI, atau modul Azure PowerShell, dan memeriksa properti DiskState .
- Untuk mencabut SAS, Anda dapat menggunakan REST API, Azure CLI, atau modul Azure PowerShell.
- Untuk membuat SAS, Anda dapat menggunakan REST API, Azure CLI, atau modul Azure PowerShell, dan mengatur durasi akses menjadi 5.184.000 detik atau kurang.
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. Misalnya, jika Anda memiliki ukuran yang sama dengan S4, Anda akan memiliki throughput hingga 60 MiB/dtk. Tetapi, jika Anda memiliki ukuran yang setara dengan S70, Anda akan memiliki throughput hingga 500 MiB/dtk.
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. Mencabut SAS mengubah status disk terkelola dan memungkinkan Anda 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 melakukan ini untuk Anda. Proses ini mirip dengan langkah-langkah yang dijelaskan sebelumnya, dengan beberapa perbedaan karena Anda bekerja dengan 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 lebih banyak pertanyaan, lihat bagian mengunggah disk terkelola di FAQ.