glusterfs 学习

本贴最后更新于 1966 天前,其中的信息可能已经沧海桑田
  1. 官网 https://www.gluster.org/
  2. 下载 https://www.gluster.org/download/
  3. 相关英文文档 http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/

了解:
1.至少有两个节点(机器),并且两个机器构成局域网可以互联.
2.建议两块磁盘:一块用来装操作系统相关的东西,另一块用来做 glusterFS 存储
3.由于 glusterFS 会动态的往/var/lib/glusterd 中写入配置,所以建议为/var/lib/glusterd 设置单独的分区

官网(此处省去,回头再研究,估计是 xfs 性能会好)
Step 2 - Format and mount the bricks
(on both nodes): Note: These examples are going to assume the brick is going to reside on /dev/sdb1.

mkfs.xfs -i size=512 /dev/sdb1 
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab 
mount -a && mount

You should now see sdb1 mounted at /data/brick1

#开始安装

  1. 在两台机器上分别执行
yum install glusterfs-server (centos)      
apt-get install glusterfs-server(ubuntu)

然后启动

service glusterd start (systemctl start glusterd)
service glusterd status (systemctl status glusterd)
  1. 确认两台机器的 host 文件配置(保证通过主机名可以互通)
    172.18.0.3 glusterServer1 (server2 的/etc/hosts)
    172.18.0.4 glusterServer2 (server1 的/etc/hosts)
  2. 配置 trusted pool
    a.在 glusterServer1 上执行
gluster peer probe glusterServer2

b.在 glusterServer2 上执行

gluster peer probe glusterServer1

c.可以分别在两台机器上执行 gluster peer status 查看状态

  1. 创建 glusterFS 数据卷

1). 在两台机器上分别执行
mkdir /data/brick1/gfs
2). 在其中任意一台上执行

gluster volume create gfs replica 2 glusterServer1:/data/brick1/gfs glusterServer2:/data/brick1/gfs  [force]

如果提示 volume create: gfs: failed: The brick glusterServer1:/home/gfs is is being created in the root partition. It is recommended that you don't use the system's root partition for storage backend. Or use 'force' at the end of the command if you want to override this behavior.
是因为我们创建的 brick 在系统盘,这个在 gluster 的默认情况下是不允许的,生产环境下也尽可能的与系统盘分开,如果必须这样请使用 force 。
可以通过 gluster volume create help 查看帮助
Usage: volume create [stripe ] [replica ] [disperse []] [redundancy ] [transport <tcp|rdma|tcp,rdma>] ?<vg_name>... [force]
:volume 的名称
stripe :条待卷
replica :复制卷
disperse:哈希卷 默认
redundancy:冗余卷
transport <tcp|rdma|tcp,rdma>:传输协议,默认是 TCP
3). 其中一台启动数据卷 gluster volume start
4). 用命令 gluster volume info 查看状态
Volume Name: gfs
Type: Replicate (代表每台机器会留有一份完整的数据拷贝)
Volume ID: ed3a04e2-e2a7-46b6-9141-186551bb02e0
Status: Created
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusterServer1:/data/brick1/gfs
Brick2: glusterServer2:/data/brick1/gfs
5). 如果启动失败则一般情况查看日志文件(两台都看一下,不一定是哪台上有日志),
目录一般情况是/var/log/glusterfs/etc-glusterfs-glusterd.vol.log
6). 启动数据卷
gluster volume start gfs
在用 gluster volume info 查看状态由 created 变为 started

测试:

客户端
wget -P /etc/yum.repos.d  http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
 yum install  glusterfs 
yum install glusterfs-fuse

客户端挂在
mkdir -p /mnt/glfs
mount -t glusterfs -o rw glusterServer1:gfs /mnt/glfs/

挂在失败
查看日志/var/log/glusterfs/mnt-glfs.log
[2016-08-22 18:15:34.542812] I [MSGID: 100030] [glusterfsd.c:2301:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.7.1 (args: /usr/sbin/glusterfs --volfile-server=glusterServer1 --volfile-id=gfs /mnt/glfs)
[2016-08-22 18:15:34.543427] E [mount.c:341:gf_fuse_mount] 0-glusterfs-fuse: cannot open /dev/fuse (Operation not permitted)
[2016-08-22 18:15:34.543456] E [MSGID: 101019] [xlator.c:428:xlator_init] 0-fuse: Initialization of volume 'fuse' failed, review your volfile again

重新安装 yum install fuse 再挂
注意:
以后数据在 client 去 创建修改,在 server 端只能查看,如果在 server 端去修改,会出现问题.

挂在的时候可能会提示
WARNING: getfattr not found, certain checks will be skipped..
上网查说需要安装 attr
但是我发现 attr 已经安装了。(有知道的朋友可以告知一下为啥).

.
问题:在我尝试的过程中发现在 docker 容器中,如果启动容器的时候没有加参数--privileged=true 则挂在失败,重新加此参数运行容器再挂在就可以了(前提是已经安装了 glusterfs,glusterfs-fuse)
客户端重启自动挂在可以修改/etc/fstab 文件
vi /etc/fstab
在这个文件的底部添加下面这行代码,这里使用 /mnt/glfs 作为挂载点,你可以把它替换成自己想要的地方。

glusterServer1:gfs   /mnt/glfs   glusterfs defaults,_netdev 0 0

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 53 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 437 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7932 引用 • 36284 回帖 • 169 关注
  • abitmean

    有点意思就行了

    30 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 541 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖 • 3 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 383 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 911 回帖 • 237 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 606 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 3 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 337 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    190 引用 • 1057 回帖 • 1 关注
  • danl
    128 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    148 引用 • 257 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 461 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 533 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 53 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 465 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖 • 2 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖