練習 - 使用 PowerShell 管理快取設定

已完成

在上一個練習中,我們已使用 Azure 入口網站執行下列工作:

  • 檢視 OS 磁碟快取狀態。
  • 變更 OS 磁碟的快取設定。
  • 將數據磁碟新增至 VM。
  • 變更新數據磁碟上的快取類型。

接著讓我們來使用 Azure PowerShell 練習這些作業。

注意

我們將使用 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 命令:

注意

請先將 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 Cmdlet,以篩選要顯示的特定屬性:

    $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 物件上的屬性。 如果您使用 Cmdlet 重新指派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 :

我們目前只有一個資料磁碟。 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. 我們為此磁碟 Lun 提供的值 1 ,因為它不是採用的。 我們已定義想要建立的磁碟,現在可以執行 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 :
    

我們現在有兩個磁碟。 新磁碟的 Lun 值為 1,而 Caching 的預設值為 None。 讓我們改變此值。

變更新資料磁碟的快取設定

  1. 我們會執行 Set-AzVMDataDisk 命令來修改虛擬機器資料磁碟的屬性,如下所示:

    Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
    
  2. 如同往常,執行 Update-AzVM 命令認可變更:

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    

以下是我們在此練習中完成之工作的入口網站檢視。 我們的 VM 現在有兩個數據磁碟,我們調整了所有 主機快 取設定。 我們使用 Azure PowerShell 的強大功能,只使用幾個命令來執行上述所有作業。

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