服务器硬件配置及环境
项目 | 说明 |
---|---|
CPU | 1核 |
内存 | 1GB |
硬盘 | 40GB |
系统 | CentOS 7.5 |
时间同步服务 | chrony |
ceph | 13.2.2-0 |
节点部署图
节点功能简介
项目 | 说明 |
---|---|
yum repo | 若是部署环境每一个节点均可以访问外网, 则无需作任何操做, 部署脚本会自动添加外网环境的yum源. 若是部署没法访问外网, 须要自行部署centos, epel, ceph三个yum源. 每一个节点都必须能够访问所提到的全部yum源 |
时间同步服务器 | 每一个节点都必须能够访问, 若是部署环境没法访问外网须要自行搭建时间同步服务器 |
client-x | 须要挂载存储的设备, 须要同时能够访问每一个storage-ha-x和yum源, 时间服务器 |
storage-deploy-1 | 用于统一部署ceph集群的工做机, 系统为CentOS 7.5 |
storage-ha-x | 承载ceph各项服务的服务器节点, 系统为CentOS 7.5 |
mon | Monitors, 节点映射管理, 身份验证管理, 须要达到冗余和高可用至少须要3个节点 |
osd | object storage daemon, 对象存储服务, 须要达到冗余和高可用至少须要3个节点 |
mgr | Manager, 用于跟踪运行指标和集群状态, 性能. |
mds | Metadata Serve, 提供cephfs的元数据存储 |
参考:node
默认端口
项目 | 说明 |
---|---|
ssh | tcp: 22 |
mon | tcp: 6789 |
mds/mgr/osd | tcp: 6800~7300 |
参考:linux
默认路径
项目 | 说明 |
---|---|
主配置文件 | /etc/ceph/ceph.conf |
配置文件夹 | /etc/ceph |
日志文件夹 | /var/log/ceph |
各服务认证key文件 | /var/lib/ceph/{server name}/{hostname}/keyring |
admin认证key文件 | ceph.client.admin.keyring |
部署脚本说明
- node-init.sh: storage-ha-x节点初期运行的初始化脚本
- admin-init.sh: storage-deploy-1节点初期运行的初始化脚本, 必需要在每一个storage-ha-x节点都运行完node-init.sh以后才能运行.
- ceph-deploy.sh: ceph部署脚本, 仅在storage-deploy-1节点上运行便可, 须要在
node-init.sh
和admin-init.sh
运行完成且成功后运行.
PS: 脚本中涉及到的ip和其它不一样信息请先自行修改后再运行.git
脚本运行命令
请将 附录: 脚本内容
章节或脚本Git库
章节中的各个脚本放到各个对应服务器任意位置并使用如下命令按照顺序运行.github
PS: 需严格按照部署脚本说明
章节中的持续顺序执行脚本.json
PS: 脚本中涉及到不一样于当前环境的信息(如: ip, yum源, 密码, 主机名等)请先自行修改后再运行.centos
- 初始化ceph节点
1 |
/bin/bash node-init.sh |
执行命令结果api
- 初始化部署节点
1 |
/bin/bash admin-init.sh |
执行命令结果bash
- 开始部署
1 |
/bin/bash ceph-deploy.sh |
执行命令结果服务器
能够看到上方的pgs
下方有个creating+peering
, 这表示OSDs在建立和准备同步中.须要等待
这时能够在任意有admin角色的storage-ha-x
节点上执行如下命令看查是否完成准备
1 |
ceph -s |
当pgs
显示为下图的active+clean
表明各个节点同步完成.
若是一直没法达到active+clean
状态, 请参考如下操做文章:
TROUBLESHOOTING PGS
挂载存储
建立测试用户
如下命令在任意一个storage-ha-x服务器上运行
1 |
# 此命令含义是建立一个名为client.fs-test-1的用户, 对于挂载的根目录'/'只有可读权限, 对于挂载的'/test_1'目录有读写权限. |
获取用户受权信息
如下命令在任意一个添加过admin
角色的storage-ha-x服务器上运行
1 |
# 获取client.admin用户的受权信息 |
挂载方式
挂载方式分为两种, 分别是cephfs和fuse. 选择其中一种方式进行挂载便可.
两种挂载方式的区别和优点请参考如下文章:
WHICH CLIENT?
cephfs方式
如下命令在任意须要挂载存储的client下执行
PS: 此挂载方式依赖于ceph, 须要先添加ceph和epel的yum源.
1 |
# cephfs方式挂载 |
fuse方式
如下命令在任意须要挂载存储的client下执行
PS: 此挂载方式依赖于ceph-fuse, 须要先添加ceph和epel的yum源.
1 |
yum install ceph-fuse -y |
挂载结果
挂载结果可使用如下命令查看
1 |
df -h |
运维命令
- 状态查看
1 |
# 查看集群总体状态 |
- 简单写性能测试
1 |
# 在挂载了存储的client下简单测试写性能 |
- 删除cephfs和pool
1 |
# 删除cephfs前须要的操做 |
- 同步ceph配置文件
1 |
# 同步的配置文件 |
FAQ
-
Q: health_warn:clock skew detected on mon
A: 使用chrony同步每台服务器节点的时间 -
Q: Error ERANGE: pg_num “*“ size “*“ would mean “*“ total pgs, which exceeds max “*“ (mon_max_pg_per_osd 250 num_in_osds “\“)
A: ceph.conf配置文件中加入mon_max_pg_per_osd = 1000
(参数中的数值本身根据实际状况修改)并用同步ceph配置文件
方式上传到各个节点, 并重启ceph-mon.target
-
Q: too many PGs per OSD
A: ceph.conf配置文件中加入mon_max_pg_per_osd = 1000
(参数中的数值本身根据实际状况修改)并用同步ceph配置文件
方式上传到各个节点, 并重启ceph-mon.target
参考
ceph cephx认证参考
设置cephfs访问权限
ceph用户管理
ceph-fuse方式挂载
Ceph 运维手册
Red Hat Ceph存储—《深刻理解Ceph架构》
Ceph常规操做及常见问题梳理
脚本Git库
https://github.com/x22x22/cephfs-verify-script
附录: 脚本内容
- node-init.sh
1 |
|
- admin-init.sh
1 |
|