GlusterFS系统中文管理手册

 

 

 

1文档说明

该文档主要内容出自 www.gluster.org 官方提供的英文系统管理手册《Gluster File System 3.3.0

Administration Guide》。可以看成是管理手册中文版吧。

区别在于:

(1)它是英文的,个人整理的是中文的。所以不想看英文文档的人可以参考参考~~!

(2)它是3.3.0的管理手册,个人系统管理使用实践是3.4.1(不过3.3.1也实践过了)。

(3)它包含了很多内容,本文档只摘取其中系统管理部分(系统管理命令使用),并且进行了归类整理,方便理解。

(4)另外附加了很多系统管理中很多需要注意的地方,我相信这个是比较重要的(血泪经验谈)。

写这个文档的目的一是给自己做个备份,毕竟自己看英文文档感觉也是很累的,需要的时候可以翻翻,另外就是使用实践的过程中却是遇到很多需要注意的地方,自己当时也吃亏了很多次才搞明白,所以希望这些能够对那些也是使用研究GlusterFS的人有些许的帮助。

看完这个文档,有时间还是去看官方文档《Gluster File System 3.3.0 Administration Guide》吧,呵呵,毕竟那才是正版,而且也比较全面。

2系统维护管理

2.1管理说明

在解释系统管理时会提供实例,首先给大家提供一个环境说明。所有管理实践都是在3.4.1的版本上做的,所以只针对该版本进行说明。

系统节点:

IP                                  别名        Brick
192.168.2.100         server0   /mnt/sdb1       /mnt/sdc1       /mnt/sdd1
192.168.2.101         server1   /mnt/sdb1       /mnt/sdc1       /mnt/sdd1
192.168.2.102         server2   /mnt/sdb1       /mnt/sdc1       /mnt/sdd1

实践时个人使用自己的笔记本创建了三个节点,并每台虚拟机mount三块磁盘作为Brick使用,每个brick分配了30G的虚拟容量。

实例约定:

AFR卷名:              afr_vol
DHT卷名:              dht_vol
Stripe卷名:           str_vol
客户端挂载点:     /mnt/gluster

2.2系统部署

 先从如何部署一个完整的系统说起吧。

(1) 在每个节点上启动glusterd 服务

#service glusterd start

(2) 添加节点到存储池,在其中一个节点上操作,如server0

#gluster peer probe server1
#gluster peer probe server2

//可以使用gluster peer status查看当前有多少个节点,显示不包括该节点

(3) 创建系统卷, 部署最常见的分布式卷,在server0 上操作

#gluster volume create dht_vol 192.168..{,,}:/mnt/sdb1

//分别使用server0/1/2的磁盘挂载目录/mnt/sdb1作为brick

(4) 启动系统卷,在server0 上操作

#gluster volume start dht_vol

(5) 挂载客户端,例如在server2

#mount.glusterfs server0:/dht_vol /mnt/gluster

//将系统卷挂载到server2上的/mnt/gluster目录下就可以正常使用了。该目录聚合了三个不同主机上的三块磁盘。

//从启动服务到提供全局名字空间,整个部署流程如上。

2.3基本系统管理

2.3.1节点管理

# gluster peer command

2.3.1.1节点状态

#gluster peer status       //在serser0上操作,只能看到其他节点与server0的连接状态
Number of Peers:
Hostname: server1
Uuid: 5e987bda-16dd-43c2-835b-08b7d55e94e5
State: Peer in Cluster (Connected)
Hostname: server2
Uuid: 1e0ca3aa-9ef7-4f66-8f15-cbc348f29ff7
State: Peer in Cluster (Connected)

2.3.1.2添加节点

# gluster peer probe HOSTNAME

#gluster peer probe server2                     将server2添加到存储池中

2.3.1.3删除节点

# gluster peer detach HOSTNAME

#gluster peer detach server2                   将server2从存储池中移除

// 移除节点时,需要确保该节点上没有brick ,需要提前将brick 移除

2.3.2卷管理

2.3.2.1创建卷

# gluster volume create NEW-VOLNAME [transport [tcp | rdma | tcp,rdma]]

NEW-BRICK...

创建分布式卷(DHT)

#gluster volume create dht_vol 192.168..{,,}:/mnt/sdb1

//DHT卷将数据以哈希计算方式分布到各个brick上,数据是以文件为单位存取,基本达到分布均衡,提供的容量和为各个brick的总和。

创建副本卷(AFR)

#gluster volume create afr_vol replica  192.168..{,,}:/mnt/sdb1

//AFR卷提供数据副本,副本数为replica,即每个文件存储replica份数,文件不分割,以文件为单位存储;副本数需要等于brick数;当brick数是副本的倍数时,则自动变化为Replicated-Distributed卷。

#gluster volume create afr_vol replica  192.168..{,,}:/mnt/sdb1 192.168..{,,}:/mnt/sdc1

//每两个brick组成一组,每组两个副本,文件又以DHT分布在三个组上,是副本卷与分布式卷的组合。

创建条带化卷(Stripe)

#gluster volume create str_vol stripe  192.168..{,,}:/mnt/sdb1

//Stripe卷类似RAID0,将数据条带化,分布在不同的brick,该方式将文件分块,将文件分成stripe块,分别进行存储,在大文件读取时有优势;stripe需要等于brick数;当brick数等于stripe数的倍数时,则自动变化为Stripe-Distributed卷。

#gluster volume create str_vol stripe  192.168..{,,}:/mnt/sdb1 192.168..{,,}:/mnt/sdc1

//没三个brick组成一个组,每组三个brick,文件以DHT分布在两个组中,每个组中将文件条带化成3块。

创建Replicated-Stripe-Distributed

#gluster volume create str_afr_dht_vol stripe  replica  192.168..{,,}:/mnt/sdb1 192.168..{,,}:/mnt/sdc1 192.168..{,}:/mnt/sdd1

//使用8个brick创建一个组合卷,即brick数是stripe*replica的倍数,则创建三种基本卷的组合卷,若刚好等于stripe*replica则为stripe-Distrbuted卷。

2.3.2.2卷信息

#gluster volume info

//该命令能够查看存储池中的当前卷的信息,包括卷方式、包涵的brick、卷的当前状态、卷名及UUID等。

2.3.2.3卷状态

#gluster volume status

//该命令能够查看当前卷的状态,包括其中各个brick的状态,NFS的服务状态及当前task执行情况,和一些系统设置状态等。

2.3.2.4启动/停止卷

# gluster volume start/stop VOLNAME

//将创建的卷启动,才能进行客户端挂载;stop能够将系统卷停止,无法使用;此外gluster未提供restart的重启命令

2.3.2.5删除卷

# gluster volume delete VOLNAME

//删除卷操作能够将整个卷删除,操作前提是需要将卷先停止

2.3.3 Brick管理

2.3.3.1添加Brick

若是副本卷,则一次添加的Bricks 数是replica 的整数倍;stripe 具有同样的要求。

# gluster volume add-brick VOLNAME NEW-BRICK
#gluster volume add-brick dht_vol server3:/mnt/sdc1

//添加server3上的/mnt/sdc1到卷dht_vol上。

2.3.3.2移除Brick

若是副本卷,则移除的Bricks 数是replica 的整数倍;stripe 具有同样的要求。

# gluster volume remove-brick VOLNAME BRICK start/status/commit
# gluster volume remove-brick dht_vol start

//GlusterFS_3.4.1版本在执行移除Brick的时候会将数据迁移到其他可用的Brick上,当数据迁移结束之后才将Brick移除。执行start命令,开始迁移数据,正常移除Brick。

#gluster volume remove-brick dht_vol status

//在执行开始移除task之后,可以使用status命令进行task状态查看。

#gluster volume remove-brick dht_vol commit

//使用commit命令执行Brick移除,则不会进行数据迁移而直接删除Brick,符合不需要数据迁移的用户需求。

PS :系统的扩容及缩容可以通过如上节点管理、Brick 管理组合达到目的。

(1) 扩容时,可以先增加系统节点,然后添加新增节点上的Brick 即可。

(2) 缩容时,先移除Brick ,然后再进行节点删除则达到缩容的目的,且可以保证数据不丢失。

2.3.3.3替换Brick

# gluster volume replace-brick VOLNAME BRICKNEW-BRICK start/pause/abort/status/commit
# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 start

//如上,执行replcace-brick卷替换启动命令,使用start启动命令后,开始将原始Brick的数据迁移到即将需要替换的Brick上。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 status

//在数据迁移的过程中,可以查看替换任务是否完成。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 abort

//在数据迁移的过程中,可以执行abort命令终止Brick替换。

#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 commit

//在数据迁移结束之后,执行commit命令结束任务,则进行Brick替换。使用volume info命令可以查看到Brick已经被替换。

2.4系统扩展维护

2.4.1系统配额

2.4.1.1开启/关闭系统配额

# gluster volume quota VOLNAME enable/disable

//在使用系统配额功能时,需要使用enable将其开启;disable为关闭配额功能命令。

2.4.1.2设置(重置)目录配额

# gluster volume quota VOLNAME limit-usage /directory limit-value
# gluster volume quota dht_vol limit-usage /quota 10GB

//如上,设置dht_vol卷下的quota子目录的限额为10GB。

PS:这个目录是以系统挂载目录为根目录”/”,所以/quota即客户端挂载目录下的子目录quota

2.4.1.3配额查看

# gluster volume quota VOLNAME list
# gluster volume quota VOLNAME list /directory name

//可以使用如上两个命令进行系统卷的配额查看,第一个命令查看目的卷的所有配额设置,第二个命令则是执行目录进行查看。

//可以显示配额大小及当前使用容量,若无使用容量(最小0KB)则说明设置的目录可能是错误的(不存在)。

2.4.2地域复制(geo-replication)

# gluster volume geo-replication MASTER SLAVE start/status/stop

地域复制是系统提供的灾备功能,能够将系统的全部数据进行异步的增量备份到另外的磁盘中。

#gluster volume geo-replication dht_vol 192.168.2.104:/mnt/sdb1 start

//如上,开始执行将dht_vol卷的所有内容备份到2.104下的/mnt/sdb1中的task,需要注意的是,这个备份目标不能是系统中的Brick。

2.4.3 I/O信息查看

 Profile Command 提供接口查看一个卷中的每一个 brick IO 信息。

#gluster volume profile VOLNAME start

//启动profiling,之后则可以进行IO信息查看

#gluster volume profile VOLNAME info

//查看IO信息,可以查看到每一个Brick的IO信息

# gluster volume profile VOLNAME stop

//查看结束之后关闭profiling功能

2.4.5 Top监控

Top command 允许你查看bricks 的性能例如:read, write, file open calls, file read calls, file write calls, directory open calls, and directory real calls

所有的查看都可以设置top 数,默认100

# gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt]

//查看打开的fd

#gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt]

//查看调用次数最多的读调用

#gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt]

//查看调用次数最多的写调用

# gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt]
# gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt]

//查看次数最多的目录调用

# gluster volume top VOLNAME read-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//查看每个Brick的读性能

# gluster volume top VOLNAME write-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//查看每个Brick的写性能

glusterFS系统中文管理手册(转载)的更多相关文章

  1. OA系统权限管理设计(转载)

    不论什么系统都离不开权限的管理,有一个好的权限管理模块,不仅使我们的系统操作自如,管理方便,也为系统加入亮点. l         不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是 ...

  2. ERP设计之系统基础管理(BS)-日志模块设计(转载)

    原文地址:8.ERP设计之系统基础管理(BS)-日志模块设计作者:ShareERP 日志模块基本要素包括: 用户会话.登录.注销.模块加载/卸载.数据操作(增/删/改/审/弃/关等等).数据恢复.日志 ...

  3. jpgraph中文使用手册之文本和字体控制教程

    摘要:在之前的php jpgraph安装配置教程中已介绍过jpgraph字体的安装与配置方法,jpgraph类库中字体和文本的使用是非常重要的,jpgraph既可以控 制文本的旋转.对齐方式.字体大小 ...

  4. mysql最新版中文参考手册在线浏览

    MySQL是最流行的开放源码SQL数据库管理系统,具有快速.可靠和易于使用的特点.同时MySQL也是一种关联数据库管理系统,具有很高的响应速度和灵活性.又因为mysql拥有良好的连通性.速度和安全性, ...

  5. Linux 安装中文man手册

    Centos 安装中文man 虽然在CentOS操作系统中具有多语言包,但其man手册是英文的,对于新手来说能够使用中文man手册将加快学习速度. .首先需要确认的是有没有安装中文支持,如果没有请安装 ...

  6. LSI系列芯片Raid卡配置方法、管理手册

    说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/ 9271 等Raid卡. 不同型号的Raid卡在某些功能上的支 ...

  7. Linux下的cman中文帮助手册配置

    Linux下的帮助命令man功能很强大,很好用,但显示的结果是英文,有时候看着还是吃力,就想着要是有man的中文显示结果该多好.网上搜寻一番后,终于找到解决方案,很简单,亲测有效.具体步骤如下: su ...

  8. CentOS7 安装中文帮助手册

    1.首先确定系统安装中文字体否 locale 2.rpm安装中文帮助手册 挂在光盘 将man-pages-zh-CN-1.5.2-4.el7.noarch.rpm拷贝到本机 rpm -ivh man- ...

  9. Net力软快速信息化系统开发框架 + 开发手册+数据库说明

    源码目录结构说明LeaRun.Cache –缓存层LeaRun.Resource –本地语言LeaRun.Utilities –公共类库LeaRun.DataAccess –数据库访问核心组件LeaR ...

随机推荐

  1. 【转】What is an SDET

    What is an SDET? SDET stands for Software Development Engineer in Test (or Software Design Engineer ...

  2. Struts与Struts2的区别

    Struts与Struts2的区别 首先看一张Struts2的发展路线图:       从Struts2的发展过程来看,Struts2继承了Struts与Webwork的特性,形成了新的框架.但是它的 ...

  3. AngularJS笔记--自定义指令

    在前端开发中, 我们会遇到很多地方都会用到同一种类型的控件.AngularJS提供了自定义指令功能,我们可以在指令里面定义特定的html模板.提供给前台html调用. 一. 指令的简单定义.  下面定 ...

  4. NopCommerce 增加 Customer Field

    预期效果: Customer表新增一个Column 该新增字段可以在Admin段 新增 修改 列表查询及显示 示例步骤: 0.数据库表修改 alter table [Customer] add Mem ...

  5. 【原】移动web页面支持弹性滚动的3个方案

    有段时间一直折腾移动端页面弹性滚动的各种问题,做了点研究,今天做个小分享~ 传统 pc 端中,子容器高度超出父容器高度,通常使用 overflow:auto 可出现滚动条拖动显示溢出的内容,而移动we ...

  6. POJ2677 Tour[DP 状态规定]

    Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4307   Accepted: 1894 Description ...

  7. 脑成像数据分析:Python工具包

    来源:SealHuang 脑成像技术已经成为认知科学和心理学研究领域中一种重要的研究手段,帮助研究者不断深入发掘我们脑中的秘密.伴随着研究的不断深入,各式各样的指标参数和分析方法也不断推陈出新,以迅雷 ...

  8. iOS聊天下拉刷新聊天记录的实现

    1. 想法 最近在开发一个社交类app,要实现类似微信那种下拉刷新聊天记录的功能. 一般有两种实现方式: 1. 直接fetch一个entity的所有数据然后在内存中做filter,就是把所有聊天记录先 ...

  9. 我是服务的执政官-服务发现和注册工具consul简介

    服务发现和注册 我们有了两个服务.服务A的IP地址是192.168.0.1,端口9001,服务B的IP地址192.168.0.2,端口9002.我们的客户端需要调用服务A和服务B,我们只需要在配置文件 ...

  10. 吉特仓库管理系统- 斑马打印机 ZPL语言的腐朽和神奇

    上一篇文章说到了.NET中的打印机,在PrintDocument类也暴露一些本质上上的问题,前面也提到过了,虽然使用PrintDcoument打印很方便.对应条码打印机比如斑马等切刀指令,不依赖打印机 ...