| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> GlusterFS -> 正文阅读 |
|
[系统运维]GlusterFS |
目录 1、简介?开源的分布式文件系统 ?由存储服务器、客户端以及NFS/Samba存储网关组成 ?无元数据服务器 2、GlusterFS特点?扩展性和高性能(分布式特性) ?高可用性(冗余、容灾能力) ?全局统一命名空间 ?弹性卷管理 ?基于标准协议 3、文件系统文件系统文件系统组成: 1、文件系统接口 2、对对像管理的软件集合 3、对象及熟悉 ?文件系统作用: 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。 ?文件系统的挂教使用: 除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某个目录文件。类比:NFS 4、GlusterFS专业术语?Brick(块存储服务器):实际存储用户数据的服务器 ?Volume:本地文件系统的"分区" ?FUSE:用户空间的文件系统(类别EXT4),”这是一个伪文件系统“,用户端的交换模块 ?VFS(虚拟端口):内核态的虚拟文件系统,用户是提交请求给VFS 然后VFS交给FUSH,再交给GFS客户端,最后由客户端交给远端的存储 ?Glusterd(服务):是运行再存储节点的进程(客户端运行的是gluster client)GFS使用过程中整个GFS之间的交换由Gluster client 和glusterd完成 注:GFS会使用到以上的虚拟文件系统 5、GlusterFS工作原理1、客户端通过挂载点目录,将数据转交给VFS接口 2、在通过VFS接口将数据转交给FUSE伪文件系统进行格式转换? 3、由于FUSE是没有转存工具直接发送到GlusterFS服务的的,所以需要转送到内存中,再由内存发送给GlusterFS服务端 4、这时就是GlusterFS服务端和和客户端吧、进程与进程质检进行对接数据传输 5、服务的在通过自己的VFS发送到自己的文件系统进行本地保存 注:x轴上方为用户态环境,可视化,下方则为系统换下内核环境 6、GlusterFS的卷类型(1)分布式卷 ?没有对文件进行分块处理 ?通过扩展文件属性保存HASH值 ?支持的底层文件系统有EXT3.EXT4.ZFS.XFS等 (2)条带卷 ?根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点 ?存储大文件时,性能尤为突出 ?不具备冗余性,类似Raid0 (3) 复制卷 ?同一文件保存一份或多分副本 ?因为要保存副本,所以磁盘利用率较低 ?若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量 (4)分布式条带卷 ?兼顾分布式卷和条带卷的功能 ?主要用于大文件访问处理 ?至少最少需要4天服务器 (5)分布式复制卷 ?兼顾分布式卷和复制卷的功能 ?用于需要冗余的情况 二、GlusterFS实验1、准备5台机器Node1:192.168.182.160 Node2:192.168.182.137 Node3:192.168.182.138 Node4:192.168.182.139 客户端:192.168.182.175 将每台机器 添加 大小为5G的磁盘
#关闭防火墙 systemctl stop firewalld setenforce 0 ?2、磁盘分区,并挂载 利用
cd /opt chmod +x fdisk.sh ./fdisk.sh
将脚本执行 #配置各个节点的/etc/hosts文件(所有节点操作) echo "192.168.182.160?node1" >> /etc/hosts echo "192.168.182.137 node2" >> /etc/hosts echo "192.168.182.138?node3" >> /etc/hosts echo "192.168.182.139?node4" >> /etc/hosts
cd /etc/yum.repos.d/ mv * repos.bak/ vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepo gpgcheck=0 enabled=1 安装、启动GFS(所有节点操作) unzip gfsrepo.zip
?yum clean all && yum makecache ?yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
如果出现以下情况 可以先删除之前的依赖包 ?然后在下载 rpm -e --nodeps glusterfs-api glusterfs-libs glusterfs-fuse glusterfs-cli ?glusterfs glusterfs-client-xlators ##删除报错的依赖包 systemctl start glusterd.service systemctl enable glusterd.service systemctl status glusterd.service
添加DNS,进行时间同步 echo "nameserver 114.114.114.114" >> /etc/resolv.conf ntpdate ntp1.aliyun.com 添加节点到存储信任池中(在任意一个node中操作) gluster peer probe node1 gluster peer probe node2 gluster peer probe node3 gluster peer probe node4 更改一下名字 在进行添加 ? 在每个node节点上查看群集状态 gluster peer status ?3、根据以下规划创建卷
创建分布式卷,没有指定类型,默认创建的是分布式卷?
指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷?
指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
?创建分布式条带卷
?创建分布式复制卷
4、?部署客户端(1)安装客户端软件 cd /etc/yum.repos.d/ mv * repos.bak/
vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepo gpgcheck=0 enabled=1
yum clean all && yum makecache cd /opt unzip gfsrepo.zip
(2)创建挂载目录 yum -y install glusterfs glusterfs-fuse
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep} 5、配置 /etc/hosts 文件echo "192.168.182.160?node1" >> /etc/hosts echo "192.168.182.137 node2" >> /etc/hosts echo "192.168.182.138?node3" >> /etc/hosts echo "192.168.182.139?node4" >> /etc/hosts 6、挂载 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 ?Node1 ?Node2 ?Node3 ?Node4 ?7、破坏性测试node2和node4的服务器进行挂机来模拟故障,然后在客户端上查看其他服务器的文件是否正常 (1)分布式卷数据 可以查看
(2)条带卷 ??不可查看
(3)?复制卷 ?可产查看 (4) 分布式复制卷 ?可查看
?注:当出现以下情况是 1、需要考虑是否是? 各台机子的时间是否做了同步处理 2、需要查看版本是否一致[root@client /]# rpm -qa glusterfs glusterfs-fuse 3、或查看日志报错[root@client /]# cat /var/log/glusterfs/test0 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:10:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |