【分佈式存儲】Glusterfs快速搭建

環境準備

ip地址 用途
172.30.200.240 Glusterfs server1
172.30.200.241 Glusterfs server2
172.30.200.242 Glusterfs server3
172.30.200.243 Glusterfs客戶端

步驟1,保證至少有三臺服務器

  • 名字分別是 "server1", "server2" and "server3"
  • 網絡連通
  • 至少兩塊硬盤,其中一塊盤用於GlusterFS存儲服務,例如(/dev/sdb)
  • 設置NTP服務器。

配置hostname

### 172.30.200.240
 echo "server1" >/etc/hostname 
### 172.30.200.241
 echo "server2" >/etc/hostname 
### 172.30.200.242
 echo "server3" >/etc/hostname

重啓上述各臺服務器,讓HOSTNAME生效linux

配置host解析

echo "172.30.200.240 server1" >>/etc/hosts
echo "172.30.200.241 server2" >>/etc/hosts
echo "172.30.200.242 server3" >>/etc/hosts

配置ntp客戶端同步時間

yum install -y ntpdate
### 同步阿里雲的時間服務
[root@linux-node2 ~]# ntpdate ntp2.aliyun.com
 7 Nov 13:27:06 ntpdate[1656]: adjust time server 203.107.6.88 offset -0.000860 sec
 
### 寫一個crontab
[root@linux-node2 ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp2.aliyun.com >/dev/null 2>&1

步驟2,格式化和配置硬盤

三臺服務器都須要配置
1.配置新劃分的sdb盤,以下shell

[root@server2 ~]# fdisk /dev/sdb

歡迎使用 fdisk (util-linux 2.34)。
更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

設備不包含可識別的分區表。
建立了一個磁盤標識符爲 0x10c33a14 的新 DOS 磁盤標籤。

命令(輸入 m 獲取幫助):n  
分區類型
   p   主分區 (0個主分區,0個擴展分區,4空閒)
   e   擴展分區 (邏輯分區容器)
選擇 (默認 p):p
分區號 (1-4, 默認  1): 
第一個扇區 (2048-41943039, 默認 2048): 
最後一個扇區,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默認 41943039): 

建立了一個新分區 1,類型爲「Linux」,大小爲 20 GiB。

命令(輸入 m 獲取幫助):p
Disk /dev/sdb:20 GiB,21474836480 字節,41943040 個扇區
磁盤型號:Virtual disk    
單元:扇區 / 1 * 512 = 512 字節
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x10c33a14

設備       啓動  起點     末尾     扇區 大小 Id 類型
/dev/sdb1        2048 41943039 41940992  20G 83 Linux

命令(輸入 m 獲取幫助):w
分區表已調整。
將調用 ioctl() 來從新讀分區表。
正在同步磁盤。

2.格式化和加載/dev/sdb1服務器

mkfs.xfs -i size=512 /dev/sdb1
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
mount -a && mount
df -h

步驟3,安裝GlusterFS

安裝軟件

yum install glusterfs-server

啓動GlusterFS 管理的守護進程

CentOS 6
# service glusterd start
# service glusterd status
CentOS 7
# systemctl start glusterd.service
# systemctl status glusterd.service

步驟4,配置防火牆

iptables -I INPUT -p all -s 172.30.200.240 -j ACCEPT
iptables -I INPUT -p all -s 172.30.200.241 -j ACCEPT
iptables -I INPUT -p all -s 172.30.200.242 -j ACCEPT

若是想簡單,也能夠關閉防火牆網絡

systemctl stop firewalld.service

步驟5,配置 trusted pool

在server1服務器上面,設置以下:dom

# gluster peer probe server2
# gluster peer probe server3

查看server1中,peer status的信息tcp

# gluster peer status

你應該能夠看到以下的信息(UUID是不一樣的)測試

Number of Peers: 2

Hostname: server2
Uuid: f7b97263-1da0-4572-8340-3be3182f9db3
State: Peer in Cluster (Connected)

Hostname: server3
Uuid: a89c3006-1b66-44af-bebd-bafa367d69e1
State: Peer in Cluster (Connected)

步驟6,設置GlusterFS卷

全部的服務器,執行以下命令:ui

# mkdir -p /data/brick1/gv0

任何一臺服務器,執行以下命令:阿里雲

# gluster volume create gv0 replica 3 server1:/data/brick1/gv0 server2:/data/brick1/gv0 server3:/data/brick1/gv0
volume create: gv0: success: please start the volume to access data
# gluster volume start gv0
volume start: gv0: success

確認卷的信息是否正常:

# gluster volume info

你應該能夠看到以下的信息(Volume ID 是不一樣的)

Volume Name: gv0
Type: Replicate
Volume ID: 53e05780-146d-41ca-bdfc-b2152fafb2a0
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: server1:/data/brick1/gv0
Brick2: server2:/data/brick1/gv0
Brick3: server3:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off

備註:若是狀態不是 "Started",能夠查看/var/log/glusterfs/glusterd.log診斷錯誤

步驟7,測試GlusterFS卷可否正常使用

這裏測試的客戶端的服務器IP:172.30.200.243

安裝客戶端

yum install -y glusterfs glusterfs-fuse

配合host

[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.30.200.240 server1
172.30.200.241 server2
172.30.200.242 server3

建立目錄並掛載glusterfs

# mkdir -p /data
# mount -t glusterfs server1:/gv0 /data

測試文件存儲

for i in `seq -w 1 100`; do cp -rp /var/log/messages /data/copy-test-$i; done
[root@localhost data]# ls -lA /data/copy* | wc -l
100

這裏看到的文件爲100個。

如今去Glusterfs服務器集羣中,對每臺服務器進行查詢。能夠看到每個服務器上面,都有100個文件

[root@server1 ~]#  ls -lA /data/brick1/gv0/copy* |wc -l
100
[root@server2 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
100
[root@server3 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
100
相關文章
相關標籤/搜索