1 介绍
? volume
glustefs 逻辑卷, 外部使用者看到的总存储.
? brick
逻辑卷内部的各个物理存储单元, 是一个挂载的目录, 各个 brick 以不同的模式组成一个 volume.
3, 安装 GlusterFS
- # yum install CentOS-release-gluster
- # yum install -y glusterfs-server
- # systemctl start glusterd
- # systemctl enable glusterd
4,Iptables 配置
- TCP/24007
- iptables -I INPUT -p all -s `<ip-address>` -j ACCEPT
或
- # iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 24007:24008 -j ACCEPT
- # iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 49152:49156 -j ACCEPT
5, 配置信任池
- # gluster peer probe node01
- # gluster peer probe node02
- # gluster peer probe node03
- # gluster peer status
gluster pool list 查看池列表
移除信任:
- gluster peer detach node01
- /var/lib/glusterfs/peers/ #存放信任池的主机信息.
6, 建立一个 GlusterFS 卷
模式:[stripe | replica | disperse] 传输方式:[transport tcp | rdma | tcp,rdma]rdma: 远程直接数据存取
6.1 分布式卷
说明:
文件分布在卷中的各个 bricks 上. 因此, file1 可以只存储在 brick1 或 brick2 中, 但不能同时存储在这两个文件中.
因此没有数据冗余. 这样一个存储卷的目的是方便和廉价地扩展卷大小.
这也意味着砖块故障将导致数据完全丢失, 必须依赖底层硬件来保护数据丢失.
创建:
在 node01,node02,node03 上:
- # mkdir -pv /bricks/brick1/gv0
- # gluster volume create test-volume node01:/bricks/brick1/gv0 node02:/bricks/brick1/gv0 node03:/bricks/brick1/gv0
- # gluster start test-volume #启动卷
- # gluster volume info #查看卷信息
6.2 复制式卷 (Replicated: 复制式卷, 类似 RAID 1)
说明:
解决了分布式卷中面临的数据丢失问题.
在创建卷时, replica 数必须等于 volume 中 brick 所包含的存储服务器数,
可用性高, 这种卷的一个主要优点是, 即使一个块失败, 仍然可以从它的复制块访问数据.
这样的卷用于更好的可靠性和数据冗余.
创建:
在 node01 和 node02 上:
# mkdir /bricks/brick1/gv0
在任何一台服务器上:
# gluster volume create gv0 replica 2 node01:/bricks/brick1/gv0 node02:/bricks/brick1/gv0
或
- # gluster volume create gv0 replica 2 node01:/data/glusterfs/gv0 node02:/data/glusterfs/gv0 force
- # gluster volume start gv0 #启动卷
- # gluster volume info #查看卷状态
在现有的 volume 下添加新的服务器:
添加信任池:
- # gluster peer probe node01
- # gluster peer probe node04
添加卷
# gluster volume add-brick gv0 replica 2 node01:/bricks/brick1/gv0 node04:/bricks/brick1/gv0 force
减少节点
- gluster volume remove-brick www server3:/data/www server4:/data/www start
- gluster volume remove-brick www server3:/data/www server4:/data/www status
- gluster volume remove-brick www server3:/data/www server4:/data/www commit
6.3 纠错卷
说明:
Dispersed Volume 基于 ErasureCodes(纠错码) 提供了对磁盘或服务器故障的空间有效保护.
它将原始文件的编码片段存储到每个块中, 以一种只需要片段子集就可以恢复原始文件的方式存储.
在不丢失对数据访问的情况下, 可以丢失的块的数量由管理员在卷创建时配置.
类似于 RAID5/6. 通过配置 Redundancy(冗余) 级别提高可靠性, 在保证较高的可靠性同时, 可以提升物理存储空间的利用率.
创建:
6.4 分布式纠错卷
6.5 分布式复制卷
说明:
Distributed Replicated: 分布式的复制卷, 最少需要 4 台服务器才能创建.
brick 所包含的存储服务器数必须是 replica 的倍数, 兼顾分布式和复制式的功能.
指定 brick 的顺序也很重要, 因为相邻的砖块会成为彼此的复制品.
当由于冗余和可伸缩存储而需要高可用性数据时, 使用这种类型的卷.
所以如果有 8 个 brick 和 2 个 replica, 那么前两个 brick 就会变成彼此的复制品, 然后是下两个 brick, 以此类推.
创建 volume 时 replica 2 server = 4 个节点
创建一个有两个 replica 的分布式复制卷
创建:
#gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
7, 测试
提供三种挂载方式: Native client,NFS,Samba(CIFS) Native 挂载方式一大优势是支持高可用,
虽然我们挂载的是 node01, 但是当 node01 不可用时, glusterfs volume 还是可以工作的. 可以停止模拟下 node01 故障.
- # yum install glusterfs-fuse
- # mount -t glusterfs node01:/gv0 /mnt
- umount -t glusterfs node01:/gv0 /mnt
FUSE:Filesystem Userspace 是一个可加载的内核模块, 其支持非特权用户创建自己的文件系统而不需要修改内核代码.
通过在用户空间运行文件系统的代码通过 FUSE 代码与内核进行桥接.
来源: http://www.bubuko.com/infodetail-3651855.html