如何管理GlusterFS的分散卷?

GlusterFS

1 理论知识

1.1 基本的概念

1.1.1 Brick的概念

Brick的是可信存储池中服务器的数据存储目录

1.1.2 卷的概念

卷是Brick的集合,即多个Brick组成一个卷

1.1.3 分布卷的概念

分布卷是基于擦除编码,它分割文件的编码数据,并在卷中的多个Brick中添加冗余数据。

1.2 分布卷

1.2.1 分布卷的特点

– 数据存储可靠(冗余)
– 节省物理空间(相比复制卷)

1.2.2 分布卷配置思路

GlusterFS的卷中可通过指定允许丢失Brick(存储位置)数量来控制分散卷容错性能
例子如下
5个分布卷(disperse)其中允许1个冗余(redundancy)
6个分布卷(disperse)其中允许2个冗余(redundancy)
注:
– 通俗点讲,分布卷就是存储服务器的数量(仅适用于一个卷在一台服务器只有一个Brick的情况)
– 冗余就是允许损坏的服务器数量

1.2.3 空间计算

Usable size = * (#Brick – Redundancy)
– Usable size,可用空间大小
– Brick size,存储数据的Brick大小
– Brick,Brick的数量
– Redundancy,冗余的数量
注:以上非常类似于Read5的空间计算方式

1.2.4 可用空间与可靠性

3 个disperse其中1redundancy,可用空间占总物理空间的66.7%
10个disperse其中1redundancy,可用空间占总物理空间的90.0%
以上两种空间使用率模式,前者具有更高的可靠性

1.2.5 最佳配置

6个分布卷(disperse)其中允许2个冗余(redundancy) <- 因为512*(6-2)=2048刚好等于条带的大小

2 如何创建Bricks

– 本章节以你已经动手创建过GlusterFS的分布式存储为前提,如果你没有做过,请先学习,

如何部署GlusterFS分布式存储?


– 以下文章只建议在实验环境操作,如果你在生产环境中操作,建议你请做好数据备份并参考官方文档

2.1 创建单台服务器的逻辑卷

2.1.1 PV的创建

pvcreate --dataalignment 1280K /dev/sdb

注:请根据情况使用正确的对其选项

2.1.2 VG的创建

vgcreate --physicalextentsize 128K gfs_vg /dev/sdb

注:建议一个存储设备创建一个VG

2.1.3 LV的创建

lvcreate -L metadev_sz --name metadata_device_name VOLGROUP

2.1.4 创建文件系统

mkfs.xfs -f -i size=512 -n size=8192 -d su=128K,sw=10 DEVICE

注:inode大小建议设置512bytes,以适应GlusterFS使用扩展属性

2.1.5 挂载设备

2.1.4.1 设置挂载

vim /etc/fstab

加入如下配置:

/dev/gfs_vg/gfs_lv    /mountpoint  xfs rw,inode64,noatime,nouuid      1 2

2.1.4.2 创建挂载点

mkdir /mountpoint

2.1.4.3 挂载设备

mount -a

2.1.4.4 检查是否成功

df -h

2.2 管理群集成员服务器

2.2.1 查看群集中的成员

gluster peer status

2.2.2 添加成员到群集

gluster peer probe GFS00x.sae.com.hk

2.2.3 从群集中分离成员

gluster peer detach GFS00x.sae.com.hk

2.3 管理群集VG

2.3.1 VG的列表

gluster volume list

2.3.2 VG状态查询

gluster volume status

2.3.3 VG信息

gluster volume info
gluster volume info vg0

2.3.4 创建VG

2.3.4.1 brick目录下创建卷目录

mkdir -p /data/brick/disp

2.3.4.2 创建分散式VG

gluster volume create disp_vol disperse 5 redundancy 1 \
GFS001.cmdschool.org:/data/brick/disp \
GFS002.cmdschool.org:/data/brick/disp \
GFS003.cmdschool.org:/data/brick/disp \
GFS004.cmdschool.org:/data/brick/disp \
GFS005.cmdschool.org:/data/brick/disp

2.3.4.3 启动分散式VG

gluster volume start disp_vol

2.3.4.4 挂载VG

mkdir /disp
mount -t glusterfs GFS005.cmdschool.org:/disp_vol /disp

2.3.4.5 测试VG

for i in `seq -w 1 100`; do cp -rp /var/log/messages /disp/copy-test-$i; done
tree /data/brick/disp/
du -sh /data/brick/disp/

2.3.5 删除VG

2.3.5.1 停止VG

gluster volume stop disp_vol

2.3.5.2 执行删除

gluster volume delete disp_vol

2.3.5.3 确认删除

gluster volume list

2.4 管理集群的Brick

2.4.1 更换Brick

gluster volume replace-brick disp_vol \
GFS001.saedgo2.sae.com.hk:/data/brick/disp \
GFS006.cmdschool.org:/data/brick/disp \
commit force

2.4.2 增加Brick

gluster volume add‐brick disp_vol disperse 5 redundancy 1 \
GFS0011.cmdschool.org:/data/brick/disp \
GFS0012.cmdschool.org:/data/brick/disp \
GFS0013.cmdschool.org:/data/brick/disp \
GFS0014.cmdschool.org:/data/brick/disp \
GFS0015.cmdschool.org:/data/brick/disp

注:增加的数量应当为原来架构的倍数

参阅文档
====================================
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/
http://blog.csdn.net/daydayup_gzm/article/details/52748812
http://www.cnblogs.com/xiexiaohua007/p/6602266.html

没有评论

发表回复

GlusterFS
如何在RHEL8 部署Gluster客户端?

1 基础知识 1.1 Gluster卷的客户端类型 1.1.1 Gluster Native Cli …

GlusterFS
如何在RHEL8 部署Gluster服务端?

1 基础知识 1.1 Gluster的简介 – Gluster是一个可扩展的分布式文件系 …

GlusterFS
如何在RHEL8 编译安装Gluster?

1 前言 笔者之前使用yum部署过Gluster的服务,但最近笔者发现官方已经不再提供旧版本的rpm …