• GFS分布式文件系统


    GFS分布式文件系统

    gfs glusterFS 开源的分布式的文件系统
    存储服务器 客户端 以及网络(NFS/samba)网关
    传统式(老的)分布式元服务系统,元服务器保存存储节点的目录树信息
    一旦元服务器故障,所有的存储节点全部失效。

    现在gfs取消了元服务器机制,数据横向扩展能力更强。可靠性更强。存储效率更高。
    工作性质: raid作区分。磁盘几余整列,本机的磁盘几余


    GFS:是把多个不同服务器上的不同硬盘组合起来,形成一个卷(基于网络的虚拟磁盘),实现文件系统冗余(核心)

    GFS特点:

    1、扩展性更强,高性能
    2、高可用,可以自动对文件进行复制。确保数据总是可以访问。硬件故障也可以正常访问。
    3、全局统一的命名空间,所有的节点都在一个分支的管理之下。客户端访问节点即可。
    4、弹性卷,类似于LVM,不同硬盘上的的不同分区,组成一个逻辑上的硬盘。
    不同的服务器上的不同硬盘分区,组成一个卷。可以动态扩容。
    5、基于标准协议,GFS存储服务支持:NFS,FTP HTTP 以及GFS协议。应用程序可以直接使用数据,不而要任何修改。

    GFS组件和术语

    BRICK(存储块)存储服务器提供的用于物理存储的专用分区,GFS的基本储存单元,也是对外提供的一个存储目录。
    是由服务器和目录的绝对路径组成
    volume逻辑卷一个逻辑卷就是一组brick的集合。类似于LVM,我们管理GFS就是管理这些卷。
    FUSE:GFS 的内核模块允许用户创建自己的文件系统。
    VFS接口内核空间对用户提供的访问磁盘的接口。虚拟端口。
    服务端glusterd(在后台管理进程)服务端在每个节点上都要运行。glusterd(在后台管理进程)

    工作流程:


    客户端--写入-->VFS---->FUSE--/dev/fuse-->GFS的客户端---->GFS的服务端---->VFS(2)---->xfs、ext

    1. /dev/fuse 
    2. FUSE判断数据是在GFS的挂载目录写入的,通过/dev/fuse转给GFS客户端来处理
    3. GFS的客户端
    4. 根据用户配置,把数据条带化/镜像化处理再通过网络转发GFS服务端
    5. GFS的服务端
    6. 接收到数据之后,通过VFS写入到文件系统之中
    7. VFS(2)
    8. 和不同服务器上的不同节点通信,实现数据传输
    9. xfs、ext
    10. 不同服务器上的不同硬盘分区
    11. 分布式卷的特点: 文件数据通过HASH算法分布到设置的所有BRICK SERVER上,GFS的默认卷。属于raid0,没有容错机制。

    GFS的卷类型:

    分布式卷---raid0
    条带卷(没了)
    复制卷(镜像化)---raid1
    分布式复制卷(工作中用)---raid10

    分布式卷的特点

    文件数据通过HASH的算法分布式布到设置的所有BRICK SERVER上。GFS的默认卷。属于
    在分布式卷模式下,没有对文件进行分块,直接存储在某个server的节点上。存取效率也没有提高。直接使用本地文件系统进行存储

    分布式卷的特点: 文件数据通过HASH算法分布到设置的所有BRICK SERVER上,GFS的默认卷。属于raid0,没有容错机制。

    复制卷

    类似于raid 1,文件会同步在多个brick server上。读性能上升,写性能稍差。
    坏一个节点不影响数据,但要保存副本,磁盘利用率50%

    分布式复制卷

    两两复制,文件会在组内同步。不同的组之间数据未必同步

    实验

    声明

    node1 node1:192.168.10.10
    node2 node2:192.168.10.50
    node3 node3:192.168.10.100
    node4 node4:192.168.10.101
    客户端: 任选 192.168.10.80

            /dev/sdb1 /data/sbd1
            /dev/sdc1 /data/sdc1
            /dev/sdd1 /data/sdd1

    每台node服务器

    ############################################################

    1. systemctl stop firewalld
    2. setenforce 0
    3. 脚本分区
    4. *********************************************
    5. #!/bin/bash
    6. NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
    7. for VAR in $NEWDEV
    8. do
    9. echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
    10. mkfs.xfs /dev/${VAR}"1" &> /dev/null
    11. mkdir -p /data/${VAR}"1" &> /dev/null
    12. echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
    13. done
    14. mount -a &> /dev/null
    15. *********************************************
    16. 出现加载分区
    17. alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
    修改主机名 node(1-4)
    hostnamectl set-hostname node1234
    做映射(在所有的主机)
    1. vim /etc/hosts
    2. ******************************
    3. 192.168.10.50 node1
    4. 192.168.10.100 node2
    5. 192.168.10.101 node3
    6. 192.168.10.102 node4
    7. ******************************
    1. yum -y install centos-release-gluster
    2. yum -y install glusterfs glusterfs-server glusterfs-fuse

    出现操作以下命令

    在cd /etc/yum.repos.d/下创建backup

    将所有的文件迁移到backup下,除CentOS-Gluster-9.repo外

    yum clean all & yum makecache

    ############################################################

    在客户端安装组件
    1. systemctl stop firewalld
    2. setenforce 0
    3. yum -y install glusterfs glusterfs-fuse
    4. 在hosts做映射
    5. 挂载 mount.glusterfs nodel:fenbushi /test/fenbushi
    创建分布卷(服务端node1)
    1. gluster volume create 节点名 node1:/data/sdb1 node2:/data/sdb1 force
    2. gluster volume create 创建新卷,默认就是分布式卷
    3. fenbushi 卷名,唯一不可重复
    4. node1:/data/sdb1 node2:/data/sdb1 挂载节点
    5. force 强制挂载
    创建复制卷(服务端node1)
    1. 创建复制卷
    2. gluster volume create fuzhijuan replica 2 node2:/data/sdcl node3:/data/sdcl
    3. replica 2 设置复制策略,2是两两复制,要小于等于存储节点,不能比存储节点多,否则,创建失败。
    创建分布复制卷(服务端node1)
    1. gluster volume create fenbufuzhishi replica 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
    2. replica 2 指定2个,给四个是分布式复制
    1. 添加节点 gluster peer probe node(1-4
    2. 查看状态 gluster peer status
    3. 打开分布式 gluster volume start fenbushi
    4. 停止分布式 gluster volume stop fenbushi
    5. 删除分布式 gluster volume stop fenbushi
    6. 停节点 gluster peer detach nodel

    指定主机访问控制

    1. GFS分布式存储系统
    2. 1、分布式卷
    3. 2、分布式复制卷 (重点)
    4. 工作性质: raid作区分。磁盘几余整列,本机的磁盘几余
    5. GFS:是把多个不同服务器上的不同硬盘组合起来,形成一个卷(基于网络的虚拟磁盘),实现文件系统冗余
    6. 拒绝:gluster volume set fenbushi auth.reject 192.168.10.10
    7. 允许:gluster volume set fenbushi auth.allow 192.168.10.10
    8. gluster volume set fenbushi auth.allow 192.168.10.10
    9. #允许所有网段可以访问这个卷

  • 相关阅读:
    医疗器械安全最佳实践
    强大的Docker入门知识
    韩国大带宽服务器的数据中心位置
    统计学考研笔记:季度指数
    element-plus form表单的二次封装
    如何使用 saplink 安装其他网站上提供的 ABAP 程序
    Git LFS提交大文件到GitHub
    轻量封装WebGPU渲染系统示例<22>- 渲染到纹理(RTT)(源码)
    『FPGA通信接口』LVDS接口(4)LVDS接收端设计
    机器人自适应控制
  • 原文地址:https://blog.csdn.net/qq_61843057/article/details/134466047