网站产品图怎么做,seo推广培训,织梦网站搬家,企业网站属于广告吗GlusterFS 分布式文件系统代表-nfs常见分布式存储Gluster存储基础梳理GlusterFS 适合大文件还是小文件存储#xff1f; 应用场景术语Trusted Storage PoolBrickVolumes Glusterfs整体工作流程-数据访问流程GlusterFS客户端访问流程 GlusterFS常用命令部署 GlusterFS 群集准备环… GlusterFS 分布式文件系统代表-nfs常见分布式存储Gluster存储基础梳理GlusterFS 适合大文件还是小文件存储 应用场景术语Trusted Storage PoolBrickVolumes Glusterfs整体工作流程-数据访问流程GlusterFS客户端访问流程 GlusterFS常用命令部署 GlusterFS 群集准备环境所有node节点上操作关闭防火墙磁盘分区并挂载修改主机名配置/etc/hosts文件安装、启动GlusterFS所有node节点上操作添加节点到存储信任池中在 node1 节点上操作创建卷创建分布式卷dis-volume创建条带卷stripe-volume创建复制卷rep-volume创建分布式条带卷dis-stripe创建分布式复制卷dis-rep 部署 Gluster 客户端安装客户端软件创建挂载目录配置 /etc/hosts 文件挂载 Gluster 文件系统 对五种卷进行文件测试卷中写入文件客户端操作服务端查看文件分布破坏性测试 对分布式卷进行扩容缩容实验扩容缩容 yum安装glusterfs对三种基本卷进行测试创建分布式卷dis-volume创建条带卷stripe-volume创建复制卷rep-volume 分布式文件系统
分布式文件系统Distributed File System是指文件系统管理的物理存储资源并不直接与本地节点相连而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时服务器指引其将数据分散的存储到多个存储节点上以提供更快的速度更大的容量及更好的冗余特性;
产生 计算机通过文件系统管理、存储数据而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式已经不能满足目前的需求。 分布式文件系统可以有效解决数据的存储和管理难题将固定于某个地点的某个文件系统扩展到任意多个地点/多个文件系统众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的只需要像使用本地文件系统一样管理和存储文件系统中的数据;
代表-nfs
NFSNetwork File System即网络文件系统它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件就像访问本地文件一样;
优点 1节约使用的磁盘空间客户端经常使用的数据可以集中存放在一台机器上,并使用NFS发布,那么网络内部所有计算机可以通过网络访问,不必单独存储;
2节约硬件资源NFS还可以共享软驱,CDROM和ZIP等的存储设备,减少整个网络上的可移动设备的数量;
3用户主目录设定对于特殊用户,如管理员等,为了管理的需要,可能会经常登录到网络中所有的计算机,若每个客户端,均保存这个用户的主目录很繁琐,而且不能保证数据的一致性.实际上,经过NFS服务的设定,然后在客户端指定这个用户的主目录位置,并自动挂载,就可以在任何计算机上使用用户主目录的文件;
缺点 1) 存储空间不足需要更大容量的存储; 2) 直接用NFS挂载存储有一定风险存在单点故障; 3) 某些场景不能满足要求大量的访问磁盘IO是瓶颈; 4) 扩容,缩容影响服务器较多; 5) 目录层级不要太深,合理组织目录,数量不要太多,增大glusterfs目录缓存,另外还可以设计把元数据和数据分离,将元数据放到内存数据库,并在ssd持久保存; 6) 小文件性能较差,它主要为大文件设计,对小文件优化很少, 虽然在客户端采用了元数据缓存md-cache提高小文件性能,但是md-cache大小有限,海量小文件缓存命中率会严重下降,优化效果会减小,需要增大元数据缓存或者将小文件合并为一个大文件,成为block
常见分布式存储
FastDFS: 一个开源的轻量级分布式文件系统是纯C语言开发的。它对文件进行管理功能包括文件存储、文件同步、文件访问文件上传、文件下载等解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务如相册网站、视频网站等等。FastDFS 针对大量小文件存储有优势。
GlusterFS: 主要应用在集群系统中具有很好的可扩展性。软件的结构设计良好易于扩展和配置通过各个模块的灵活搭配以得到针对性的解决方案。GlusterFS适合大文件小文件性能相对较差。
MooseFS: 比较接近GoogleFS的c实现通过fuse支持了标准的posix支持FUSE相对比较轻量级对master服务器有单点依赖用perl编写算是通用的文件系统可惜社区不是太活跃性能相对其他几个来说较差国内用的人比较多。
Ceph: C编写性能很高支持Fuse并且没有单点故障依赖Ceph 是一种全新的存储方法对应于 Swift 对象存储。在对象存储中应用程序不会写入文件系统而是使用存储中的直接 API 访问写入存储。因此应用程序能够绕过操作系统的功能和限制。在openstack社区比较火做虚机块存储用的很多
GoogleFS性能十分好可扩展性强可靠性强。用于大型的、分布式的、对大数据进行访问的应用。运用在廉价的硬件上。
Gluster存储基础梳理
GlusterFS系统是一个可扩展的网络文件系统相比其他分布式文件系统GlusterFS具有高扩展性、高可用性、高性能、可横向扩展等特点并且其没有元数据服务器的设计让整个服务没有单点故障的隐患。Glusterfs是一个横向扩展的分布式文件系统就是把多台异构的存储服务器的存储空间整合起来给用户提供统一的命名空间。用户访问存储资源的方式有很多可以通过NFSSMBHTTP协议等访问还可以通过gluster本身提供的客户端访问。
GlusterFS是Scale-Out存储解决方案Gluster的核心它是一个开源的分布式文件系统具有强大的横向扩展能力通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计可为各种不同的数据负载提供优异的性能;
GlusterFS 适合大文件还是小文件存储
弹性哈希算法和Stripe 数据分布策略移除了元数据依赖优化了数据分布提高数据访问并行性能够大幅提高大文件存储的性能。对于小文件无元数据服务设计解决了元数据的问题。但GlusterFS 并没有在I/O 方面作优化在存储服务器底层文件系统上仍然是大量小文件本地文件系统元数据访问是一个瓶颈数据分布和并行性也无法充分发挥作用。 因此GlusterFS 适合存储大文件小文件性能较差还存在很大优化空间。
应用场景
GlusterFS 在企业中应用场景理论和实践上分析GlusterFS目前主要适用大文件存储场景对于小文件尤其是海量小文件存储效率和访问性能都表现不佳。海量小文件LOSF问题是工业界和学术界公认的难题GlusterFS作为通用的分布式文件系统并没有对小文件作额外的优化措施性能不好也是可以理解的;
Media: 文档、图片、音频、视频Shared storage: 云存储、虚拟化存储、HPC高性能计算Big data: 日志文件、RFID射频识别数据
术语 Brick GlusterFS中的存储单元通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识如’SERVER:EXPORT’。Client挂载了GlusterFS卷的设备; GFID GlusterFS卷中的每个文件或目录都有一个唯一的128位的数据相关联其用于模拟inode; Namespace 每个Gluster卷都导出单个ns作为POSIX的挂载点; Node 一个拥有若干brick的设备; RDMA 远程直接内存访问支持不通过双方的OS进行直接内存访问; RRDNS round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法; Self-heal 用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致; Split-brain 脑裂 Volfile Glusterfs进程的配置文件通常位于/var/lib/glusterd/vols/volname; Volume 一组bricks的逻辑集合; Trusted Storage Pool
• 一堆存储节点的集合 • 通过一个节点“邀请”其他节点创建这里叫probe • 成员可以动态加入动态删除 添加命令如下
gluster peer probe node2删除命令如下
gluster peer detach node3Brick
Brick是一个节点和一个导出目录的集合e.g. node1:/brick1 • Brick是底层的RAID或磁盘经XFS或ext4文件系统格式化而来所以继承了文件系统的限制 • 每个节点上的brick数是不限的 • 理想的状况是一个集群的所有Brick大小都一样。
Volumes
Volume是brick的逻辑组合 • 创建时命名来识别 • Volume是一个可挂载的目录 • 每个节点上的brick数是不变的,e.g.mount –t glusterfs www.std.com:test /mnt/gls • 一个节点上的不同brick可以属于不同的卷 • 支持如下种类 a) 分布式卷 b) 条带卷 c) 复制卷 d) 分布式复制卷 e) 条带复制卷 f) 分布式条带复制卷
1分布式卷• 文件分布存在不同的brick里 • 目录在每个brick里都可见 • 单个brick失效会带来数据丢失 • 无需额外元数据服务器
2复制卷 • 同步复制所有的目录和文件 • 节点故障时保持数据高可用 • 事务性操作保持一致性 • 有changelog • 副本数任意定
3分布式复制卷 • 最常见的一种模式 • 读操作可以做到负载均衡
4条带卷 • 文件切分成一个个的chunk存放于不同的brick上 • 只建议在非常大的文件时使用比硬盘大小还大 • Brick故障会导致数据丢失建议和复制卷同时使用 • 区块chunks是带有空洞的文件——这有助于保持偏移量的一致性
Glusterfs整体工作流程-数据访问流程 a首先是在客户端 用户通过glusterfs的mount point 来读写数据 对于用户来说集群系统的存在对用户是完全透明的用户感觉不到是操作本地系统还是远端的集群系统。 b用户的这个操作被递交给 本地linux系统的VFS来处理。 cVFS 将数据递交给FUSE 内核文件系统:在启动 glusterfs 客户端以前需要想系统注册一个实际的文件系统FUSE,如上图所示该文件系统与ext3在同一个层次上面 ext3 是对实际的磁盘进行处理 而fuse 文件系统则是将数据通过/dev/fuse 这个设备文件递交给了glusterfs client端。所以 我们可以将 fuse文件系统理解为一个代理。
d数据被fuse 递交给Glusterfs client 后 client 对数据进行一些指定的处理所谓的指定是按照client 配置文件据来进行的一系列处理 我们在启动glusterfs client 时需要指定这个文件。
e在glusterfs client的处理末端通过网络将数据递交给 Glusterfs Server并且将数据写入到服务器所控制的存储设备上。 这样 整个数据流的处理就完成了。
GlusterFS客户端访问流程 当客户端访问GlusterFS存储时首先程序通过访问挂载点的形式读写数据对于用户和程序而言集群文件系统是透明的用户和程序根本感觉不到文件系统是本地还是在远程服务器上。读写操作将会被交给VFS(Virtual File System)来处理VFS会将请求交给FUSE内核模块而FUSE又会通过设备/dev/fuse将数据交给GlusterFS Client。最后经过GlusterFS Client的计算并最终经过网络将请求或数据发送到GlusterFS Server上;
GlusterFS常用命令
# 1 启停和开机启动
systemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service#2 为存储池添加/移除服务器节点
gluster peer probe SERVER
gluster peer detach SERVER
#注意移除节点时需要提前将该节点上的Brick移除。# 3查看所有节点的基本状态不包括本节点
gluster peer status# 4 挂载glusterfs
mount -t glusterfs SERVER:/VOLNAMEMOUNTDIR#5 创建/启动/停止/删除卷
gluster volume create NEW-VOLNAME[stripe COUNT \| replica COUNT] \[transport [tcp | rdma | tcp,rdma]] \NEW-BRICK1 NEW-BRICK2 \NEW-BRICK3 NEW-BRICK4...
#force 参数可能用于强制执行一些可能有风险的操作比如删除卷、移除存储节点等。使用 force 参数可能会绕过一些安全检查或确认步骤因此需要谨慎使用以避免意外造成数据丢失或系统不稳定。
gluster volume start VOLNAME
gluster volume stop VOLNAME
gluster volume delete VOLNAME
#注意删除卷的前提是先停止卷。# 6 查看卷信息
gluster volume list #列出集群中的所有卷
gluster volume info [all] #查看集群中的卷信息
gluster volume status [all] #查看集群中的卷状态
gluster volume status VOLNAME [detail| clients | mem | inode | fd] # 7 配置卷
gluster volume set VOLNAME OPTION PARAMETER# 8 扩展卷
gluster volume add-brick VOLNAME NEW-BRICK
#如果是复制卷则每次添加的Brick数必须是replica的整数倍。# 9 收缩卷
## 9.1 先将数据迁移到其它可用的Brick迁移结束后才将该Brick移除
gluster volume remove-brick VOLNAME BRICK start
#在执行了start之后可以使用status命令查看移除进度
gluster volume remove-brick VOLNAME BRICK status## 9.2不进行数据迁移直接删除该Brick
gluster volume remove-brick VOLNAME BRICK commit
#注意如果是复制卷或者条带卷则每次移除的Brick数必须是replica或者stripe的整数倍。
# 关于收缩卷,线上几乎不会收缩基本上都是扩容而且裁剪只能收缩没有数据的否则可能数据丢失。所以有些卷是不支持收缩的。# 10 迁移卷
#使用start命令开始进行迁移
#迁移过程中可以使用pause命令暂停迁移
# 可以使用abort命令终止迁移
# 可以使用status命令查看迁移进度
#在数据迁移结束后执行commit命令来进行Brick替换
gluster volume replace-brick VOLNAME BRICK NEW-BRICK start
gluster volume replace-brick VOLNAME BRICK NEW-BRICK pause
gluster volume replace-brick VOLNAME BRICK NEW-BRICK abort
gluster volume replace-brick VOLNAME BRICK NEW-BRICK status
gluster volume replace-brick VOLNAME BRICK NEW-BRICK commit# 11 重新均衡卷
#不迁移数据
gluster volume rebalance VOLNAME lay-outstart
gluster volume rebalance VOLNAME start
gluster volume rebalance VOLNAME startforce
gluster volume rebalance VOLNAME status
gluster volume rebalance VOLNAME stop# 12 磁盘配额
#开启/关闭系统配额
gluster volume quota VOLNAME enable | disable
#设置目录配额
gluster volume quota VOLNAME limit-usage DIR VALUE
#查看配额
gluster volume quota VOLNAME list [DIR]# 13 地域复制geo-replication
gluster volume geo-replication MASTER SLAVE start | status | stop# 14 IO信息查看
gluster volume profile VOLNAME start | info | stop# 15 Top监控
#Top命令允许你查看Brick的性能例如read,write, file open calls, file read calls, file write calls, directory opencalls, and directory real calls。所有的查看都可以设置top数默认100。gluster volume top VOLNAME open[brick BRICK] [list-cnt COUNT]
#其中open可以替换为read, write, opendir, readdir等。gluster volume top VOLNAME read-perf [bs BLOCK-SIZE count COUNT] [brick BRICK] [list-cnt COUNT]
#其中read-perf可以替换为write-perf等。部署 GlusterFS 群集
服务器磁盘挂载点系统Node1节点192.168.99.118/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4Node2节点192.168.99.119/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4Node3节点192.168.99.121/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4Node4节点192.168.99.177/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4客户端节点192.168.99.179centos7.4
准备环境所有node节点上操作
四台机器分别添加四块硬盘系统为centos7.47.9会有glibc依赖库问题。
关闭防火墙
systemctl stop firewalld
setenforce 0磁盘分区并挂载
#编写脚本
vim /opt/fdisk.sh
#!/bin/bash
NEWDEVls /dev/sd* | grep -o sd[b-z] | uniq
for VAR in $NEWDEV
doecho -e n\np\n\n\n\nw\n | fdisk /dev/$VAR /dev/nullmkfs.xfs /dev/${VAR}1 /dev/nullmkdir -p /data/${VAR}1 /dev/nullecho /dev/${VAR}1 /data/${VAR}1 xfs defaults 0 0 /etc/fstab
done
mount -a /dev/null
#给权限
chmod x /opt/fdisk.sh
cd /opt/
#执行脚本
./fdisk.sh
# 查看挂载情况
df -h修改主机名配置/etc/hosts文件
hostnamectl set-hostname node1echo 192.168.99.118 node1 /etc/hosts
echo 192.168.99.119 node2 /etc/hosts
echo 192.168.99.121 node3 /etc/hosts
echo 192.168.99.177 node4 /etc/hosts安装、启动GlusterFS所有node节点上操作
glusterfs这是 GlusterFS 的客户端软件包。它允许将远程 GlusterFS 卷挂载到本地文件系统上以便应用程序可以像访问本地文件一样访问远程文件系统中的数据。它实现了 FUSEFilesystem in Userspace技术以在用户态管理文件系统操作。glusterfs-server这是 GlusterFS 的服务器软件包。它包含了 GlusterFS 存储服务器的核心组件用于存储和管理数据。这些服务器一起组成一个分布式存储解决方案可以将数据分布在多个节点上提供高可用性和可扩展性。glusterfs-fuse这是 GlusterFS FUSE 客户端的依赖软件包。当使用 glusterfs 客户端将 GlusterFS 卷挂载到本地文件系统上时通常需要安装这个软件包来支持 FUSE 技术。glusterfs-rdma这是可选的 GlusterFS 组件用于启用 RDMARemote Direct Memory Access支持以提高数据传输的性能和效率。RDMA 是一种高性能的网络传输技术适用于需要低延迟和高吞吐量的应用场景。这个软件包通常是可选的根据特定需求决定是否安装。
#修改yum源之前先安装pciutils
yum -y install pciutils unzip
# 将gfsrepo.zip上传到/opt目录下解压缩
cd /opt
unzip gfsrepo.zip#将glfsrepo 软件上传到/opt目录下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak
vim glfs.repo
[glfs]
nameglfs
baseurlfile:///opt/gfsrepo
gpgcheck0
enabled1yum clean all yum makecacheyum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
# 官方目前为9x版本而6x之后已不再支持条带卷
# 故本次试验使用3x版本由于安装gluster-server时依赖的glibc包需要2.17-196版本故使用centos7.4版本且进入后不要yum update否则会导致glibc版本更新
#如采用官方 YUM 源安装可以直接指向互联网仓库
# 安装server
# yum install -y centos-release-gluster
# yum install -y glusterfs-serversystemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service添加节点到存储信任池中在 node1 节点上操作
#只要在一台Node节点上添加其它节点即可
# GlusterFS 将会尝试建立节点之间的对等关系从而形成一个分布式存储集群可以共享数据和提供冗余性。
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4#在每个Node节点上查看群集状态
gluster peer status创建卷
根据规划创建如下卷
卷名类型brickdis-volume分布式卷node1-4(/data/sdb1)stripe-volume条带卷node1-2(/data/sdc1)rep-volume复制卷node3-4(/data/sdc1)dis-stripe分布式条带卷node1-4(/data/sdd1)dis-rep分布式复制卷node1-4(/data/sde1)
创建分布式卷dis-volume
#创建分布式卷没有指定类型默认创建的是分布式卷
gluster volume create dis-volume \
node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1 node4:/data/sdb1 force
#在 GlusterFS 中force选项用于强制操作即使存在一些潜在的问题或警告。GlusterFS 在创建卷时会检查相关的条件和限制如果发现问题或者不符合要求就会拒绝创建卷并返回相应的错误信息。#查看卷列表
gluster volume list
#启动新建分布式卷
gluster volume start dis-volume
#查看创建分布式卷信息
gluster volume info dis-volume创建条带卷stripe-volume
#指定类型为 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创建复制卷rep-volume
#指定类型为 replica数值为 2且后面跟了 2 个 Brick Server所以创建的是复制卷
gluster volume create rep-volume replica 2 node3:/data/sdc1 node4:/data/sdc1 force
gluster volume start rep-volume
gluster volume info rep-volume创建分布式条带卷dis-stripe
#指定类型为 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 forcegluster volume start dis-stripe
gluster volume info dis-stripe创建分布式复制卷dis-rep
#指定类型为 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
#查看当前所有卷的列表
gluster volume list部署 Gluster 客户端
安装客户端软件
#将gfsrepo 软件上传到/opt目下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak
vim glfs.repo
[glfs]
nameglfs
baseurlfile:///opt/gfsrepo
gpgcheck0
enabled1
yum clean all yum makecache
yum -y install glusterfs glusterfs-fuse创建挂载目录
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test配置 /etc/hosts 文件 挂载 Gluster 文件系统
#临时挂载
mount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:stripe-volume /test/stripe
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-stripe /test/dis_stripe
mount.glusterfs node1:dis-rep /test/dis_repdf -Th对五种卷进行文件测试
卷中写入文件客户端操作
cd /opt
dd if/dev/zero of/opt/demo1.log bs1M count40
dd if/dev/zero of/opt/demo2.log bs1M count40
dd if/dev/zero of/opt/demo3.log bs1M count40
dd if/dev/zero of/opt/demo4.log bs1M count40
dd if/dev/zero of/opt/demo5.log bs1M count40ls -lh /optcp -i /opt/demo* /test/dis/
cp -i /opt/demo* /test/stripe/
cp -i /opt/demo* /test/rep/
cp -i /opt/demo* /test/dis_stripe/
cp -i /opt/demo* /test/dis_rep/服务端查看文件分布
#查看分布式文件分布
#node1
ls -lh /data/sdb1
#node2
ll -h /data/sdb1
#node4
ll -h /data/sdb1#查看条带卷文件分布
#node1ls -lh /data/sdc1 #数据被分片50% 没副本 没冗余#node2ls -lh /data/sdc1#查看复制卷分布
#node3ll -h /data/sdc1#数据没有被分片 有副本 有冗余
#node4
ll -h /data/sdc1
#数据没有被分片 有副本 有冗余 #查看分布式条带卷分布
#node1、2、3、4
ll -h /data/sdd1 #查看分布式复制卷分布
#数据没有被分片 有副本 有冗余
ll -h /data/sde1破坏性测试
#挂起 node2 节点或者关闭glusterd服务来模拟故障
#systemctl stop glusterd.service
#或者关闭虚拟机
shutdown -h now#在客户端上查看文件是否正常
#分布式卷数据查看
ll /test/dis/ #条带卷
cd /test/stripe/ #无法访问条带卷不具备冗余性#分布式条带卷ll /test/dis_stripe/ #无法访问分布条带卷不具备冗余性#分布式复制卷
ll /test/dis_rep/ #可以访问分布式复制卷具备冗余性#挂起 node2 和 node4 节点在客户端上查看文件是否正常
#测试复制卷是否正常
ls -l /test/rep/ #在客户机上测试正常 数据有#测试分布式条卷是否正常ll /test/dis_stripe/ #在客户机上测试没有数据 #测试分布式复制卷是否正常ll /test/dis_rep/ #在客户机上测试正常 有数据对分布式卷进行扩容缩容实验
gluster volume info dis-volume挂载新硬盘sdf1
扩容
#增加一个brickgluster volume add-brick dis-volume node3:/data/sdf1 forcegluster volume rebalance dis-volume start force缩容
gluster volume rebalance dis-volume start force
gluster volume remove-brick dis-volume node3:/data/sdf1 force
yyum安装glusterfs对三种基本卷进行测试
服务器磁盘挂载点系统Node1节点192.168.99.118/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4Node2节点192.168.99.119/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1centos7.4
chmod x /opt/fdisk.sh
cd /opt/
#执行脚本
./fdisk.sh
# 查看挂载情况
df -hyum install -y centos-release-glusteryum install -y glusterfs-servergluster peer probe node1
gluster peer probe node2根据规划创建如下卷
卷名类型brickdis-volume分布式卷node1-4(/data/sdb1)stripe-volume条带卷node1-2(/data/sdc1)rep-volume复制卷node3-4(/data/sdc1)
创建分布式卷dis-volume
#创建分布式卷没有指定类型默认创建的是分布式卷
gluster volume create dis-volume \
node1:/data/sdb1 node2:/data/sdb1 force
#在 GlusterFS 中force选项用于强制操作即使存在一些潜在的问题或警告。GlusterFS 在创建卷时会检查相关的条件和限制如果发现问题或者不符合要求就会拒绝创建卷并返回相应的错误信息。#查看卷列表
gluster volume list
#启动新建分布式卷
gluster volume start dis-volume
#查看创建分布式卷信息
gluster volume info dis-volume创建条带卷stripe-volume
#指定类型为 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失败
创建复制卷rep-volume
#指定类型为 replica数值为 2且后面跟了 2 个 Brick Server所以创建的是复制卷
gluster volume create rep-volume replica 2 node1:/data/sdd1 node2:/data/sdd1 force
gluster volume start rep-volume
gluster volume info rep-volume