glusterfs读书笔记

前言

本文参考了,如下文章,根据自己需要完善了一些细节步骤,实为一篇读书笔记:

  • https://www.cnblogs.com/jicki/p/5801712.html
  • https://jingyan.baidu.com/article/cbcede077f90bf02f40b4d94.html

规划集群

节点IP 主机名字 作用
192.168.5.138 swarm-manager 控制节点
192.168.5.140 swarm-node-1 节点1
192.168.5.141 swarm-node-2 节点2
192.168.5.142 client client节点

后续用集群节点,代表前三个节点

安装前在所有节点上修改HOSTS文件,添加如下几行

192.168.5.138 swarm-manager
192.168.5.140 swarm-node-1
192.168.5.141 swarm-node-2

安装集群

  • 集群节点上安装glusterfs,设置开机启动,并关闭防火墙
# 安装软件
yum install -y centos-release-gluster
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
# 设置开机启动
systemctl start glusterd.service
systemctl enable glusterd.service
# 关闭防火墙
systemctl stop firewalld.service 
systemctl disable firewalld.service
  • 在 swarm-manager 节点上配置,将 节点 加入到 集群中。
[root@swarm-manager ~]# gluster peer probe swarm-manager
peer probe: success. Probe on localhost not needed
[root@swarm-manager ~]# gluster peer probe swarm-node-1
peer probe: success.
[root@swarm-manager ~]# gluster peer probe swarm-node-2
peer probe: success.
  • 查看集群状态
[root@swarm-manager data]# gluster peer status
Number of Peers: 2

Hostname: swarm-node-1
Uuid: 489859c1-60a7-4f9f-b950-f7d1be76b71e
State: Peer in Cluster (Connected)

Hostname: swarm-node-2
Uuid: 9f203314-16ec-4b0e-919a-daf341df8458
State: Peer in Cluster (Connected)
[root@swarm-manager data]# 
  • 集群的三个节点,分别创建目录
[root@swarm-manager ~]# mkdir -p /opt/gluster/data
[root@swarm-node-1 ~]# mkdir -p /opt/gluster/data
[root@swarm-node-2 ~]# mkdir -p /opt/gluster/data
  • 查看volume 状态:
[root@swarm-manager ~]#gluster volume info
No volumes present
  • 创建一个名为models 的GlusterFS磁盘:
[root@swarm-manager ~]# 
gluster volume create models replica 3 swarm-manager:/opt/gluster/data swarm-node-1:/opt/gluster/data swarm-node-2:/opt/gluster/data force
volume create: models: success: please start the volume to access data

再查看 volume 状态:

[root@swarm-manager ~]# gluster volume info

Volume Name: models
Type: Replicate
Volume ID: e539ff3b-2278-4f3f-a594-1f101eabbf1e
Status: Created
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: swarm-manager:/opt/gluster/data
Brick2: swarm-node-1:/opt/gluster/data
Brick3: swarm-node-2:/opt/gluster/data
Options Reconfigured:
performance.readdir-ahead: on
  • 启动 models
[root@swarm-manager ~]# gluster volume start models
volume start: models: success
  • gluster 性能调优:
# 开启 指定 volume 的配额: (models 为 volume 名称)
gluster volume quota models enable

# 限制 models 中 / (既总目录) 最大使用 80GB 空间
gluster volume quota models limit-usage / 80GB

#设置 cache 4GB
gluster volume set models performance.cache-size 4GB

#开启 异步 , 后台操作
gluster volume set models performance.flush-behind on

#设置 io 线程 32
gluster volume set models performance.io-thread-count 32

#设置 回写 (写数据时间,先写入缓存内,再写入硬盘)
gluster volume set models performance.write-behind on

安装客户端

  • 部署GlusterFS客户端并mount GlusterFS文件系统


[root@client ~]# yum install -y glusterfs glusterfs-fuse
[root@client  ~]# mkdir -p /opt/gfsmnt
[root@client ~]# mount -t glusterfs swarm-manager:models /opt/gfsmnt/

[root@client ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg001-root 98G 1.2G 97G 2% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 130M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/vg001-opt 441G 71G 370G 17% /opt
/dev/sda2 497M 153M 344M 31% /boot
tmpfs 6.3G 0 6.3G 0% /run/user/0
swarm-manager:models 441G 18G 424G 4% /opt/gfsmnt

测试

可以client 上的/opt/gfsmnt 目录下,新建、修改、删除文件,查看集群节点上是否有对应操作;

常用命令

  1. 启动/关闭/查看glusterd服务
# /etc/init.d/glusterd start

# /etc/init.d/glusterd stop

# /etc/init.d/glusterd status
  1. 开机自动启动glusterd服务
# chkconfig glusterd on # Red Hat

# update-rc.d glusterd defaults # Debian

# echo "glusterd" >>/etc/rc.local # Others
  1. 查看配置信息
# cat /etc/rc.local

4.为存储池添加/移除服务器节点

在其中一个节点上操作即可:

# gluster peer probe

# gluster peer detach

注意,移除节点时,需要提前将该节点上的Brick移除。

查看所有节点的基本状态(显示的时候不包括本节点):

# gluster peer status
  1. 挂载分区
# mount -t ext4 /dev/sdd1 /mnt/brick1
  1. 创建/启动/停止/删除卷
# gluster volume create [stripe | replica ] [transport [tcp | rdma | tcp,rdma]] ...

# gluster volume start

# gluster volume stop

gluster volume delete

注意,删除卷的前提是先停止卷。

  1. 客户端以glusterfs方式挂载
# mount -t glusterfs :/

对于OpenStack,计算和控制节点都要挂载/var/lib/nova/instances,控制节点还要挂载/var/lib/glance/images。

  1. 查看卷信息

列出集群中的所有卷:

# gluster volume list

查看集群中的卷信息:

# gluster volume info [all]

查看集群中的卷状态:

# gluster volume status [all]

# gluster volume status [detail| clients | mem | inode | fd]

查看本节点的文件系统信息:

# df -h []

查看本节点的磁盘信息:

# fdisk -l
  1. 配置卷
# gluster volume set
  1. 扩展卷
# gluster volume add-brick

注意,如果是复制卷或者条带卷,则每次添加的Brick数必须是replica或者stripe的整数倍。

  1. 收缩卷

先将数据迁移到其它可用的Brick,迁移结束后才将该Brick移除:

# gluster volume remove-brick start

在执行了start之后,可以使用status命令查看移除进度:

# gluster volume remove-brick status

不进行数据迁移,直接删除该Brick:

# gluster volume remove-brick commit

注意,如果是复制卷或者条带卷,则每次移除的Brick数必须是replica或者stripe的整数倍。

/var/lib/glusterd/peers/ 下文件决定了host name

你可能感兴趣的:(glusterfs读书笔记)