GlusterFS的分佈卷(distribute)或者含distribute的複合卷用戶場景下,很多人都會關心會不會把某些brick寫滿,其他brick比較空,那會怎麼樣呢?
GlusterFS提供了一個min-free-disk的option可以讓用戶配置剩餘空閒空間的一個閾值。
當某一個brick的剩餘空間少於min-free-disk的時候,新建文件如果落於這一個brick上面,那麼會在這個brick上面建一個link(GlusterFS自有的,將實際文件的位置記錄到擴展屬性上) file指向實際文件所在brick,將實際文件內容放到所指向brick上面。
這樣在文件lookup的時候,會去hash所在位置去lookup到一個link file。然後根據相應的xattr找到真實文件所在位置,後續操作都將到真實文件位置進行操作。
min-free-disk可以通過命令行方式給具體捲進行配置。配置值可以是百分數或者是絕對值。例如:
# gluster volume set volname min-free-disk 10%
或者
# gluster volume set volname min-free-disk 10GB
當然,正如前面所說的這個option只是對新文件起作用,舊文件仍然會在原來位置一直寫。如果原來文件寫太多也會將brick空間佔滿。
並且,如果所有brick都達到閾值了,這個時候仍然在原來的brick上面去寫文件,也有可能將brick佔滿。