演習 - 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 ディスクは、次のような状態です。

Screenshot of our OS and data disks, both set to Read-only caching.

ポータルを使用して、OS ディスクとデータ ディスクの [ホスト キャッシュ] フィールドを設定しました。 以下の手順を行う際には、この初期状態を念頭に置いてください。

変数をいくつか設定する

まず、後で使用できるように、いくつかのリソース名を用意しておきましょう。

右側の Azure Cloud Shell で、次の PowerShell コマンドを実行します。

Note

まだ行っていない場合は、コマンドを試す前に Cloud Shell セッションを PowerShell に切り替えます。

$myRgName = "<rgn>[sandbox resource group name]</rgn>"
$myVMName = "fotoshareVM"

ヒント

Cloud Shell セッションがタイムアウトになった場合は、これらの変数をもう一度設定する必要があります。そのため、可能であれば、単一のセッションでこの課題全体を実行します。

VM に関する情報を取得する

  1. 次のコマンドを実行して、VM のプロパティを取得します。

    $myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
    
  2. $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 ディスクのキャッシュ設定を変更する

  1. 次のコマンドを実行することで、同じ StorageProfile オブジェクトを使用してキャッシュの種類の値を設定できます。

    $myVM.StorageProfile.OsDisk.Caching = "ReadWrite"
    

    このコマンドは高速で実行されます。ローカルで何らかの処理が実行されていることがわかります。 このコマンドを実行すると、単に myVM オブジェクトのプロパティが変更されます。 Get-AzVM コマンドレットを使用して再割り当てすることによって $myVM 変数を更新しても、VM 上のキャッシュ値は変更されません。

  2. VM 自体を変更するには、次のコマンドを実行して Update-AzVM を呼び出します。

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

    実際の VM を更新しており、変更を反映するために、Azure によって VM が再起動されるため、この呼び出しが完了するまでには時間がかかります。

    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  3. 次のコマンドを実行して $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 に新しいデータ ディスクを追加する

  1. 便宜上、次のコマンドを実行して、新しいディスク名を格納します。

    $newDiskName = "fotoshareVM-data2"
    
  2. 次の 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}
    
  3. 1Lun 値は使用されていないため、このディスクに使用しました。 作成するディスクを定義したので、次は Update-AzVM コマンドを実行して実際に変更してみましょう。

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    
  4. 次のコマンドを実行して、もう一度データ ディスク情報を確認しましょう。

    $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 つのディスクができました。 新しいディスクは Lun1 で、Caching の既定値は None です。 この値を変更してみましょう。

新しいデータ ディスクのキャッシュ設定を変更する

  1. Set-AzVMDataDisk コマンドレットを使用して、仮想マシン データ ディスクのプロパティを次のように変更できます。

    Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
    
  2. いつものように、Update-AzVM コマンドを実行して変更をコミットします。

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

この演習で実行した結果のポータルのビューを次に示します。 VM には 2 つのデータ ディスクがあり、すべての [ホスト キャッシュ] の設定を調整しました。 Azure PowerShell の機能を使用して、そのすべてをいくつかのコマンドだけで実行しました。

Screenshot of the Azure portal showing the Disks section of our VM pane with two data disks.