赞
踩
开源的分布式文件系统
由存储服务器、客户端以及NFS/Samba存储网关组成
无元数据服务器
模块化堆栈式架构
通过对模块的组合,实现复杂的功能
——————————————————————————————
扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议
—————————————————————————————
brick(块)
volume(卷)
fuse (引线,内核文件系统)
vfs(文件系统)
glusterd(分布式文件系统服务)
—————————————————————————————
弹性HASH算法
通过hash废得到一个32位的整数
划分为N个连续的子空间,每个空间对应一个brick
弹性hash算法的优点
保证数据平均分布在每一个brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈
———————————————————————————————
没有对文件进行分块处理
通过扩展文件属性保存hash值
支持的底层文件系统有ext3、ext4、zfs、xfs等
文件分布在不同的服务器中,不具备冗余性
更容易、廉价的扩展 卷的大小
单点故障会造成数据丢失
依赖底层的数据保护
创建一个名为dis-volume的分布式卷,文件将根据hash分布在server1:/dir1、server2:/dir2中
[root@localhost~]#gluster volume create dis-volume server1:/dir1 server2:/dir2
根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个brick server节点
存储大文件时,性能尤为突出
不具备冗余性,类似raid0
数据被分割成更小的块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余
创建一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在server1:/dir2、server2:/dir2中
gluster voluster create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
同一个文件保存一份或多份副本
因为要保存副本,所以磁盘利用效率低
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为改卷的总容量
卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多的服务器
具备冗余性
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在server1:/dir1、server2:/dir2中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器
创建名为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 voluster create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
————————————————————————————————
关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
————————————————————————————
新添加4块磁盘,并分区
分区脚本vim /opt/disk.sh #!/bin/bash echo "the new disk exist list:" fdisk -l | grep '磁盘 /dev/sd[b-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 sd[b-z]) echo "n p w" | fdisk /dev/$VAR mkfs.xfs -i size=512 /dev/${VAR}"1" &>/dev/null 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" ;; esac done chmod +x /opt/disk.sh source /opt/disk.sh
——————————————————————————————————
因为是rar格式的压缩包,Linux系统默认没有解压工具,所以要安装rar软件包获取unrar解压工具
tar zxvf rarlinux-x64-5.9.1.tar.gz
make && make install
unrar e /opt/gfs/gfsrepo
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
vim /etc/hosts
192.168.60.10 node1
192.168.60.20 node2
192.168.60.30 node3
192.168.60.40 node4
scp /etc/hosts root@192.168.60.20:/etc/hosts
scp /etc/hosts root@192.168.60.30:/etc/hosts
scp /etc/hosts root@192.168.60.40:/etc/hosts
unrar e gfsrepo.rar
cd /etc/yum.repos.d/
mkdir backup
mv C* backup
vim gfs.repo
[gfs]
name=gfs
baseurl=file:///opt/gfs
enabled=1
gpgcache=0
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
启动glusterfs
systemctl start glusterd
时间同步
ntpdata ntp1.aliyun.com
添加节点(添加入存储信任池只要在一台主机上添加其他节点即可)例如在节点1上面
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
查看群集状态【所有节点】
gluster peer status
————————————————————————
gluster volume create dis-vol node1:/sdb1 node2:/sdb1 force
systemctl start glusterd
gluster volume create stripe-vol stripe 2 node1:/data/sdb1 node2:/data/sdb1 force
systemctl start glusterd
gluster volume create replica-vol replica 2 node1:/data/sdb1 node2:/data/sdb1 force
systemctl start glusterd
gluster volume create dis-str stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
systemctl start glusterd
gluster volume create dis-rep replica 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
systemctl start glusterd
gluster volume list
gluster volume info dis-vol
gluster volume start dis-vol
如果要删除则是先停止再删除
gluster volume stop dis-vol
gluster volume delete dis-vol
————————————————————————————————
systemctl stop firewalld
setenforce 0
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
mkdir -p /opt/text/dis
mkdir -p /opt/text/stripe
mkdir -p /opt/text/replica
mkdir -p /opt/text/dis-str
mkdir -p /opt/text/dis-rep
vim /etc/hosts
192.168.60.10 node1
192.168.60.20 node2
192.168.60.30 node3
192.168.60.40 node4
mount.glusterfs node1:dis-vol /opt/text/dis
df -hT
mount.glusterfs node2:stripe-vol /opt/text/stripe
df -hT
mount.glusterfs node2:replica-vol /opt/text/replica
df -hT
mount.glusterfs node1:dis-str-vol /opt/text/dis-str
df -hT
mount.glusterfs node2:dis-rep-vol /opt/text/dis-rep
df -hT
vim /etc/fstab
node1:dis-vol /opt/text/dis xfs defaults 0 0
node2:stripe-vol /opt/text/stripe xfs defaults 0 0
node2:replica-vol /opt/text/replica xfs defaults 0 0
dis-str-vol /opt/text/dis-str xfs defaults 0 0
node2:dis-rep-vol /opt/text/dis-rep xfs defaults 0 0
//创建文件到opt目录下
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40
//写入到相对的挂在目录中
cp /opt/demo* /opt/text/dis
cp /opt/demo* /opt/text/stripe
cp /opt/demo* /opt/text/replica
cp /opt/demo* /opt/text/dis-str
cp /opt/demo* /opt/text/dis-rep
在node1节点服务器上面查看
cd /data/sdb1
ls -lh
demo1.log demo2.log demo3.log demo4.log
在node2节点服务器上面查看
cd /data/sdb1
ls -h
demo5.log
在node1节点服务器上面查看
cd /data/sdb1
ls -lh
demo1.log demo2.log demo3.log demo4.log
在node2节点服务器上面查看
cd /data/sdb1
ls -h //什么都查不到
gluster volume set dis-vol auth.reject 192.168.60.50 //仅拒绝
gluster volume set dis-vol auth.allow 192.168.60.50 //仅允许
gluster volume list
gluster volume info dis-vol
gluster volume start dis-vol
gluster volume stop dis-vol
gluster volume delete dis-vol
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。