今回は「AzCopy」コマンドを使って、Virtual MachineのディスクをStandardからPremiumに変更する手順を紹介致します。
VMは一度立ててしまうとOSディスクをStandardからPremiumに変更することができない為、
本記事を参考にしてもらえればと思います。
1.AzCopyとは
AzCopyはAzure BLOB,File,Tableの記憶域との間でデータをコピーするために設計されたWindowsコマンドラインユーティリティです。
下記よりダウンロードすることができます。
ダウンロードはこちらから
2.Azure環境準備
今回は下記のような環境で行います。
移行元Storage : japanwestdisks928
パフォーマンス : Standard
移行vhd : westtest201691818370.vhd
移行先Storage : easttestpremium
パフォーマンス : Premium
予め、Storage Accountのアクセスキーを取得する必要があります。
アクセスキーは管理画面から確認できます。
なお、AzCopyに使うvhdファイルでVMを起動させている場合、ファイルシステムを一貫した状態に保持するために、VM を停止する必要があります。
3.AsCopyを実行する
今回はPowerShellからAzCopyコマンドを使います。
まずはAzCopyをダウンロードしたディレクトリに移動します。
cd ‘C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy’
AzCopyでディスクコピーをする構文は下記の通りです。
AzCopy /Source:
パラメータは下記になります。
/Source: <移行vhdが格納されているコンテナーのURL>
/SourceKey: <移行元Storageのアクセスキー>
/Dest: <移行先コンテナーのURL>
/DestKey: <移行先コンテナーのアクセスキー>
/Pattern: <移行vhdのファイル名>
実行すると、PowerShell上で経過が確認できます。
下の画像のように表示されたらコピー完了です。
実際にStorageの管理画面を開くとコピーされていることが確認できます。
4.vhdからVMを立ち上げる
Premium StorageにコピーしたvhdをVMとして起動させるにはPowerShellのコマンドが便利です。
PowerShellを起動したらログインします。
Login-AzureRmAccount
下記情報を変数に登録します。
$rgName = “
$vnetName = “
$location = “
$subnetName = “
$vmName = “
$vmSize = “
$ipName = “
$nicName = “
$vhdName = “
$vhdUri = “
仮想ネットワークの設定を読み込みます。
$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName $rgName -Name $vnetName
パブリックIPを取得します。
固定IPにしたい場合は「AllocationMethod」を「Static」にしてください。
$pip = New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location -AllocationMethod Dynamic
ネットワークインターフェースを作成し、読み込みます。
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $rgName -Name $nicName
立ち上げるVMの設定をしていきます。
まずは名前とサイズを指定します。
$VmConfig = New-AzureRmVMConfig -Name $vmName -VMSize $vmSize
先ほどコピーしてきたVHDファイルを指定します。
$VmConfig = Set-AzureRmVMOSDisk -VM $VmConfig -VhdUri $vhdUri -Name $vhdName -CreateOption attach -Windows -Caching ReadWrite
ネットワークインターフェースの紐づけをします。
$VmConfig = Add-AzureRmVMNetworkInterface -VM $VmConfig -NetworkInterface $nic
$VmConfig.NetworkProfile.NetworkInterfaces.Item(0).Primary = $true
設定を元にVMを立ち上げます。
New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $VmConfig -Verbose
実行後、下の画像のようにOKの表示がされていれば作成完了です。
いかがでしたでしょうか。
別記事でもご紹介しますが、Premium Storageを使うことで可用性セットに設定しなくてもSLA99.9%が保証されるように
なりましたので、この機会に是非ご利用ください。
次回もお楽しみに!