GlusterFS操作記錄(4) GlusterFS快速安裝部署配置

GlusterFS作爲分佈式共享文件系統也用了很多年了,簡單好用,但是一直沒有系統化記錄下來,很是零散。這次趁着Kubernets集成GlusterFS作爲共享存儲,儘量記錄些東西。
GlusterFS操作記錄(1) GlusterFS簡述
GlusterFS操作記錄(2) GlusterFS存儲卷類型介紹
GlusterFS操作記錄(3) GlusterFS架構介紹
GlusterFS操作記錄(4) GlusterFS快速安裝部署配置
GlusterFS操作記錄(5) GlusterFS+Heketi配置(獨立部署)
GlusterFS操作記錄(6) GlusterFS+Heketi在Kubernets上的集成配置

GlusterFS簡單配置

部署一個可用的GlusterFS集羣很簡單,產線使用可以根據應用場景進行調優。這裏記錄簡單的安裝過程進行體驗。之後可以閱讀研究Gluster的admin Guide文檔學習研究如果管理GlusterFS以及選擇適合應用場景的卷類型。

部署可以手動命令行一步一步的部署也可以使用其他集成工具或者腳本,例如ansible,可以參考文檔。這裏記錄逐步安裝的方式。 實驗根據官方文檔進行,文檔

1. 準備3個節點,並初始化

主機 ip地址 角色 備註
gluster-server-1 10.99.7.11 gluster-server
gluster-server-2 10.99.7.12 gluster-server
gluster-server-2 10.99.7.12 gluster-server
gluster-client-1 10.99.7.10 gluster-server 掛載共享卷

初始化包括設置主機名稱,網絡,DNS等等,這裏直接省略了。

配置/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.99.7.10 gluster-client-1
10.99.7.11 gluster-server-1
10.99.7.12 gluster-server-2
10.99.7.13 gluster-server-3

2. 格式化並掛載磁盤

每個虛擬機主備一塊或者多塊磁盤,並分別格式化,這裏舉例/sdb

parted /dev/sdb -s 'mkpart primary xfs 0% 100%'
mkfs.xfs -i size=512 /dev/sdb1
mkdir -p /data/brick1

# 產線掛載可以使用uuid,或者label,防止磁盤損壞導致磁盤掛載順序混亂
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab 
mount -a && mount

我測試服務器上沒有掛載額外的數據磁盤,直接創建一個目錄使用。

# 每個服務端主機上執行
mkdir -p /data/brick1  #可以創建多個,用於scale測試

3. 安裝glusterFS

gluster根據用戶有很多個組件,這裏簡單安裝有些組件就不配置了。

# 每個服務端主機上執行
yum install centos-release-gluster -y
# 我們選擇5.2版本
yum list glusterfs --showduplicates|sort -r
    glusterfs.x86_64                  5.2-1.el7                      centos-gluster5
    glusterfs.x86_64                  5.1-1.el7                      centos-gluster5
    glusterfs.x86_64                  5.0-1.el7                      centos-gluster5
    glusterfs.x86_64                  3.12.2-18.el7                  base     

yum -y install glusterfs-server glusterfs-fuse

systemctl enable glusterd.service
systemctl start glusterd.service
systemctl status glusterd.service

4. 配置防火牆

這裏是簡單安裝測試,沒有深入配置防火牆。可以全部放行,或者直接關閉防火牆

# 直接關閉防火牆
systemctl stop firewalld.service
systemctl disable irewalld.service

5. 配置授信池(將節點加入到集羣)

# 在gluster-server-1上將 2,3加入進來
gluster peer probe gluster-server-2
gluster peer probe gluster-server-3

# 在gluster-server-2或者3上(新版本沒有必要了,之前版本需要時因爲主機名稱解析的問題)
gluster peer probe gluster-server-1

#任意節點
[root@gluster-server-1 ~]# gluster peer status
Number of Peers: 2

Hostname: gluster-server-2
Uuid: 6f32f6d4-9cd7-4b40-b7b6-100054b187f7
State: Peer in Cluster (Connected)

Hostname: gluster-server-3
Uuid: 5669dbef-3f71-4e3c-8fb1-9c6e11c0c434
State: Peer in Cluster (Connected)

以上使用的是主機名稱方式,需要配置hosts文件,也可以使用IP地址方式.後期可以修改文件/var/lib/glusterd/peers/{uuid},添加hostname2或者調換hostname1和2,重啓glusterd生效。
# cat /var/lib/glusterd/peers/5669dbef-3f71-4e3c-8fb1-9c6e11c0c434 
uuid=5669dbef-3f71-4e3c-8fb1-9c6e11c0c434
state=3
hostname1=gluster-serever-3
hostname2=10.99.7.13

6. 創建一個存儲卷

gluster volume create volume0 replica 3 gluster-server-1:/data/brick1/volume0 gluster-server-2:/data/brick1/volume0 gluster-server-3:/data//brick1/volume0 force

#備註 這裏使用force參數是因爲我沒有使用掛載磁盤,而是使用的root分區下的一個目錄,不然會報錯
#volume create: volume0: failed: The brick gluster-server-1:/data/brick1/volume0 is being created in the root partition. It is recommended that you don't use the system's root partition for storage backend. Or use 'force' at the end of the command if you want t

gluster volume start volume0 
   #volume start: volume0: success

gluster volume info
	Volume Name: volume0
	Type: Replicate
	Volume ID: 8936cef1-125b-4689-963c-b558725925bc
	Status: Started
	Snapshot Count: 0
	Number of Bricks: 1 x 3 = 3
	Transport-type: tcp
	Bricks:
	Brick1: gluster-server-1:/data/brick1/volume0
	Brick2: gluster-server-2:/data/brick1/volume0
	Brick3: gluster-server-3:/data/brick1/volume0
	Options Reconfigured:
	transport.address-family: inet
	nfs.disable: on
	performance.client-io-threads: off

7. 配置客戶端,測試存儲卷

yum install centos-release-gluster -y
yum -y install glusterfs glusterfs-fuse

mkdir /volume0
mount -t glusterfs gluster-server-1:/volume0  /volume0

[root@gluster-client-1 glusterfs]# df -h
	...
	gluster-server-1:/volume0  100G  2.1G   98G   3% /volume0

[test]
for i in `seq -w 1 100`; do cp -rp /var/log/messages /volume0/copy-test-$i; done

ls -lA /volume0/copy* | wc -l
100

[任意server節點]
備註:因爲我們是3副本模式,只有3個brick,所有每個節點上都能看到全部100個文案
ls -lA /data/brick1/volume0/copy*

到這裏,glusterfs的服務端集羣安裝配置以及客戶端測試已經完成,默認配置的安裝還是很簡單的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章