演習 - PowerShell でキャッシュ設定を管理する
前の演習では、Azure portal を使用して以下のタスクを実行しました。
- OS ディスクのキャッシュ状態を表示する。
- OS ディスクのキャッシュ設定を変更する。
- VM にデータ ディスクを追加する。
- 新しいデータ ディスク上のキャッシュの種類を変更する。
Azure PowerShell を使用してこれらの操作を練習しましょう。
Note
ここでは Azure PowerShell を使用しますが、コンソール ベースのツールとして同様の機能を提供する Azure CLI を使用することもできます。 これは macOS、Linux、Windows で実行されます。 Azure CLI について詳しく学習したい場合は、「Azure CLI を使用して仮想マシンを管理する」モジュールをご覧ください。
ここでは、これまでの演習で作成した VM を使用します。 この課題の操作では、以下のことを前提としています。
- 使用する VM が存在し、fotoshareVM という名前になっている。
- VM は
[サンドボックス リソース グループ名] というリソース グループに存在している。
異なる名前のセットを使用した場合は、これらの値を実際の名前に置き換えてください。
前回の演習の VM ディスクは、次のような状態です。
ポータルを使用して、OS ディスクとデータ ディスクの [ホスト キャッシュ] フィールドを設定しました。 以下の手順を行う際には、この初期状態を念頭に置いてください。
変数をいくつか設定する
まず、後で使用できるように、いくつかのリソース名を用意しておきましょう。
右側の Azure Cloud Shell で、次の PowerShell コマンドを実行します。
Note
まだ行っていない場合は、コマンドを試す前に Cloud Shell セッションを PowerShell に切り替えます。
$myRgName = "<rgn>[sandbox resource group name]</rgn>"
$myVMName = "fotoshareVM"
ヒント
Cloud Shell セッションがタイムアウトになった場合は、これらの変数をもう一度設定する必要があります。そのため、可能であれば、単一のセッションでこの課題全体を実行します。
VM に関する情報を取得する
次のコマンドを実行して、VM のプロパティを取得します。
$myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
$myVM
変数に応答を保存します。 出力をselect-object
コマンドレットにパイプして、特定のプロパティが表示されるようにフィルター処理できます。$myVM | select-object -property ResourceGroupName, Name, Type, Location
次のような出力が表示されます。
ResourceGroupName Name Type Location ----------------- ---- ---- -------- <rgn>[sandbox resource group name]</rgn> fotoshareVM Microsoft.Compute/virtualMachines eastus
OS ディスクのキャッシュ状態を表示する
次のコマンドを実行することで、StorageProfile
オブジェクトを介してキャッシュ設定を確認できます。
$myVM.StorageProfile.OsDisk.Caching
ReadOnly
これを OS ディスクの既定値である ReadWrite に戻してみましょう。
OS ディスクのキャッシュ設定を変更する
次のコマンドを実行することで、同じ
StorageProfile
オブジェクトを使用してキャッシュの種類の値を設定できます。$myVM.StorageProfile.OsDisk.Caching = "ReadWrite"
このコマンドは高速で実行されます。ローカルで何らかの処理が実行されていることがわかります。 このコマンドを実行すると、単に
myVM
オブジェクトのプロパティが変更されます。Get-AzVM
コマンドレットを使用して再割り当てすることによって$myVM
変数を更新しても、VM 上のキャッシュ値は変更されません。VM 自体を変更するには、次のコマンドを実行して
Update-AzVM
を呼び出します。Update-AzVM -ResourceGroupName $myRGName -VM $myVM
実際の VM を更新しており、変更を反映するために、Azure によって VM が再起動されるため、この呼び出しが完了するまでには時間がかかります。
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
次のコマンドを実行して
$myVM
変数を再度更新すると、オブジェクトに変更が表示されます。 ポータルでディスクを表示して変更を確認することもできます。$myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName $myVM.StorageProfile.OsDisk.Caching
ReadWrite
データ ディスク情報を一覧表示する
VM 上にあるデータ ディスクを確認するには、次のコマンドを実行します。
$myVM.StorageProfile.DataDisks
Name : fotoshareVM-data
DiskSizeGB : 4
Lun : 0
Caching : ReadOnly
CreateOption : Attach
SourceImage :
VirtualHardDisk :
現在、データ ディスクは 1 つしかありません。 Lun
フィールドは重要です。 これは一意の論理ユニット番号 (LUN) です。 別のデータ ディスクを追加する場合は、一意の Lun
値を付けます。
VM に新しいデータ ディスクを追加する
便宜上、次のコマンドを実行して、新しいディスク名を格納します。
$newDiskName = "fotoshareVM-data2"
次の
Add-AzVMDataDisk
コマンドを実行して、新しく 1 GB の空のデータ ディスクを定義します。Add-AzVMDataDisk -VM $myVM -Name $newDiskName -LUN 1 -DiskSizeinGB 1 -CreateOption Empty
次のような応答が返されます。
ResourceGroupName : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxx/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/fotoshareVM VmId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx Name : fotoshareVM Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} DiagnosticsProfile : {BootDiagnostics} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks}
1
のLun
値は使用されていないため、このディスクに使用しました。 作成するディスクを定義したので、次はUpdate-AzVM
コマンドを実行して実際に変更してみましょう。Update-AzVM -ResourceGroupName $myRGName -VM $myVM
次のコマンドを実行して、もう一度データ ディスク情報を確認しましょう。
$myVM.StorageProfile.DataDisks
Name : fotoshareVM-data DiskSizeGB : 4 Lun : 0 Caching : ReadOnly CreateOption : Attach SourceImage : VirtualHardDisk : Name : fotoshareVM-data2 DiskSizeGB : 1 Lun : 1 Caching : None CreateOption : Empty SourceImage : VirtualHardDisk :
これで 2 つのディスクができました。 新しいディスクは Lun
が 1
で、Caching
の既定値は None
です。 この値を変更してみましょう。
新しいデータ ディスクのキャッシュ設定を変更する
Set-AzVMDataDisk
コマンドレットを使用して、仮想マシン データ ディスクのプロパティを次のように変更できます。Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
いつものように、
Update-AzVM
コマンドを実行して変更をコミットします。Update-AzVM -ResourceGroupName $myRGName -VM $myVM
この演習で実行した結果のポータルのビューを次に示します。 VM には 2 つのデータ ディスクがあり、すべての [ホスト キャッシュ] の設定を調整しました。 Azure PowerShell の機能を使用して、そのすべてをいくつかのコマンドだけで実行しました。