# 主节点安装基础环境 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建立通信进行读写。