Glusterfs 分布式存储部署 是存储当中可以选择的一种 现在很多虚拟化 云计算都在用软件存储 例如 ceph

Glusterfs 等等 今天我们部署一下Glusterfs环境

GlusterFs安装

环境信息:

         Glusterfs-01                          10.20.0.200                              
         Glusterfs-02                   10.20.0.201
         Glusterfs-03                   10.20.0.202

硬盘各一块 8G 测试 /dev/sdb

服务器版本信息

  1. # cat /etc/redhat-release
  2. CentOS release 6.6 (Final)

# uname -r
  2.6.32-504.el6.x86_64

软件下载地址

  1. http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.6/CentOS/epel-6.6/x86_64

依赖包安装

直接用Yum安装 每台都需要安装

  1. # yum -y install libibverbs librdmacm xfsprogs nfs-utils rpcbind libaio liblvm2app lvm2-devel

软件安装

安装服务器端软件包

  1. glusterfs-3.4.-.el6.x86_64.rpm
  2. glusterfs-api-3.4.-.el6.x86_64.rpm
  3. glusterfs-cli-3.4.-.el6.x86_64.rpm
  4. glusterfs-fuse-3.4.-.el6.x86_64.rpm
  5. glusterfs-libs-3.4.-.el6.x86_64.rpm
  6. glusterfs-server-3.4.-.el6.x86_64.rpm

安装客户端软件包

  1. glusterfs-3.4.-.el6.x86_64.rpm
  2. glusterfs-fuse-3.4.-.el6.x86_64.rpm
  3. glusterfs-libs-3.4.-.el6.x86_64.rpm

磁盘配置

磁盘分区:

EXT4格式化工具目前最大支持16TB

使用parted进行磁盘分区

分区格式化
每个服务器上面都需要至少添加一块硬盘 我们这边是用的1块8G硬盘 现在每台都格式化

  1. # mkfs.ext4 -L /brick1 /dev/sdb
  2. mke2fs 1.41. (-May-)
  3. /dev/sdb is entire device, not just one partition!
  4. Proceed anyway? (y,n) y
  5. Filesystem label=/brick1
  6. OS type: Linux
  7. Block size= (log=)
  8. Fragment size= (log=)
  9. Stride= blocks, Stripe width= blocks
  10. inodes, blocks
  11. blocks (5.00%) reserved for the super user
  12. First data block=
  13. Maximum filesystem blocks=
  14. block groups
  15. blocks per group, fragments per group
  16. inodes per group
  17. Superblock backups stored on blocks:
  18. , , , , , , ,
  19.  
  20. Writing inode tables: done
  21. Creating journal ( blocks): done
  22. Writing superblocks and filesystem accounting information: done
  23.  
  24. This filesystem will be automatically checked every mounts or
  25. days, whichever comes first. Use tune2fs -c or -i to override.

自动挂载分区

  1. # vim /etc/fstab
  2. LABEL=/brick1 /brick1 ext4 defaults 0 0

mount文件系统

  1. # mkdir /brick1
  2. # mount -L /brick1 /brick1/
  3. # df -kh
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/mapper/VolGroup-lv_root
  6. 47G 759M 44G % /
  7. tmpfs 491M 491M % /dev/shm
  8. /dev/sda1 477M 28M 425M % /boot
  9. /dev/sdb .8G 18M .4G % /brick1

基础测试包安装 性能测试包

工具软件
Atop,iperf,sysstat

dd,lozone,fio,postmark

工具安装

#rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install sysstat

Gcc -o postmark postmark-1.52.c

有些可以用yum安装

安装GlusterFS软件包

每台创建存放软件的目录  我们目前安装的是3.4.6的版本

  1. #mdkir /home/tools/3.4. -p
    #cd /home/tools/3.4.6
  2. # ll
  3. total
  4. -rw-r--r-- root root Oct : glusterfs-3.4.-.el6.x86_64.rpm
  5. -rw-r--r-- root root Oct : glusterfs-api-3.4.-.el6.x86_64.rpm
  6. -rw-r--r-- root root Oct : glusterfs-cli-3.4.-.el6.x86_64.rpm
  7. -rw-r--r-- root root Oct : glusterfs-fuse-3.4.-.el6.x86_64.rpm
  8. -rw-r--r-- root root Oct : glusterfs-geo-replication-3.4.-.el6.x86_64.rpm
  9. -rw-r--r-- root root Oct : glusterfs-libs-3.4.-.el6.x86_64.rpm
  10. -rw-r--r-- root root Oct : glusterfs-rdma-3.4.-.el6.x86_64.rpm
  11. -rw-r--r-- root root Oct : glusterfs-server-3.4.-.el6.x86_64.rpm

直接rpm安装

  1. # rpm -ivh *.rpm
  2. warning: glusterfs-3.4.-.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 4ab22bb3: NOKEY
  3. Preparing... ########################################### [%]
  4. :glusterfs-libs ########################################### [ %]
  5. :glusterfs ########################################### [ %]
  6. :glusterfs-fuse ########################################### [ %]
  7. :glusterfs-cli ########################################### [ %]
  8. :glusterfs-server ########################################### [ %]
  9. :glusterfs-geo-replicati########################################### [ %]
  10. :glusterfs-api ########################################### [ %]
  11. :glusterfs-rdma ########################################### [%]

安装成功启动GlusterFS

  1. # service glusterd start
  2. Starting glusterd: [ OK ]
  3. # chkconfig glusterd on

组建集群扩展

在GlusterFS-01服务器上面操作 选择10.20.0.200 作为当前集群节点

添加另外两台服务器

  1. # gluster peer probe 10.20.0.201
  2. peer probe: success
  3. # gluster peer probe 10.20.0.202
  4. peer probe: success

GlusterFS-01服务器查看添加状态

  1. # gluster peer status
  2. Number of Peers:
  3.  
  4. Hostname: 10.20.0.201
  5. Port:
  6. Uuid: c4d9edfd-d6ae--8ab3-5a9fbb5f18fc
  7. State: Peer in Cluster (Connected)
  8.  
  9. Hostname: 10.20.0.202
  10. Port:
  11. Uuid: c0b425bb-a7b4-4dae-bc19-ea6031bf02b9
  12. State: Peer in Cluster (Connected)

GlusterFS-02服务器查看添加状态

  1. # gluster peer status
  2. Number of Peers:
  3.  
  4. Hostname: 10.20.0.200
  5. Port:
  6. Uuid: 7ad4db05-ee75-44e6--e58072b62d33
  7. State: Peer in Cluster (Connected)
  8.  
  9. Hostname: 10.20.0.202
  10. Uuid: c0b425bb-a7b4-4dae-bc19-ea6031bf02b9
  11. State: Peer in Cluster (Connected)

GlusterFS-03服务器查看添加状态

  1. # gluster peer status
  2. Number of Peers:
  3.  
  4. Hostname: 10.20.0.200
  5. Port:
  6. Uuid: 7ad4db05-ee75-44e6--e58072b62d33
  7. State: Peer in Cluster (Connected)
  8.  
  9. Hostname: 10.20.0.201
  10. Uuid: c4d9edfd-d6ae--8ab3-5a9fbb5f18fc
  11. State: Peer in Cluster (Connected)

表示成功

如果添加不成功 排除错误:

1,每台服务器是否能否Ping通

2,防火墙是否关闭iptables selinux

3,glusterd服务是否启动成功

创建卷

  • 确定创建卷的类型
  • 确定创建卷的brick列表
  • 确实创建卷的网络类型(TCP/RDMA)

Gluster volume create创建卷

在GlusterFS-01服务器上面操作 可以任选一台

  1. # gluster volume create dht-vol1 10.20.0.200:/brick1/b1 10.20.0.201:/brick1/b2 10.20.0.202:/brick1/b
  2.  
  3. volume create: dht-vol1: success: please start the volume to access data

(1)distribute volume:分布式卷,文件通过hash算法分布到brick server上,这种卷是glusterfs的基础和最大特点;

(2)stripe volume:条带卷,类似RAID0,条带数=brick server数量,文件分成数据块以Round Robin方式分布到brick server上,并发粒度是数据块,大文件性能高;

(3)replica volume:镜像卷,类似RAID1,镜像数=brick server数量,所以brick server上文件数据相同,构成n-way镜像,可用性高;

(4)distribute stripe volume:分布式条带卷,brick server数量是条带数的倍数,兼具distribute和stripe卷的特点;

(5)distribute replica volume:分布式镜像卷,brick server数量是镜像数的倍数,兼具distribute和replica卷的特点

查看卷状态信息

  1. # gluster volume info
  2.  
  3. Volume Name: dht-vol1
  4. Type: Distribute
  5. Volume ID: 7d947cf1-c743-477e-a28d-7d030572b655
  6. Status: Created
  7. Number of Bricks:
  8. Transport-type: tcp
  9. Bricks:
  10. Brick1: 10.20.0.200:/brick1/b1
  11. Brick2: 10.20.0.201:/brick1/b2
  12. Brick3: 10.20.0.202:/brick1/b3

启动卷

  1. # gluster volume start dht-vol1
  2. volume start: dht-vol1: success

客户端挂载卷

  1. # mkdir /data
  2.  
  3. # mount -t glusterfs 10.20.0.200:/dth-vol1 /data/
  4.  
  5. # df -kh
  6. Filesystem Size Used Avail Use% Mounted on
  7. /dev/mapper/VolGroup-lv_root
  8. 47G .1G 44G % /
  9. tmpfs 491M 491M % /dev/shm
  10. /dev/sda1 477M 28M 425M % /boot
  11. /dev/sdb .8G 19M .4G % /brick1
  12. 10.20.0.200:/dth-vol1
  13. 24G 55M 22G % /data

注:这个默认卷类型 是3块盘 加起来的容量

测试 创建replic 复制卷

  1. #gluster volume create rep1 replica 10.20.0.200:/brick1/b20 10.20.0.201:/brick1/b20 10.20.0.202:/brick1/b20

客户端挂载

  1. # mkdir /data1
  2. # mount -t glusterfs 10.20.0.200:/rep1 /data1
  3. # df -kh
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/mapper/VolGroup-lv_root
  6. 47G .1G 44G % /
  7. tmpfs 491M 491M % /dev/shm
  8. /dev/sda1 477M 28M 425M % /boot
  9. /dev/sdb .8G 19M .4G % /brick1
  10. 10.20.0.200:/dth-vol1
  11. 24G 55M 22G % /data
  12. 10.20.0.200:/rep1 .8G 19M .4G % /data1

注:replic类型 是复制模式 相当于raid1  一块盘的容量

常规命令

添加磁盘

  1. gluster volume add-brick dht-vol1 10.20.0.200:/brick1/b1
  2.  
  3. rebalance 同步数据
  4. gluster volume rebalance dht-vol1 start

删除磁盘

  1. gluster volume remove-brick dht-vol1 10.20.0.200:/brick1/b1
  2. gluster volume rebalance dht-vol1 start

删除卷

先停止 在删除

  1. # gluster volume stop dht-vol1
  2. Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
  3. volume stop: dht-vol1: success
  4.  
  5. # gluster volume delete dht-vol1
  6. Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
  7. volume delete: dht-vol1: success
  8.  
  9. # gluster volume info
  10. No volumes present

集群扩展
增加节点
gluster peer probe IP/主机名

删除节点
gluster peer detach IP/主机名

节点状态
gluster peer status

GlusterFS典型故障处理:

1,恢复节点配置信息

故障现象:其中一个节点配置信息不正确

故障模拟:

删除server2部分配置信息

配置信息位置:/var/lib/glusterd/

修复方法

触发自修复:通过Gluster工具同步配置信息

gluster volume sync server1 all

2,复制卷数据不一致

故障现象:双副本卷数据出现不一致

故障模拟:删除其中一个brick数据

修复方法

新mount一下

3 复制卷的目录删除了

如何解决

修复方法:

先替换brick

#gluster volume replace-brick bbs_img 10.20.0.201:/brick1/share2 10.20.0.201:/brick1/share start

#gluster volume replace-brick bbs_img 10.20.0.201:/brick1/share2 10.20.0.201:/brick1/share commit

还原的时候注意会报错

解决办法

rm -rf /data/share2/.glusterfs
setfattr -x  trusted.glusterfs.volume-id /data/share2
setfattr -x trusted.gfid /data/share2

Glusterfs 分布式存储安装部署的更多相关文章

  1. Centos7下GlusterFS分布式存储集群环境部署记录

    0)环境准备 GlusterFS至少需要两台服务器搭建,服务器配置最好相同,每个服务器两块磁盘,一块是用于安装系统,一块是用于GlusterFS. 192.168.10.239 GlusterFS-m ...

  2. GlusterFS分布式存储集群部署记录-相关补充

    接着上一篇Centos7下GlusterFS分布式存储集群环境部署记录文档,继续做一些补充记录,希望能加深对GlusterFS存储操作的理解和熟悉度. ======================== ...

  3. glusterFS分布式存储部署流程

    转自:http://bangbangba.blog.51cto.com/3180873/1712061 GlusterFS是一款非常易于使用的分布式文件存储系统,实现了全部标准POSIX接口,并用fu ...

  4. GlusterFS分布式存储学习笔记

    分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上.目前意义上的分布 ...

  5. GlusterFS分布式文件系统部署

    GlusterFS是一个可伸缩的网络文件系统,使用常见的现成的硬件,您可以创建大型分布式存储流媒体解决方案.数据分析.和其他数据相关的任务.GlusterFS是自由和开源软件. 详细参考官网:http ...

  6. 在Ubuntu 12.10 上安装部署Openstack

    OpenStack系统有几个关键的项目,它们能够独立地安装但是能够在你的云计算中共同工作.这些项目包括:OpenStack Compute,OpenStack Object Storage,OpenS ...

  7. glusterfs快速安装

    因为公司ES02集群使用的是SSD磁盘做的raid0,为了保证存放文件的可靠性,即在ES02集群上部署了一套分布式文件系统glusterfs.   结构 ES11    含有gfs程序,并挂载gfs在 ...

  8. Prometheus 和 Grafana 安装部署

    Prometheus 是一套开源的系统监控报警框架.Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 ...

  9. GlusterFS分布式文件系统部署及基本使用(CentOS 7.6)

    GlusterFS分布式文件系统部署及基本使用(CentOS 7.6) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Gluster File System 是一款自由软件,主要由 ...

随机推荐

  1. hdu 1298 T9

    字典树+DFS. #include<cstdio> #include<cstring> #include<cmath> #include<string> ...

  2. JEMETER 录制

    两种方式: 第一种:badboy工具录制,导入jemeter脚本,导入jemeter.目测支持IE 第二种:代理服务器的方式 1.

  3. LINUX nfs服务

    1.什么是NFS(Network FileSystem)  NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 所发展出来的.他最大的功能就是可以透过网络,让不同的机器. ...

  4. POJ 2485 Highway(Prim+邻接矩阵)

    ( ̄▽ ̄)" //求最短总路径中的最大边长,Prim还需要一个Max变量 #include<iostream> #include<cstdio> #include&l ...

  5. 8.多线程和Socket通信

    一.多线程 1.进程的概念: 进程就是应用程序的执行实例,有独立的内存空间和系统资源.当一个应用程序没有执行的时候,它就不是一个进程.   2.进行的特征: (1)动态性:动态产生动态消亡. (2)并 ...

  6. 4、Web应用程序中的安全向量 -- over-posting(重复提交)

    模型绑定是ASP.NET MVC提供的强大功能,可遵照命名约定将输入元素映射到模型属性,从而极大地简化了处理用户输入的过程,然而,这也成为了攻击的另一种没接,给攻击者提供了一个填充模型属性的机会,右下 ...

  7. Tomcat基础

    一.Tomcat体系结构 tomcat应该是java程序员最熟悉的servlet容器了,作为一个用java实现的web应用程序服务器,下图是tomcat的体系结构 一个常见的Tomcat配置文件以下x ...

  8. Linode和DigitalOcean lnmp一键安装包哪个好?

    Linode和DigitalOcean都是非常棒的VPS厂商,512MB内存的VPS每月低到5美元,搭建wordpress网站,非常方便,甚至可以多人共用,服务器足够强悍,跑几个wordpress博客 ...

  9. id和instancetype的异同

    相同点: 都可以作为方法返回值类型 在initWithName:方法中是一样的,例如: - (id)initWithName:(NSString *)name; - (instancetype)ini ...

  10. c/c++常用的几个关键字总结

    一.volatile volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编 ...