Glusterfs 扩容、缩减

对于一个存储,不可避免的会遇到扩容、缩减存储容量的问题。

1 为Glusterfs扩容

提前准备好了一个gluster volume:

[[email protected] ~]# gluster volume info repvol
 
Volume Name: repvol
Type: Replicate
Volume ID: 7015b7fe-8039-4d5d-b698-e8321df5289c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01.lab.example.com:/bricks/thinvol1/brick
Brick2: node02.lab.example.com:/bricks/thinvol1/brick
Options Reconfigured:
performance.stat-prefetch: off
storage.batch-fsync-delay-usec: 0
server.allow-insecure: on
performance.readdir-ahead: on
transport.address-family: inet
nfs.disable: on

可以看出repvol是一个包含2个brick的1x2复制卷,将repvol挂载到node02 server上,并写入一些数据以作测试。

[[email protected] ~]# mount -t cifs //node01.lab.example.com/gluster-repvol -o user=smbuser,pass=redhat /mnt
[[email protected] ~]# cd /mnt
[[email protected] mnt]# ls
[[email protected] mnt]# touch {1..100}.file

使用如下命令为repvol再增加两个brick

[[email protected] ~]# gluster volume add-brick repvol node01.lab.example.com:/bricks/thinvol2/brick node02.lab.example.com:/bricks/thinvol2/brick
volume add-brick: success
[[email protected] ~]# gluster volume info repvol
 
Volume Name: repvol
Type: Distributed-Replicate
Volume ID: 7015b7fe-8039-4d5d-b698-e8321df5289c
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node01.lab.example.com:/bricks/thinvol1/brick
Brick2: node02.lab.example.com:/bricks/thinvol1/brick
Brick3: node01.lab.example.com:/bricks/thinvol2/brick
Brick4: node02.lab.example.com:/bricks/thinvol2/brick
Options Reconfigured:
performance.stat-prefetch: off
storage.batch-fsync-delay-usec: 0
server.allow-insecure: on
performance.readdir-ahead: on
transport.address-family: inet
nfs.disable: on

可以看到repvol已经变成了一个2x2的分布式复制卷,扩容后我们还需要把原有的数据rebalance

[[email protected] ~]# gluster volume rebalance repvol start
volume rebalance: repvol: success: Rebalance on repvol has been started successfully. Use rebalance status command to check status of the rebalance process.
ID: a8fba779-6c2d-449b-8847-58aeb2ae1798
[[email protected] ~]# gluster volume rebalance repvol status
                                    Node Rebalanced-files          size       scanned      failures       skipped               status  run time in h:m:s
                               ---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------
                               localhost               48        0Bytes           100             0             0            completed        0:0:5
                                  node02                0        0Bytes             0             0             0            completed        0:0:2
volume rebalance: repvol: success

这里有一个需要注意的地方,当数据量太大的时候,对数据进行rebalance必须要考虑的一个问题就是性能,不能因为数据rebalance而影响我们的存储的正常使用。Glusterfs也考虑到了这个问题,在进行数据rebalance时,根据实际场景不同设计了三种不同的“级别”:

1)lazy:每次仅可以迁移一个文件
2)normal:默认设置,每次迁移2个文件或者是(CPU逻辑个数-4)/2,哪个大,选哪个
3)aggressive:每次迁移4个文件或者是(CPU逻辑个数-4)/2

通过以下命令进行配置:

gluster volume set VOLUME-NAME cluster.rebal-throttle [lazy|normal|aggressive]

如将volume repvol设置为lazy

[[email protected] ~]# gluster volume set repvol cluster.rebal-throttle lazy
volume set: success

2 缩减volume大小

将我们刚刚添加的2个brick再从volume repovl中删掉

[[email protected] ~]# gluster volume remove-brick repvol node01.lab.example.com:/bricks/thinvol2/brick node02.lab.example.com:/bricks/thinvol2/brick start
volume remove-brick start: success
ID: db72aaf8-e60d-4e56-be60-54469df9c233
[[email protected] ~]# gluster volume remove-brick repvol node01.lab.example.com:/bricks/thinvol2/brick node02.lab.example.com:/bricks/thinvol2/brick status
                                    Node Rebalanced-files          size       scanned      failures       skipped               status  run time in h:m:s
                               ---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------
                               localhost               48        0Bytes           101             0             0            completed        0:0:3
                                  node02                0        0Bytes             0             0             0            completed        0:0:1
[[email protected] ~]# gluster volume remove-brick repvol node01.lab.example.com:/bricks/thinvol2/brick node02.lab.example.com:/bricks/thinvol2/brick commit
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit: success
Check the removed bricks to ensure all files are migrated.
If files with data are found on the brick path, copy them via a gluster mount point before re-purposing the removed brick.

此时再看repvol已经重新变为1x2的复制卷了

[[email protected] ~]# gluster volume info repvol
 
Volume Name: repvol
Type: Replicate
Volume ID: 7015b7fe-8039-4d5d-b698-e8321df5289c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01.lab.example.com:/bricks/thinvol1/brick
Brick2: node02.lab.example.com:/bricks/thinvol1/brick
Options Reconfigured:
cluster.rebal-throttle: lazy
performance.stat-prefetch: off
storage.batch-fsync-delay-usec: 0
server.allow-insecure: on
performance.readdir-ahead: on
transport.address-family: inet
nfs.disable: on
[[email protected] ~]# ls /bricks/thinvol1/brick/ | wc -w
100
时间: 2024-10-10 14:42:17

Glusterfs 扩容、缩减的相关文章

kubernetes实战(九):k8s集群动态存储管理GlusterFS及容器化GlusterFS扩容

1.准备工作 所有节点安装GFS客户端 yum install glusterfs glusterfs-fuse -y 如果不是所有节点要部署GFS管理服务,就在需要部署的节点上打上标签 [[email protected] ~]# kubectl label node k8s-node01 storagenode=glusterfs node/k8s-node01 labeled [[email protected]-master01 ~]# kubectl label node k8s-no

GlusterFS分布式文件系统

分布式系统要做的任务就是把多台机器有机的组合.连接起来,让其协同完成一件任务,可以是计算任务,也可以是存储任务.如果一定要给近些年的分布式系统研究做一个分类的话,大概可以包括三大部分: 1. 分布式存储系统 2. 分布式计算系统 3. 分布式管理系统 这是一个范围比较广的话题,今天我们就来简单了解一下分布式存储系统的Gluserfs. GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理

DB水平切换要点

分区健选择 数据应该如何拆分,按照什么纬度来拆分 节点路由 应用程序写死/客户端(TDDL,cobar-client)/中间层(cobar-server) 固定分配/动态分配/混合 分片数据均衡 某些分片访问比较频繁,跟业务类型相关 全局唯一键生成器 专门的应用接口 跨节点排序/分组/表关联 应用程序实现 多数据源事务处理/分布式事务 应用程序实现 数据库扩容/缩减 峰值和平时的量差别很大,淘宝双十一 分片工具 根据非分区键查找记录,表结构变更,多实例管理 固定分配: 分片的数据是预先分配好的,

Linux磁盘分区与LVM详解

内容大纲: 一.磁盘分区是怎样表示的? 二.Linux磁盘分区与文件系统类命令 三.LinuxLVM逻辑卷管理 四.磁盘分区相关命令操作演示 五.磁盘分区及LVM操作演示 一.磁盘分区是怎样表示的? IDE磁盘的设备文件采用/dev/hdx 来命名,分区则采用/dev/hdxy来命名,其中想表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推),与代表分区的号码(由1开始,1,2,3,以此类推) SCSI设备和分区采用/dev/sdx和/dev/sdxy来命名(x和y的命名规则与IED磁盘命名规则

Linux 第12天 lvm

时间: 20180728 目录 LVM概念 LVM的实现 PV创建,VG创建,LV创建,挂载 LVM扩容,缩减 LVM快照 LVM Logical Volume Manager 功能:重点在于可以灵活的增加文件系统容量,而非在数据的存储效率和安全上面. Lvm将多个分区或者硬盘整合为一个大的逻辑硬盘,然后再在其之上分配逻辑分区,并还可以 调整逻辑分区的大小. PV (Phycical Volume) 用户来将硬盘或分区格式化为lvm所使用物理卷,供上层VG使用 VG (Volume Group)

GFS 日常操作

1 为Glusterfs扩容 gluster volume remove-brick gv0 replica 2 10.240.37.112:/data/brick/gfs1/ force     在复制卷中有3个节点 删除1个节点命令 gluster volume info 查看已创建挂载卷 gluster volume start gv0    启动挂载卷 gluster volume stop gv0   #删除前,先停止挂载卷gluster volume delete gv0   删除

lvm管理之--扩容和缩减

首先关于lvm的原理和创建此处不做过多的说明. 1. LVM 原理分析 LVM 在每个物理卷(PV)头部都维护了一个MetaData,叫做卷组描述域(VGDA,Volume Group Description Area),每个VGDA中都包含了整个VG(Volume Group)的信息,包括每个VG的布局配置.PV 的编号.LV的编号,以及每个PE到LE的映射关系.同一个VG中的每个PV头部的信息是相同的,这样有利于发生故障时进行数据恢复. LVM 对上层文件系统提供 LV 层,隐藏了操作细节.

基于Centos6系统创建逻辑卷LVM,执行扩容,缩减,删除等操作

什么是逻辑卷? LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区

基于CentOS 6 系统创建逻辑卷LVM,执行扩容,缩减,删除等操作

2016-08-29 05:37:57 标签:Linux LVMFstab VG PV 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://51eat.blog.51cto.com/11892702/1843663 什么是逻辑卷? LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LV