暫時性 OS 磁碟相關的常見問題集
問:暫時OS磁碟的大小為何?
答:我們支援平臺、共用映像庫 和自定義映像。 暫時 OS 磁碟的大小取決於虛擬機上可用的本機記憶體(快取磁碟、暫存磁碟或 NVMe 磁碟)。 暫時 OS 磁碟的大小上限可以是 2 TiB。 所有對 OS 磁碟的寫入都是與虛擬機位於相同節點上的本機。
問:暫時性 OS 磁碟可以調整大小嗎?
答:否,布建暫時OS磁碟之後,就無法調整OS磁碟的大小。
問:建立 VM 之後,是否可以修改暫時性 OS 磁碟放置?
答:否,布建暫時OS磁碟之後,就無法變更OS磁碟位置。 但可以透過 ARM 範本部署/PowerShell/CLI,利用更新選擇的 OS 磁碟放置來重新建立 VM。 這會導致 VM 重新建立已刪除 OS 磁碟上的資料,並重新佈建 OS。
問:如果映像大小等於所選 VM 大小的暫存磁碟大小,是否會建立任何暫存磁碟?
答:在此情況下,不會建立暫存磁碟。
問:NVMe 磁碟放置與暫存磁碟位置如何不同?
答:Nvme 磁碟放置會利用整個 Nvme 磁碟,而暫存磁碟放置會利用等於 OS 磁碟大小的空間。 例如,如果您在Standard_D2ads_v5上使用標準 Ubuntu 映射與暫存磁碟位置,您會取得 30 GiB 的 OS 磁碟大小和 45 GiB 的暫存磁碟大小。 如果您在Standard_D2ads_v6上使用相同的標準 Ubuntu 映像與 NVMe 磁碟位置,則您會取得 30 GiB 且沒有 NVMe 磁碟的 OS 磁碟大小。
問:NVMe 磁碟放置如何適用於具有多個 NVMe 磁碟的 VM?
答:NVMe 磁碟放置會利用OS磁碟所需的最小磁碟數目。 例如,Standard_D16ads_v6兩個磁碟各有 440 GiB。 如果您建立大小小於 440 GiB 的暫時 OS 磁碟,則只會使用一個磁碟來建立暫時 OS 磁碟。 第二個 NVMe 磁碟會以原始本機磁碟的形式傳回您。
問:低優先順序 VM 和現成 VM 上是否支援暫時性 OS 磁碟?
A: 可以。 暫時 VM 沒有 [停止解除分配] 的選項,而是使用者需要刪除,而不是解除分配它們。
問:我可以將受控磁碟連結至暫時性 VM 嗎?
答:是的,您可以將受控資料磁碟連結至使用暫時性 OS 磁碟的 VM。
問:暫時性 OS 磁碟是否將支援所有 VM 大小?
答:不會,支援多數進階儲存體 VM 大小 (DS、ES、FS、GS、M 等)。 若要知道特定 VM 大小是否支援 OS 映射大小的暫時 OS 磁碟,您可以使用下列腳本。 它會採用OS映像大小和位置作為輸入,並提供支援的VM和對應的放置清單。 如果快取、暫存和 NVMe 磁碟放置標示為不支援,則暫時 OS 磁碟無法用於指定的 OS 映射大小。
[CmdletBinding()]
param([Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$Location,
[Parameter(Mandatory=$true)]
[long]$OSImageSizeInGB
)
Function HasSupportEphemeralOSDisk([object[]] $capability)
{
return $capability | where { $_.Name -eq "EphemeralOSDiskSupported" -and $_.Value -eq "True"}
}
Function Get-MaxTempDiskAndCacheSize([object[]] $capabilities)
{
$MaxResourceVolumeGB = 0;
$CachedDiskGB = 0;
$NvmeDiskGB = 0;
foreach($capability in $capabilities)
{
if ($capability.Name -eq "MaxResourceVolumeMB")
{ $MaxResourceVolumeGB = [int]($capability.Value / 1024) }
if ($capability.Name -eq "CachedDiskBytes")
{ $CachedDiskGB = [int]($capability.Value / (1024 * 1024 * 1024)) }
if ($capability.Name -eq "NvmeDiskSizeInMiB")
{ $NvmeDiskGB = [int]($capability.Value / (1024)) }
if ($capability.Name -eq "SupportedEphemeralOSDiskPlacements")
{ $NvmeSupported = [bool]($capability.Value -contains "NvmeDisk") }
}
if (!$NvmeSupported)
{ $NvmeDiskGB = 0; }
return ($MaxResourceVolumeGB, $CachedDiskGB, $NvmeDiskGB)
}
Function Get-EphemeralSupportedVMSku
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true)]
[long]$OSImageSizeInGB,
[Parameter(Mandatory=$true)]
[string]$Location
)
$VmSkus = Get-AzComputeResourceSku $Location | Where-Object { $_.ResourceType -eq "virtualMachines" -and (HasSupportEphemeralOSDisk $_.Capabilities) -ne $null }
$Response = @()
foreach ($sku in $VmSkus)
{
($MaxResourceVolumeGB, $CachedDiskGB, $NvmeDiskGB) = Get-MaxTempDiskAndCacheSize $sku.Capabilities
$Response += New-Object PSObject -Property @{
ResourceSKU = $sku.Size
NvmeDiskPlacement = @{ $true = "NOT SUPPORTED"; $false = "SUPPORTED"}[$NvmeDiskGB -lt $OSImageSizeInGB]
TempDiskPlacement = @{ $true = "NOT SUPPORTED"; $false = "SUPPORTED"}[$MaxResourceVolumeGB -lt $OSImageSizeInGB]
CacheDiskPlacement = @{ $true = "NOT SUPPORTED"; $false = "SUPPORTED"}[$CachedDiskGB -lt $OSImageSizeInGB]
};
}
return $Response
}
Get-EphemeralSupportedVMSku -OSImageSizeInGB $OSImageSizeInGB -Location $Location | Format-Table
問:暫時性 OS 磁碟是否可以套用至現有的 VM 和擴展集?
答:不行,暫時性 OS 磁碟只能在 VM 和擴展集建立期間使用。
問:您可以將擴展集中的暫時和一般 OS 磁碟混合使用嗎?
答:否,您無法在相同擴展集內混合使用暫時和持續性 OS 磁碟執行個體。
問:可以使用 PowerShell 或 CLI 建立暫時性 OS 磁碟嗎?
答:是的,您可以使用 REST、範本、PowerShell 和 CLI 建立具有暫時性 OS 磁碟的 VM。