我们可以通过修改ceph.conf来设置ceph的副本数量,比如我们设置副本数为2:
$vi ceph.conf [global] fsid = c10f9ac8-6524-48ea-bb52-257936e42b35 mon_initial_members = ceph1, ceph2, ceph3 mon_host = 10.0.2.5,10.0.2.7,10.0.2.8 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true osd pool default size = 2
如果有专用的存储外网和存储内网的划分,那也可以通过修改ceph.conf来定义存储外网的网段:
public network = {ip-address}/{netmask}
3、运行 ceph-deploy install 命令在各节点上安装 ceph 软件
在管理节点上使用dpadminm帐号:
$ceph-deploy install ceph1
因为从ceph官方源下载数据很慢,所以上面的安装操作在等待一定时间后管理节点就超时报错了。但此时,在存储节点上实际上仍然在运行yum下载安装包,所以可以把管理节点的报错放一边,等待存储节点的yum安装完成。验证方法是登录存储节点,当使用ceph -v可以得到正确的输出时,证明存储节点上的ceph软件包安装已经成功了。这时,再次从管理节点运行ceph-deploy install ceph1 。
使用同样的方法处理存储节点2,3 。
在管理节点上使用root帐号:
# ceph-deploy install ceph-mgmt
安装完成后,在存储节点上查看ceph的版本信息:
$ceph -v
4、初始化集群的监控服务并收集密钥文件
$cd my-cluster $ceph-deploy mon create-initial $ ls ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph.conf ceph.mon.keyring ceph.bootstrap-osd.keyring ceph.client.admin.keyring ceph.log5、增加OSDs
先要确认需要使用的数据磁盘没有做过任何分区初始化。否则就需要使用下面的方法对磁盘进行处理一下。
ceph-deploy disk zap {osd-server-name}:{disk-name} ceph-deploy disk zap osdserver1:sdb
查看存储节点的磁盘信息:
$ceph-deploy disk list ceph1 $ceph-deploy disk list ceph2 $ceph-deploy disk list ceph3需要能看到类似下面这样的输出信息:
[ceph1][DEBUG ] /dev/vdb other, unknown [ceph1][DEBUG ] /dev/vdc other, unknown
关于怎么处理OSD进程的journal数据,有多种方法:不使用独立的journal分区或磁盘;使用独立的journal分区或磁盘。
在我们这个实验环境中,没有使用专门的journal分区或磁盘。
在管理节点上把OSD磁盘放入集群中并激活:
命令格式为$ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
注:经实际验证,按官网文档先prepare再activate的操作步骤会报错“RuntimeError: Failed to execute command: ceph-disk -v activate --mark-init systemd --mount /dev/vdb”。这应该属于软件的一个bug。而直接使用create命令(相当于prepare+activate)则可以成功完成加入OSD磁盘并激活的任务。如果执行了上面的命令并遇到报错后,需要先清除存储节点的分区信息,然后将存储节点系统重启,最后从管理节点上使用ceph-deploy disk list命令查看存储节点的磁盘状态是否恢复的初始状态。
使用create命令在一个步骤中完成OSD磁盘的加入和激活:
$ceph-deploy osd create ceph1:/dev/vdb ceph2:/dev/vdb ceph3:/dev/vdb $ceph-deploy osd create ceph1:/dev/vdc ceph2:/dev/vdc ceph3:/dev/vdc6、将 配置文件和Admin key 复制到各个节点
使用dpadmin用户:
$ceph-deploy admin ceph{1,2,3}
使用root用户:
# cp ceph.client.admin.keyring ceph.conf /etc/ceph #chmod +r /etc/ceph/ceph.client.admin.keyring
在所有存储节点上设置好密钥文��读权限:
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
7、Ceph集群的监控
查看ceph集群的健康状态:
$ ceph ceph> health HEALTH_OK ceph> status cluster ef472f1b-8967-4041-826c-18bd31118a9a health HEALTH_OK monmap e1: 3 mons at {ceph1=10.0.2.5:6789/0,ceph2=10.0.2.7:6789/0,ceph3=10.0.2.8:6789/0} election epoch 4, quorum 0,1,2 ceph1,ceph2,ceph3 osdmap e34: 6 osds: 6 up, 6 in flags sortbitwise pgmap v82: 64 pgs, 1 pools, 0 bytes data, 0 objects 203 MB used, 569 GB / 569 GB avail 64 active+clean ceph> quorum_status {"election_epoch":4,"quorum":[0,1,2],"quorum_names":["ceph1","ceph2","ceph3"],"quorum_leader_name":"ceph1","monmap":{"epoch":1,"fsid":"ef472f1b-8967-4041-826c-18bd31118a9a","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"ceph1","addr":"10.0.2.5:6789\/0"},{"rank":1,"name":"ceph2","addr":"10.0.2.7:6789\/0"},{"rank":2,"name":"ceph3","addr":"10.0.2.8:6789\/0"}]}} ceph> mon_status {"name":"ceph2","rank":1,"state":"peon","election_epoch":4,"quorum":[0,1,2],"outside_quorum":[],"extra_probe_peers":["10.0.2.5:6789\/0","10.0.2.8:6789\/0"],"sync_provider":[],"monmap":{"epoch":1,"fsid":"ef472f1b-8967-4041-826c-18bd31118a9a","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"ceph1","addr":"10.0.2.5:6789\/0"},{"rank":1,"name":"ceph2","addr":"10.0.2.7:6789\/0"},{"rank":2,"name":"ceph3","addr":"10.0.2.8:6789\/0"}]}} ceph> osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.55618 root default -2 0.18539 host ceph1 0 0.09270 osd.0 up 1.00000 1.00000 3 0.09270 osd.3 up 1.00000 1.00000 -3 0.18539 host ceph2 1 0.09270 osd.1 up 1.00000 1.00000 4 0.09270 osd.4 up 1.00000 1.00000 -4 0.18539 host ceph3 2 0.09270 osd.2 up 1.00000 1.00000 5 0.09270 osd.5 up 1.00000 1.00000
实时观察ceph集群工作状态的命令:$ceph -w
查看ceph存储集群的存储空间使用率:$ceph df
注:这个命令显示的pools使用情况,仅是逻辑意义上的一份数据占用的空间,而实际上ceph集群还会存储更多的副本、克隆和快照。
查看ceph集群状态:
$ceph status 或$ceph -s
查看OSD服务的状态:
$ ceph osd stat $ ceph osd dump $ ceph osd tree以上均是从不同角度,展示的OSDs的进程状态信息。
查看MONITOR状态:
$ceph mon stat $ceph mon dump $ceph quorum_status
查看MDS状态:
$ceph mds stat $ceph mds dump