許多系統管理員可能不曾聽過”磁盤分區對齊“之說,甚至一些有經驗的存儲管理員對分區對齊也不甚了解。磁盤分區不對齊現象是什么,為什么會造成比較嚴重的性能下降?相反,配置正確的分區起始位置(Offset)設置會使存儲系統發揮更大的性能潛力。文章就磁盤分區對齊進行的介紹,并且給出了在windows平臺上如何配置的方法。
什么是磁盤分區對齊(Disk Alignment、Partition Alignment):
Windows的磁盤有一種結構叫做Master Boot Record(MBR), 它的默認大小為63個Block(每個大小為512字節)。它的存在使得磁盤的初始位置和的磁盤上第一個分區的初始位置有63個Block的錯位。如果磁盤的單個Track大于63個Block的話。這就會導致默認的初始的位置是從第64個開始。使文件系統的中的Track和位于磁盤中的兩個Track之上。這種不對齊現象會導致存儲系統的性能下降,原因是單個I/O請求會跨越多個磁盤上的Track,從而導致存儲系統的額外性能開銷。特別是對于一些隨機I/O比較較大的應用程序,影響將更大。
而對于Windows 2003以后支持的GPT Disk,也會存在磁盤分區不對齊的現象,但是結構有所不同。如圖1所示(圖中單位為Block,512字節),所有的分區由1MB大小(2048 Block)構成,第一個分區從LBA 34開始,即17KB大小位置。這也就意味著所有的分區會有17KB的不對齊的情況發生。同樣會導致I/O讀寫性能影響。
Windows磁盤分區對齊配置
配置磁盤分區對齊后,如下圖所示四個分區的例子中,對比圖1中不對稱的情況,圖2中這些Windows的分區結束地址與圖1中的地址位置一致了。
磁盤分區對齊操作,只針對Windows的Basic Disk。對于Windows 2008和Windows 2008 R2,無需對磁盤進行對齊操作,因為這個過程已經在操作系統劃分分區的時候自動進行了,軟件的升級還是給管理員們帶來了不少便利的。對于Windows 2003和 2003 R2,以及Windows 2000,建議設置開始偏移量(starting offset)為64KB(128 block)。另外,對于Dynamic Disk類型,不能進行磁盤分區對齊操作。不過,如果原來的Basic Disk上已經進行了對齊操作的分區,會在轉換后保留原來的對齊。
查看Windows磁盤分區對齊方法:
1. 查看Basic Disk的分區對齊信息:
方法1:
在Windows的命令行下輸入Diskpart命令。
C:>diskpart
選擇對應的Disk
DISKPART> list disk (顯示本機所有磁盤)
DISKPART> Select Disk X (x代表上面顯示的從0開始的磁盤編號)
DISKPART> list partition (顯示從1開始的所有的分區信息,在最右邊有一個Offset/偏移量的值,如果它是8的倍數,說明你的硬盤分區是對齊的,如果不是,說明你的磁盤分區沒有對齊)
方法2:
使用WMIC命令,在Windows命令行下輸入下列命令,命令輸出的列StartingOffset為該分區的偏移量,該數值除以512則為扇區數目:
wmic partition get BlockSize, StartingOffset, Name, Index
2.查看Dynamic Disk的對齊信息:
使用dmdiag工具,下載地址;
執行從命令行執行dmdiag.exe –v
在命令行輸出中,LDM Volume區域的RelSec列,該列顯示的就是Dynamic Disk的起始扇區。
磁盤分區對齊配置方法:
對于Windows 2003 sp1以下版本,使用dispar命令來設置偏移量和分區對齊。步驟如下:
1. 安裝在Windows Resource Kit后,在Performance Tools目錄下,通過命令行運行diskpar命令:
2. 使用diskpar –s N命令,下面的例子中定義了配置一個20GB的磁盤的錯位64KB的配置
對于Windows 2003 sp1以上版本,dispar命令被dispart命令所替換。
1. 在CMD命令行運行Diskpart命令
C:>diskpart
2. 選擇對應的Disk
DISKPART> Select Disk X
3. 創建分區設置偏移量為64KB(128 Block),下面的例子為創建一個1GB的分區。
DISKPART> create partition primary size=1024
最后,進行分區對齊操作的時候需要注意:對齊操作需要在磁盤上寫入數據之前完成,最好在磁盤剛剛映射到主機時進行。磁盤對齊操作必然損壞磁盤上的數據,所以如果有數據需先備份,操作的時候注意數據安全。