如何构建GFS分布式存储平台?理论+实操!

前言

一:GlusterFS(GFS)理论

1.1:什么是GlusterFS?

  • Gluster File System,开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储
  • 由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成
  • 无元数据服务器
  • GlusterFS特点
    • 扩展性和高性能
    • 高可用性
    • 全局统一命名空间
    • 弹性卷管理
    • 基于标准协议
  • 常用术语
    • Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT’
    • Volume:卷
    • FUSE:内核文件系统,Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。
    • VFS:虚拟文件系统
    • Glusterd:Gluster management daemon,要在trusted storage pool中所有的服务器上运行。
  • GFS的结构
    • 模块化堆栈式架构
    • 模块化、堆栈式的架构
    • 通过对模块的组合,实现复杂的功能
  • 弹性HASH算法
    • 通过HASH算法得到一个32位的整数
    • 划分为N个连续的子空间,每个空间对应一个Brick
    • 弹性HASH算法的优点
    • 保证数据平均分布在每一个Brick中
    • 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

1.2:GlusterFS工作原理是什么?

  • 1、客户端或应用程序通过GlusterFS的挂载点访问数据
  • 2、linux系统内核通过VFS API收到请求并处理
  • 3、VFS将数据递交给FUSE内核文件系统, fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
  • 4、GlusterFS client 收到数据后,client根据配置文件的配置对数据进行处理
  • 5、通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上
  • mark

1.3:GlusterFS的卷类型有哪些?

  • 分布式卷
    条带卷
    复制卷
    分布式条带卷
    分布式复制卷
    条带复制卷
    分布式条带复制卷
分布式卷
  • 没有对文件进行分块处理

  • 通过扩展文件属性保存HASH值

  • 支持的底层文件系统有ext3、ext4、ZFS、XFS等

  • 特点

    • 文件分布在不同的服务器,不具备冗余性
    • 更容易和廉价地扩展卷的大小
    • 单点故障会造成数据丢失
    • 依赖底层的数据保护
  • 创建命令

    gluster volume create dis-volume server1:/dir1 server2:/dir2
    
条带卷
  • 根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点

  • 存储大文件时,性能尤为突出

  • 不具备冗余性,类似Raid0

  • mark

  • 特点

    • 数据被分割成更小块分布到块服务器群中的不同条带区
    • 分布减少了负载且更小的文件加速了存取的速度
    • 没有数据冗余
  • 创建命令

    gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
    
复制卷
  • 同一文件保存一份或多分副本

  • 复制模式因为要保存副本,所以磁盘利用率较低

  • 多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量

  • mark

  • 特点

    • 卷中所有的服务器均保存一个完整的副本
    • 卷的副本数量可由客户创建的时候决定
    • 至少由两个块服务器或更多服务器
    • 具备冗余性
  • 创建命令

    gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
    
分布式条带卷
  • 兼顾分布式卷和条带卷的功能

  • 主要用于大文件访问处理

  • 至少最少需要 4 台服务器

  • 创建命令

    gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
    
  • mark

分布式复制卷
  • 兼顾分布式卷和复制卷的功能

  • 用于需要冗余的情况下

  • 创建命令

    gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
    
  • mark

二:GFS平台部署

2.1:环境准备

  • VMware软件

  • 一台centos7虚拟机,IP地址为:192.168.233.131,主机名为:node1,添加4块磁盘,分别为3G,4G,5G,6G大小

  • 一台centos7虚拟机,IP地址为:192.168.233.132,主机名为:node2,添加4块磁盘,分别为3G,4G,5G,6G大小

  • 一台centos7虚拟机,IP地址为:192.168.233.133,主机名为:node3,添加3块磁盘,分别为3G,4G,5G大小

  • 一台centos7虚拟机,IP地址为:192.168.233.128,主机名为:node4,添加4块磁盘,分别为3G,4G,5G大小

  • 一台centos7虚拟机,IP地址为:192.168.233.129,主机名为:client,当做测试机使用

  • 将要使用的卷名称和信息

    • 卷名称 卷类型 空间大小/GB Brick
      dis 分布式卷 12 node1(/e6)node2(/e6)
      stripe-volume 条带卷 10 node1(/d5)node2(/d5)
      rep-volume 复制卷 5 node3(/d5)node4(/d5)
      dis-stripe 分布式条带卷 12 node1(/b3)node2(/b3)node3(/b3)node4(/b3)
      dis-rep 分布式复制卷 8 node1(/c4)node2(/c4)node3(/c4)node4(/c4)

2.2:添加的磁盘进行格式化并挂载

  • 添加磁盘–仅展示其中一个界面,添加步骤都相同

  • 虚拟机设置----添加----硬盘,下一步----SCSI(推荐),下一步----创建新的虚拟磁盘,下一步----最大磁盘大小(自定义),勾选将虚拟磁盘拆分成多个文件,下一步----完成,相同方法添加其他的磁盘(除了client客户机),磁盘添加后需要重启一下才能识别到磁盘

  • mark

  • 创建磁盘分区,仅以node1为例,相同方法格式化其他主机新添加的磁盘

    [root@node1 ~]# fdisk -l	'//查看磁盘是否添加成功'
    [root@node1 ~]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0x5fae534e 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n	'//创建分区'
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p	'//创建主分区'
    分区号 (1-4,默认 1):	'//回车,默认分区号'
    起始 扇区 (2048-6291455,默认为 2048):	'//回车,默认扇区大小'
    将使用默认值 2048
    Last 扇区, +扇区 or +size
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KVM(GFS)分布式存储系统的构建可以通过以下步骤来实现高可用性: 1. 构建GFS集群:首先,需要构建一个GFS集群,这可以通过安装和配置GFS软件来完成。具体的实验过程可以参考引用中的相关内容。 2. 安装KVM虚拟机:在GFS集群节点服务器上,安装和配置KVM虚拟机。这样,可以通过KVM虚拟化技术来创建和管理虚拟机,从而提供更高的灵活性和可靠性。 3. GFS集群节点服务器添加磁盘:在每个GFS集群节点服务器上,添加额外的磁盘用于存储虚拟机的镜像文件和数据。这样,可以实现虚拟机的高可用性和故障恢复能力。 4. KVM宿主机部署成GFS客户端:将KVM宿主机配置为GFS客户端,可以使得虚拟机在不同的宿主机之间进行迁移和故障转移,从而提供高可用性和负载均衡的支持。 5. 验证存储:进行存储验证,确保GFS分布式存储系统在不同节点之间的数据一致性和可靠性。可以通过数据写入和读取测试来验证存储系统的功能和性能。 6. 进行高可用测试:进行高可用性测试,模拟故障情况,验证系统在节点故障或其他异常情况下的自动故障转移和恢复能力。可以参考引用中的OpenStack和libvirt相关内容来实现高可用性的控制和管理。 通过以上步骤,可以构建一个具有高可用性的KVM(GFS)分布式存储系统,提供可靠的虚拟化环境和数据存储服务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [2.KVM+GFS分布式存储系统构建KVM高可用](https://blog.csdn.net/a3409148395/article/details/128648676)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [KVM+GFS分布式存系统构建KVM高可用](https://download.csdn.net/download/weixin_38579899/14038636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值