GFS
概述
特点
术语
架构
模块化:每个模块可以提供不同的功能
堆栈式:同时启用多个模块,多个功能可以组合,实现复杂的功能
通过对模块的组合,实现复杂的功能
上半部分为客户端,中间为网络层,下半部分为服务端
1、封装多个功能模块,组成堆栈式的结构,来实现复杂的功能
2、然后以请求的方式与客户端进行交互,客户端与服务端进行交互,由于可能会存在系统兼容问题,需要通过posix来解决系统兼容性问题,让客户端的命令通过posix过滤后可以在服务端执行
后端存储定位文件
弹性HASH算法
通过HASH算法得到一个固定长度的数据(这里是32位整数)
通常情况下,不同数据得到的结果是不同的
为了解决分布式文件数据索引、定位的复杂程度,而使用了HASH算法来辅助
GFS支持的七种卷
GFS部署
创建磁盘分区挂载
所有节点划分磁盘
Node1节点:192.168.21.10
Node2节点:192.168.21.20
Node3节点:192.168.21.30
Node4节点:192.168.21.40
vim fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
do
echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
mkfs.xfs /dev/${VAR}"1" &> /dev/null
mkdir -p /data/${VAR}"1" &> /dev/null
echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null
chmod +x fdisk.sh
./fdisk.sh
df -h
更改节点名称,配置hosts文件
Node1节点:192.168.21.10
Node2节点:192.168.21.20
Node3节点:192.168.21.30
Node4节点:192.168.21.40
hostname node1
su -
echo "192.168.21.10 node1" >> /etc/hosts
echo "192.168.21.20 node2" >> /etc/hosts
echo "192.168.21.30 node3" >> /etc/hosts
echo "192.168.21.40 node4" >> /etc/hosts
cat /etc/hosts
安装、启动GFS服务
添加节点创建集群
卷名称 卷类型 Brick
dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1)
stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)
(2)创建条带卷
指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷
创建条带卷
gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
启动新建条带卷
gluster volume start stripe-volume
查看创建条带卷信息
gluster volume info stripe-volume
(3)创建复制卷
指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
创建复制卷
gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
启动新建复制卷
gluster volume start rep-volume
查看创建复制卷信息
gluster volume info rep-volume
(4)创建分布式条带卷
指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷
创建分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
启动新建分布式条带卷
gluster volume start dis-stripe
查看创建分布式条带卷信息
gluster volume info dis-stripe
(5)创建分布式复制卷
指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷
创建分布式复制卷
gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
启动新建分布式复制卷
gluster volume start dis-rep
查看创建分布式复制卷信息
gluster volume info dis-rep
配置客户端
测试
查看
冗余测试
节点模拟故障
验证
总结
分布式卷:属于文件级的RAIDO,不具备容错能力,如果有一块磁盘损坏,数据就丢失
条带卷:类似RAID0,文件将被分成数据块并以轮询方式分布到Brick server上
复制卷:将文件同步到多个Brick上,属于文件RAID1,数据分数在多个Brick中
分布式条带卷:Brick server数量是条带数兼具分布式卷和条带卷的特定
分布式复制卷:Brick server数量是镜像数,兼具分布式卷和复制卷的特点条带复制卷:类似RAID10,同时具有条带卷和复制卷的特点
分布式条带复制卷:三种基本卷的集合
在企l业中数据的安全性是非常重要的,不具备冗余的卷是不会被企业所接受,所以使用频率较高的就是冗余性好的几种,例如本章讲的复制卷、分布式复制卷,还有没讲的条带复制卷和分布式条带复制卷了。