就像其他任何計(jì)算機(jī)一樣,Azure 中的虛擬機(jī)將磁盤用作存儲操作系統(tǒng)、應(yīng)用程序和數(shù)據(jù)的位置。 所有 Azure 虛擬機(jī)都至少有兩個(gè)磁盤,即 Windows 操作系統(tǒng)磁盤和臨時(shí)磁盤。 操作系統(tǒng)磁盤基于映像創(chuàng)建,操作系統(tǒng)磁盤和該映像都存儲在 Azure 存儲帳戶中的虛擬硬盤 (VHD) 內(nèi)。 虛擬機(jī)還可以有一個(gè)或多個(gè)數(shù)據(jù)磁盤,而這些磁盤也存儲為 VHD。
在本文中,我們將討論磁盤的不同用法,并討論可以創(chuàng)建和使用的不同磁盤類型。 本文也適用于Linux 虛擬機(jī)。
Note
Azure 具有用于創(chuàng)建和處理資源的兩個(gè)不同的部署模型:Resource Manager 和經(jīng)典。 這篇文章介紹了如何使用這兩種模型,但 Azure 建議大多數(shù)最新部署使用 Resource Manager 模型。
VM 使用的磁盤
讓我們來看看 VM 如何使用磁盤。
操作系統(tǒng)磁盤
每個(gè)虛擬機(jī)都附加了一個(gè)操作系統(tǒng)磁盤。 默認(rèn)情況下,它注冊為 SATA 驅(qū)動器并標(biāo)為 C: 盤。 此磁盤的最大容量為 2048 GB。
臨時(shí)磁盤
每個(gè) VM 包含一個(gè)臨時(shí)磁盤。 臨時(shí)磁盤為應(yīng)用程序和進(jìn)程提供短期存儲存儲空間,僅用于存儲頁面或交換文件等數(shù)據(jù)。 在維護(hù)事件期間或重新部署 VM時(shí),臨時(shí)磁盤上的數(shù)據(jù)可能會丟失。 在 VM 標(biāo)準(zhǔn)重啟期間,臨時(shí)驅(qū)動器上的數(shù)據(jù)應(yīng)會保留。
臨時(shí)磁盤默認(rèn)標(biāo)記為 D: 盤,用于存儲 pagefile.sys。 若要將此磁盤重新映射到其他驅(qū)動器號,請參閱更改 Windows 臨時(shí)磁盤的驅(qū)動器號。 臨時(shí)磁盤的大小因虛擬機(jī)的大小而異。 有關(guān)詳細(xì)信息,請參閱Windows 虛擬機(jī)的大小。
有關(guān) Azure 如何使用臨時(shí)磁盤的詳細(xì)信息,請參閱Understanding the temporary drive on Azure Virtual Machines
數(shù)據(jù)磁盤
數(shù)據(jù)磁盤是附加到虛擬機(jī)的 VHD,用于存儲應(yīng)用程序數(shù)據(jù)或其他需要保留的數(shù)據(jù)。 數(shù)據(jù)磁盤注冊為 SCSI 驅(qū)動器并且?guī)в兴x擇的字母標(biāo)記。 每個(gè)數(shù)據(jù)磁盤的最大容量為 4095 GB。 虛擬機(jī)的大小決定了可附加的磁盤數(shù)目,以及可用來托管磁盤的存儲類型。
Note
有關(guān)虛擬機(jī)容量的詳細(xì)信息,請參閱Windows 虛擬機(jī)的大小。
當(dāng)你基于映像創(chuàng)建虛擬機(jī)時(shí),Azure 會創(chuàng)建操作系統(tǒng)磁盤。 如果使用包含數(shù)據(jù)磁盤的映像,則 Azure 還會在創(chuàng)建虛擬機(jī)時(shí)創(chuàng)建數(shù)據(jù)磁盤。 )否則,需要在創(chuàng)建虛擬機(jī)后添加數(shù)據(jù)磁盤。
隨時(shí)可以將數(shù)據(jù)磁盤添加到虛擬機(jī),只需將該磁盤附加到虛擬機(jī)即可。 可以使用已上傳或復(fù)制到存儲帳戶的 VHD,也可以讓 Azure 創(chuàng)建 VHD。 附加數(shù)據(jù)磁盤會將 VHD 文件與 VM 關(guān)聯(lián),方法是在 VHD 上放置“租約”,因此在仍附加 VHD 時(shí)無法從存儲中刪除它。
關(guān)于 VHD
Azure 中使用的 VHD 是在 Azure 的標(biāo)準(zhǔn)或高級存儲帳戶中作為頁 Blob 存儲的 .vhd 文件。 有關(guān)頁 blob 的詳細(xì)信息,請參閱了解塊 blob 和頁 blob。 有關(guān)高級存儲的詳細(xì)信息,請參閱高性能高級存儲和 Azure VM。
Azure 支持固定的磁盤 VHD 格式。 固定格式在文件內(nèi)對邏輯磁盤以線性方式布局,使磁盤偏移量 X 存儲在 Blob 偏移量 X 的位置。在 Blob 末尾有一小段腳注,描述了 VHD 的屬性。 通常,由于大多數(shù)磁盤中都有較大的未使用區(qū)域,因此固定格式會浪費(fèi)空間。 不過,Azure 以稀疏格式存儲 .vhd 文件,因此可兼獲固定和動態(tài)格式磁盤的優(yōu)點(diǎn)。 有關(guān)更多詳細(xì)信息,請參閱虛擬硬盤入門。
Azure 中所有要用作磁盤或映像創(chuàng)建來源的 .vhd 文件都是只讀文件。 當(dāng)你創(chuàng)建磁盤或映像時(shí),Azure 會生成 .vhd 文件的副本。 這些副本可以是只讀文件,也可以是讀寫文件,具體取決于使用 VHD 的方式。
在通過映像創(chuàng)建虛擬機(jī)時(shí),Azure 為虛擬機(jī)創(chuàng)建磁盤,該磁盤是源 .vhd 文件的副本。 為避免被意外刪除,Azure 對任何用于創(chuàng)建映像、操作系統(tǒng)磁盤或數(shù)據(jù)磁盤的源 .vhd 文件設(shè)置了租約。
在刪除源 .vhd 文件之前,需要先通過刪除磁盤或映像來解除租約。 若要?jiǎng)h除當(dāng)前由虛擬機(jī)用作操作系統(tǒng)磁盤的 .vhd 文件,可以通過刪除虛擬機(jī)并刪除所有關(guān)聯(lián)的磁盤,一次性刪除虛擬機(jī)、操作系統(tǒng)磁盤和源 .vhd 文件。 但是,刪除用作數(shù)據(jù)磁盤來源的 .vhd 文件需要按一定順序執(zhí)行幾個(gè)步驟。 首先從虛擬機(jī)分離該磁盤,再刪除該磁盤,才能刪除 .vhd 文件。
Warning
如果從存儲中刪除了源 .vhd 文件或刪除了存儲帳戶,Microsoft 則無法為用戶恢復(fù)數(shù)據(jù)。
磁盤類型
Azure 磁盤具備 99.999% 的可用性。 Azure 磁盤持續(xù)提供企業(yè)級持久性,年化故障率為 0%,達(dá)到行業(yè)領(lǐng)先水平。
在創(chuàng)建磁盤時(shí),有兩種適用于存儲的性能層可供選擇 -- 標(biāo)準(zhǔn)存儲和高級存儲。 另外還有兩類磁盤 -- 非托管磁盤和托管磁盤 -- 這兩類磁盤可以駐留在任一性能層中。
標(biāo)準(zhǔn)存儲
標(biāo)準(zhǔn)存儲以 HDD 為基礎(chǔ),可以在確保性能的同時(shí)提供經(jīng)濟(jì)高效的存儲。 標(biāo)準(zhǔn)存儲可在一個(gè)數(shù)據(jù)中心進(jìn)行本地復(fù)制,也可以通過主要和輔助數(shù)據(jù)中心實(shí)現(xiàn)異地冗余。 有關(guān)存儲復(fù)制的詳細(xì)信息,請參閱Azure 存儲復(fù)制。
要詳細(xì)了解如何將標(biāo)準(zhǔn)存儲與 VM 磁盤結(jié)合使用,請參閱標(biāo)準(zhǔn)存儲和磁盤。
高級存儲
高級存儲以 SSD 為基礎(chǔ),為運(yùn)行 I/O 密集型工作負(fù)荷的 VM 提供高性能、低延遲的磁盤支持。 可將高級存儲與 DS、DSv2 或 FS 系列的 Azure VM 配合使用。 有關(guān)詳細(xì)信息,請參閱高級存儲。
非托管磁盤
非托管磁盤是 VM 一直使用的傳統(tǒng)類型的磁盤。 有了這些以后,即可創(chuàng)建自己的存儲帳戶并在創(chuàng)建磁盤時(shí)指定該存儲帳戶。 必須確保不將太多磁盤置于同一存儲帳戶中,因?yàn)榭赡軙^存儲帳戶的可伸縮性目標(biāo)(例如 20,000 IOPS),導(dǎo)致 VM 數(shù)受限。 使用非托管磁盤時(shí),必須確定如何最大程度地使用一個(gè)或多個(gè)存儲帳戶,以便充分利用 VM 的性能。
托管磁盤
托管磁盤為用戶在后臺處理存儲帳戶的創(chuàng)建/管理,確保用戶無需擔(dān)心存儲帳戶的可伸縮性限制。 用戶只需指定磁盤大小和性能層(標(biāo)準(zhǔn)/高級),Azure 就會自動創(chuàng)建和管理磁盤。 即使是添加磁盤或者擴(kuò)展和縮減 VM,也無需考慮要使用哪種存儲。
還可以按 Azure 區(qū)域在一個(gè)存儲帳戶中管理自定義映像,并使用這些映像在同一訂閱中創(chuàng)建數(shù)百個(gè) VM。 有關(guān)管理磁盤的詳細(xì)信息,請參閱托管磁盤概述。
建議為新 VM 使用 Azure 托管磁盤,并將以前的非托管磁盤轉(zhuǎn)換為托管磁盤,以便充分利用托管磁盤中提供的多項(xiàng)功能。
磁盤比較
下表對托管磁盤與非托管磁盤的高級和標(biāo)準(zhǔn)性能層做了比較,方便用戶確定要使用哪個(gè)層。
Azure 高級磁盤Azure 標(biāo)準(zhǔn)磁盤
磁盤類型固態(tài)硬盤 (SSD)機(jī)械硬盤 (HDD)
概述基于 SSD 的高性能、低延遲磁盤支持,適用于運(yùn)行 IO 密集型工作負(fù)荷或托管任務(wù)關(guān)鍵型生產(chǎn)環(huán)境的 VM基于 HDD 的經(jīng)濟(jì)高效型磁盤支持,適用于開發(fā)/測試 VM 方案
方案生產(chǎn)和性能敏感型工作負(fù)荷開發(fā)/測試、非關(guān)鍵、
不經(jīng)常訪問的工作負(fù)荷
磁盤大小P4:32 GB(僅托管磁盤)
P6:64 GB(僅托管磁盤)
P10:128 GB
P20:512 GB
P30:1024 GB
P40:2048 GB
P50:4095 GB
非托管磁盤:1 GB - 4 TB (4095 GB)
托管磁盤:
S4:32 GB
S6:64 GB
S10:128 GB
S20:512 GB
S30:1024 GB
S40:2048 GB
S50:4095 GB
每個(gè)磁盤的最大吞吐量250 MB/秒60 MB/秒
每個(gè)磁盤的最大 IOPS7500 IOPS500 IOPS
最后一個(gè)建議:對非托管標(biāo)準(zhǔn)磁盤使用 TRIM
如果使用非托管標(biāo)準(zhǔn)磁盤 (HDD),則應(yīng)啟用 TRIM。 TRIM 會放棄磁盤上未使用的塊,以便僅對實(shí)際使用的存儲進(jìn)行收費(fèi)。 如果創(chuàng)建了較大的文件,并將其刪除,這樣可以節(jié)省成本。
可以運(yùn)行此命令來檢查 TRIM 設(shè)置。 在 Windows VM 上打開命令提示符,并鍵入:
復(fù)制
fsutil behavior query DisableDeleteNotify
如果該命令返回 0,則表示正確啟用了 TRIM。 如果返回 1,請運(yùn)行以下命令啟用 TRIM:
復(fù)制
fsutil behavior set DisableDeleteNotify 0
Note
注意:從 Windows Server 2012/Windows 8 及更高版本開始支持 Trim,請參閱New API allows apps to send "TRIM and Unmap" hints to storage media(新 API 允許應(yīng)用向存儲媒體發(fā)發(fā)送“TRIM 和 Unmap”提示)。
后續(xù)步驟
附加磁盤可為 VM 添加額外的存儲。
更改 Windows 臨時(shí)磁盤的驅(qū)動器號,使應(yīng)用程序能夠?qū)?D: 盤用于數(shù)據(jù)。
立即訪問http://market.azure.cn