Glusterfs是一个开源的分布式文件系统,容量可以按比例的扩展,且性能却不会因此而降低。 廉价且使用简单,完全抽象在已有的文件系统之上。 扩展和容错设计的比较合理,复杂度较低 适应性强,部署方便,对环境依赖低,使用,调试和维护便利。
192.168.1.10 gfs01
192.168.1.11 gfs02
192.168.1.13 gfs03
192.168.1.14 gfs04
添加数据硬盘,每台服务器至少2块硬盘,1块是系统盘,另一块是存放数据,数据盘如果多块建议做lvm卷便于管理。 配置磁盘lv挂载到目录,并写入/etc/fstab. (添加磁盘数量按需分配,本环境3块磁盘用于演示)
mkfs.xfs /dev/xvdb
mkfs.xfs /dev/xvdc
mkfs.xfs /dev/xvde
mount /dev/xvdb /data1
mount /dev/xvdc /data2
mount /dev/xvde /data3
echo "/dev/xvdb /data1 xfs defaults 0 0" >> /etc/fstab
echo "/dev/xvdb /data1 xfs defaults 0 0" >> /etc/fstab
echo "/dev/xvdb /data1 xfs defaults 0 0" >> /etc/fstab
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
将下段repo添加至Centos-7.repo最后 gluster-6为版本,可以改为gluster-9新版本
[centos-gluster6]
name=CentOS-$releasever - Gluster 6
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-6
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
每个节点操作:
yum install -y centos-release-gluster glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma vim net-tools
systemctl start glusterd
systemctl enable glusterd
除本地外的节点(在192.168.1.10操作)
gluster peer probe 192.168.1.11
gluster peer status
在192.168.1.10操作(在其中一台服务器上创建即可),以下类型可选则适合自己环境的一种进行创建。
分布式模式,既DHT,是GlusterFS的默认模式,在创建卷时,默认选项是创建分布式卷。在该模式下,并没有对文件进行分块处理,而是通过hash算法分布到所有brick server上,只是扩大了磁盘空间,类似window中的跨区卷 distribute voulme特点: 文件分布在不同的服务器,不具备冗余性。 更容易且廉价地扩展卷的大小。 单点故障会造成数据丢失,不具备容错性。 依赖底层的数据保护。
gluster volume create ocp 192.168.1.10:/data1/ocp 192.168.1.11:/data1/ocp
ocp为自定义卷名,可任意命名,客户端挂载此存储时会用到,下文中不再注解。
条带模式,既Striped,类似RADI 0,在该模式下,根据偏移量将文件分成N块(N个条带节点),轮询地存储在每个Brick Server节点。节点把每个数据块都作为普通文件存入本地文件系统,通过扩展属性记录总块数和每块的序号。在配置时指定条带数必须等于卷中Brick 所包含的存储服务器数,在存储大文件时,性能尤为突出,但是不具备冗余性。
stripe volume特点 数据被分割成更小块分布到块服务器群中的不同条带区。 分布减少了负载且更小的文件加速了存取的速度。 没有数据冗余,不具备冗余性。 单点故障会造成数据丢失,不具备容错性。
gluster volume create ocp stripe 2 192.168.1.10:/data2/ocp 192.168.1.11:/data2/ocp
复制模式,既AFR,文件级别RAID 1,即同一文件保存一份或多份副本,每个节点上保存相同的内容和目录结构。复制模式因为要保存副本,所以磁盘利用率较低,如果多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量。复制卷具有冗余性,即使一个节点损坏,也不影响数据的正常使用。
replica volme特点 卷中所有的服务器均保存一个完整的副本。 卷的副本数量可由客户创建的时候决定。 磁盘利用率低。 具备冗余性
gluster volume create ocp replica 2 192.168.1.10:/data3/ocp 192.168.1.11:/data3/ocp
最少需要4台服务器才能创建。 brickserver数量是条带数的倍数,兼具distribute和stripe卷的特点,是DHT 与 Striped 的组合型。
gluster volume create ocp stripe 2 192.168.1.10:/data4/ocp 192.168.1.11:/ data4/ocp 192.168.1.12:/data4/ocp 192.168.1.13:/data4/ocp
最少需要4台服务器才能创建。brickserver数量是镜像数的倍数,兼具distribute和replica卷的特点,可以在2个或多个节点之间复制数据,是DHT 与 AFR 的组合型。
gluster volume create ocp replica 2 192.168.1.10:/data5/ocp 192.168.1.11:/data5/ocp 192.168.1.12:/data5/ocp 192.168.1.13:/data5/ocp
最少需要4台服务器才能创建。类似RAID 10,是 Striped 与 AFR 的组合型。 先组成RAID1,然后组成RAID0 RAID 10(又叫RAID 1+0)特点: 先按RAID 0分成两组,再分别对两组按RAID 1方式镜像 兼顾冗余(提供镜像存储)和性能(数据条带形分布)
gluster volume create ocp stripe 2 replica 2 192.168.1.10:/data6/ocp 192.168.1.11:/data6/ocp 192.168.1.12:/data6/ocp 192.168.1.13:/data6/ocp
至少需要8台 服务器才能创建。三种模式的混合。
gluster volume create ocp stripe 2 replica 2 192.168.1.10:/data6/ocp 192.168.1.11:/data6/ocp 192.168.1.12:/data6/ocp 192.168.1.13:/data6/ocp exampleNode5:/data6/ocp exampleNode6:/data6/ocp exampleNode7:/data6/ocp exampleNode8:/data6/ocp
创建卷完成后,需启动卷,启动命令
gluster volume start ocp
只在其中一台服务器启动即可。
启动卷
gluster volume start ocp
停止models卷
gluster volume stop ocp
查看卷信息
gluster volume info
查看卷状态
gluster volume status
查看卷IO
gluster volume profileb ocp start
gluster volume profile ocp info
gluster volume profile ocp stop
(查看结束后关闭profiling功能)
brick监控
查看打开的fd
gluster volume top ocp open brick 192.168.100.111:/data1/ocp list-cnt 3
查看调用次数最多的读调用
gluster volume top ocp read brick 192.168.100.111:/data1/ocp list-cnt 3
查看调用次数最多的写调用
gluster volume top ocp write brick 192.168.100.111:/data1/ocp list-cnt 3
查看次数最多的目录调用
gluster volume top ocp opendir brick 192.168.100.111:/data1/ocp list-cnt 3
查看每个Brick的读性能
gluster volume top ocp read-perf brick 192.168.100.111:/data1/ocp list-cnt 3
查看每个Brick的写性能
gluster volume top ocp write-perf brick 192.168.100.111:/data1/ocp list-cnt 3
启动gluster
gluster start
停止gluster
gluster stop
重启gluster
gluster restart
配置yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
将下段repo添加至Centos-7.repo最后
[centos-gluster6]
name=CentOS-$releasever - Gluster 6
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-6
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
安装
yum install -y glusterfs glusterfs-fuse openssl-devel
挂载glusterfs存储 (只需要挂载其中一个节点)
mount -t glusterfs 192.168.1.10:ocp /gluster/data
{message type=“error”}注意:如果以主机名挂载。需要在客户端将所有glusterfs节点写入到/etc/hosts解析 因为客户端向gfs服务器写数据是同时向所有gfs节点写入。{/message}
开机自动挂载:
vim /etc/fstab
192.168.1.10:ocp /mnt/glusterfs glusterfs defaults,_netdev 0 0
以下参数并非所有环境通用,需根据自己的环境进行调整。
gluster volume set ocp auth.allow dn11,dn22,dn33;
gluster volume set ocp acl on;
gluster volume set ocp cluster.min-free-disk 15;
gluster volume set ocp network.frame-timeout 1500;
gluster volume set ocp network.ping-timeout 20;
gluster volume set ocp nfs.disable off;
gluster volume set ocp performance.io-thread-count 32;
gluster volume set ocp performance.cache-refresh-timeout 2;
gluster volume set ocp performance.cache-size 128MB;
gluster volume set ocp performance.quick-read on;
gluster volume set ocp performance.read-ahead on;
gluster volume set ocp performance.nfs.write-behind on;
gluster volume set ocp performance.io-cache on;
gluster volume heal ocp full;
gluster volume heal ocp info;
gluster volume info ocp;
gluster volume reset ocp acl force;
gluster volume get ocp acl;