分布式卷的特点
格式
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
特点
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2 force #(直接执行)
特点
卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多服务器
具备冗余性
创建复制卷
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
分布式条带卷
创建分布式条带卷
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
创建分布式复制卷
gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
hostnamectl set-hostname node1
su
hostnamectl set-hostname node2
su
hostnamectl set-hostname node3
su
hostnamectl set-hostname node4
su
hostnamectl set-hostname node5
su
systemctl stop firewalld
setenforce 0
vim /etc/hosts
192.168.75.134 node4
192.168.75.200 node2
192.168.75.131 node3
192.168.75.144 node1
192.168.75.155 node5
~
1.手动添加4个20G硬盘为所有节点
2.使用脚本一键部署(分区、格式化、挂载操作)
3. df -h //查看挂载情况
vim disk.sh
#! /bin/bash
echo "the disks exist list:"
##grep出系统所带磁盘
fdisk -l |grep '磁盘 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
##选择需要创建的磁盘编号
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
case $VAR in
sda)
##本地磁盘就退出case语句
fdisk -l /dev/sda
break ;;
sd[b-z])
#create partitions
echo "n ##创建磁盘
p
w" | fdisk /dev/$VAR
#make filesystem
##格式化
mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null
#mount the system
mkdir -p /data/${VAR}"1" &> /dev/null
###永久挂载
echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
###使得挂载生效
mount -a &> /dev/null
break ;;
quit)
break;;
*)
echo "wrong disk,please check again";;
esac
done
chmod +x disk.sh
./disk.sh
df -Th //查看磁盘挂载情况
所有节点服务器设置
window 的共享文件夹设置everyone
mount -t cifs -o username=ty,password=ty //192.168.1.8/gfsrepo /opt/GFS
[root@node5 yum.repos.d]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda3 xfs 50G 5.0G 46G 10% /
devtmpfs devtmpfs 906M 0 906M 0% /dev
tmpfs tmpfs 922M 0 922M 0% /dev/shm
tmpfs tmpfs 922M 11M 911M 2% /run
tmpfs tmpfs 922M 0 922M 0% /sys/fs/cgroup
/dev/sda5 xfs 246G 33M 246G 1% /home
/dev/sda1 xfs 1014M 163M 852M 17% /boot
tmpfs tmpfs 185M 36K 185M 1% /run/user/0
/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
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
//192.168.1.8/gfsrepo cifs 297G 244G 53G 83% /opt/GFS
设置yum 仓库
vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///opt/GFS/
gpgcheck=0
enabled=1
yum clean all
yum makecache
yum list
安装包红色不是报错
yum -y install glusters glusterfs-server glusterfs-fuse glusterfs-rdma
出现故障
可用: glusterfs-client-xlators-3.10.2-1.el7.x86_64 (GLFS)
glusterfs-client-xlators = 3.10.2-1.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
[root@node2 GFS]#
解决方法
[root@node3 yum.repos.d]# yum remove glusterfs-libs.x86_64
之后再次执行yum -y install glusters glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl restart glusterd
ntpdate ntp1.aliyun.com
gluster peer probe node3
gluster peer probe node4
gluster peer probe node5
[root@node2 GFS]# gluster peer status
Number of Peers: 3
Hostname: node4
Uuid: 902d4c1e-cccf-42f3-8946-61dc83b3f4d1
State: Peer in Cluster (Connected)
Hostname: node3
Uuid: 126ac64f-026f-4ade-bcf8-e0e537be729f
State: Peer in Cluster (Connected)
Hostname: node5
Uuid: faa7791c-7e9f-451c-a1ca-11535b45264d
State: Peer in Cluster (Connected)
[root@node2 GFS]#
安装yum仓库
window 的共享文件夹gfsrepo设置everyone ##gfsrepo是装有gluster安装包的
mkdir GFS
mount -t cifs -o username=ty,password=ty //192.168.1.8/gfsrepo /opt/GFS
[root@node5 yum.repos.d]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda3 xfs 50G 5.0G 46G 10% /
devtmpfs devtmpfs 906M 0 906M 0% /dev
tmpfs tmpfs 922M 0 922M 0% /dev/shm
tmpfs tmpfs 922M 11M 911M 2% /run
tmpfs tmpfs 922M 0 922M 0% /sys/fs/cgroup
/dev/sda5 xfs 246G 33M 246G 1% /home
/dev/sda1 xfs 1014M 163M 852M 17% /boot
tmpfs tmpfs 185M 36K 185M 1% /run/user/0
/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
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
//192.168.1.8/gfsrepo cifs 297G 244G 53G 83% /opt/GFS
cd /etc/yum.repo
mkdir bak
mv C* bak
设置yum 仓库
vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///opt/GFS/
gpgcheck=0
enabled=1
yum clean all
yum makecache
yum list
yum -y install glusterfs glusterfs-fuse
vim /etc/hosts
192.168.75.134 node4
192.168.75.200 node2
192.168.75.131 node3
192.168.75.144 node1
192.168.75.155 node5
安装包红色不是报错
##############################################################
yum -y install glusters glusterfs-server glusterfs-fuse glusterfs-rdma
出现故障
可用: glusterfs-client-xlators-3.10.2-1.el7.x86_64 (GLFS)
glusterfs-client-xlators = 3.10.2-1.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
[root@node2 GFS]#
解决方法:[root@node3 yum.repos.d]# yum remove glusterfs-libs.x86_64
之后再次执行yum -y install glusterfs glusterfs-fuse
//开启gluster服务
systemctl restart glusterd
在节点服务node 4操作(任意节点)
新建一个分布卷
gluster volume create dis-vol node2:/data/sdb1 node3:/data/sdb1 force
//dis-vol 是指卷组名
force 直接执行
//gluster volume info dis-vol ##查看卷组信息,created是指还没有在运行
//gulster volume start dis-vol ## 启动卷组
//gulster volume list ## 查看卷组的列表
//gluster volume delete dis-vol ## 删除卷组
注意:新建卷组是在gluster节点服务器。
然后再客户端挂载卷组使用
分布式卷========
######分布式卷具有如下特点#########
1.在node 2上新建一个分布式卷dis-vol
[root@node2 GFS] gluster volume create dis-vol node2:/data/sdb1 node3:/data/sdb1 force
volume create: dis-vol: success: please start the volume to access data
[root@node2 GFS] gluster volume info dis-vol
Volume Name: dis-vol
Type: Distribute
Volume ID: d065aa57-a6b4-44bd-a82b-0c062ccc1515
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node2:/data/sdb1
Brick2: node3:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node2 GFS] gluster volume start dis-vol //启动卷组
volume start: dis-vol: success
[root@node4-client opt] mkdir -p /test/dis
[root@node4-client opt] mount.glusterfs node2:dis-vol /test/dis
################新建测试文件#################################cd /opt/test/dis
[root@node4-client dis] dd if=/dev/zero of=/demo1.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0159063 秒,2.6 GB/秒
[root@node4-client dis] dd if=/dev/zero of=/demo2.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0257849 秒,1.6 GB/秒
[root@node4-client dis] dd if=/dev/zero of=/demo3.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0834383 秒,503 MB/秒
[root@node4-client dis] dd if=/dev/zero of=/demo4.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0850667 秒,493 MB/秒
[root@node4-client dis] dd if=/dev/zero of=/demo5.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0478089 秒,877 MB/秒
[root@node4-client /] mv demo* /test/dis
[root@node4-client /] cd /test/dis/
[root@node4-client dis] ll -h
总用量 200M
-rw-r--r--. 1 root root 40M 9月 13 23:01 demo1.log
-rw-r--r--. 1 root root 40M 9月 13 23:01 demo2.log
-rw-r--r--. 1 root root 40M 9月 13 23:01 demo3.log
-rw-r--r--. 1 root root 40M 9月 13 23:01 demo4.log
-rw-r--r--. 1 root root 40M 9月 13 23:01 demo5.log
[root@node2 GFS] cd /data/sdb1/
[root@node2 sdb1] ll
总用量 163840
-rw-r--r--. 2 root root 41943040 9月 13 23:01 demo1.log
-rw-r--r--. 2 root root 41943040 9月 13 23:01 demo2.log
-rw-r--r--. 2 root root 41943040 9月 13 23:01 demo3.log
-rw-r--r--. 2 root root 41943040 9月 13 23:01 demo4.log
[root@node3 yum.repos.d] cd /data/sdb1
[root@node3 sdb1] ll
总用量 40960
-rw-r--r--. 2 root root 41943040 9月 13 23:01 demo5.log
[root@node3 sdb1]
================ 条带卷 ================
条带卷
-----------条带卷特点------------
gluster volume create strip-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
gluster volume start stripe-vol
gluster volume info stripe-vol
复制卷
复制卷
---------特点----------------
gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
gluster volume start rep-vol
gluster volume info rep-vol
=分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 force
gluster volume start dis-stripe
gluster volume info dis-stripe
gluster volume list
================ 分布式复制卷 ============
gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 force
gluster volume start dis-rep
gluster volume info dis-rep
gluster volume list
条带复制卷==========
将文件分割并备份随机存放在不同的服务器里,File被分割4段,1、3存放在server1(exp1)上,2、4存放在server2(exp4),server1上的(exp3)存放server2(exp4)的备份文件,server2上的(exp2)存放server1(exp1)的备份文件。
创建l例子:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
分布式条带复制卷
三种基本卷的复合卷。
创建语法: gluster volume create [disperse []] [redundancy ] [transport tcp | rdma | tcp,rdma]
例子:gluster volume create test1 disperse 3 server1:/brick{1…6} force
mount.glusters node1:dis-vol /text/dis //挂载分布式卷
mount.glusters node1:stripe-vol /text/strip //挂载条带卷
mount.glusters node1:rep-vol /text/rep //挂载复制卷
mount.glusters node1:dis-stripe /text/dis_stripe //挂载分布条带卷
mount.glusters node1:dis-rep /text/dis_rep //挂载分布复制卷
//然后回到之前创建卷区的节点服务器的,查看文件分布存储情况。
访问控制
gluster volume set dis-vol auth.reject 192.168.175.142
volume set:success
gluster volume set dis-vol auth.allow 192.168.175.142
volume set:success