您好,登錄后才能下訂單哦!
本篇內容介紹了“glusterfs volume管理相關問題有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Q: 常用的命令有哪些?
創建volume:
gluster volume create NAME stripe SCOUNT replica RCOUNT transport TYPE BRICKLIST
NAME為volume的名字;SCOUNT,RCOUNT分別為stripe,replica的個數;transport為傳輸類型(tcp/rdma);BRICKLIST為brick列表,具體形式為HOME:PATH
啟用volume: gluster volume start NAME
停用volume: gluster volume stop NAME
刪除volume: gluster volume delete NAME
查看volume信息: gluster volume info
查看volume運行時的信息: gluster volume statedump Name
===========================
Q: 創建/啟用/停用/刪除volume最終都干了些什么?
(1) 創建volume能看得到的結果是: glusterd在工作目錄(默認為/var/lib/glusterd)的vols目錄下,創建以volume名稱為名字的目錄,并在這個目錄下創建相關文件記錄volume的相關信息;看不到的結果是glusterd程序中也記錄了volume的相關信息。(2) 啟用volume的結果是在指定brick的節點上啟動glusterfsd和glusterfs進程(注意:如果多個brick在同一節點下,會有多個glusterfsd進程,但只有一個glusterfs進程),同時在日志文件中更新記錄的volume相關信息。(3) 停用volume的結果是結束glusterfsd和glusterfs進程。(4)刪除volume則是將創建volume的相關文件信息全部清除。
===========================
Q: 創建volume時都會創建哪些文件?分別記錄些什么信息?
創建volume時會在glusterd工作目錄(默認為/var/lib/glusterd)的vols目錄下,創建以volume名字為名的目錄,在這個目錄下會創建這些文件:
info文件:保存volume的復制類型,volume的brick個數,brick的詳細信息,stripe個數,replica個數,傳輸類型,volume的唯一ID,以及內部使用的用戶名密碼。這些基本上都是創建volume指定的參數信息。
node_state.info:rebalance的狀態信息,由gluster volume rebalance命令觸發(不完全確定)。
rb_state:rebalane-brick的狀態信息,由gluster volume-brick命令觸發(不完全確定)。
cksum:校驗值
Name-fuse.vol/trusted-Name-fuse.vol(Name為volume的名字):volume對應glusterfs的配置文件,進程啟動時讀取。
Name.Host.Path.vol(Name為volume的名字,Host為brick的主機名,Path為brick的存儲路徑'/'轉換為'-'):
volume對應brick的glusterfsd的配置文件,進程啟動時讀取。
bricks/Host:Path(Host為brick的主機名,Path為brick的存儲路徑'/'轉換為'-'):birck的相關信息,包括brick的主機名,文件存儲路徑,對應glusterfsd的偵聽端口,以及連接狀態。
啟用volume時,會記錄brick對應glusterfsd進程的pid信息到 run/HOST-PATH.pid 文件中。
===========================
Q: glusterd對這些命令的處理,內部實現大概是怎樣的?
與peer節點管理一樣,針對volume的操作,glusterd也維護了一個事件鏈表和一個狀態機,以及相應的狀態數組,事件處理數組。當有對volume的操作請求時,往事件鏈表中添加事件,并根據狀態機的變化,從相應狀態的事件處理數組中找到對應的事件處理函數,并完成實際的處理動作。節點管理中是根據每個peer節點的狀態作為有限狀態機的變化,而volume的管理則是有一個全局的變量(opinfo)記錄相應的狀態。
由于brick可能是遠端的節點,因此glusterd在本地處理的同時,還會和遠端節點的glusterd交互。從上面狀態機的轉換可看出,一個請求的處理過程可理解為事務的執行,包括上鎖,提交,釋放鎖等,具體實現方式等同于2pc的提交。示。
===========================
Q: 這篇文章最后提到的問題是怎么回事?
這是因為創建volume時,在brick對應的存儲目錄上,增加了"trusted.glusterfs.volume-id"和"trusted.gfid"兩個擴展屬性,在刪除volume時并未移除這兩個屬性,再次創建時,對brick的存儲目錄進行校驗,發現已經有了擴展屬性,因此會有brick已經是volume的一部分的提示。
通過getfattr命令可以查看這些存儲路徑的擴展屬性
“glusterfs volume管理相關問題有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。