四个Brick节点的GlusterFS卷,平均分配232次方的区间的范围空间
访问文件时,通过计算该文件的HASH值,从而对应到Brick存储空间
没有分块处理,文件只能存在一个server中,效率不提升
创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2、server3:/dir3中
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
从多个server中同时读取文件,效率提升
创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带卷数的倍数(>=2倍)
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
创建名为dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须时条带数的倍数(>=2倍)
gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
node1 20.0.0.10
node2 20.0.0.20
node3 20.0.0.30
node4 20.0.0.40
client 20.0.0.50
dis-volume 分布式卷
stripe-volume 条带卷
rep-volume 复制卷
dis-stripe 分布式条带卷
dis-rep 分布式复制卷
安装客户端软件
创建挂载目录
mkdir /data/sdb1
mkdir /data/sdc1
mkdir /data/sdd1
mkdir /data/sde1
修改hosts文件
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.40 node4
挂载Gluster文件系统
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
修改fstab配置文件
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.40 node4
20.0.0.50 client
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# hostnamectl set-hostname node3
[root@localhost ~]# hostnamectl set-hostname node4
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.40 node4
2. ###### 挂载四块硬盘
```shell
#!/bin/bash
echo "正在初始化挂载中,请稍后..."
DISK_=$(fdisk -l | grep "磁盘 /dev/sd[b-z]" | awk '{print $2}' | awk -F':' '{print $1}')
for NUM in $DISK_
do
fdisk -l $NUM
echo "n
p
w" | fdisk $NUM
mkfs.xfs -i size=512 $NUM"1" &> /dev/null
mkdir -p /data/$NUM"1" &> /dev/null
echo -e "$NUM"1" /data/$NUM"1" xfs defaults 0 0\n">> /etc/fstab
mount -a &> /dev/null
done
df -Th
[root@node1 opt]# yum -y install centos-release-gluster
[root@node1 opt]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@node1 yum.repos.d]# systemctl start glusterd.service
[root@node1 yum.repos.d]# systemctl enable glusterd.service
[root@node1 yum.repos.d]# systemctl status glusterd.service
[root@node1 yum.repos.d]# setenforce 0
[root@node1 yum.repos.d]# systemctl stop firewalld
4. ###### 将节点添加到信任池
```shell
#node1节点操作即可
[root@node1 yum.repos.d]# gluster peer probe node2
peer probe: success.
[root@node1 yum.repos.d]# gluster peer probe node3
peer probe: success.
[root@node1 yum.repos.d]# gluster peer probe node4
peer probe: success.
#查看所有节点
[root@node1 yum.repos.d]# gluster peer status
Number of Peers: 3
Hostname: node2
Uuid: 8e720eb2-e73e-431c-8c1d-788ffc386580
State: Peer in Cluster (Connected)
Hostname: node3
Uuid: 60354787-f8ad-4214-b3c6-42cb8996f233
State: Peer in Cluster (Connected)
Hostname: node4
Uuid: f61ecc1a-dee7-4ba6-b38e-4816ae1c986f
State: Peer in Cluster (Connected)
[root@client ~]# setenforce 0
[root@client ~]# systemctl stop firewalld
[root@client ~]# yum -y install glusterfs glusters-fuse
[root@client ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.40 node4
#创建分布式卷
[root@node1 yum.repos.d]# gluster volume create dis-vol node1:/data/dev/sdb1 node2:/data/dev/sdb1 force
#列表
[root@node1 yum.repos.d]# gluster volume list
dis-vol
#查询详细信息
[root@node1 yum.repos.d]# gluster volume info dis-vol
Volume Name: dis-vol
Type: Distribute
Volume ID: e2f0c6f6-51e6-437f-a184-41b7e5ebb1c1
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/dev/sdb1
Brick2: node2:/data/dev/sdb1
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
#删除
[root@node1 yum.repos.d]# gluster volume delete dis-vol
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: dis-vol: success
#启动卷
[root@node4 bak]# gluster volume start dis-vol
volume start: dis-vol: success
[root@localhost ~]# gluster volume create stripe-vol stripe 2 node1:/data/dev/sdc1 node2:/data/dev/sdc1 force
[root@localhost ~]# gluster volume create rep-vol replica 2 node3:/data/dev/sdb1 node4:/data/dev/sdb1 force
[root@localhost ~]# gluster volume create dis-stripe stripe 2 node1:/data/dev/sdd1 node2:/data/dev/sdd1 node3:/data/dev/sdd1 node4:/data/dev/sdd1 force
[root@localhost ~]# gluster volume create dis-rep replica 2 node1:/data/dev/sde1 node2:/data/dev/sde1 node3:/data/dev/sde1 node4:/data/dev/sde1 force
dd if=/dev/zero of=/opt/demo1.log bs=1M count=60
dd if=/dev/zero of=/opt/demo2.log bs=1M count=60
dd if=/dev/zero of=/opt/demo3.log bs=1M count=60
dd if=/dev/zero of=/opt/demo4.log bs=1M count=60
dd if=/dev/zero of=/opt/demo5.log bs=1M count=60
dd if=/dev/zero of=/opt/demo6.log bs=1M count=60
[root@client test]# mkdir -p /opt/test/dis-vol /opt/test/dis-rep /opt/test/rep-vol
[root@client test]# mount.glusterfs node1:dis-vol /opt/test/dis-vol/
[root@client test]# mount.glusterfs node1:rep-vol /opt/test/rep-vol/
[root@client test]# mount.glusterfs node1:dis-rep /opt/test/dis-rep/
查看分布式卷
[root@node1 yum.repos.d]# cd /data/dev/sdb1/
[root@node1 sdb1]# ll -h
总用量 240M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo1.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo2.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo3.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo4.log
[root@node2 yum.repos.d]# cd /data/dev/sdb1/
[root@node2 sdb1]# ll -h
总用量 120M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo5.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo6.log
查看复制卷
[root@node3 ~]# cd /data/dev/sdb1
[root@node3 sdb1]# ll -h
总用量 360M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo1.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo2.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo3.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo4.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo5.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo6.log
[root@node4 ~]# cd /data/dev/sdb1
[root@node4 sdb1]# ll -h
总用量 360M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo1.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo2.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo3.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo4.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo5.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo6.log
查看分布式复制卷
[root@node1 ~]# cd /data/dev/sde1
[root@node1 sde1]# ll -h
总用量 240M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo1.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo2.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo3.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo4.log
[root@node2 ~]# cd /data/dev/sde1
[root@node2 sde1]# ll -h
总用量 240M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo1.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo2.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo3.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo4.log
[root@node3 ~]# cd /data/dev/sde1
[root@node3 sde1]# ll -h
总用量 120M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo5.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo6.log
[root@node4 sdb1]# cd /data/dev/sde1
[root@node4 sde1]# ll -h
总用量 120M
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo5.log
-rw-r--r--. 2 root root 60M 9月 13 23:24 demo6.log
注意
只要某个节点挂了除了复制卷跟分布式复制卷,其余的都会有影响