GlusterFS分布式系統維護管理筆記補充
阿新 • • 發佈:2018-04-09
設置 計算 自動變 peer 系統配額 行數 掛載 別名 cte
下面是在GlusterFS學習中總結的管理手冊,希望這些能夠對那些也是使用研究 GlusterFS 的人有些許的幫助。
1)管理說明
在解釋系統管理時會提供實例,首先提供一個環境說明。 系統節點: IP 別名 Brick 192.168.2.100 server0 /mnt/sdb1 /mnt/sdc1 /mnt/sdd1 192.168.2.101 server1 /mnt/sdb1 /mnt/sdc1 /mnt/sdd1 192.168.2.102 server2 /mnt/sdb1 /mnt/sdc1 /mnt/sdd1 創建了三個節點,並每臺虛擬機 mount 三塊磁盤作為 Brick 使用,每個 brick 分配了 30G 的虛擬容量。 實例約定 AFR 卷名: afr_vol DHT 卷名: dht_vol Stripe 卷名: str_vol 客戶端掛載點: /mnt/gluster
2)系統部署
2.1) 在每個節點上啟動glusterd服務 [root@localhost ~]# service glusterd start 2.2) 添加節點到存儲池,在其中一個節點上操作 ,如 server0 [root@localhost ~]# gluster peer probe server1 [root@localhost ~]# gluster peer probe server2 //可以使用 gluster peer status 查看當前有多少個節點,顯示不包括該節點 2.3) 創建系統卷, 部署最常見的分布式卷,在 server0上操作 [root@localhost ~]# gluster volume create dht_vol 192.168.2.{100,101,102}:/mnt/sdb1 //分別使用 server0/1/2 的磁盤掛載目錄/mnt/sdb1 作為 brick 2.4) 啟動系統卷,在 server0上操作 [root@localhost ~]# gluster volume start dht_vol 2.5) 掛載客戶端,例如在server2上 [root@localhost ~]# mount.glusterfs server0:/dht_vol /mnt/gluster //將系統卷掛載到 server2 上的/mnt/gluster 目錄下就可以正常使用了。該目錄聚合了三個不同主機上的三塊磁盤。 //從啟動服務到提供全局名字空間,整個部署流程如上。
3)基本系統管理
3.1)節點管理
# gluster peer command 1)節點狀態 [root@localhost ~]# gluster peer status //在serser0上操作,只能看到其他節點與 server0 的連接狀態 Number of Peers: 2 Hostname: server1 Uuid: 5e987bda-16dd-43c2-835b-08b7d55e94e5 State: Peer in Cluster (Connected) Hostname: server2 Uuid: 1e0ca3aa-9ef7-4f66-8f15-cbc348f29ff7 State: Peer in Cluster (Connected) 2)添加節點 [root@localhost ~]# gluster peer probe HOSTNAME #gluster peer probe server2 //將server2添加到存儲池中 3)刪除節點 [root@localhost ~]# gluster peer detach HOSTNAME [root@localhost ~]# gluster peer detach server2 //將server2從存儲池中移除 //移除節點時,需要確保該節點上沒有 brick ,需要提前將 brick 移除
3.2)卷管理
1)創建卷 [root@localhost ~]# gluster volume create NEW-VOLNAME [transport [tcp | rdma | tcp,rdma]] NEW-BRICK... -------------創建分布式卷(DHT)------------- [root@localhost ~]# gluster volume create dht_vol 192.168.2.{100,101,102}:/mnt/sdb1 //DHT 卷將數據以哈希計算方式分布到各個 brick 上,數據是以文件為單位存取,基本達到分布均衡,提供的容量和為各個 brick 的總和。 -------------創建副本卷(AFR)------------- [root@localhost ~]# gluster volume create afr_vol replica 3 192.168.2.{100,101,102}:/mnt/sdb1 //AFR 卷提供數據副本,副本數為 replica,即每個文件存儲 replica 份數,文件不分割,以文件為單位存儲;副本數需要等於brick數;當brick數是副本的倍數時,則自動變化為 Replicated-Distributed卷。 [root@localhost ~]# gluster volume create afr_vol replica 2 192.168.2.{100,101,102}:/mnt/sdb1 192.168.2.{100,101,102}:/mnt/sdc1 //每兩個 brick 組成一組,每組兩個副本,文件又以 DHT 分布在三個組上,是副本卷與分布式卷的組合。 -------------創建條帶化卷(Stripe)------------- [root@localhost ~]# gluster volume create str_vol stripe 3 192.168.2.{100,101,102}:/mnt/sdb1 //Stripe 卷類似 RAID0,將數據條帶化,分布在不同的 brick,該方式將文件分塊,將文件分成stripe塊,分別進行存儲,在大文件讀取時有優勢;stripe 需要等於 brick 數;當 brick 數等於 stripe 數的倍數時,則自動變化為 Stripe-Distributed 卷。 [root@localhost ~]# gluster volume create str_vol stripe 3 192.168.2.{100,101,102}:/mnt/sdb1 192.168.2.{100,101,102}:/mnt/sdc1 //沒三個 brick 組成一個組,每組三個 brick,文件以 DHT 分布在兩個組中,每個組中將文件條帶化成 3 塊。 -------------創建Replicated-Stripe-Distributed卷------------- [root@localhost ~]# gluster volume create str_afr_dht_vol stripe 2 replica 2 192.168.2.{100,101,102}:/mnt/sdb1 192.168.2.{100,101,102}:/mnt/sdc1 192.168.2.{100,101}:/mnt/sdd1 //使用8個 brick 創建一個組合卷,即 brick 數是 stripe*replica 的倍數,則創建三種基本卷的組合卷,若剛好等於 stripe*replica 則為 stripe-Distrbuted 卷。 2)卷 信息 [root@localhost ~]# gluster volume info //該命令能夠查看存儲池中的當前卷的信息,包括卷方式、包涵的 brick、卷的當前狀態、卷名及 UUID 等。 3)卷 狀態 [root@localhost ~]# gluster volume status //該命令能夠查看當前卷的狀態,包括其中各個 brick 的狀態,NFS 的服務狀態及當前 task執行情況,和一些系統設置狀態等。 4)啟動/ 停止 卷 [root@localhost ~]# gluster volume start/stop VOLNAME //將創建的卷啟動,才能進行客戶端掛載;stop 能夠將系統卷停止,無法使用;此外 gluster未提供 restart 的重啟命令 5)刪除卷 [root@localhost ~]# gluster volume delete VOLNAME //刪除卷操作能夠將整個卷刪除,操作前提是需要將卷先停止
3.3)Brick 管理
1)添加 Brick 若是副本卷,則一次添加的 Bricks 數是 replica 的整數倍;stripe 具有同樣的要求。 # gluster volume add-brick VOLNAME NEW-BRICK #gluster volume add-brick dht_vol server3:/mnt/sdc1 //添加 server3 上的/mnt/sdc1 到卷 dht_vol 上。 2)移除 Brick 若是副本卷,則移除的 Bricks 數是 replica 的整數倍;stripe 具有同樣的要求。 [root@localhost ~]# gluster volume remove-brick VOLNAME BRICK start/status/commit [root@localhost ~]# gluster volume remove-brick dht_vol start //GlusterFS_3.4.1 版本在執行移除 Brick 的時候會將數據遷移到其他可用的 Brick 上,當數據遷移結束之後才將 Brick 移除。執行 start 命令,開始遷移數據,正常移除 Brick。 [root@localhost ~]# gluster volume remove-brick dht_vol status //在執行開始移除 task 之後,可以使用 status 命令進行 task 狀態查看。 [root@localhost ~]# gluster volume remove-brick dht_vol commit //使用 commit 命令執行 Brick 移除,則不會進行數據遷移而直接刪除 Brick,符合不需要數據遷移的用戶需求。 PS :系統的擴容及縮容可以通過如上節點管理、Brick 管理組合達到目的。 (1) 擴容時,可以先增加系統節點,然後 添加新增節點上的 Brick 即可。 (2) 縮容時,先移除 Brick ,然後再。 進行節點刪除則達到縮容的目的,且可以保證數據不丟失。 3)替換 Brick [root@localhost ~]# gluster volume replace-brick VOLNAME BRICKNEW-BRICK start/pause/abort/status/commit [root@localhost ~]# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 start //如上,執行 replcace-brick 卷替換啟動命令,使用 start 啟動命令後,開始將原始 Brick 的數據遷移到即將需要替換的 Brick 上。 [root@localhost ~]# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 status //在數據遷移的過程中,可以查看替換任務是否完成。 [root@localhost ~]# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 abort //在數據遷移的過程中,可以執行 abort 命令終止 Brick 替換。 [root@localhost ~]# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 commit //在數據遷移結束之後,執行 commit 命令結束任務,則進行Brick替換。使用volume info命令可以查看到 Brick 已經被替換。
4)GlusterFS系統擴展維護
4.1)系統配額
1)開啟/關閉系統配額 [root@localhost ~]# gluster volume quota VOLNAME enable/disable //在使用系統配額功能時,需要使用 enable 將其開啟;disable 為關閉配額功能命令。 2)設置( 重置) 目錄配額 [root@localhost ~]# gluster volume quota VOLNAME limit-usage /directory limit-value [root@localhost ~]# gluster volume quota dht_vol limit-usage /quota 10GB //如上,設置 dht_vol 卷下的 quota 子目錄的限額為 10GB。 PS:這個目錄是以系統掛載目錄為根目錄”/”,所以/quota 即客戶端掛載目錄下的子目錄 quota 3)配額查看 [root@localhost ~]# gluster volume quota VOLNAME list [root@localhost ~]# gluster volume quota VOLNAME list /directory name //可以使用如上兩個命令進行系統卷的配額查看,第一個命令查看目的卷的所有配額設置,第二個命令則是執行目錄進行查看。 //可以顯示配額大小及當前使用容量,若無使用容量(最小 0KB)則說明設置的目錄可能是錯誤的(不存在)。
4.2)地域復制(geo-replication)
# gluster volume geo-replication MASTER SLAVE start/status/stop 地域復制 是系統提供的災備功能,能夠將系統的全部數據進行異步的增量備份到另外的磁盤中。 [root@localhost ~]# gluster volume geo-replication dht_vol 192.168.2.104:/mnt/sdb1 start //如上,開始執行將 dht_vol 卷的所有內容備份到 2.104 下的/mnt/sdb1 中的 task,需要註意的是,這個備份目標不能是系統中的 Brick。
4.3)I/O 信息查看
Profile Command 提供接口查看一個卷中的每一個brick的IO信息。 [root@localhost ~]# gluster volume profile VOLNAME start //啟動 profiling,之後則可以進行 IO 信息查看 [root@localhost ~]# gluster volume profile VOLNAME info //查看 IO 信息,可以查看到每一個 Brick 的 IO 信息 [root@localhost ~]# gluster volume profile VOLNAME stop //查看結束之後關閉 profiling 功能
4.4)Top 監控
Top command 允許你查看bricks的性能例如:read, write, file open calls, file read calls, file write calls, directory open calls, and directory real calls所有的查看都可以設置 top數,默認100 [root@localhost ~]# gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt] //查看打開的 fd [root@localhost ~]# gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt] //查看調用次數最多的讀調用 [root@localhost ~]# gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt] //查看調用次數最多的寫調用 [root@localhost ~]# gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt] [root@localhost ~]# gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt] //查看次數最多的目錄調用 [root@localhost ~]# gluster volume top VOLNAME read-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt] //查看每個 Brick 的讀性能 [root@localhost ~]# gluster volume top VOLNAME write-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt] //查看每個 Brick 的寫性能
GlusterFS分布式系統維護管理筆記補充