1.1 分布式文件系统

1.1.1 什么是分布式文件系统

  相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file systemDFS),或是网络文件系统(英语:Network File System),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

  在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,来限制对于文件系统的访问。

1.1.2 glusterfs是什么

  Gluster是一个分布式文件系统。它是各种不同的存储服务器之上的组合,这些服务器由以太网或无限带宽技术Infiniband以及远程直接内存访问RDMA互相融汇,最终所形成的一个大的并行文件系统网络。

  它有包括云计算在内的多重应用,诸如:生物医药科学,文档存储。Gluster是由GNU托管的自由软件,证书是AGPL。Gluster公司是Gluster的首要商业赞助商,且提供商业产品以及基于Gluster的解决方案。

1.2 快速部署GlusterFS

1.2.1 环境说明

注意:最少需要拥有两块硬盘

系统环境说明

glusterfs01信息

[root@glusterfs01 ~]# hostname
glusterfs01
[root@glusterfs01 ~]# uname -r
3.10.0-693.el7.x86_64
[root@glusterfs01 ~]# sestatus
SELinux status:                 disabled
[root@glusterfs01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@glusterfs01 ~]# hostname -I
10.0.0.120 172.16.1.120

glusterfs02信息

[root@glusterfs02 ~]# uname -r
3.10.0-693.el7.x86_64
[root@glusterfs02 ~]# sestatus
SELinux status:                 disabled
[root@glusterfs02 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@glusterfs02 ~]# hostname -I
10.0.0.121 172.16.1.121

注意配置好hosts解析

1.2.2 前期准备

gluster01主机挂载磁盘

[root@glusterfs01 ~]# mkfs.xfs /dev/sdb
[root@glusterfs01 ~]# mkdir -p /data/brick1
[root@glusterfs01 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab
[root@glusterfs01 ~]# mount -a && mount

gluster02主机挂载磁盘

[root@glusterfs02 ~]# mkfs.xfs /dev/sdb
[root@glusterfs02 ~]# mkdir -p /data/brick1
[root@glusterfs02 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab
[root@glusterfs02 ~]# mount -a && mount

1.3 部署GlusterFS

1.3.1 安装软件

在两个节点上操作

yum install centos-release-gluster -y
# 修改镜像源加速
sed -i 's#http://mirror.centos.org#https://mirrors.shuosc.org#g' /etc/yum.repos.d/CentOS-Gluster-3.12.repo
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

软件版本

[root@glusterfs01 ~]#  rpm  -qa glusterfs
glusterfs-3.12.5-2.el7.x86_64

1.3.2 启动GlusterFS

在两个节点上都进行操作

[root@glusterfs01 ~]# systemctl start glusterd.service
[root@glusterfs01 ~]# systemctl status glusterd.service
● glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2018-02-07 21:02:44 CST; 2s ago
  Process: 1923 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 1924 (glusterd)
   CGroup: /system.slice/glusterd.service
           └─1924 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

2月 07 21:02:44 glusterfs01 systemd[1]: Starting GlusterFS, a clustered file-system server...
2月 07 21:02:44 glusterfs01 systemd[1]: Started GlusterFS, a clustered file-system server.
Hint: Some lines were ellipsized, use -l to show in full.

1.3.3 配置互信(可信池)

在glusterfs01上操作

[root@glusterfs01 ~]# gluster peer probe glusterfs02
peer probe: success.

在glusterfs02上操作

[root@glusterfs02 ~]# gluster peer probe glusterfs01
peer probe: success.

注意:一旦建立了这个池,只有受信任的成员可能会将新的服务器探测到池中。新服务器无法探测池,必须从池中探测。

1.3.4 检查对等状态

[root@glusterfs01 ~]#  gluster peer status
Number of Peers: 1

Hostname: 10.0.0.121
Uuid: 61d043b0-5582-4354-b475-2626c88bc576
State: Peer in Cluster (Connected)
Other names:
glusterfs02

注意:看到的UUID应不相同。

[root@glusterfs02 ~]#  gluster peer status
Number of Peers: 1

Hostname: glusterfs01
Uuid: e2a9367c-fe96-446d-a631-194970c18750
State: Peer in Cluster (Connected)

1.3.5 建立一个GlusterFS卷

在两个节点上操作

mkdir -p /data/brick1/gv0

在任意一个节点上执行

[root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:/data/brick1/gv0 glusterfs02:/data/brick1/gv0
Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.
Do you still want to continue?
 (y/n) y
volume create: gv0: success: please start the volume to access data

启用存储卷

[root@glusterfs01 ~]# gluster volume start gv0
volume start: gv0: success

查看信息

[root@glusterfs01 ~]# gluster volume info 

Volume Name: gv0
Type: Replicate
Volume ID: 865899b9-1e5a-416a-8374-63f7df93e4f5
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusterfs01:/data/brick1/gv0
Brick2: glusterfs02:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

至此,服务端配置结束

1.4 客户端测试

1.4.1 安装客户端工具

挂载测试

[root@clsn6 ~]# yum install centos-release-gluster -y
[root@clsn6 ~]# yum install -y glusterfs glusterfs-fuse

注意:要配置好hosts文件,否则连接会出错

[root@clsn6 ~]# mount.glusterfs  glusterfs01:/gv0 /mnt
[root@clsn6 ~]# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3          19G  2.2G   16G  13% /
tmpfs             238M     0  238M   0% /dev/shm
/dev/sda1         190M   40M  141M  22% /boot
glusterfs01:/gv0  100G   33M  100G   1% /mnt

1.4.2 复制文件测试

[root@clsn6 ~]# for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done

客户端检查文件

[root@clsn6 ~]#  ls -lA /mnt/copy* | wc -l
10

服务节点检查文件

[root@glusterfs01 ~]#   ls -lA /data/brick1/gv0/copy* |wc -l
100

服务节点检查文件

[root@glusterfs02 ~]#   ls -lA /data/brick1/gv0/copy* |wc -l
100

至此Glusterfs简单配置完成

分布式文件系统---GlusterF的更多相关文章

  1. 【架构设计】分布式文件系统 FastDFS的原理和安装使用

    本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下:   -- mo ...

  2. 网站文件系统发展&&分布式文件系统fastDFS

    网站文件系统发展 1.单机时代的图片服务器架构 初创时期由于时间紧迫,开发人员水平也很有限等原因.所以通常就直接在website文件所在的目录下,建立1个upload子目录,用于保存用户上传的图片文件 ...

  3. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  4. 分布式文件系统 - FastDFS 简单了解一下

    别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用 ...

  5. 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试

    也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...

  6. 【从零开始学习Hadoop】--2.HDFS分布式文件系统

    1. 文件系统从头说2. Hadoop的文件系统3. 如何将文件复制到HDFS3.1 目录和文件结构3.2 FileCopy.java文件的源代码3.3 编译3.4打包3.5 运行3.6 检查结果 1 ...

  7. Hadoop学习笔记【分布式文件系统学习笔记】

    分布式文件系统介绍 分布式文件系统:Hadoop Distributed File System,简称HDFS. 一.HDFS简介 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(c ...

  8. HDFS分布式文件系统资源管理器开发总结

      HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...

  9. Hadoop 分布式文件系统:架构和设计

    引言 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统 ...

随机推荐

  1. P2939 改造路

    P2939 [USACO09FEB]改造路Revamping Trails 裸地分层图最短路 培训的时候考到过 但是-- 我考试的时候写了个基本没有的树状数组优化.然后顺利的被卡到了70分(裸的spf ...

  2. SQL limit

    employee 表 id name gender hire_date salary performance manage deparmant 1001 张三 男 2/12/1991 00:00:00 ...

  3. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springbot22-modules/ 本文出自方志朋的博客 这篇文 ...

  4. python之ProcessPoolExecutor

    ProcessPoolExecutor使用上基本与ThreadPoolExecutor一致不过在windows上使用,有个问题需要注意.使用不当会出现如下错误 File "...\lib\m ...

  5. Python语法糖

    1.装饰器 ####装饰器的固定格式 ##普通版本 def timer(func): def inner(*args,**kwargs): '''执行函数之前要做的''' ret = func(*ar ...

  6. noip模拟赛 动态仙人掌(并查集,贪心)

    思路: 贪心+并查集 因为45‘,所以可以很方便的算出每个仙人掌的最晚起跳(左端点) 右端点自然也能出来 先按左端点排序 如果他右面的和他相交,就更新 用并查集维护这个更新的关系 更新的同时维护高就好 ...

  7. BZOJ2844: albus就是要第一个出场(线性基)

    Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 2054  Solved: 850[Submit][Status][Discuss] Descriptio ...

  8. 一个关于 json ,加密,测试,集多功能为一体的在线工具

    很多情况下我们会序列化json或者解析json,那么要解析json也许使用json实体类会好很多,或者你有时候需要压缩转义json的时候, 有一个网站真的是非常好用,里面什么都有......是真的啥都 ...

  9. jsonp跨域请求360数据乱码解决办法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  10. MySQL中Date,DateTime,TimeStamp和Time的比较

    名称 显示格式 显示范围 应用场景 后台取值 Date YYYY-MM-DD 1601-01-01 到 9999-01-01 当业务需求中只需要精确到天时, 可以用这个时间格式 @JSONField( ...