GlusterFS分布式存储

13 篇文章 0 订阅
4 篇文章 0 订阅

GlusterFS分布式文件系统部署

环境:
10.10.186.160  server1
10.10.186.159 server2
10.10.14.166 server3
10.10.14.167 server4
10.10.186.92 client

一、安装步骤:

-------------------------docker安装------------------------------

1.拉取镜像:docker pull gluster/gluster-centos

查看镜像:docker images

2.在此之前,请确保在运行 docker 的主机上创建以下目录:

mkdir -p /etc/glusterfs

mkdir -p /var/lib/glusterd

mkdir -p /var/log/glusterfs

确保以上所有目录都为空以避免任何冲突。

3.运行

docker run -v /etc/glusterfs:/etc/glusterfs:z -v /var/lib/glusterd:/var/lib/glusterd:z -v /var/log/glusterfs:/var/log/glusterfs:z -v /sys/fs/cgroup:/sys/fs/cgroup:ro -d --privileged=true --net=host -v /dev/:/dev gluster/gluster-centos

查看是否运行成功:docker ps -a

检查容器:docker inspect d273cc739c9d

进入容器:docker exec -ti d273cc739c9d bash

启动服务:service glusterd start

查看状态:service glusterd status

停止服务:service glusterd stop

二、创建磁盘分区(若没有磁盘可分,可省略此步骤)

1.查看磁盘信息fdisk -l
在这里插入图片描述
2.开始创建新磁盘

[root@zxl dev]# fdisk /dev/sdb

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (937699328-937703087,默认为 937699328):
将使用默认值 937699328
Last 扇区, +扇区 or +size{K,M,G} (937699328-937703087,默认为 937703087):+1M
分区 3 已设置为 Linux 类型,大小设为 1 MiB

命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@zxl dev]#

3.创建成功后执行同步分区-若没有此命令则执行安装yum -y install parted

同步分区:partprobe /dev/sdb

格式化分区:mkfs -t ext3 /dev/sdb3

创建挂载目录:mkdir -p /data/drv

创建挂载:mount /dev/sdb2 /data/drv

三、同步阿里云的ntp服务器

[root@server1 opt]# ntpdate ntp1.aliyun.com  
11 Aug 19:13:20 ntpdate[19714]: adjust time server 120.25.115.20 offset 0.003094 sec

四、添加信任每台设备都要互相信任:

iptables -I INPUT -p all -s 10.10.186.160 -j ACCEPT
iptables -I INPUT -p all -s 10.10.186.159 -j ACCEPT
iptables -I INPUT -p all -s 10.10.14.166 -j ACCEPT
iptables -I INPUT -p all -s 10.10.14.167 -j ACCEPT
iptables -I INPUT -p all -s 10.10.186.92 -j ACCEPT

配置/etc/hosts文件

echo "10.10.186.160 server1" >> /etc/hosts
echo "10.10.186.159 server2" >> /etc/hosts
echo "10.10.14.166 server3" >> /etc/hosts
echo "10.10.14.167 server4" >> /etc/hosts
echo "10.10.186.92 client" >> /etc/hosts

加入存储信任池,只需要在一台节点上操作即可

[root@node1 opt]# gluster peer probe server1  
peer probe: success. Probe on localhost not needed
[root@node1 opt]# gluster peer probe server2
peer probe: success. 
[root@node1 opt]# gluster peer probe server3
peer probe: success. 
[root@node1 opt]# gluster peer probe server4
peer probe: success.

查看信任状态:gluster peer status

查看信任列表:gluster pool list

五、创建卷

卷名称卷类型Brick
dis-volume分布式卷server2(/data/disBrick)、server3(/data/disBrick)
stripe-volume条带卷server2(/data/stripeBrick)、server3(/data/stripeBrick)
rep-volume复制卷server2(/data/repBrick)、server3(/data/repBrick)
dis-stripe分布式条带卷server1(/data/disStripeBrick)、server2(/data/disStripeBrick)、server3(/data/disStripeBrick)、server4(/data/disStripeBrick)
dis_replica分布式复制卷server1(/data/disReplicaBrick)、server2(/data/disReplicaBrick)、server3(/data/disReplicaBrick)、server4(/data/disReplicaBrick)

创建卷指令

//创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create dis-volume server3:/data/disBrick server4:/data/disBrick force

#条带卷高版本已不支持//指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带
gluster volume create stripe-volume stripe 2 server3:/data/stripeBrick server4:/data/stripeBrick force

//指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
gluster volume create rep-volume replica 2 server3:/data/repBrick server4:/data/repBrick force

#分布式条带卷高版本已不支持//指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷
gluster volume create dis-stripe stripe 2 server1:/data/disStripeBrick server2:/data/disStripeBrick  server3:/data/disStripeBrick server4:/data/disStripeBrick force

//指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷
gluster volume create dis_replica replica 2 server1:/data/disReplicaBrick server2:/data/disReplicaBrick  server3:/data/disReplicaBrick server4:/data/disReplicaBrick force

创建分布式卷

//创建分布式卷,没有指定类型,默认创建的是分布式卷
[root@localhost data]# gluster volume create dis-volume server3:/data/disBrick server3:/data/disBrick force
volume create: dis-volume: success: please start the volume to access data

//启动新建分布式卷
[root@localhost data]# gluster volume start dis-volume
volume start: dis-volume: success

//查看新建分布式卷信息
[root@localhost data]# gluster volume info dis-volume
 
Volume Name: dis-volume
Type: Distribute
Volume ID: 0fe95dcb-8f05-46c3-a9bc-c722586c9a2d
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server3:/data/disBrick
Brick2: server4:/data/disBrick
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
[root@localhost data]#

查看卷列表:gluster volume list

六、安装客户端 10.10.186.92

配置/etc/hosts文件

echo "10.10.186.160 server1" >> /etc/hosts
echo "10.10.186.159 server2" >> /etc/hosts
echo "10.10.14.166 server3" >> /etc/hosts
echo "10.10.14.167 server4" >> /etc/hosts
echo "10.10.186.92 client" >> /etc/hosts

安装GlusterFS客户端:yum -y install glusterfs glusterfs-fuse

创建挂载点,挂载gluster文件系统

//创建挂载点
mkdir -p /opt/test/{dis_volume,stripe_volume,rep_volume,dis_stripe,dis_replica} 

 //执行挂载(选择任意一台gluster服务即可)
mount.glusterfs server3:dis-volume /opt/test/dis_volume //分布式卷
mount.glusterfs server3:rep-volume /opt/test/rep_volume //复制卷
mount.glusterfs server1:dis_replica /opt/test/dis-replica //分布式复制卷

//查看挂载是否成功
[root@zxl /]# df -h 
Filesystem              Type            Size  Used Avail Use% Mounted on
overlay                 overlay         295G  201G   95G  69% /
devtmpfs                devtmpfs        7.8G     0  7.8G   0% /dev
shm                     tmpfs            64M     0   64M   0% /dev/shm
tmpfs                   tmpfs           7.8G  8.1M  7.8G   1% /run
/dev/mapper/centos-root xfs             295G  201G   95G  69% /etc/glusterfs
tmpfs                   tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
server3:dis-volume      fuse.glusterfs  1.1T   61G  975G   6% /opt/test/dis_volume

七、测试

写入数据

[root@client test]# cp /home/liang/demo* /opt/test/dis_volume/
[root@client test]# cd /opt/test/dis_volume/
[root@client dis_volume]# ll
total 5
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo10.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo1.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo2.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo3.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo4.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo5.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo6.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo7.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo8.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo9.txt
[root@client dis_volume]#

分布式卷存储结果

在这里插入图片描述
关闭server3(10.10.14.166)模拟宕机:[root@server3 ~]# init 0

关闭前:

[root@client dis_volume]# ll
total 5
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo10.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo1.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo2.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo3.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo4.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo5.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo6.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo7.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo8.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo9.txt
[root@client dis_volume]#

关闭后:

[root@client dis_volume]# ll
total 4
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo10.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo1.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo2.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo3.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo4.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo7.txt
-rw-r--r-- 1 root root 200 Aug 31 08:23 demo8.txt
[root@client dis_volume]#

当前节点执行 gluster peer status 显示 Disconnected 已失去连接

[root@server3 ~]# gluster peer status 
Number of Peers: 3

Hostname: server4
Uuid: e1e56f64-f272-4a0f-ab6d-3d75db8f0cf4
State: Peer in Cluster (Disconnected)

Hostname: server2
Uuid: 423592a0-f5d7-4f5d-978c-e9c41b7d57b6
State: Peer in Cluster (Disconnected)

Hostname: server1
Uuid: 6e4047bd-2dfc-44fc-ab71-459a88740d1c
State: Peer in Cluster (Disconnected)
[root@server3 ~]#

从其他节点查看挂载节点状态:server3(10.10.14.166) 显示为 N/A

[root@server4 ~]# gluster volume status
Status of volume: dis-volume
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick server3:/data/disBrick                N/A       N/A        N       N/A  
Brick server4:/data/disBrick                49152     0          Y       4599 
 
Task Status of Volume dis-volume
------------------------------------------------------------------------------
There are no active volume tasks

恢复:重新加入vi /etc/hosts即可恢复

echo "10.10.186.160  server1" >> /etc/hosts
echo "10.10.186.159 server2" >> /etc/hosts
echo "10.10.14.166 server3" >> /etc/hosts
echo "10.10.14.167 server4" >> /etc/hosts
echo "10.10.186.92 client" >> /etc/hosts

备注:

1.分布式卷会把文件散列存放,没有副本,磁盘损坏或宕机后数据会丢失。

2.新版本已不支持条带卷和分布式条带卷。

3.推荐使用复制卷或分布式复制卷,优点:副本存储,缺点:写能力下降。

---------------------------------------------------结束--------------------------------------------------

peer命令(用于管理GlusterFs受信任的服务器池)

命令语法描述
peer probegluster peer probe server添加服务器到信任池
peer detachgluster peer detach server从信任池中移除服务器
peer statusgluster peer status查看信任池中所有服务器的状态
pool listgluster pool list列出信任池中所有的服务器

volume命令

命令语法描述
volume creategluster volume create volname [options] bricks通过指定的磁盘快创建相应的挂载卷
volume startgluster volume start volname [force]开启挂载卷
volume stopgluster volume stop volname停止挂载卷
volume infogluster volume info [volname]查看挂载卷的信息
volume statusgluster volumes status[volname]查看挂载卷的状态
volume listgluster volume list列出所有的挂载卷
volume setgluster volume set volname option value设置挂载卷的值
volume getgluster volume get volname <option、all>查看挂载卷指定操作或者所有操作的值
volume add-brickgluster volume add-brick brick-1 … brick-n展开磁盘快1到磁盘快n的所有内容
volume remove-brickgluster volume remove-brick brick-1 … brick-n <start、stop、status、commit、orce>通过删除磁盘brick-1到brick-n来缩小卷名。start将触发重新平衡,以从已删除的模块迁移数据。 将停止正在进行的移除砖块操作。
volume replace-brickgluster volume replace-brick volname old-brick new-brick使用新的磁盘块替换老得磁盘块
volume deletegluster volume delete volname删除挂载卷

可能出现的错误:

1.客户端挂载失败 Mount failed. Please check the log file for more details.

a).版本太低导致:更新至 glusterfs-6.0-49.1.el7.x86_64 版本以上

b).对应的gluster服务端IP是否已加入客户端的/etc/hosts中

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值