Membuat VM dari VHD khusus di akun penyimpanan

Buat VM baru dengan melampirkan disk khusus yang tidak dikelola sebagai disk OS menggunakan Powershell. Disk khusus adalah salinan VHD dari VM yang ada yang memelihara akun pengguna, aplikasi, dan data status lainnya dari VM asli Anda.

Anda memiliki dua opsi:

Opsi 1: Upload VHD khusus

Anda dapat mengunggah VHD dari komputer virtual khusus yang dibuat dengan alat virtualisasi lokal, seperti Hyper-V, atau komputer virtual yang diekspor dari cloud lain.

Siapkan komputer virtual

Anda dapat mengunggah VHD khusus yang dibuat menggunakan VM lokal atau VHD yang diekspor dari cloud lain. VHD khusus mempertahankan akun pengguna, aplikasi, dan data status lainnya dari VM asli Anda. Jika Anda ingin menggunakan VHD apa adanya untuk membuat komputer virtual baru, pastikan langkah-langkah berikut selesai.

  • Siapkan Windows VHD untuk diunggah ke Azure. Jangan menggeneralisasi komputer virtual dengan menggunakan Sysprep.
  • Hapus alat dan agen virtualisasi tamu yang diinstal pada komputer virtual (seperti alat VMware).
  • Pastikan komputer virtual dikonfigurasi untuk menarik alamat IP dan pengaturan DNS melalui DHCP. Hal Ini memastikan bahwa server memperoleh alamat IP dalam jaringan virtual ketika dimulai.

Dapatkan akun penyimpanan

Anda memerlukan akun penyimpanan di Azure untuk menyimpan gambar VM yang diunggah. Anda dapat menggunakan akun penyimpanan yang sudah ada atau membuat akun baru.

Untuk menampilkan akun penyimpanan yang tersedia, ketik:

Get-AzStorageAccount

Jika Anda ingin menggunakan akun penyimpanan yang ada, lanjutkan ke Upload bagian gambar VM.

Jika Anda perlu membuat akun penyimpanan, ikuti langkah-langkah berikut:

  1. Anda memerlukan nama grup sumber daya tempat akun penyimpanan harus dibuat. Untuk mengetahui semua grup sumber daya yang ada di langganan Anda, ketik:

    Get-AzResourceGroup
    

    Untuk membuat grup sumber daya bernama myResourceGroup di wilayah AS Barat , ketik:

    New-AzResourceGroup -Name myResourceGroup -Location "West US"
    
  2. Buat akun penyimpanan bernama mystorageaccount dalam grup sumber daya ini dengan menggunakan cmdlet New-AzStorageAccount :

    New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" `
        -SkuName "Standard_LRS" -Kind "Storage"
    

Unggah VHD ke akun penyimpanan Anda

Gunakan cmdlet Add-AzVhd untuk mengunggah gambar ke kontainer di akun penyimpanan Anda. Contoh ini mengunggah file myVHD.vhd dari "C:\Users\Public\Documents\Virtual hard disks\" ke akun penyimpanan bernama mystorageaccount di grup sumber daya myResourceGroup . File akan ditempatkan ke dalam wadah bernama mycontainer dan nama file baru akan menjadi myUploadedVHD.vhd.

$rgName = "myResourceGroup"
$urlOfUploadedImageVhd = "https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd"
Add-AzVhd -ResourceGroupName $rgName -Destination $urlOfUploadedImageVhd `
    -LocalFilePath "C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

Jika berhasil, Anda mendapatkan respons yang terlihat mirip dengan ini:

MD5 hash is being calculated for the file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:03:35
Creating new page blob of size 53687091712...
Elapsed time for upload: 01:12:49

LocalFilePath           DestinationUri
-------------           --------------
C:\Users\Public\Doc...  https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd

Bergantung pada koneksi jaringan Anda dan ukuran file VHD Anda, perintah ini mungkin memerlukan waktu untuk diselesaikan.

Opsi 2: Salin VHD dari VM Azure yang sudah ada

Anda dapat menyalin VHD ke akun penyimpanan lain untuk digunakan saat membuat VM duplikat baru.

Sebelum Anda mulai

Pastikan Anda:

  • Memiliki informasi tentang akun penyimpanan sumber dan tujuan. Untuk VM sumber, Anda harus memiliki akun penyimpanan dan nama kontainer. Biasanya, nama kontainer akan menjadi vhds. Anda juga harus memiliki akun penyimpanan tujuan. Jika Anda belum memilikinya, Anda dapat membuatnya menggunakan portal (Semua Layanan> Storage akun > Tambahkan) atau menggunakan cmdlet New-AzStorageAccount.
  • Telah mengunduh dan menginstal alat AzCopy.

Membatalkan alokasi VM

Deallocate VM, yang membebaskan VHD untuk disalin.

  • Portal: Klik MesinvirtualmyVM>> Stop
  • Powershell: Gunakan Stop-AzVM untuk menghentikan (deallokasi) VM bernama myVM dalam grup sumber daya myResourceGroup.
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVM

Status untuk VM di portal Azure berubah dari Berhenti menjadi Berhenti (deallokasi).

Mendapatkan URL akun penyimpanan

Anda memerlukan URL akun penyimpanan sumber dan tujuan. URL terlihat seperti: https://<storageaccount>.blob.core.windows.net/<containerName>/. Jika Anda sudah mengetahui akun penyimpanan dan nama kontainer, Anda cukup mengganti informasi di antara tanda kurung untuk membuat URL Anda.

Anda dapat menggunakan portal Azure atau Azure Powershell untuk mendapatkan URL:

  • Portal: Klik > akun >accountsstorage untuk semua layanan>Storage>Blobs dan file VHD sumber Anda mungkin ada di wadah vhds. Klik Properti untuk kontainer, dan salin URL berlabel teks. Anda akan memerlukan URL dari kontainer sumber dan tujuan.
  • Powershell: Gunakan Get-AzVM untuk mendapatkan informasi untuk VM bernama myVM di grup sumber daya myResourceGroup. Dalam hasilnya, lihat di bagian profil Storage untuk Vhd Uri. Bagian pertama dari Uri adalah URL ke kontainer dan bagian terakhir adalah nama OS VHD untuk VM.
Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"

Dapatkan kunci akses penyimpanan

Temukan kunci akses untuk akun penyimpanan sumber dan tujuan. Untuk informasi selengkapnya tentang kunci akses, lihat Tentang akun penyimpanan Azure.

  • Portal: Klik Semua layanan>Storage akun>>accountsstorageKunciaccess. Salin kunci berlabel key1.
  • Powershell: Gunakan Get-AzStorageAccountKey untuk mendapatkan kunci penyimpanan untuk akun penyimpanan mystorageaccount di grup sumber daya myResourceGroup. Salin kunci berlabel kunci1.
Get-AzStorageAccountKey -Name mystorageaccount -ResourceGroupName myResourceGroup

Menyalin VHD

Anda dapat menyalin file antar akun penyimpanan menggunakan AzCopy. Untuk kontainer tujuan, jika kontainer yang ditentukan tidak ada, kontainer tersebut akan dibuat untuk Anda.

Untuk menggunakan AzCopy, buka command prompt pada mesin lokal Anda dan navigasikan ke folder tempat AzCopy diinstal. Ini akan mirip dengan C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy.

Untuk menyalin semua file dalam wadah, Anda menggunakan sakelar /S . Ini dapat digunakan untuk menyalin OS VHD dan semua disk data jika mereka berada dalam wadah yang sama. Contoh ini menunjukkan cara menyalin semua file dalam kontainer mysourcecontainer di akun penyimpanan mysourcestorageaccount ke mydestinationcontainer kontainer di akun penyimpanan mydestinationstorageaccount . Ganti nama akun penyimpanan dan kontainer dengan akun Anda sendiri. Ganti <sourceStorageAccountKey1> dan <destinationStorageAccountKey1> dengan kunci Anda sendiri.

AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
    /Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
    /SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> /S

Jika Anda hanya ingin menyalin VHD tertentu dalam wadah dengan beberapa file, Anda juga dapat menentukan nama file menggunakan sakelar /Pattern. Dalam contoh ini, hanya file bernama myFileName.vhd yang akan disalin.

AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
  /Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
  /SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> `
  /Pattern:myFileName.vhd

Setelah selesai, Anda akan mendapatkan pesan yang terlihat seperti:

Finished 2 of total 2 file(s).
[2016/10/07 17:37:41] Transfer summary:
-----------------
Total files transferred: 2
Transfer successfully:   2
Transfer skipped:        0
Transfer failed:         0
Elapsed time:            00.00:13:07

Pemecahan Masalah

  • Saat Anda menggunakan AZCopy, jika Anda melihat kesalahan "Server gagal mengautentikasi permintaan", pastikan nilai header Otorisasi terbentuk dengan benar termasuk tanda tangan. Jika Anda menggunakan Kunci 2 atau kunci penyimpanan sekunder, coba gunakan kunci penyimpanan utama atau pertama.

Buat komputer virtual baru

Anda perlu membuat jaringan dan sumber daya VM lainnya untuk digunakan oleh VM baru.

Membuat subNet dan vNet

Buat vNet dan subNet dari jaringan virtual.

  1. Buat subNet. Contoh ini membuat subnet bernama mySubNet, di grup sumber daya myResourceGroup, dan menetapkan awalan alamat subnet ke 10.0.0.0/24.

    $rgName = "myResourceGroup"
    $subnetName = "mySubNet"
    $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
    
  2. Buat vNet. Contoh ini menetapkan nama jaringan virtual menjadi myVnetName, lokasi ke AS Barat, dan awalan alamat untuk jaringan virtual ke 10.0.0.0/16.

    $location = "West US"
    $vnetName = "myVnetName"
    $vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
        -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
    

    Buat kelompok keamanan jaringan dan aturan RDP

    Untuk dapat masuk ke VM Anda menggunakan RDP, Anda harus memiliki aturan keamanan yang memungkinkan akses RDP di port 3389. Karena VHD untuk VM baru dibuat dari VM khusus yang ada, setelah VM dibuat Anda dapat menggunakan akun yang ada dari mesin virtual sumber yang memiliki izin untuk masuk menggunakan RDP. Ini harus diselesaikan sebelum membuat antarmuka jaringan yang akan dikaitkan dengannya.
    Contoh ini menetapkan nama NSG ke myNsg dan nama aturan RDP ke myRdpRule.

$nsgName = "myNsg"

$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
    -SourceAddressPrefix Internet -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
    -Name $nsgName -SecurityRules $rdpRule
	

Untuk informasi selengkapnya tentang titik akhir dan aturan NSG, lihat Membuka port ke VM di Azure menggunakan PowerShell.

Buat alamat IP publik dan NIC

Untuk mengaktifkan komunikasi dengan mesin virtual di jaringan virtual, Anda memerlukan alamat IP publik dan antarmuka jaringan.

  1. Buat IP publik. Dalam contoh ini, nama alamat IP publik diatur ke myIP.

    $ipName = "myIP"
    $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
        -AllocationMethod Dynamic
    
  2. Buat NIC. Dalam contoh ini, nama NIC diatur ke myNicName. Langkah ini juga mengaitkan Grup Keamanan Jaringan yang dibuat sebelumnya dengan NIC ini.

    $nicName = "myNicName"
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName `
     -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
    

Atur nama dan ukuran komputer virtual

Contoh ini menetapkan nama VM ke "myVM" dan ukuran VM menjadi "Standard_A2".

$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"

Tambahkan NIC

$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id

Mengonfigurasi disk OS

  1. Atur URI untuk VHD yang Anda unggah atau salin. Dalam contoh ini, file VHD bernama myOsDisk.vhd disimpan dalam akun penyimpanan bernama myStorageAccount dalam wadah bernama myContainer.

    $osDiskUri = "https://myStorageAccount.blob.core.windows.net/myContainer/myOsDisk.vhd"
    
  2. Tambahkan disk OS. Dalam contoh ini, ketika disk OS dibuat, istilah "osDisk" ditambahkan ke nama VM untuk membuat nama disk OS. Contoh ini juga menentukan bahwa VHD berbasis Windows ini harus dilampirkan ke VM sebagai disk OS.

    $osDiskName = $vmName + "osDisk"
    $vm = Set-AzVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows
    

Opsional: Jika Anda memiliki disk data yang perlu dilampirkan ke VM, tambahkan disk data dengan menggunakan URL VHD data dan Nomor Unit Logis (Lun) yang sesuai.

$dataDiskName = $vmName + "dataDisk"
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -VhdUri $dataDiskUri -Lun 1 -CreateOption attach

Saat menggunakan akun penyimpanan, URL disk data dan sistem operasi terlihat seperti ini: https://StorageAccountName.blob.core.windows.net/BlobContainerName/DiskName.vhd. Anda dapat menemukan ini di portal dengan menjelajah ke wadah penyimpanan target, mengklik sistem operasi atau VHD data yang disalin, dan kemudian menyalin konten URL.

Lengkapi komputer virtual

Buat VM menggunakan konfigurasi yang baru saja kita buat.

#Create the new VM
New-AzVM -ResourceGroupName $rgName -Location $location -VM $vm

Jika perintah ini berhasil, Anda akan melihat output seperti ini:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK   

Verifikasi bahwa komputer virtual telah dibuat

Anda akan melihat VM yang baru dibuat baik di portal Azure, di bawah SemualayananVirtual> machines, atau dengan menggunakan perintah PowerShell berikut:

$vmList = Get-AzVM -ResourceGroupName $rgName
$vmList.Name

Langkah berikutnya

Masuk ke komputer virtual baru Anda. Untuk informasi selengkapnya, lihat Cara menyambungkan dan masuk ke komputer virtual Azure yang menjalankan Windows.