GFS 分布式存储平台

  • 一、GFS概述
    • 1.1 GFS的三个组件
      • 1.1.1 存储服务器(Brick Server)
      • 1.1.2 存储网关(NFS/Samaba)
    • 1.2 GFS的特点
      • 1.2.1 扩展性和高性能
      • 1.2.2 高可用性
      • 1.2.3 全局统一命名空间
      • 1.2.4 弹性卷管理
      • 1.2.5 基于文件系统的标准使用协议
  • 二、GFS平台部署
    • 2.1 拓扑图
    • 2.2 更改节点名称
    • 2.3 磁盘批量格式化[所有节点]
    • 2.4 安装GFS[所有节点]
    • 2.5 添加节点并创建集群
      • 2.5.1 Node1
    • 2.6 根据需求创建卷
      • 2.6.1 创建分布式卷组
      • 2.6.2 创建复制卷
      • 2.6.3 创建分布式复制卷
      • 2.6.4 分散
      • 2.6.5 分布式分散卷
  • 三、Client客户端部署与测试
    • 3.1 查看文件分布
      • 3.1.1 查看分布式文件分布
      • 3.1.2 查看复制卷文件分布
    • 3.2 冗余测试
      • 3.2.1 在客户端查看文件

一、GFS概述

GFS(Gluster File System) 是一个可扩展、开源的分布式文件系统(可以很好的体现出弹性伸缩的特点),用于大型的、分布式的、对大量数据进行访问的应用
在传统的解决方案中,GFS 能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储

1.1 GFS的三个组件

1.1.1 存储服务器(Brick Server)

客户端(不在本地)(且,有客户端,也会有服务端,这点类似于 NFS,但是更为复杂)

1.1.2 存储网关(NFS/Samaba)

无元数据服务器
元数据是核心,描述对象的信息,影响其属性
例如NFS,存放数据本身,是一个典型的元数据服务器可能存在单点故障,故要求服务器性能较高,服务器一旦出现故障就会导致数据丢失
反过来看,所以无元数据服务不会有单点故障
那么数据存放在哪里呢?会借用分布式的原则,分散存储,不会有一个统一的数据服务器

1.2 GFS的特点

1.2.1 扩展性和高性能

可扩展性,扩展节点
通过多节点提高性能

1.2.2 高可用性

不存在单点故障,有备份机制
类似 Raid 的容灾机制

1.2.3 全局统一命名空间

集中化管理,类比 API 的性质/概念
系统里根据他命名所定义的隔离区域,是一个独立空间
统一的名称空间,与客户端交互,把请求存放至后端的块数据服务器

1.2.4 弹性卷管理

方便扩容及对后端存储集群的管理与维护
较为复杂

1.2.5 基于文件系统的标准使用协议

基于标准化的文件使用协议
让 CentOS 兼容 GFS

二、GFS平台部署

2.1 拓扑图

节点名 IP地址 磁盘
master 192.168.0.10 /dev/sdb-e
slave1 192.168.0.20 /dev/sdb-e
slave2 192.168.0.30 /dev/sdb-e
slave3 192.168.0.40 /dev/sdb-e

2.2 更改节点名称

#配置所有服务器节点名称[需要不同]
hostnamectl set-hostname node1
su -

2.3 磁盘批量格式化[所有节点]

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#关闭防火墙及安全机制#推荐使用xshell并列执行
vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /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
#赋权脚本并执行df -hT
#确认磁盘空间echo "192.168.0.10 node1" >> /etc/hosts
echo "192.168.0.20 node2" >> /etc/hosts
echo "192.168.0.30 node3" >> /etc/hosts
echo "192.168.0.40 node4" >> /etc/hosts
#添加四个节点的域名解析

2.4 安装GFS[所有节点]

yum install centos-release-gluster -yyum install -y glusterfs glusterfs-server glusterfs-fuseyum install glusterfs-rdma -ysystemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service

2.5 添加节点并创建集群

2.5.1 Node1

gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4gluster peer status

2.6 根据需求创建卷

卷名称 卷类型 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.6.1 创建分布式卷组

分布式卷将文件分布在卷中的单元之间。您可以使用分布式卷,其中需要扩展存储,冗余不是很重要,就是由其他硬件/软件层提供

gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force
#创建分布式卷,没有指定类型,默认创建的是分布式卷gluster volume list
#查看类型gluster volume start dis-volume
#开启gluster volume info dis-volume
#查看卷信息

2.6.2 创建复制卷

复制的卷在卷中的砖块之间复制文件。您可以在高可用性和高可靠性至关重要的环境中使用复制卷

gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
#指定类型为replica,数值为2,且后面跟了2个Brick Server,所以创建的是复制卷gluster volume start rep-volume
gluster volume info rep-volume

2.6.3 创建分布式复制卷

分布式复制卷跨卷中的复制块分布文件。您可以在需要扩展存储且高可靠性至关重要的环境中使用分布式复制卷。分布式复制卷在大多数环境中还提供了更好的读取性能

gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
#指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷gluster volume start dis-rep
gluster volume info dis-rep

2.6.4 分散

分散的卷基于擦除代码,提供空间效率高的磁盘或服务器故障保护。它将原始文件的编码片段存储到每个块中,这种方式只需要片段的一个子集就可以恢复原始文件。在不丢失对数据访问的情况下丢失的块的数量是由管理员在卷创建时配置的

gluster volume create test-volume disperse 3 redundancy 1 node1:/sdb1 node2:/sdb2 node3:/sdb3 forcegluster volume start test-volume
gluster volume info test-volume

2.6.5 分布式分散卷

跨分散的子卷分发文件。这与分发复制卷具有相同的优点,但是使用分散将数据存储到块中

gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6gluster volume start test-volume
gluster volume info test-volume

三、Client客户端部署与测试

systemctl stop firewalld
systemctl disable firewalld
setenforce 0yum install -y glusterfs glusterfs-fusemkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /testecho "192.168.0.10 node1" >> /etc/hosts
echo "192.168.0.20 node2" >> /etc/hosts
echo "192.168.0.30 node3" >> /etc/hosts
echo "192.168.0.40 node4" >> /etc/hostsmount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:test-volume /test/dis_per
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-rep /test/dis_repdf -hT

cd /opt
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40
#生成一个特定大小的文件给与/opt/demo*.log下,大小为1M,共处理40次ls -lh /optcp demo* /test/dis
cp demo* /test/stripe/
cp demo* /test/rep/
cp demo* /test/dis_rep/

3.1 查看文件分布

3.1.1 查看分布式文件分布

node1

ls -lh /data/sdb1


node2

3.1.2 查看复制卷文件分布

node3/node4

ll -h /data/sdb1

3.2 冗余测试

3.2.1 在客户端查看文件

cd /test/
ll -h dis

GFS(GlusterFS) 分布式存储平台相关推荐

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

    如何构建GFS分布式存储平台?理论+实操! 一.GlusterFS简介 1.GlusterFS的概念 2.GlusterFS特点 3.GlusterFS术语 4.GlusterFS的工作流程 5.GF ...

  2. Glusterfs 分布式存储安装部署

    Glusterfs 分布式存储部署 是存储当中可以选择的一种 现在很多虚拟化 云计算都在用软件存储 例如 ceph Glusterfs 等等 今天我们部署一下Glusterfs环境 GlusterFs ...

  3. 区块链 | 流行的分布式存储平台Swarm和IPFS分析

    谈到区块链和分布式计算,最重要的是共识算法(整个网络如何达成一致的决策)和智能合约(实现我们在中心化世界中日常使用的应用).但是,谈及日常应用程序,这些属性还不足以支持当今世界的需求.如果我们只依靠上 ...

  4. glusterfs分布式存储架构集群【分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷】创建

    gluster分布式存储架构集群 文章目录 gluster分布式存储架构集群 一.glusterfs认识 [1]GlusterFS概述 [2]GlusterFS特点 [3]GlusterFS术语 [4 ...

  5. GlusterFS分布式存储

    目录 glusterfs简介 glusterfs部署 glustefs分布式存储优化 glusterfs在企业中应用场景 参考文章地址 一.glusterfs简介 Glusterfs是一个开源的分布式 ...

  6. Suse12.1 - rpm部署GlusterFS分布式存储

    1.zypper 安装各种库 zypper in bison openssl* libacl* sqlite libxml2* zypper in libxml++* fuse fuse-devel ...

  7. Android逆向 微信小游戏破解(一):我要当皇上满级修改

    1.我要当皇上的wx小游戏修改 首先游戏长这个样子, 我的长这个样子 1.首先需要用的到的工具,抓包工具,postman 抓包工具有很多,自己百度一下吧.我用的是charles,这个是mac版本的.W ...

  8. “头脑优先” 学习者 / “HEAD FIRST” LEARNER

    WE THINK OF A "HEAD FIRST" READER AS A LEARNER. 我们认为"头脑优先"的读者是学习者. So what does ...

  9. 【ceph】什么是Ceph?------(MinIO和ceph的区别|GFS(GlusterFS)、MFS、Ceph、Lustre|文档)...

    目录 什么是Ceph? 简介 什么是块存储.文件存储和对象存储以及区别? Ceph存储架构 Ceph数据的存储 Ceph开发如何入门 部署实例 MinIO和ceph ceph和GFS(GlusterF ...

最新文章

  1. 如何将zipoutputstream返回_性能问题|如何正确使用“缓存”?
  2. OpenCASCADE:建模算法之隐藏线去除
  3. 用ANSYS画矩形_钢轨打磨用复合砂轮磨削温度场的研究
  4. 如何保证 Redis 消息队列中的数据不丢失?
  5. msvcrt python linux,Python msvcrt.CrtSetReportMode方法代码示例
  6. eds800变频器故障代码_干货|三菱变频器故障剖析,及严重故障和轻微故障判断技巧!...
  7. 面试问题记录 2019.3.22(中国铁道科学研究院)
  8. (转)运维角度浅谈MySQL数据库优化
  9. python学习笔记:操作Excle
  10. SQL基础教程(第2版)读书笔记
  11. 遗传算法的基本原理与方法(转)
  12. 985高校硕导跳槽高中当老师,博士扎堆中小学,是内卷还是进步?
  13. 树莓派安装smbus_树莓派学习之I2C通信
  14. 基于GA遗传算法的TSP旅行商问题求解
  15. 计算机主机发出滴滴声音怎么办,电脑蓝屏后主机滴滴的响应该怎么处理教程
  16. SSO单点登录方案大全
  17. 春天的致富梦ZZNU
  18. 算法的时间复杂度表示
  19. 「 墙裂推荐」互联网人必备GIF制作的14种选择
  20. Guava学习之Joiner

热门文章

  1. java adt教程_ADT工具使用详解
  2. cad文件怎么转换成pdf格式?一键操作的4个方法
  3. [PTA]实验2-1-5 将x的平方赋值给y
  4. linux 的sleep()、usleep()、nanosleep()函数
  5. linux挂载硬盘无权限(permission denied)
  6. jdbctype(jdbctype=numeric)
  7. 数据库的创建 [MySQL][数据库]
  8. [Go] 解决main.go:5:2: missing go.sum entry for module providing package github.com/astaxie/beego
  9. linux进阶-你不知道的sshd服务器的功能和配置
  10. myeclipse10配置jdk