GFS 日常操作


實驗環境

 

 

 

 

 

 

配置規划

 

 

 

 軟件下載

下載地址
http://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64/
RPM安裝包
glusterfs-3.4.2-1.el6.x86_64.rpm
glusterfs-api-3.4.2-1.el6.x86_64.rpm
glusterfs-cli-3.4.2-1.el6.x86_64.rpm
glusterfs-fuse-3.4.2-1.el6.x86_64.rpm
glusterfs-libs-3.4.2-1.el6.x86_64.rpm
glusterfs-server-3.4.2-1.el6.x86_64.rpm依賴包安裝
依賴包
Rpcbind
Libaio
Lvm2-devel
YUM安裝
Yum install rpcbind libaio lvm2-devel

 軟件安裝

安裝服務器端軟件包
glusterfs-3.4.2-1.el6.x86_64.rpm
glusterfs-cli-3.4.2-1.el6.x86_64.rpm 
glusterfs-libs-3.4.2-1.el6.x86_64.rpm 
glusterfs-api-3.4.2-1.el6.x86_64.rpm 
glusterfs-fuse-3.4.2-1.el6.x86_64.rpm 
glusterfs-server-3.4.2-1.el6.x86_64.rpm
安裝客戶端軟件包
glusterfs-3.4.2-1.el6.x86_64.rpm
glusterfs-libs-3.4.2-1.el6.x86_64.rpm
glusterfs-fuse-3.4.2-1.el6.x86_64.rpm
 
工具安裝
工具軟件
Atop, iperf, sysstat
dd, Iozone, fio, postmark
工具安裝
yum install sysstat
rpm –ivh *.rpm 
gcc –o postmark postmark-1.52.c

 系統配置

主機名設置
/etc/hosts  server1, server2, server3
DNS設置
編輯/etc/resolv.conf
nameserver 192.168.8.2
NTP設置
/etc/ntp.conf
關閉防火牆
Service iptables stop; chkconfig iptables off
設置Selinux
/etc/selinux/config
SELINUX=disabled

 

磁盤分區
EXT4格式化工具目前最大支持16TB
使用parted進行磁盤分區
分區格式化
Mkfs.ext4 –L /brick1/dev/sdb

 

服務配置

分區自動掛載
/etc/fstab
LABLE=/brcik1 /brick1 ext4 defaults 1 1
Gluster服務自啟動
Service glusterd start
Chkconfig glusterd on

 

二。開始hash創建

[root@glusterfs1 ~]# gluster peer probe glusterfs2
peer probe: success: host glusterfs2 port 24007 already in peer list
[root@glusterfs1 ~]# gluster peer probe glusterfs3
peer probe: success: host glusterfs3 port 24007 already in peer list
[root@glusterfs1 ~]# gluster peer info
unrecognized word: info (position 1)
[root@glusterfs1 ~]# gluster peer status
Number of Peers: 2

Hostname: glusterfs2
Port: 24007
Uuid: f95fe5a9-eb37-4d7c-b73b-46224a9e5288
State: Peer in Cluster (Connected)

Hostname: glusterfs3
Port: 24007
Uuid: b825a8e5-de88-4ec6-a8b5-a2329d7f5d35
State: Peer in Cluster (Connected)


#注意::如果報錯請檢查24007端口是否開啟。。

div>
刪除節點
Gluser peer detach IP/主機名</

 

#創建一個叫meizi的卷 使用的是glusterfs1下的掛載目錄/brick1/創建一個b1的目錄
[root@glusterfs1 /]# gluster volume create meizi glusterfs1:/brick1/b1


#啟動卷
[root@glusterfs1 /]# gluster volume start meizi
volume start: meizi: success

#查看卷信息
[root@glusterfs1 /]# gluster volume info
 
Volume Name: meizi
Type: Distribute
Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: glusterfs1:/brick1/b1


#掛載卷:發現卷已經掛載到本地,可以用別名或者IP
[root@glusterfs1 /]# mount -t glusterfs 192.168.1.109:/meizi /mnt
[root@glusterfs1 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.6G   15G  16% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/sdb1             7.9G  147M  7.4G   2% /brick1
/dev/sdc1             7.9G  146M  7.4G   2% /brick2
192.168.1.109:/meizi  7.9G  146M  7.4G   2% /mnt

 

 

 GlusterFS命令

GlusterFS命令
gluster peer probe HOSTNAME
gluster volume info
gluster volume create VOLNAME [stripe COUNT] 
[replica COUNT] [transport tcp | rdma] BRICK …
gluster volume delete VOLNAME
gluster volume add-brick VOLNAME NEW-BRICK ...
gluster volume rebalance VOLNAME start



#添加集群理的brick
[root@glusterfs1 b1]# gluster volume add-brick meizi glusterfs2:/brick1/b2 glusterfs3:/brick1/b3
volume add-brick: success
[root@glusterfs1 b1]# gluster volume info
 
Volume Name: meizi
Type: Distribute
Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
Status: Started
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: glusterfs1:/brick1/b1
Brick2: glusterfs2:/brick1/b2
Brick3: glusterfs3:/brick1/b3


# 發現磁盤擴展大了
[root@glusterfs1 b1]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.6G   15G  16% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/sdb1             7.9G  147M  7.4G   2% /brick1
/dev/sdc1             7.9G  146M  7.4G   2% /brick2
192.168.1.109:/meizi   24G  310M   22G   2% /mnt


#在/mnt/里創建目錄/發現 3台服務器里面的/brick1/b{1..3}里面都有文件了。


#刪除操作刪除一個節點把3節點邏輯磁盤刪除

[root@glusterfs1 b1]# gluster volume remove-brick meizi glusterfs3:/brick1/b3 
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success
[root@glusterfs1 b1]# gluster volume info
 
Volume Name: meizi
Type: Distribute
Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: glusterfs1:/brick1/b1
Brick2: glusterfs2:/brick1/b2

#發現磁盤變小 現在是2給磁盤
[root@glusterfs1 b1]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.6G   15G  16% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/sdb1             7.9G  148M  7.4G   2% /brick1
/dev/sdc1             7.9G  146M  7.4G   2% /brick2
192.168.1.109:/meizi   16G  296M   15G   2% /mnt


#但是發現數據沒有恢復,只剩下其中在線節點的數據,如果想要數據從被刪除的brick里面底層copy過去
[root@glusterfs2 ceshi]# ll
total 156
-rw-r--r-- 2 root root     0 Mar 18 04:59 b
-rw-r--r-- 2 root root 56728 Mar 18 05:00 glusterfs-api-3.4.2-1.el6.x86_64.rpm
-rw-r--r-- 2 root root 98904 Mar 18 05:00 glusterfs-cli-3.4.2-1.el6.x86_64.rpm

#不管增加還是刪除一般都會對meizi這個卷做負載均衡,不然數據分布會集中在老的分布上
[root@glusterfs2 ceshi]# gluster volume rebalance meizi start
volume rebalance: meizi: success: Starting rebalance on volume meizi has been successful.
ID: a46ce2ba-9237-48ee-bfbc-e9551716d4eb


#當你在去加刪除的3節點邏輯盤時候報錯,是因為3節點力有這個集群的擴展卷,需要吧/brick1/b3刪除以后就可以加了,加完在執行rebalance來平均負載(如果線上,建議業務不忙的時候在做)
[root@glusterfs2 mnt]# gluster volume add-brick meizi glusterfs3:/brick1/b3
volume add-brick: failed: 
[root@glusterfs2 mnt]# gluster volume add-brick meizi glusterfs3:/brick1/b3
volume add-brick: success

[root@glusterfs2 mnt]# gluster volume rebalance meizi start
volume rebalance: meizi: success: Starting rebalance on volume meizi has been successful.
ID: b18108b5-fdde-4b98-9b4e-552c6bd53f74

 

#刪除卷

#刪除的時候建議先卸載 umount 

#在停止卷
[root@glusterfs2 ceshi]# gluster volume stop meizi
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: meizi: success

#刪除卷
[root@glusterfs2 ceshi]# gluster volume delete meizi
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: meizi: success

#查看卷的時候已經沒有了
[root@glusterfs2 ceshi]# gluster volume info
No volumes present

#刪除底層數據
[root@glusterfs1 ceshi]# rm -rf /brick1/b1/
[root@glusterfs2 brick1]#  rm -rf /brick1/b2
[root@glusterfs3 ceshi]#  rm -rf /brick1/b3

 

 三。復制卷

#創建復制卷  創建1個復制卷由2給邏輯磁盤組成
[root@glusterfs1 ceshi]# gluster volume create meizi replica 2 glusterfs1:/brick1/b1 glusterfs2:/brick1/b2
volume create: meizi: success: please start the volume to access data

#啟動卷
[root@glusterfs1 ceshi]# gluster volume  start meizi
volume start: meizi: success

#查看卷信息
[root@glusterfs1 ceshi]# gluster volume info
 
Volume Name: meizi
Type: Replicate
Volume ID: d6cc9695-9c7d-4747-9e30-755e89b1047b
Status: Created
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusterfs1:/brick1/b1
Brick2: glusterfs2:/brick1/b2

#掛載卷,復制卷相當於raid1空間利用率只有一半
[root@glusterfs1 mnt]# mount -t glusterfs 192.168.1.109:/meizi /mnt/ 
[root@glusterfs1 mnt]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.6G   15G  16% /
tmpfs                 495M  228K  495M   1% /dev/shm
/dev/sda1             291M   33M  243M  12% /boot
/dev/sdb1             7.9G  147M  7.4G   2% /brick1
/dev/sdc1             7.9G  146M  7.4G   2% /brick2
192.168.1.109:/meizi  7.9G  146M  7.4G   2% /mnt





#卷同步操作,刪除某一個節點力的信息
[root@glusterfs1 vols]# rm -rf /var/lib/glusterd/vols/meizi/

#從節點2還原節點配置文件
[root@glusterfs1 vols]# gluster volume sync glusterfs2 all

Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y
volume sync: success
[root@glusterfs1 vols]# ls
meizi

 

 卷參數配置

Gluster volume set <卷> <參數>
參數項目 說明 缺省值 合法值
Auth.allow IP訪問授權 *(allow all) Ip地址
Cluster.min-free-disk 剩余磁盤空間閾值 10% 百分比
Cluster.stripe-block-size 條帶大小 128KB 字節
Network.frame-timeout 請求等待時間 1800s 0-1800
Network.ping-timeout 客戶端等待時間 42s 0-42
Nfs.disabled 關閉NFS服務 Off Off|on
Performance.io-thread-count IO線程數 16 0-65
Performance.cache-refresh-timeout 緩存校驗周期 1s 0-61
Performance.cache-size 讀緩存大小 32MB 字節

 

#授權遠程訪問。  
#允許192.168.1.109訪問
[root@glusterfs1 vols]# gluster volume set meizi auth.allow 192.168.1.109
#拒絕192.168.1.104 訪問 也可以用網絡段
[root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.104
[root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.*

#關閉NFS進程
[root@glusterfs1 vols]# ps -ef |grep nfs
root     34280     1  0 05:31 ?        00:00:00 /usr/sbin/glusterfs -s localhost --volfile-id gluster/nfs -p /var/lib/glusterd/nfs/run/nfs.pid -l /var/log/glusterfs/nfs.log -S /var/run/2c9f3b7533e5ab1ee0c5c1fb6a6831bd.socket
root     34876 28232  0 05:52 pts/1    00:00:00 grep nfs
[root@glusterfs1 vols]# gluster volume set meizi nfs.disable on
volume set: success
[root@glusterfs1 vols]# ps -ef |grep nfs
root     34896 28232  0 05:53 pts/1    00:00:00 grep nfs

 #日志存放在/var/log/gluster/下

 

#測試工具
測試網絡


[root@43-247-208-225 ~]# iperf -s

[  8] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29782
[  4] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29783
[  5] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29785
[  6] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29784
[  8]  0.0-10.0 sec  3.90 GBytes  3.35 Gbits/sec
[  5]  0.0-10.0 sec  1.40 GBytes  1.20 Gbits/sec
[  4]  0.0-10.0 sec  1.62 GBytes  1.39 Gbits/sec
[  6]  0.0-11.0 sec  2.36 GBytes  1.84 Gbits/sec
[SUM]  0.0-11.0 sec  9.28 GBytes  7.24 Gbits/sec

[root@43-247-208-229 ~]# iperf -c 43.247.208.225 -P4

Client connecting to 43.247.208.225, TCP port 5001
TCP window size:  127 KByte (default)
------------------------------------------------------------
[  5] local 43.247.208.229 port 29784 connected with 43.247.208.225 port 5001
[  4] local 43.247.208.229 port 29783 connected with 43.247.208.225 port 5001
[  6] local 43.247.208.229 port 29785 connected with 43.247.208.225 port 5001
[  3] local 43.247.208.229 port 29782 connected with 43.247.208.225 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 9.0 sec  3.90 GBytes  3.72 Gbits/sec
[  4]  0.0- 9.0 sec  1.62 GBytes  1.55 Gbits/sec
[  6]  0.0- 9.0 sec  1.40 GBytes  1.33 Gbits/sec
[  5]  0.0-10.0 sec  2.36 GBytes  2.03 Gbits/sec
[SUM]  0.0-10.0 sec  9.28 GBytes  7.97 Gbits/sec

 

 #復制卷故障數據不一樣

故障現象:雙副本卷數據出現不一致
故障模擬:刪除其中一個brick數據
[root@glusterfs1 mnt]# rm -rf  /brick1/b1/dd.dat




修復方法 觸發自修復:遍歷並訪問文件
find /mnt -type f -print0 | xargs -0 head -c1
cat 一下文件 然后發現刪除的回來了
[root@glusterfs1 mnt]# ls /brick1/b1/
abc

 

 

恢復節點配置信息
故障現象:其中一個節點配置信息不正確
故障模擬



配置信息位置:/var/lib/glusterd/ 
修復方法 觸發自修復:通過Gluster工具同步配置信息
Gluster volume sync server1 all



#操作過程



刪除server2部分配置信息
[root@glusterfs2 brick1]# rm -rf /brick1/b2/

#查看1的擴展屬性
[root@glusterfs1 brick1]# getfattr -d -m . -e hex b1/
# file: b1/
trusted.afr.meizi-client-0=0x000000000000000000000000
trusted.afr.meizi-client-1=0x000000000000000000000000
trusted.gfid=0x00000000000000000000000000000001
trusted.glusterfs.dht=0x000000010000000000000000ffffffff
trusted.glusterfs.volume-id=0xd6cc96959c7d47479e30755e89b1047b

#去2節點創建這個b2目錄 
[root@glusterfs2 brick1]# mkdir b2
#查看擴展屬性是空的
[root@glusterfs2 brick1]# getfattr -d -m . -e hex b2





恢復復制卷brick
故障現象:雙副本卷中一個brick損壞
恢復流程
1、重新建立故障brick目錄
setfattr -n trusted.gfid -v 0x00000000000000000000000000000001 b2 
setfattr -n trusted.glusterfs.dht -v 0x000000010000000000000000ffffffff b2
setfattr -n trusted.glusterfs.volume-id -v 0xd6cc96959c7d47479e30755e89b1047b b2
-v 的參數設置成你的值
2、設置擴展屬性(參考另一個復制brick) 
3、重啟glusterd服務 4、觸發數據自修復 find /mnt -type f -print0 | xargs -0 head -c1 >/dev/nul

 

 

常見故障處理(1)
Q1:Gluster需要占用哪些端口?
Gluster管理服務使用24007端口,Infiniband管理使用24008端口,每個
brick進程占用一個端口。比如4個brick,使用24009-24012端口。
Gluster內置NFS服務使用34865-34867端口。此外,portmapper使用111
端口,同時打開TCP和UDP端口。
Q2:創建Gluster資源池出問題?
首先,檢查nslookup是否可以正確解析DNS和IP。其次,確認沒有使用
/etc/hosts直接定義主機名。雖然理論上沒有問題,但集群規模一大很多
管理員就會犯低級錯誤,浪費大量時間。再者,驗證Gluster服務所需的
24007端口是否可以連接(比如telnet)?Gluster其他命令是否可以成功執
行?如果不能,Gluster服務很有可能沒有啟動。
Q3:如何檢查Gluster服務是否運行?
可以使用如下命令檢查Gluster服務狀態:
(1) service glusterd status
(2) systemctl status glusterd.service
(3) /etc/init.d/glusterd status


常見故障處理(2)
Q4:無法在server端掛載(mount)Gluster卷?
檢查gluster卷信息,使用gluster volume info確認volume處於啟動狀態。
運行命令“showmount -e <gluster node>“,確認可以輸出volume相關
信息。
Q5:無法在client端掛載(mount)Gluster卷?
檢查網絡連接是否正常,確認glusterd服務在所有節點上正常運行,確認
所掛載volume處於啟動狀態。
 Q6:升級Gluster后,客戶端無法連接?
如果使用原生客戶端訪問,確認Gluster客戶端和服務端軟件版本一致。
通常情況下,客戶端需要重新掛載卷。
Q7: 運行“gluster peer probe“,不同節點輸出結果可能不一致?
這個通常不是問題。每個節點輸出顯示其他節點信息,並不包括當前節
點;不管在何處運行命令,節點的UUID在所有節點上都是相同和唯一的;
輸出狀態通常顯示“Peer in Cluster (Connected)“,這個值應該和
/var/lib/glusterd/glusterd.info匹配。



常見故障處理(3)
Q8:數據傳輸過程中意外殺掉gluster服務進程?
所有數據都不會丟失。Glusterd進程僅用於集群管理,比如集群節點擴
展、創建新卷和修改舊卷,以及卷的啟停和客戶端mount時信息獲取。殺
掉gluster服務進程,僅僅是一些集群管理操作無法進行,並不會造成數
據丟失或不可訪問。
Q9:意外卸載gluster?
如果Gluster配置信息沒有刪除,重新安裝相同版本gluster軟件,然后重
啟服務即可。Gluster配置信息被刪除,但數據仍保留的話,可以通過創
建新卷,正確遷移數據,可以恢復gluster卷和數據。友情提示:配置信
息要同步備份,執行刪除、卸載等操作一定要謹慎。
Q10:無法通過NFS掛載卷?
這里使用Gluster內置NFS服務,確認系統內核NFS服務沒有運行。再者,
確認rpcbind或portmap服務處於正常運行中。內置NFS服務目前不支持
NFS v4,對於新Linux發行版默認使用v4進行連接,mount時指定選項
vers=3。
mount -t nfs -o vers=3 server2:/myglustervolume /gluster/mount/point




常見故障處理(4)
Q11:雙節點復制卷,一個節點發生故障並完成修復,數據如何同步?
復制卷會自動進行數據同步和修復,這個在同步訪問數據時觸發,也可
以手動觸發。3.3以后版本,系統會啟動一個服務自動進行自修復,無需
人工干預,及時保持數據副本同步。
 Q12:Gluster日志在系統什么位置?
新舊版本日志都位於/var/log/glusterfs
Q13:如何輪轉(rotate)Gluster日志?
使用gluster命令操作:gluster volume log rotate myglustervolume
Q14:Gluster配置文件在系統什么位置?
3.3以上版本位於/var/lib/glusterd,老版本位於/etc/glusterd/。  Q15:數據庫運行在gluster卷上出現很多奇怪的錯誤和不一致性?
Gluster目前不支持類似數據庫的結構化數據存儲,尤其是大量事務處理
和並發連接。建議不要使用Gluster運行數據庫系統,但Gluster作為數據
庫備份是一個很不錯的選擇


常見故障處理(5)
Q16:Gluster系統異常,重啟服務后問題依舊。
很有可能是某些服務進程處於僵死狀態,使用ps -ax | grep glu命令查
看。如果發出shutdown命令后,一些進程仍然處於運行狀態,使用
killall -9 gluster{,d,fs,fsd}殺掉進程,或者硬重啟系統。
Q17:需要在每個節點都運行Gluster命令嗎?
這個根據命令而定。一些命令只需要在Gluster集群中任意一個節點執
行一次即可,比如“gluster volume create”,而例如“gluster peer 
status ”命令可以在每個節點獨立多次執行。
Q18:如何快速檢查所有節點狀態?
Gluster工具可以指定選項 --remote-host在遠程節點上執行命令,比如
gluster --remote-host=server2 peer status。如果配置了CTDB,可以
使用“onnode”在指定節點上執行命令。另外,還可以通過sshkeygen和ssh-copy-id配置SSH無密碼遠程登錄和執行命令




常見故障處理(6)
Q19:Gluster導致網絡、內核、文件系統等出現問題?
可能。但是,絕大多數情況下,Gluster或者軟件都不會導致網絡或存
儲等基礎資源出現問題。如果發現由Gluster引起的問題,可以提交
Bug和patch,並可以社區和郵件列表中討論,以幫助改善Gluster系統。
Q20:為什么會發生傳輸端點(transport endpoint)沒有連接?
在Gluster日志中看到這種錯誤消息很正常,表明Gluster由於一些原因
無法通信。通常情況下,這是由於集群中某些存儲或網絡資源飽和引
起的,如果這類錯誤消息大量重復報告,就需要解決問題。使用相關
技術手段可以解決大部分的問題,另外有些情況可能由以下原因引起。
(1)需要升級RAID/NIC驅動或fireware;
(2)第三方備份系統在相同時間運行;
(3)周期更新locate數據庫包含了brick和網絡文件系統;
(4)過多rsync作業工作在gluster brick或mount點。

 

 #生產調優

系統關鍵考慮
性能需求
Read/Write
吞吐量/IOPS/可用性
Workload
什么應用?
大文件?
小文件?
除了吞吐量之外的需求?




系統規模和架構
性能理論上由硬件配置決定
CPU/Mem/Disk/Network
系統規模由性能和容量需求決定
2U/4U存儲服務器和JBOD適合構建Brick
三種典型應用部署
容量需求應用
2U/4U存儲服務器+多個JBOD
CPU/RAM/Network要求低
性能和容量混合需求應用
2U/4U存儲服務器+少數JBOD
高CPU/RAM,低Network
性能需求應用
1U/2U存儲服務器(無JBOD)
高CPU/RAM,快DISK/Network



系統配置
根據Workload選擇適當的Volume類型
Volume類型
DHT – 高性能,無冗余
AFR – 高可用,讀性能高
STP – 高並發讀,寫性能低,無冗余
協議/性能
Native – 性能最優
NFS – 特定應用下可獲得最優性能
CIFS – 僅Windows平台使用
數據流
不同訪問協議的數據流差異

系統硬件配置
節點和集群配置
多CPU-支持更多的並發線程
多MEM-支持更大的Cache
多網絡端口-支持更高的吞吐量
專用后端網絡用於集群內部通信
NFS/CIFS協議訪問需要專用后端網絡
推薦至少10GbE
Native協議用於內部節點通信



性能相關經驗
GlusterFS性能很大程度上依賴硬件
充分理解應用基礎上進行硬件配置
缺省參數主要用於通用目的
GlusterFS存在若干性能調優參數
性能問題應當優先排除磁盤和網絡故障

 

 

 

 

 

Brick推薦配置
12塊磁盤/RAID6 LUN,1 LUN/brcik
RAID條帶大小:256KB
Readahead:64MB 
/sys/block/sdb/queue/read_ahead_kb
/sys/block/sda/queue/max_sectors_kb
LVM/XFS需要RAID對齊
pvcreate –dataalignment 2560K
mkfs.xfs –i size=512 –n size=8192 –d su=256k,sw=10 
I/O scheduler:deadline
/sys/block/sda/queue/scheduler
Mount options:inode64

 

系統調優
關鍵調優參數
Performance.write-behind-window-size 65535 (字節)
Performance.cache-refresh-timeout 1 (秒)
Performance.cache-size 1073741824 (字節) 
Performance.read-ahead off (僅1GbE)
Performance.io-thread-count 24 (CPU核數)
Performance.client-io-threads on (客戶端) 
performance.write-behind on
performance.flush-behind on
cluster.stripe-block-size 4MB (缺省128KB)
Nfs.disable off (缺省打開)  缺省參數設置適用於混合workloads
不同應用調優
理解硬件/固件配置及對性能的影響
如CPU頻率

KVM優化
使用QEMU-GlusterFS(libgfapi)整合方案
gluster volume set <volume> group virt
tuned-adm profile rhs-virtualization
KVM host: tuned-adm profile virtual-host
Images和應用數據使用不同的volume
每個gluster節點不超過2個KVM Host (16 guest/host)
提高響應時間
減少/sys/block/vda/queue/nr_request
Server/Guest:128/8 (缺省企值256/128)
提高讀帶寬
提高/sys/block/vda/queue/read_ahead_kb
VM readahead:4096 (缺省值128)

 

 

 

 

 

 

 

 

 

 

 

1 為Glusterfs擴容

 

 

 

gluster volume remove-brick gv0 replica 2 10.240.37.112:/data/brick/gfs1/ force     在復制卷中有3個節點 刪除1個節點命令


gluster volume info 查看已創建掛載卷

gluster volume start gv0    啟動掛載卷

gluster volume stop gv0   #刪除前,先停止掛載卷
gluster volume delete gv0
   刪除

 

 

擴展卷
可以在線擴展卷的容量,可以加一個brick到分布卷,來增加分布卷的容量。同樣可以增加一組brick到分布式復制卷,來增加卷的容量
要擴大副本數為2分布式復制卷,您需要增加2的倍數加brick(如4,6,8,等)。
1、添加服務器到集群
# gluster peer probe 10.240.37.112
Probe successful
2、添加新的brick到test-volume卷
# gluster volume add-brick gv0   10.240.37.112:/data/brick/gfs1
Add Brick successful
3、檢查卷信息
# gluster volume info

 

[root@glusterfs1 vols]# gluster volume set meizi auth.allow 192.168.^C109
[root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.104


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM