Ceph 集群安装配置命令

# 主节点安装基础环境
rpm -ivh http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm # 所有节点执行
yum install ceph-deploy python-setuptools python2-subprocess32 ceph-common -y
mkdir /root/ceph-cluster && cd /root/ceph-cluster

# 创建mon节点
ceph-deploy new ceph01 ceph02 ceph03 --cluster-network 172.25.25.0/24 --public-network 172.25.25.0/24
ceph-deploy install --no-adjust-repos ceph01 ceph02 ceph03
ceph-deploy mon create-initial

# 配置客户端认证
ceph-deploy admin ceph01 ceph02 ceph03

# 创建mgr节点(需要先有秘钥环)
ceph-deploy mgr create ceph01 ceph02

# 查看集群状态
ceph -s

# 列出集群节点上的所有可用磁盘
ceph-deploy disk list ceph01 ceph02 ceph03

# 擦除集群节点上用来用作osd设备的磁盘
ceph-deploy disk zap ceph01 /dev/sdb /dev/sdc
ceph-deploy disk zap ceph02 /dev/sdb /dev/sdc
ceph-deploy disk zap ceph03 /dev/sdb /dev/sdc

# 创建OSD
ceph-deploy osd create ceph01 --data /dev/sdb
ceph-deploy osd create ceph02 --data /dev/sdb
ceph-deploy osd create ceph03 --data /dev/sdb
ceph-deploy osd create ceph01 --data /dev/sdc
ceph-deploy osd create ceph02 --data /dev/sdc
ceph-deploy osd create ceph03 --data /dev/sdc

# 创建一个存储池
ceph osd pool create mypool 128 128

# 列出当前集群所有存储池
ceph osd pool ls
rados lspools

# 上传一个文件
rados put issue /etc/issue --pool=mypool

# 获取一个文件
rados get issue my_issue -p mypool # issue是对象的ID my_issue是outfile

# 删除一个文件
rados rm issue -p mypool

# 列出指定存储池文件
rados ls --pool=mypool

# 查看指定文件在Ceph集群中的映射
ceph osd map mypool issue # issue是文件的名称

# 增加mon节点
ceph-deploy mon add ceph04
ceph-deploy mon add ceph05

# 查看mon的quorum状态
ceph quorum_status --format json-pretty

# 添加mgr节点,mgr是无状态的
ceph-deploy mgr create ceph03

# 删除一个存储池

# 其他用法
ceph-deploy osd create {node} --data /path/to/data --block-db /path/to/db-device --block-wal /path/to/wal-device
# 创建OSD时,将OSD的三类数据都分开存放——Object Data Blobs、SST文件、wal文件
# --data选项指定的是Object Data存放的硬盘
# --block-db选项指定的是SST文件
# --block-wal选项指定的是wal文件

# 两个128含义分别为:PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数
ceph osd pool create mypool 128 128
# PGP起到对PG进行归置的作用;
# PGP的取值应该与PG相同,在PG的值增大的同时,也要增大PGP的值以保持二者的值相同;
# 当一个POOL的PG增大后,Ceph并不会开始进行rebalancing,只有在PGP的值增大后,PG才会开始迁移至其他的OSD上,并且开始rebalancing
# 通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
# 若少于5个OSD, 设置pg_num为128。
# 5~10个OSD,设置pg_num为512。
# 10~50个OSD,设置pg_num为4096。
# 超过50个OSD,可以参考pgcalc计算。

# 把ceph.conf配置文件推送到节点上
ceph-deploy config push ceph04 ceph05

# 查看一个存储池的状态
ceph osd pool stats mypool

 

名词解释
mon:提供Ceph集群存储拓扑、数据分布的Cluster Map以及认证。
mgr:提供集群数据的收集、检测等功能。
mds:CephFS文件系统接口的一个守护进程。
rgw:RGW对象存储接口的一个守护进程。
osd:Object Stroage Device,用于管理Ceph存储数据所用的硬盘设备的一个守护进程。

Ceph的客户端,通过与Mon节点进行通信,获取完整的Cluster Map,然后在客户端本地,用CRUSH算法,根据Cluster Map,以及对应存储池的放置组规则,
进行计算,获得所需数据存储于哪些OSD上面,然后直接与OSD建立通信进行读写。

上一篇:ceph学习一之基础知识


下一篇:17 个 Ceph 日常运维常见难点和故障的解决办法 | 运维进阶