我相信我患有「一切都必須是2的冪」症候群。當要求在 VmWare 中為 VM 建立 30G 磁碟時,我想建立 32G 磁碟。如果有人需要使用 LVM 的 256G 存儲,我會建立 1 256、2 128 或 4 64...
問題很簡單,建立「奇數」大小的磁碟是否會對效能產生影響或有缺點,即使我將它們放入 Linux 上的磁碟區組中?如果有人要求 80G,是否可以創建 10、20 和 50 來完成它?或者如果可以的話我應該嘗試堅持2的冪?
答案1
我建議您密切注意分區是否是所謂的 I/O 對齊,因為這可能確實會影響 I/O 效能。如今,這不是安裝程式或設定精靈通常會在某些"power of 2"
邊界上自動對齊分割區的問題,但當您手動建立它時,了解它的工作原理可能仍然有用。
我將嘗試借用虛擬環境的簡單範例來解釋這個概念。為了簡單起見,我們假設使用 VMware vSphere 基礎架構和 VMFS 檔案系統。我們總共必須考慮三層:具有一定大小的區塊用於請求資料的磁碟陣列、具有一定大小的區塊的 VMFS 檔案系統以及最後以區塊/叢集組織的來賓作業系統檔案系統。
通常,您無需花費時間將 VMFS 檔案系統與磁碟陣列對齊,因為當您使用 vCenter 建立新的 VMFS 資料儲存時,此操作會自動執行。客戶作業系統的情況更糟。下面是未對齊圖層的圖片:
當來賓作業系統讀取/寫入單一區塊/叢集時,底層虛擬機器管理器/磁碟陣列將必須從 VMFS 檔案系統請求一個區塊,並請求兩個磁碟陣列區塊,因為該區塊跨越多個區塊。這可能意味著從多個磁碟軸讀取或寫入,因為根據 RAID 配置,這些區塊可能會在多個磁碟上條帶化。當然,這不是最佳配置。更好的是對齊的:
然後,一個檔案系統區塊請求產生一個磁碟陣列區塊請求。儘管如此,大多數現代作業系統都會記住在安裝過程中自動 I/O 對齊分割區。例如,Windows Server 2008 或 RedHat Enterprise Linux 6 可以執行此操作,但 Windows Server 2003 或更舊的發行版則不能。
因此,仍然值得記住它,因為自動 I/O 對齊通常取決於儲存裝置功能來指示其首選 I/O 對齊和 I/O 區塊大小。現代Linux I/O 堆疊(例如RHEL 6、parted、LVM、mkfs)可以使用此類資訊並自動執行它。但如果它沒有按預期工作,您應該手動完成。