磁盤分區對齊詳解與配置 – Linux篇
介紹
在之前一篇《磁盤分區對齊詳解與配置 – Windows篇》中,我介紹了磁盤分區對齊的作用和適用于MBR和GPT的兩種磁盤類型的配置,以及Windows平臺設置磁盤分區對齊的方法。本文作為系列的第二篇,文章就分區對齊在存儲系統緩存和Raid5下I/O分析,解釋了為什么64KB作為offset錯位的推薦配置。并且提供了使用Linux命令fdisk和parted創建磁盤分區對齊的方法。
更多信息
存儲系統的磁道區域與Linux分區對齊問題:
出于***化性能需求,任何到后端存儲陣列的I/O需要通過配置適當的結構化,從而避免任何I/O操作跨界現象的發生。如果I/O操作跨越多個界限,會帶來額外的資源開銷從而造成性能下降。所以,為了避免因為分區不對齊所造成的性能影響。需要使用工fdisk或者parted工具創建和對齊分區。
如何選擇一個正確的磁盤分區offset值,基本上EMC和其他廠商建議的值都是“64KB”。為什么要選擇64KB這個值呢,這里解釋一下。首先講一下一個叫做物理磁道區域的概念。因為對于不同類型的保護級別,也可以說叫Raid和磁盤類型,這個區域的范圍有所不同的。我們舉兩個個例子:
Symmetrix緩存中的磁道區域單位大小為一個Track,即64個Block、32KB大小。如圖2所示,如果磁盤分區沒有被對齊,則任何32KB或者更大的I/O就需要跨越兩個Track來進行,50%的16KB的I/O會可能會跨越兩個Track,25%的8KB也會跨越兩個Track,造成額外的存儲系統性能開銷。
圖1
看了***個例子,讀者可能會想,那把起始位右移一個Block就好了啊,(MBR+Reserved=63Block),就不會有跨Track的I/O發生了。接下來我們再看另外一個例子。一個3+1 Raid5的單個條帶大小為四個Track,即256個Block、128KB大小。如果對于這類的磁盤,使用第64個block為起始位置,當linux I/O大小達到64KB的時候,如果I/O直接從緩存(單個track為32KB),則正好完成兩次讀取。但是如果,兩個連續的64KB I/O,且需要牽涉到后端Raid5的物理磁盤讀寫,如下圖所示,第二個64KB就會出現跨越兩個條帶的情況發生,從而倒是讀或者寫的開銷加倍。
圖2
在這種情況下,需要將起始位置調節成建議配置(64KB),這樣一來,Linux***I/O大小的情況也不會發生跨多個條帶的情況發生了。(圖3)
圖3
所以說,無論是從存儲系統的緩存從讀取數據,還是I/O在緩存中不存在的情況,需要從底層物理磁盤上讀取數據。對于不同類型的磁盤,64KB的起始為是一個建議配置。
Linux創建分區對齊方法:
描述了磁盤分區對齊的原理后,下面介紹如何使用fdisk創建對齊分區的例子。在Linux中,對齊分區操作需要要空數據的情況下進行,因為對齊分區操作會清空分區表并且該LUN上的數據會被刪除。在這個例子中,我們對/dev/emcpowerfw設備,創建一個大小為51281 Cylinder(Cylinder是Symmetrix的計量單位,每個Cylinder大小為960KB,所以這個磁盤大小為50GB左右)、Offset錯位大小為128個block的磁盤設備。方法和命令輸出(圖4)如下:
方法1,使用fdisk創建分區對齊
Linux命令提示符下輸入:
- # fdisk /dev/emcpowerfw
- 輸入n,創建一個分區;
- 輸入p,創建分區為主分區;
- 輸入起始Cylinder位置,默認為***個;
- 輸入***Cylinder位置,默認為該磁盤設備的***一個Cylinder;
- 輸入x進入expect mode;
- 輸入b,一定分區初始位置;
- 設定最初位置為128個block(128 block大小為64KB);
- 再次輸入p確認分區初始位置信息;
- 輸入w保存退出。
圖4
方法2:使用parted創建對齊分區。Parted和fdisk相比,支持更多的類型(支持GPT)和更大的分區尺寸。下面一個例子給出一個給dev/sdb磁盤創建128bloc分區起始位的例子,方法和命令輸出如下
Linux命令提示符下輸入:
- # parted /dev/sdb
將顯示單位調整為Sector(大小512個字節):
- (parted) unit s
列出當前邏輯卷:
- (parted) print
將原來Number1移除并且創建一個起始位為128 sector,小為976735934 sector的主分區。
- (parted) rm 1
- (parted) mkpart primary 128 976735934
- (parted) print
圖5
參考
Parted命令手冊及參數:http://www.gnu.org/software/parted/manual/parted.html#unit
Fdisk命令手冊及參數:http://manpages.courier-mta.org/htmlman8/fdisk.8.html
EMC-Host-Connectivity-Guide-for-Linux
應用于
Linux Operation System
EMC Symmetrix,VNX,Clarriion存儲系列
原文出處: EMC中文支持論壇