練習 - 使用 PowerShell 管理快取設定
在上一個練習中,我們已使用 Azure 入口網站執行下列工作:
- 檢視 OS 磁碟快取狀態。
- 變更 OS 磁碟的快取設定。
- 將數據磁碟新增至 VM。
- 變更新數據磁碟上的快取類型。
接著讓我們來使用 Azure PowerShell 練習這些作業。
注意
我們將使用 Azure PowerShell,但您也可以使用 Azure CLI,其提供的功能與主控台工具類似。 並且可在 macOS、Linux 及 Windows 上執行。 若您有興趣深入了解 Azure CLI,請參閱使用 Azure CLI 管理虛擬機器課程模組。
我們將使用在前一個練習中建立的 VM。 此實驗中的作業會假設下列情況:
- 我們的 VM 存在,名稱為 fotoshareVM。
- 我們的 VM 位於名為
[沙箱資源群組名稱] 的資源群組中。
如果您使用一組不同的名稱,請將這些值取代為您 。
上個練習中的 VM 磁碟目前狀態如下:
我們已使用入口網站為 OS 和資料磁碟設定 [主機快取] 欄位。 當我們進行下列步驟時,請記住此初始狀態。
設定一些變數
首先,請儲存一些資源名稱,以供稍後使用。
在右側的 Azure Cloud Shell 中,執行下列 PowerShell 命令:
注意
請先將 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
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 磁碟的快取設定
我們可以執行下列命令,使用相同的
StorageProfile
物件設定快取類型的值:$myVM.StorageProfile.OsDisk.Caching = "ReadWrite"
此命令會快速執行,其中應該會顯示該命令在本機上執行的動作。 此命令只會變更
myVM
物件上的屬性。 如果您使用 Cmdlet 重新指派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 :
我們目前只有一個資料磁碟。 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}
我們為此磁碟
Lun
提供的值1
,因為它不是採用的。 我們已定義想要建立的磁碟,現在可以執行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 :
我們現在有兩個磁碟。 新磁碟的 Lun
值為 1
,而 Caching
的預設值為 None
。 讓我們改變此值。
變更新資料磁碟的快取設定
我們會執行
Set-AzVMDataDisk
命令來修改虛擬機器資料磁碟的屬性,如下所示:Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
如同往常,執行
Update-AzVM
命令認可變更:Update-AzVM -ResourceGroupName $myRGName -VM $myVM
以下是我們在此練習中完成之工作的入口網站檢視。 我們的 VM 現在有兩個數據磁碟,我們調整了所有 主機快 取設定。 我們使用 Azure PowerShell 的強大功能,只使用幾個命令來執行上述所有作業。