【分布式存储】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生效

配置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盘,如下

[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服务器上面,设置如下:

# gluster peer probe server2
# gluster peer probe server3

查看server1中,peer status的信息

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

所有的服务器,执行如下命令:

# 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

猜你喜欢

转载自www.cnblogs.com/zhangshengdong/p/11812780.html