Lustre's Load Balance Mechanism
- 利用虛擬機初步測試的結果發現 Lustre 檔案系統在寫入操作方面,本身就具有 load balance 的機制,
在 OST 具有不同大小的情況下,MDS 會先指派 free space 較大的 OST 給予 client 寫入檔案。
然而若 OST 全部具有同樣大小的情況,MDS 則會採用 round-robin 的機制,輪流分配 OST 給 client 端寫入檔案!
- 得到上面這個結論後的第一個反應就是,那麼 read 的 Load Balance 豈不是也已經作好了?
一旦當初被寫入的檔案很平均地分布在各個 OST 中,那麼當 client 要讀取的時候,load 照理說也會自動被分散掉不是嗎?
- 關於這點必須要還再思考,並且構思接下來要實驗的方式!
- 使用 lfs 指令可以指定 file stripe 的大小、以及欲使用的 OST 數目,這個對 Load Balance 將會有幫助!
- Lustre 在處理 file stripe 上面有個缺點,就是無法自動判別 target OST 是否還有空間可以存放資料。
譬如說,有四個不同大小的 OSTs ,其中最大的是40GB (假設是 OST01),最小的是 5GB (假設是 OST04),如果採用 file stripe 的方式將大檔案均勻分割再平均撒到四個OSTs中,
這個情況下,OST04 一定會最先用完容量,一旦 OST04 的容量用完,那麼這個 client 就再也無法寫入其他任何檔案至 Lustre 檔案系統中了,
可惜的是此時其他的OST可能還有許多空間可以利用。因此這是 lustre 在處理 file stripe 時的一個缺點,也就是說,針對大小差異越大的 OSTs,
Lustre 並沒有辦法有效率地使用這些 OSTs。
Download in other formats: