glusterfs分布式文件存储搭建和使用[通俗易懂]

glusterfs分布式文件存储搭建和使用[通俗易懂]Glusterfs简介GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。说起glusterfs可能比较陌生,可能大家更多的听说和使用的是NFS,GFS,HDFS之类的,这之中的NFS应该是使用最为广泛的,简单易于管理,但是NFS以及后边会说到..

大家好,又见面了,我是你们的朋友全栈君。

Glusterfs简介

   GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。

说起glusterfs可能比较陌生,可能大家更多的听说和使用的是NFS,GFS,HDFS之类的,这之中的NFS应该是使用最为广泛的,简单易于管理,但是NFS以及后边会说到MooseFS都会存在单点故障,为了解决这个问题一般情况下都会结合DRBD进行块儿复制。但是glusterfs就完全不用考虑这个问题了,因为它是一个完全的无中心的系统。

主备server以及client单独访问配置

glusterfs是一个分布式文件系统,支持 PB 级的数据量。GlusterFS 通过 RDMA 和 TCP/IP 方式将分布到不同服务器上的存储空间汇集成一个大的网络并行文件系统。docker可以将本地文件存储到GlusterFS中,保证文件备份。不会因为机器挂掉而丢失

# GlusterFs

GlusterFs 是一个完全分布式文件系统,提供多机之间互通的分布式文件系统,真正的文件被多份的存在多台服务器硬盘上。

官方文档:Architecture – Gluster Docs

常用命令


## 常用命令
gluster peer probe      添加节点
gluster peer detach     移除节点
gluster volume create   创建卷

gluster volume start $VOLUME_NAME 启动卷
gluster volume stop $VOLUME_NAME  停止卷
gluster volume delete $VOlUME_NAME 删除卷

gluster volume quota enable  开启卷配额
gluster volume quota disable  关闭卷配额
gluster volume quota limitusage  设定卷配额

gluster volume list         列出集群中的所有卷
gluster volume info [all]   查看集群中的卷信息
gluster volume status [all] 查看集群中的卷状态

gluster volume profile [name] start 开启性能采集
gluster volume profile [name] info 查看性能信息
gluster volume profile [name] stop 关闭性能采集

数据平衡
开始平衡:gluster volume rebalance [name] start
平衡状态:gluster volume rebalance [name] status
停止平衡:gluster volume rebalance [name] stop

文件修复
启动文件修复:gluster volume heal [name] full
文件修复状态:gluster volume heal [name] info

本文介绍

  本文将主要介绍通过glusterfs、nginx、管理微服务进行文件存取的案例。

设计思路

glusterfs分布式文件存储搭建和使用[通俗易懂]

 本案例充分考虑用户量的情况下,为了减少网络传输,gluster服务端将直接部署到nginx的目录下,nginx将可以直接读取到对应的图片文件,而管理员后端上传图片的时候则上传到管理服务端,管理服务端挂载到gluster client下,gluster与gluster server将进行传输同步通信。此案例主要用在写少读多的情况下。

实现过程

首先需要防火墙添加白名单端口(没有开启防火墙的服务器可以忽略)

24007

通过Glusterfs方式挂载硬盘

49152 – 49155

每一个brick都需要一个独立的端口,可根据实际brick数量进行删减,如只有两个brick则只需开放49152-49153

其次本案例部署采用的docker,接下来将介绍docker的部署过程

编写docker-compose.yml文件

glusterfs的开发者制作了docker镜像 我们可以直接使用,到/home/下新建一个glusterfs目录
cd /docker
mkdir glusterfs
cd glusterfs
编写docker-compose.yml
vim docker-compose.yml

version: '2'
services:
    gfs:
        image: gluster/gluster-centos
        network_mode: host
        privileged: true
        volumes:
            - /app/glusterfs/data:/var/lib/glusterd:rw
            - /app/glusterfs/volume:/data:rw
            - /app/glusterfs/logs:/var/log/glusterfs:rw
            - /app/glusterfs/conf:/etc/glusterfs:rw
            - /data/glusterfs:/data/glusterfs
            - /dev:/dev:rw
            - /etc/hosts:/etc/hosts:rw

多机器部署server

假设有2台机器 192.168.1.1 192.168.1.2 部署的。
1. 每台机器编写一样的host
vim /etc/hosts
# hosts内容追加
192.168.1.1 gfs1
192.168.1.2 gfs2

2. 每台机器 创建docker-compose 并执行命令
cd /app/glusterfs
# 启动
docker-compose up -d
# 创建文件存储目录
docker-compose exec gfs bash
# 创建挂载目录
mkdir /data/glusterfs/sync

3. 到1上执行
cd /app/glusterfs
# 进入容器
docker-compose exec gfs bash
### 容器内执行
##关联1的glusterfs
## 这个执行完后 2台glusterfs处于集群状态
gluster peer probe gfs2
#查看状态
gluster peer status
## 创建volume 命名为gfs 备份1份
gluster volume create sync replica 2 192.168.1.1:/data/glusterfs/sync 192.168.1.2:/data/glusterfs/sync


## 启动gfs
gluster volume start sync
## 退出容器
exit

两台部署client,上传文件到server,检查两个server是否都会有文件

yum install -y glusterfs glusterfs-fuse
挂载目录到server上,sync.gfs不存储数据
mount -t glusterfs 192.168.1.1:/sync /data/glusterfs/sync.gfs

server挂载目录限定指定ip上传和访问文件
gluster volume set datastore auth.allow 192.168.1.*
重启自动挂载
vi /etc/fstab
192.168.1.1:/sync /data/glusterfs/sync.gfs  glusterfs  defaults,_netdev 0 0
或者采用方式2
vi /etc/rc.d/rc.local
加入
mount -t glusterfs 192.168.1.1:/sync /data/glusterfs/sync.gfs

 两台部署server的机器上面部署nginx

glusterfs分布式文件存储搭建和使用[通俗易懂]

启动nginx
 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

查看nginx进程是否启动:
ps -ef | grep nginx
curl http://localhost:9010会出现如下页面
其中停止nginx的命令是/usr/local/nginx/sbin/nginx -s stop

 最后是管理微服务的docker-compose加上文件映射

glusterfs分布式文件存储搭建和使用[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138854.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号