重庆h5建站丽水市莲都建设分局网站

当前位置: 首页 > news >正文

重庆h5建站,丽水市莲都建设分局网站,手机上可以做网站吗,免费建网站的服务器一、GlusterFS 概述 1.1 什么是GlusterFS
GlusterFS 是一个开源的分布式文件系统#xff0c;它可以将多个存储服务器结合在一起#xff0c;创建一个大的存储池#xff0c;供客户端使用。它不需要单独的元数据服务器#xff0c;这样可以提高系统的性能和可靠性。由于没有…一、GlusterFS 概述 1.1 什么是GlusterFS  GlusterFS 是一个开源的分布式文件系统它可以将多个存储服务器结合在一起创建一个大的存储池供客户端使用。它不需要单独的元数据服务器这样可以提高系统的性能和可靠性。由于没有单点故障系统更加稳定。 1.2 GlusterFS 主要特点 高扩展性和高性能通过增加存储节点容量和性能都可以轻松扩展。系统可以处理大量并发操作支持高速网络如 10GbE 和 InfiniBand。高可用性GlusterFS 可以自动复制文件确保数据在硬件故障时依然可用。系统有自我修复功能后台自动修复数据问题。全局统一命名空间系统将所有存储节点的容量整合在一起通过一个虚拟存储池对外提供服务。弹性卷管理系统可以在线增加或减少存储容量不会中断业务。根据需要调整性能支持负载均衡。标准协议兼容支持多种协议如 NFS、CIFS、HTTP、FTP、SMB 等完全兼容 POSIX 标准应用程序无需修改即可使用。 1.3 GlusterFS 工作流程 客户端读取或写入数据应用程序或用户通过 GlusterFS 的挂载点访问文件像操作本地文件一样简单。系统接收请求操作系统接收到这个文件操作请求并开始处理。FUSE 做中介操作系统通过 FUSE 这个“中间人”把数据传给 GlusterFS 客户端。FUSE 相当于帮系统和 GlusterFS 之间搭了一座桥。GlusterFS 客户端处理数据客户端根据设置好的规则处理文件比如决定如何把文件分成多个部分存储或者如何备份数据。数据发送到服务器处理完的数据通过网络传输到 GlusterFS 服务器并保存到远程存储设备上。 1.4 Gluster 七种卷类型 分布式卷Distribute Volume 特点文件通过 HASH 算法分布到所有 Brick Server 上扩展磁盘空间但不具备容错性类似 RAID0。应用适合磁盘空间扩展不适合需要数据冗余的场景。示例gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3 条带卷Stripe Volume 特点文件被分块轮询存储在多个服务器上适合大文件处理但不具备冗余性类似 RAID0。应用适合大文件存储但不适合需要数据冗余的场景。示例gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2 复制卷Replica Volume 特点文件同时存在于多个服务器上具备冗余性类似 RAID1读性能提升但写性能较低。应用适合需要数据冗余和高可用性的场景。示例gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2 分布式条带卷Distribute Stripe Volume 特点结合分布式卷和条带卷适合大文件处理要求 Brick Server 数量是条带数的倍数。应用适合大文件处理的同时需要分布式存储。示例gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4 分布式复制卷Distribute Replica Volume 特点结合分布式卷和复制卷具备冗余性要求 Brick Server 数量是副本数的倍数。应用适合需要数据冗余和扩展性的场景。示例gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4 条带复制卷Stripe Replica Volume 特点结合条带卷和复制卷文件分块存储并具备冗余性。应用适合需要大文件处理和冗余的场景。示例条带与复制卷的结合命令类似条带卷和复制卷的组合。 分布式条带复制卷Distribute Stripe Replica Volume 特点结合分布式卷、条带卷和复制卷具备冗余性和扩展性。应用适合大文件处理、扩展性和数据冗余场景。示例与分布式条带和复制卷结合命令类似于两者的组合。 1.4.1 弹性hash算法原理 哈希环 想象一个钟表的圆形表盘上面标记了从0到最大值的数字比如0到2^32-1形成一个圆环。 节点的映射 每台服务器节点根据它的名字或IP地址生成一个哈希值然后把这个哈希值放在表盘的某个位置上。这些位置就是服务器存放数据的“地址”。 数据的映射 每个数据也会通过哈希函数生成一个哈希值然后这个哈希值也映射到表盘上。顺时针方向第一个遇到的服务器负责存储这个数据。 节点增减时的数据迁移 如果新增了一台服务器它会从附近的服务器接管一部分数据只需要搬动一小部分数据。 如果有服务器退出剩下的服务器会接管它的那部分数据数据迁移量很小 二、 部署Gluster 群集 Node1节点node1/192.168.10.13          磁盘/dev/sdb1            挂载点/data/sdb1                                                                              /dev/sdc1                          /data/sdc1                                                                              /dev/sdd1                          /data/sdd1                                                                              /dev/sde1                          /data/sde1 Node2节点node2/192.168.10.14          磁盘/dev/sdb1            挂载点/data/sdb1                                                                             /dev/sdc1                           /data/sdc1                                                                             /dev/sdd1                           /data/sdd1                                                                             /dev/sde1                           /data/sde1 Node3节点node3/192.168.10.15          磁盘/dev/sdb1            挂载点/data/sdb1                                                                             /dev/sdc1                           /data/sdc1                                                                             /dev/sdd1                           /data/sdd1                                                                             /dev/sde1                           /data/sde1 Node4节点node4/192.168.10.16          磁盘/dev/sdb1            挂载点/data/sdb1                                                                             /dev/sdc1                           /data/sdc1                                                                             /dev/sdd1                           /data/sdd1                                                                             /dev/sde1                           /data/sde1 客户端节点192.168.10.2  ———–准备环境所有node节点上操作———— ①关闭防火墙 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/nullchmod x /opt/fdisk.sh cd /opt/ ./fdisk.sh   ③修改主机名配置/etc/hosts文件 #以Node1节点为例 hostnamectl set-hostname node1 echo 192.168.10.13 node1 /etc/hosts echo 192.168.10.14 node2 /etc/hosts echo 192.168.10.15 node3 /etc/hosts echo 192.168.10.16 node4 /etc/hosts   ———- 安装、启动GlusterFS所有node节点上操作 ———– #将gfsrepo 软件上传到/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 makecache yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma systemctl start glusterd.service  systemctl enable glusterd.service systemctl status glusterd.service 故障原因是版本过高导致 yum remove glusterfs-api.x86_64 glusterfs-cli.x86_64 glusterfs.x86_64 glusterfs-libs.x86_64 glusterfs-client-xlators.x86_64 glusterfs-fuse.x86_64 -y ———- 添加节点到存储信任池中在 node1 节点上操作 ———– #只要在一台Node节点上添加其它节点即可 gluster peer probe node1 gluster peer probe node2 gluster peer probe node3 gluster peer probe node4 #在每个Node节点上查看群集状态 gluster peer status   #根据规划创建如下卷 卷名称                 卷类型                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.1 分布式卷 gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force gluster volume start dis-volume gluster volume info dis-volume 2.2 条带卷 gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force gluster volume start stripe-volume gluster volume info stripe-volume 2.3 复制卷 gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force gluster volume start rep-volume gluster volume info rep-volume 2.4 分布式条带卷 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 2.5 分布式复制卷 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 文件 echo 192.168.10.13 node1 /etc/hosts echo 192.168.10.14 node2 /etc/hosts echo 192.168.10.15 node3 /etc/hosts echo 192.168.10.16 node4 /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_rep df -Th #永久挂载 vim /etc/fstab node1:dis-volume        /test/dis                glusterfs        defaults,_netdev        0 0 node1:stripe-volume        /test/stripe            glusterfs        defaults,_netdev        0 0 node1:rep-volume        /test/rep                glusterfs        defaults,_netdev        0 0 node1:dis-stripe        /test/dis_stripe        glusterfs        defaults,_netdev        0 0 node1:dis-rep            /test/dis_rep            glusterfs        defaults,_netdev        0 0   ——— 测试 Gluster 文件系统 ——— ①卷中写入文件客户端操作 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 count40 ls -lh /opt cp /opt/demo /test/dis cp /opt/demo* /test/stripe/ cp /opt/demo* /test/rep/ cp /opt/demo* /test/dis_stripe/ cp /opt/demo* /test/dis_rep/ ②查看文件分布 分布式文件分布 #查看分布式文件分布 [rootnode1 ~]# ls -lh /data/sdb1 #数据没有被分片 总用量 160M -rw-r–r– 2 root root 40M 12月 18 14:50 demo1.log -rw-r–r– 2 root root 40M 12月 18 14:50 demo2.log -rw-r–r– 2 root root 40M 12月 18 14:50 demo3.log -rw-r–r– 2 root root 40M 12月 18 14:50 demo4.log[rootnode2 ~]# ll -h /data/sdb1 总用量 40M -rw-r–r– 2 root root 40M 12月 18 14:50 demo5.log 条带卷文件分布 #查看条带卷文件分布 [rootnode1 ~]# ls -lh /data/sdc1 #数据被分片50% 没副本 没冗余 总用量 101M -rw-r–r– 2 root root 20M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo4.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo5.log[rootnode2 ~]# ll -h /data/sdc1 #数据被分片50% 没副本 没冗余 总用量 101M -rw-r–r– 2 root root 20M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo4.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo5.log复制卷分布 #查看复制卷分布 [rootnode3 ~]# ll -h /data/sdb1 #数据没有被分片 有副本 有冗余
总用量 201M -rw-r–r– 2 root root 40M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo4.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo5.log[rootnode4 ~]# ll -h /data/sdb1 #数据没有被分片 有副本 有冗余 总用量 201M -rw-r–r– 2 root root 40M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo4.log -rw-r–r– 2 root root 40M 12月 18 14:51 demo5.log 分布式条带卷分布 #查看分布式条带卷分布 [rootnode1 ~]# ll -h /data/sdd1 #数据被分片50% 没副本 没冗余 总用量 81M -rw-r–r– 2 root root 20M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo4.log[rootnode2 ~]# ll -h /data/sdd1 总用量 81M -rw-r–r– 2 root root 20M 12月 18 14:51 demo1.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo2.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo3.log -rw-r–r– 2 root root 20M 12月 18 14:51 demo4.log[rootnode3 ~]# ll -h /data/sdd1 总用量 21M -rw-r–r– 2 root root 20M 12月 18 14:51 demo5.log[rootnode4 ~]# ll -h /data/sdd1 总用量 21M -rw-r–r– 2 root root 20M 12月 18 14:51 demo5.log分布式复制卷分布 #查看分布式复制卷分布 #数据没有被分片 有副本 有冗余 [rootnode1 ~]# ll -h /data/sde1 总用量 161M -rw-r–r– 2 root root 40M 12月 18 14:52 demo1.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo2.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo3.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo4.log[rootnode2 ~]# ll -h /data/sde1 总用量 161M -rw-r–r– 2 root root 40M 12月 18 14:52 demo1.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo2.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo3.log -rw-r–r– 2 root root 40M 12月 18 14:52 demo4.log[rootnode3 ~]# ll -h /data/sde1 总用量 41M -rw-r–r– 2 root root 40M 12月 18 14:52 demo5.log [rootnode3 ~]# [rootnode4 ~]# ll -h /data/sde1 总用量 41M -rw-r–r– 2 root root 40M 12月 18 14:52 demo5.log———- 破坏性测试 ———– #挂起 node2 节点或者关闭glusterd服务来模拟故障 [rootnode2 ~]# systemctl stop glusterd.service #在客户端上查看文件是否正常 分布式卷数据查看 #分布式卷数据查看 [rootlocalhost test]# ll /test/dis/ #在客户机上发现少了demo5.log文件这个是在node2上的 总用量 163840 -rw-r–r– 1 root root 41943040 12月 18 14:50 demo1.log -rw-r–r– 1 root root 41943040 12月 18 14:50 demo2.log -rw-r–r– 1 root root 41943040 12月 18 14:50 demo3.log -rw-r–r– 1 root root 41943040 12月 18 14:50 demo4.log条带卷 #条带卷 [rootlocalhost test]# cd /test/stripe/ #无法访问条带卷不具备冗余性 [rootlocalhost stripe]# ll 总用量 0分布式条带卷 #分布式条带卷 [rootlocalhost test]# ll /test/dis_stripe/ #无法访问分布条带卷不具备冗余性 总用量 40960 -rw-r–r– 1 root root 41943040 12月 18 14:51 demo5.log分布式复制卷 #分布式复制卷 [rootlocalhost test]# ll /test/dis_rep/ #可以访问分布式复制卷具备冗余性 总用量 204800 -rw-r–r– 1 root root 41943040 12月 18 14:52 demo1.log -rw-r–r– 1 root root 41943040 12月 18 14:52 demo2.log -rw-r–r– 1 root root 41943040 12月 18 14:52 demo3.log -rw-r–r– 1 root root 41943040 12月 18 14:52 demo4.log -rw-r–r– 1 root root 41943040 12月 18 14:52 demo5.log 凡是带复制数据相比而言数据比较安全 ——-扩展其他的维护命令——- 1查看GlusterFS卷 gluster volume list
2查看所有卷的信息 gluster volume info3查看所有卷的状态 gluster volume status4停止一个卷 gluster volume stop dis-stripe5删除一个卷注意删除卷时需要先停止卷且信任池中不能有主机处于宕机状态否则删除不成功 gluster volume delete dis-stripe6设置卷的访问控制 #仅拒绝 gluster volume set dis-rep auth.deny 192.168.80.100#仅允许 gluster volume set dis-rep auth.allow 192.168.80.* #设置192.168.80.0网段的所有IP地址都能访问dis-rep卷分布式复制卷