返回
磁碟控制器和快取設置
Proxmox磁碟控制器和快取
此頁面提供配置虛擬機時與磁碟相關的設置信息,包括關鍵注意事項和預防措施。
關於SCSI控制器
在創建新虛擬機並選擇SCSI控制器時,預設選項是「VirtIO Single」。這意味著如果創建了多個虛擬磁碟(如下節所述),它們都將顯示為連接到此單一控制器。這種設置可優化虛擬機內的內存和設備使用。
選擇「VirtIO SCSI」允許將每個虛擬磁碟分配到獨立的SCSI總線,這需要額外的驅動程式空間和內存。然而,在某些工作負載下分散I/O操作可以提升性能。
通常不建議使用其他物理SCSI卡模擬。
關於磁碟控制器
IDE(也稱為ATA)於1988年建立,幾乎與所有操作系統兼容。對於2003年之前發布的操作系統版本,使用IDE可能是最佳選擇。雖然物理IDE的最大速度為133MB/秒,但在虛擬化IDE中,除非操作系統強制限制,否則沒有此限制。然而,IDE不支持熱插拔,這意味著在虛擬機運行時無法移除設備。
SATA適用於2003年之後發布的操作系統版本,是現代操作系統中最兼容的選項。從物理上看,它是IDE的串行傳輸進化版本,速度可達6Gbps(約600MB/秒)。然而,在虛擬化環境中,除非客戶操作系統強制限制,否則沒有固有的速度限制。
VirtIO SCSI和VirtIO SCSI Single提供最快的磁碟訪問速度。然而,它們要求客戶操作系統具備半虛擬化驅動程式。如果系統沒有任何IDE/SATA磁碟,除非安裝了VirtIO SCSI驅動程式,否則操作系統安裝過程將失敗。自2012年左右起,Linux發行版已包含此驅動程式,FreeBSD自2014年起支持,對於Windows操作系統,安裝時需提供包含VirtIO驅動程式的額外ISO文件。
關於磁碟快取
磁碟快取設置涉及數據完整性與性能之間的權衡。
功能 | writethrough | directsync | none | writeback | unsafe |
---|---|---|---|---|---|
快取使用 | 使用頁面快取(有利於讀取操作) | 不使用快取 | 不使用快取 | 使用頁面快取 | 使用頁面快取 |
fsync發行 | 每次寫入時發行 | 每次寫入時發行 | 不發行 | 延遲發行 | 不發行 |
寫入過程 | 寫入快取,然後立即刷新到磁碟 | 直接寫入磁碟並立即刷新 | 直接寫入磁碟不刷新 | 寫入快取並延遲刷新 | 寫入快取不刷新 |
讀取性能 | 高(利用快取) | 低(依賴磁碟) | 低(依賴磁碟) | 高(利用快取) | 高(利用快取) |
寫入性能 | 中等(快取輔助) | 低(無快取) | 中等(無快取) | 高(延遲快取刷新) | 非常高(延遲快取刷新) |
數據完整性 | 高 | 非常高 | 中等(依賴磁碟) | 低(延遲寫入) | 非常低(數據丟失風險高) |
使用案例 | 優先考慮讀取性能和完整性的系統 | 需要最大數據完整性的系統 | 性能驅動且完整性需求中等的系統 | 寫入密集型系統,平衡性能與完整性 | 注重性能且可接受數據丟失的系統 |
TRIM (Discard)
Discard命令通知存儲系統某些區塊不再需要。
最初為SSD磨損均衡而引入,某些操作系統可能需要SSD模擬以支持TRIM。除了SSD外,TRIM還能通過移除加密密鑰而不是覆蓋數據來協助安全刪除。
在私人雲環境中,TRIM允許精簡配置的存儲回收空間。通常,一旦虛擬機使用了存儲,即使刪除了數據,存儲層仍會保持分配。
fstrim -v /mountpoint
要進行即時TRIM操作,請使用discard選項進行掛載:
mount -o discard,remount /
IO線程
在VirtIO SCSI中啟用IO線程將磁碟寫入操作卸載到與主操作系統線程分離的獨立線程。
這種設置需要額外的CPU資源,但可以減少延遲,特別是在具有多個虛擬磁碟並同時處理讀寫操作的虛擬機中。