GlusterFS系統中文管理手冊

chenglinunix發表於2015-03-17


1 文件說明

該文件主要內容出自官方提供的英文系統管理手冊《Gluster File System 3.3.0

Administration Guide》。可以看成是管理手冊中文版吧。

 

區別在於:

(1)它是英文的,個人整理的是中文的。所以不想看英文文件的人可以參考參考~~!

(2)它是3.3.0的管理手冊,個人系統管理使用實踐是3.4.1(不過3.3.1也實踐過了)。

(3)它包含了很多內容,本文件只摘取其中系統管理部分(系統管理命令使用),並且進行了歸類整理,方便理解。

(4)另外附加了很多系統管理中很多需要注意的地方,我相信這個是比較重要的(血淚經驗談)。

 

寫這個文件的目的一是給自己做個備份,畢竟自己看英文文件感覺也是很累的,需要的時候可以翻翻,另外就是使用實踐的過程中卻是遇到很多需要注意的地方,自己當時也吃虧了很多次才搞明白,所以希望這些能夠對那些也是使用研究GlusterFS的人有些許的幫助。

 

看完這個文件,有時間還是去看官方文件《Gluster File System 3.3.0 Administration Guide》吧,呵呵,畢竟那才是正版,而且也比較全面。

 


2.1 管理說明

在解釋系統管理時會提供例項,首先給大家提供一個環境說明。所有管理實踐都是在3.4.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服務

#service glusterd start

(2)新增節點到儲存池,在其中一個節點上操作,如server0

#gluster peer probe server1

#gluster peer probe server2

//可以使用gluster peer status檢視當前有多少個節點,顯示不包括該節點

(3)建立系統卷,部署最常見的分散式卷,在server0上操作

#gluster volume create dht_vol 192.168.2.{100,101,102}:/mnt/sdb1

//分別使用server0/1/2的磁碟掛載目錄/mnt/sdb1作為brick

(4)啟動系統卷,在server0上操作

#gluster volume start dht_vol

(5)掛載客戶端,例如在server2

#mount.glusterfs server0:/dht_vol /mnt/gluster

//將系統卷掛載到server2上的/mnt/gluster目錄下就可以正常使用了。該目錄聚合了三個不同主機上的三塊磁碟。

//從啟動服務到提供全域性名字空間,整個部署流程如上。

 

2.3 基本系統管理

2.3.1 節點管理

# gluster peer command

2.3.1.1節點狀態

#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.3.1.2新增節點

# gluster peer probe HOSTNAME

#gluster peer probe server2                      將server2新增到儲存池中

2.3.1.3刪除節點

# gluster peer detach HOSTNAME

#gluster peer detach server2                    將server2從儲存池中移除

//移除節點時,需要確保該節點上沒有brick,需要提前將brick移除

 

2.3.2 卷管理

2.3.2.1建立卷

# gluster volume create NEW-VOLNAME [transport [tcp | rdma | tcp,rdma]]

NEW-BRICK...

建立分散式卷(DHT)

#gluster volume create dht_vol 192.168.2.{100,101,102}:/mnt/sdb1

//DHT卷將資料以雜湊計算方式分佈到各個brick上,資料是以檔案為單位存取,基本達到分佈均衡,提供的容量和為各個brick的總和。

建立副本卷(AFR)

#gluster volume create afr_vol replica 3 192.168.2.{100,101,102}:/mnt/sdb1

//AFR卷提供資料副本,副本數為replica,即每個檔案儲存replica份數,檔案不分割,以檔案為單位儲存;副本數需要等於brick數;當brick數是副本的倍數時,則自動變化為Replicated-Distributed卷。

#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)

#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卷。

#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

#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.3.2.2卷資訊

#gluster volume info

//該命令能夠檢視儲存池中的當前卷的資訊,包括卷方式、包涵的brick、卷的當前狀態、卷名及UUID等。

2.3.2.3卷狀態

#gluster volume status

//該命令能夠檢視當前卷的狀態,包括其中各個brick的狀態,NFS的服務狀態及當前task執行情況,和一些系統設定狀態等。

2.3.2.4啟動/停止卷

# gluster volume start/stop VOLNAME

//將建立的卷啟動,才能進行客戶端掛載;stop能夠將系統卷停止,無法使用;此外gluster未提供restart的重啟命令

2.3.2.5刪除卷

# gluster volume delete VOLNAME

//刪除卷操作能夠將整個卷刪除,操作前提是需要將卷先停止

2.3.3 Brick管理

2.3.3.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.3.3.2移除Brick

若是副本卷,則移除的Bricks數是replica的整數倍;stripe具有同樣的要求。

# gluster volume remove-brick VOLNAME BRICK start/status/commit

#gluster volume remove-brick dht_vol start

//GlusterFS_3.4.1版本在執行移除Brick的時候會將資料遷移到其他可用的Brick上,當資料遷移結束之後才將Brick移除。執行start命令,開始遷移資料,正常移除Brick。

#gluster volume remove-brick dht_vol status

//在執行開始移除task之後,可以使用status命令進行task狀態檢視。

#gluster volume remove-brick dht_vol commit

//使用commit命令執行Brick移除,則不會進行資料遷移而直接刪除Brick,符合不需要資料遷移的使用者需求。

PS:系統的擴容及縮容可以透過如上節點管理、Brick管理組合達到目的。

(1)擴容時,可以先增加系統節點,然後新增新增節點上的Brick即可。

(2)縮容時,先移除Brick,然後再進行節點刪除則達到縮容的目的,且可以保證資料不丟失。

 

2.3.3.3替換Brick

# gluster volume replace-brick VOLNAME BRICKNEW-BRICK start/pause/abort/status/commit

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 start

//如上,執行replcace-brick卷替換啟動命令,使用start啟動命令後,開始將原始Brick的資料遷移到即將需要替換的Brick上。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 status

//在資料遷移的過程中,可以檢視替換任務是否完成。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 abort

//在資料遷移的過程中,可以執行abort命令終止Brick替換。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 commit

//在資料遷移結束之後,執行commit命令結束任務,則進行Brick替換。使用volume info命令可以檢視到Brick已經被替換。

 

 

 

2.4 系統擴充套件維護

2.4.1系統配額

2.4.1.1開啟/關閉系統配額

# gluster volume quota VOLNAME enable/disable

//在使用系統配額功能時,需要使用enable將其開啟;disable為關閉配額功能命令。

2.4.1.2設定(重置)目錄配額

# gluster volume quota VOLNAME limit-usage /directory limit-value

#gluster volume quota dht_vol limit-usage /quota 10GB

//如上,設定dht_vol卷下的quota子目錄的限額為10GB。

PS:這個目錄是以系統掛載目錄為根目錄”/”,所以/quota即客戶端掛載目錄下的子目錄quota

2.4.1.3配額檢視

# gluster volume quota VOLNAME list

# gluster volume quota VOLNAME list /directory name

//可以使用如上兩個命令進行系統卷的配額檢視,第一個命令檢視目的卷的所有配額設定,第二個命令則是執行目錄進行檢視。

//可以顯示配額大小及當前使用容量,若無使用容量(最小0KB)則說明設定的目錄可能是錯誤的(不存在)。

2.4.2地域複製(geo-replication)

# gluster volume geo-replication MASTER SLAVE start/status/stop

地域複製是系統提供的災備功能,能夠將系統的全部資料進行非同步的增量備份到另外的磁碟中。

#gluster volume geo-replication dht_vol 192.168.2.104:/mnt/sdb1 start

//如上,開始執行將dht_vol卷的所有內容備份到2.104下的/mnt/sdb1中的task,需要注意的是,這個備份目標不能是系統中的Brick。

 

2.4.3 I/O資訊檢視

 Profile Command 提供介面檢視一個卷中的每一個brickIO資訊。

#gluster volume profile VOLNAME start

//啟動profiling,之後則可以進行IO資訊檢視

#gluster volume profile VOLNAME info

//檢視IO資訊,可以檢視到每一個Brick的IO資訊

# gluster volume profile VOLNAME stop

//檢視結束之後關閉profiling功能

 

2.4.5 Top監控

Top command 允許你檢視bricks的效能例如:read, write, file open calls, file read calls, file write calls, directory open calls, and directory real calls

所有的檢視都可以設定top數,預設100

# gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt]

//檢視開啟的fd

#gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt]

//檢視呼叫次數最多的讀呼叫

#gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt]

//檢視呼叫次數最多的寫呼叫

# gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt]

# gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt]

//檢視次數最多的目錄呼叫

# gluster volume top VOLNAME read-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//檢視每個Brick的讀效能

# gluster volume top VOLNAME write-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//檢視每個Brick的寫效能


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29958595/viewspace-1463197/,如需轉載,請註明出處,否則將追究法律責任。

相關文章