1、GFS简介
3、GFS术语
4、GFS用到的算法
弹性HASH算法
HASH算法的优点
分布式卷
分布式卷的特点
条带卷
条带卷特点
复制卷
复制卷特点
搭建GFS分布式文件系统,掌握创建各种存储卷的方法,创建完成后通过写入和破坏文件测试各种卷的存储方式。
[root@localhost ~]# ntpdate ntp1.aliyum.com //同步阿里云的时钟服务器
[root@localhost ~]# systemctl stop firewalld //关闭防火墙
[root@localhost ~]# systemctl disabled firewalld //开机不自动启动
[root@localhost ~]# vi /etc/selinux/config //编辑核心防护的配置文件
......
SELINUX=disabled //改为disabled,开机不自启
......
[root@localhost ~]# setenforce 0 //关闭核心防护
[root@wu ~]# hostnamectl set-hostname nodo1、nodo2、nodo3、nodo4
[root@nodo1 ~]# vim /etc/hosts
192.168.10.6 nodo1
192.168.10.7 nodo2
192.168.10.8 nodo3
192.168.10.9 nodo4
这里使用脚本创建:点击前往脚本
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 xfs 20G 33M 20G 1% /data/sdb1
/dev/sdc1 xfs 20G 33M 20G 1% /data/sdc1
/dev/sdd1 xfs 20G 33M 20G 1% /data/sdd1
/dev/sde1 xfs 20G 33M 20G 1% /data/sde1
虚拟机自带的线网源安装的包不能使用,所以得自己配置yum源。
下载链接:https://pan.baidu.com/s/1S8QfAmaJhil0ZWAMek0lUA 提取码:tiqu
方法一
直接将下载包上传到服务器中
方法二
使用共享目录的方式挂载到服务其中
挂载方式:点击前往
可能会遇到的报错:点击前往
配置glusterfs工具的yum安装源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir wu
[root@localhost yum.repos.d]# mv C* wu
[root@localhost yum.repos.d]# vim gfs.repo
[GFS]
name=gfs
baseurl=file:///abc/gfsrepo
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum list
[root@localhost ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@localhost ~]# systemctl start glusterd.service
[root@localhost ~]# systemctl enable glusterd.service
[root@node1 ~]# gluster peer probe node2
peer probe: success.
[root@node1 ~]# gluster peer probe node3
peer probe: success.
[root@node1 ~]# gluster peer probe node4
peer probe: success.
[root@node1 ~]# gluster peer status
Number of Peers: 3
Hostname: node2
Uuid: e1b534f2-90e7-413c-8d20-d24e1b8d81a2
State: Peer in Cluster (Connected)
Hostname: node3
Uuid: e156ca03-c0cb-495b-84d9-bbaa8366433a
State: Peer in Cluster (Connected)
Hostname: node4
Uuid: b59b9d13-27fe-443c-ad04-4cbee1b4114e
State: Peer in Cluster (Connected)
创建分布卷
[root@node1 ~]# gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force //创建分布式卷
volume create: dis-volume: success: please start the volume to access data
[root@node1 ~]# gluster volume start dis-volume //启动分布式卷
volume start: dis-volume: success
[root@node1 ~]# gluster volume info dis-volume //查看分布式卷的信息
Volume Name: dis-volume
Type: Distribute
Volume ID: 2c319349-6f00-42b0-b1a3-df0ce39b274e
Status: Started //表示启动成功
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
创建条带卷
[root@node1 data]# gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
volume create: stripe-volume: success: please start the volume to access data
[root@node1 data]# gluster volume start stripe-volume
volume start: stripe-volume: success
创建复制卷
[root@node1 data]# gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
[root@node1 data]# gluster volume start rep-volume
volume start: rep-volume: success
创建分布式条带卷
[root@node1 data]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd3 node4:/data/node4 force
volume create: dis-stripe: success: please start the volume to access data
[root@node1 data]# gluster volume start dis-stripe
volume start: dis-stripe: success
创建分布式复制卷
[root@node1 data]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
volume create: dis-rep: success: please start the volume to access data
[root@node1 data]# gluster volume start dis-rep
volume start: dis-rep: success
常用的管理查看分布式卷组的命令
gluster volume list //查看创建了那些卷组
gluster volume info [卷组名] //查看所有卷组或固定的卷组信息
gluster volume stauts|start|stop 卷组名 //调整卷组的状态
gluster volume delete 卷组名 //删除某一个卷组
gluster volume vreate 卷组类型-卷组名 添加的磁盘挂载点 force //创建一个卷组
[root@localhost ~]# systemctl stop firewalld //关闭防火墙
[root@localhost ~]# systemctl disabled firewalld //开机不自动启动
[root@localhost ~]# vi /etc/selinux/config //编辑核心防护的配置文件
......
SELINUX=disabled //改为disabled,开机不自启
......
[root@localhost ~]# setenforce 0 //关闭核心防护
//配置所有存储服务器的主机名和/etc/hosts文件
[root@nodo1 ~]# vim /etc/hosts
192.168.10.6 nodo1
192.168.10.7 nodo2
192.168.10.8 nodo3
192.168.10.9 nodo4
//和上面一样配置glusterfs工具的yum源,并安装启动
[root@localhost ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@localhost ~]# systemctl start glusterd.service
[root@localhost ~]# systemctl enable glusterd.service
//将存储服务器中创建的各种卷组存挂载到本地使用mount.glusterfs挂载
//创建挂载点并挂载
[root@localhost ~]# mkdir -p /test/dis-volume/ /test/dis-stripe/ /test/dis-rep/ /test/stripe-volume/ /test/rep-volume/
[root@localhost ~]# mount.glusterfs node1:dis-volume /test/dis-volume/
[root@localhost ~]# mount.glusterfs node2:rep-volume /test/rep-volume/
[root@localhost ~]# mount.glusterfs node3:stripe-volume /test/stripe-volume/
[root@localhost ~]# mount.glusterfs node4:dis-stripe /test/dis-stripe/
[root@localhost ~]# mount.glusterfs node1:dis-rep /test/dis-rep/
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
node1:dis-volume fuse.glusterfs 40G 65M 40G 1% /test/dis-volume
node1:dis-rep fuse.glusterfs 40G 65M 40G 1% /test/dis-rep
node1:dis-stripe fuse.glusterfs 80G 130M 80G 1% /test/dis-stripe
node1:stripe-volume fuse.glusterfs 40G 65M 40G 1% /test/stripe-volume
node1:rep-volume fuse.glusterfs 20G 33M 20G 1% /test/rep-volume
//模拟写入数据
dd if=/dev/zero of=/txt1 bs=1M count=40
dd if=/dev/zero of=/txt2 bs=1M count=40
dd if=/dev/zero of=/txt3 bs=1M count=40
dd if=/dev/zero of=/txt4 bs=1M count=40
dd if=/dev/zero of=/txt5 bs=1M count=40
//数据复制到指定的挂载目录下
[root@localhost /]# cp txt* /test/dis-volume/
[root@localhost /]# cp txt* /test/dis-rep/
[root@localhost /]# cp txt* /test/dis-stripe/
[root@localhost /]# cp txt* /test/stripe-volume/
[root@localhost /]# cp txt* /test/rep-volume/
存储方式刚好与上面图对应
1、分布式卷存放数据的方式
[root@node1 data]# ll -h sdb1 [root@node2 data]# ll -h sdb1
总用量 120M 总用量 80M
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt1 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt2
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt4 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt3
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt5
2、条带卷存放数据的方式
[root@node1 data]# ll -h sdc1 [root@node2 data]# ll -h sdc1
总用量 100M 总用量 100M
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt1 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt1
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt2 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt2
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt3 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt3
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt4 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt4
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt5 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt5
3、复制式卷存放数据的方式
[root@node3 data]# ll -h sdb1 [root@node4 data]# ll -h sdb1
总用量 200M 总用量 200M
-rw-r--r-- 2 root root 40M 10月 30 22:45 txt1 -rw-r--r-- 2 root root 40M 10月 30 22:45 txt1
-rw-r--r-- 2 root root 40M 10月 30 22:45 txt2 -rw-r--r-- 2 root root 40M 10月 30 22:45 txt2
-rw-r--r-- 2 root root 40M 10月 30 22:45 txt3 -rw-r--r-- 2 root root 40M 10月 30 22:45 txt3
-rw-r--r-- 2 root root 40M 10月 30 22:45 txt4 -rw-r--r-- 2 root root 40M 10月 30 22:45 txt4
-rw-r--r-- 2 root root 40M 10月 30 22:45 txt5 -rw-r--r-- 2 root root 40M 10月 30 22:45 txt5
4、分布式条带卷存放数据的方式
[root@node1 data]# ll -h sdd1 [root@node2 data]# ll -h sdd1
总用量 60M 总用量 60M
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt1 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt1
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt4 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt4
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt5 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt5
[root@node3 data]# ll -h sdd1 [root@node4 data]# ll -h sdd1
总用量 40M 总用量 40M
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt2 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt2
-rw-r--r-- 2 root root 20M 10月 30 22:45 txt3 -rw-r--r-- 2 root root 20M 10月 30 22:45 txt3
5、分布式复制卷存放数据的方式
[root@node1 data]# ll -h sde1 [root@node2 data]# ll -h sde1
总用量 120M 总用量 120M
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt1 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt1
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt4 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt4
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt5 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt5
[root@node3 data]# ll -h sde1 [root@node4 data]# ll -h sde1
总用量 80M 总用量 80M
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt2 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt2
-rw-r--r-- 2 root root 40M 10月 30 22:44 txt3 -rw-r--r-- 2 root root 40M 10月 30 22:44 txt3