1 安装
1.1 准备环境
三台主机(主机数应为副本数的倍数),主机名为xhw380,xhw381,xhw382.每台主机上用root用户进行操作。
1.2 安装
在物理机上使用rpm包安装,rpm包下载源
https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-3.8/
![](https://box.kancloud.cn/4e1200deac21c8ce9cc7d4cf51ea4dfb_753x189.png)
2 操作
2.1 开启服务
`systemctl start glusterd.service`
2.2 查看服务
`systemctl status glusterd.service`
2.3 添加节点到集群
不需要添加执行操作的机器,例如在xhw380上操作时,只需要执行:
~~~
gluster peer probe xhw381
gluster peer probe xhw382
~~~
2.4 从集群中删除节点
`gluster peer detach nodename`
2.5 查看节点状态
可以看到除自己之外的所有节点
`gluster peer status`
![](https://box.kancloud.cn/a50dd751a37b2aa2402a29c90bec9337_408x178.png)
2.6 配置volume
GlusterFS中的volume的模式有很多中,包括以下几种:+
1) 分布卷(默认模式):即DHT, 也叫 分布卷: 将文件已hash算法随机分布到 一台服务器节点中存储。
2) 复制模式:即AFR, 创建volume 时带 replica x 数量: 将文件复制到 replica x 个节点中。
3) 条带模式:即Striped, 创建volume 时带 stripe x 数量: 将文件切割成数据块,分别存储到 stripe x 个节点中 ( 类似raid 0 )。在大文件读取上有优势。
4) 注:条带化有个最小限制:128KB。即当文件大小小于这个参数时,不进行分隔。其他储存单元中,存在同名文件,但是大小为0.
5) 分布式条带模式:是DHT 与 Striped 的组合型。
6) 分布式复制模式:是DHT 与 AFR 的组合型。
7) 条带复制卷模式:是 Striped 与 AFR 的组合型。
8) 三种模式混合
根据业务需求,我们创建复制数为3的复制卷
~~~
xhw380: mkdir /data01/gfs
xhw381: mkdir /data01/gfs
xhw382: mkdir /data01/gfs
~~~
在任意一台主机上创建复制卷:
`gluster volume create cbbs replica 3 xhw{380,381,382}:/data01/gfs`
注:节点数一定要是复制数的倍数。
~~~
启动卷:gluster volume start cbbs
查看卷信息:gluster volume info
挂载客户端(每台主机执行):
mount.glusterfs xhw380:/cbbs /cbbs/gfs
停止卷:gluster volume stop cbbs
删除卷:gluster volume delete cbbs
~~~
3 优化
具体选项:
~~~
Auth_allow #IP访问授权;缺省值(*.allow all);合法值:Ip地址
Cluster.min-free-disk #剩余磁盘空间阀值;缺省值(10%);合法值:百分比
Cluster.stripe-block-size #条带大小;缺省值(128KB);合法值:字节
Network.frame-timeout #请求等待时间;缺省值(1800s);合法值:1-1800
Network.ping-timeout #客户端等待时间;缺省值(42s);合法值:0-42
Nfs.disabled #关闭NFS服务;缺省值(Off);合法值:Off|on
Performance.io-thread-count #IO线程数;缺省值(16);合法值:0-65
Performance.cache-refresh-timeout #缓存校验时间;缺省值(1s);合法值:0-61
Performance.cache-size #读缓存大小;缺省值(32MB);合法值:字节
Performance.quick-read: #优化读取小文件的性能
Performance.read-ahead: #用预读的方式提高读取的性能,有利于应用频繁持续性的访问文件,当应用完成当前数据块读取的时候,下一个数据块就已经准备好了。
Performance.write-behind:先写入缓存内,在写入硬盘,以提高写入的性能。
Performance.io-cache:缓存已经被读过的。
~~~
3.1 开启指定volume的配额
`gluster volume quota cbbs enable`
3.2 限制指定volume的配额
`gluster volume quota cbbs limit-usage / 100GB`
3.3 打开预读方式访问存储
`gluster volume set cbbs performance.read-ahead on`
3.4 设置cache大小,默认32MB
`gluster volume set cbbs performance.cache-size 4GB`
3.5 设置 io 线程, 太大会导致进程崩溃
`gluster volume set cbbs performance.io-thread-count 16`
3.6 设置网络检测时间
`gluster volume set cbbs network.ping-timeout 10`
3.7 设置写缓冲区的大小, 默认1M
`gluster volume set cbbs performance.write-behind-window-size 1024MB`
4 监控及维护
4.1 查看卷状态
`gluster volume status cbbs`
4.2 查看配额
`gluster volume quota cbbs list`
4.3 I/O信息查看
Profile Command 提供接口查看一个卷中的每一个brick的IO信息。
启动profiling,之后则可以进行IO信息查看:
` gluster volume profile cbbs start`
4.3.1 查看I/O信息:
` gluster volume profile cbbs info`
4.3.2 查看后关闭profiling功能
4.4 TOP监控
Top command 允许你查看bricks的性能例如:read, write, file open calls, file read calls, file write calls, directory open calls, and directory real calls
所有的查看都可以设置top数,默认100
4.4.1 查看当前打开的文件数及最大打开的文件数
`gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt]`
![](https://box.kancloud.cn/88c5e5a10a6cf1a24c5d7944fccd7aaf_662x316.png)
4.4.2 查看读频率最高的文件
`gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt]`
![](https://box.kancloud.cn/5ff957ac3220cf82eb0aaa4dc2230031_437x234.png)
4.4.3 查看写频率最高的文件
`gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt]`
![](https://box.kancloud.cn/ed399689036678f7cad3d34b5a2c452a_568x503.png)
4.4.4 查看打开频率最高的目录
`gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt]`
4.4.5 查看读写频率最高的目录
`gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt]`
4.4.6 查看每个Brick的读性能
~~~
gluster volume top VOLNAME read-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]
~~~
![](https://box.kancloud.cn/0920e1b8e54b45c0251f67d9b64c0159_642x243.png)
4.4.7 查看每个Brick的写性能
~~~
gluster volume top VOLNAME write-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]
~~~
![](https://box.kancloud.cn/d5bed306faeae50940f4a1cf8ed41141_726x511.png)
- 一、日常运维脚本
- 1.1 批量创建用户并赋予sudo权限
- 1.2 批量主机建立互信
- 1.3create_images.sh
- 1.4monitor.sh
- 1.5ftp脚本
- 1.6格式化分区
- 1.7简单的远程执行脚本
- 二、常用服务使用
- 1 ceph (分布式文件系统)
- 1.1 ceph 简介
- 1.2 准备环境
- 1.3 开始部署
- 1.4 cephfs挂载
- 1.5 RBD块存储
- 1.6 object 对象存储
- 1.7 集群扩展
- 1.7.1 增加删除MON
- 1.7.2 增加删除OSD
- 1.7.3 删除MDS
- 注意事项
- 遇到的问题
- 1.8ceph查找数据文件
- 1.9卸载并清理环境
- 2、mysql (数据库)
- 2.1 搭建
- 2.2 使用教程
- 2.2.1 mysql基础配置
- 2.2.1.1 用户权限管理
- 2.2.1.2用户资源限制
- 2.2.1.3 密码管理
- 2.2.1.4用户lock
- 2.2.2mysql语法详解
- 2.2.1建库、表语句
- 2.2.2.2 插入 insert
- 2.2.2.3更新 update
- 2.2.2.4删除 delete
- 2.2.2.5查询 select
- 2.2.6视图 索引 view index
- 2.2.7 修改 alert
- 2.2.2.8清理 truncate drop
- 2.2.9重命名 rename
- 示例语句
- 2.2.3mysql常用函数
- 2.3.1 对比操作符统概
- 2.3.2对比操作符详解
- 2.3.3逻辑操作符
- 2.2.4分配操作符
- 2.2.5流程控制函数
- 2.2.6字符串函数
- 2.2.7字符串对比函数
- 2.2.8数字函数
- 2.2.9日期和时间函数
- 2.2.10聚合/格式转换函数
- 2.2.11 子查询
- 示例语句
- 2.2.4 mysql 高级应用
- 2.2.4.1 存储过程 函数
- 2.2.4.2流程控制
- 2.2.4.3游标
- 2.2.4.4触发器
- 课堂练习
- 2.2.2.5 数据库设计
- 2.2.5.1 数据类型
- 2.2.5.2存储引擎
- 2.2.6Innodb内核
- 1、innodb事务和多版本控制
- 2、体系结构
- 3、InnoDB配置
- 4、buffer pool设置
- 5、其他配置
- innodb限制
- 2.7 字符集
- 2.8锁机制和事务
- 2.8.1锁机制
- 2.8.2事务
- 2.9分区
- 2.9.1 自动分区
- 2.10复制
- 2.11mysql搬移数据目录
- 2.12组复制 GR
- 简介
- 搭建
- 2.3日常运维
- 2.3.1定时任务
- 2.4mycat
- 2.4.1 报错分析
- 2.4.2 修改字符集
- 2.11 mycat使用
- 2.5遇到问题
- 2.5.1 表名库名忽略大小写
- 3、PAAS平台搭建
- 问题汇总
- 1、docker
- 2、日常运维
- 3.1 Kubernetes
- 3.1 kubernetes 高版本搭建
- 4、GlusterFS搭建
- 5、MooseFS搭建
- 5.1搭建
- 5.2运维
- 5.2.1 mfs日志解析
- 5.2.2清理mfs的垃圾数据
- 5.2.3元数据故障恢复
- 5.2.4 MFS优化
- 5.2.5 配置机架感知
- 5.2.6 客户端工具集
- 6、集群切换命令
- 7、ntp服务
- 8、monggoDB
- 8.1搭建单机
- 2、搭建集群及分片
- 9、MariaDB Galera Cluster
- 9.1源码安装MariaDB
- 9.2galera cluster 优劣
- 9.3 rpm安装mariadb
- 10 HAproxy1.7搭建
- 11、sysbench 搭建使用
- 0.5版本
- 12 percona-xtradb-cluster
- 13http服务相关
- 13.1 http状态码解析
- 14 zookeeper
- 14.1 zookeeper日志查看
- 14.2 配置解析
- 14.3 优化
- 15搭建私有pip源
- 16/var/log的日志文件解释
- 15 ansible的搭建及使用
- 15.1 搭建
- 15.2 使用说明
- 16. 搭建本地yum源
- zookeeper
- 优化
- 四、开发语言
- 1、GO语言
- 1.1go简介
- 1.1.1hello_world初识GO
- 1.1.2并发介绍
- 1.1.3 chan介绍
- 1.1.4多返回值
- 1.2go基础
- 1.2.1数据类型
- 1.2.2 go基础结构
- 1.2.3 const及变量介绍
- 1.2.3os和time介绍
- 1.2.4 字符串
- 1.2.5条件判断
- 1.2.6 homework
- go--help
- 1.3 go基础2
- 1.3.1 数组 array
- 1.3.2切片 slice
- 1.3.3 时间和日期
- 1.3.4指针类型
- 1.3.5函数
- 1.3.6可变参数
- 1.3.7 defer
- 1.3.8递归
- 1.9闭包
- 1.10 map
- 1.11 sort
- 1.12 struct 结构体
- 2.perl语言
- 2.1 安装lib包
- 3 python
- 1.语言基础
- 2、编程教学
- 2.1变量和序列
- 2.2 条件语句