一旦你有一个运行的集群,你可能会使用CEPH工具来监控集群状态。监控集群一般包含对OSD状态、MONITORS状态、PLACEMENT GROUP状态和METADATA SERVER状态的监控。
交互模式
直接运行ceph命令,可以进入交互模式,例如:
cephceph> healthceph> statusceph> quorum_statusceph> mon_status
检查集群健康
在启动集群后、开始读写前,需要首先检查集群健康状态。可以通过以下命令检查集群健康状态:
ceph health
如果没有指定默认配置文件或者keyring的,需要手动指定:
ceph -c /path/to/conf -k /path/to/keyring health
刚启动ceph集群时,该命令可能会返回类似“ HEALTH_WARN XXX num placement groups stale
”。这些情况下需要等待一段时间再进行检查。等集群状态正常了,该命令应该返回“HEALTH_OK“。此时可以正常使用集群。
观察一个集群
为了观察集群不停刷新的日志,可以使用以下命令:
ceph -w
ceph会输出每个日志,例如:
cluster b370a29d-9287-4ca3-ab57-3d824f65e339 health HEALTH_OK monmap e1: 1 mons at {ceph1=10.0.0.8:6789/0}, election epoch 2, quorum 0 ceph1 osdmap e63: 2 osds: 2 up, 2 in pgmap v41338: 952 pgs, 20 pools, 17130 MB data, 2199 objects 115 GB used, 167 GB / 297 GB avail 952 active+clean 2014-06-02 15:45:21.655871 osd.0 [INF] 17.71 deep-scrub ok 2014-06-02 15:45:47.880608 osd.1 [INF] 1.0 scrub ok 2014-06-02 15:45:48.865375 osd.1 [INF] 1.3 scrub ok 2014-06-02 15:45:50.866479 osd.1 [INF] 1.4 scrub ok 2014-06-02 15:45:01.345821 mon.0 [INF] pgmap v41339: 952 pgs: 952 active+clean; 17130 MB data, 115 GB used, 167 GB / 297 GB avail 2014-06-02 15:45:05.718640 mon.0 [INF] pgmap v41340: 952 pgs: 1 active+clean+scrubbing+deep, 951 active+clean; 17130 MB data, 115 GB used, 167 GB / 297 GB avail 2014-06-02 15:45:53.997726 osd.1 [INF] 1.5 scrub ok 2014-06-02 15:45:06.734270 mon.0 [INF] pgmap v41341: 952 pgs: 1 active+clean+scrubbing+deep, 951 active+clean; 17130 MB data, 115 GB used, 167 GB / 297 GB avail 2014-06-02 15:45:15.722456 mon.0 [INF] pgmap v41342: 952 pgs: 952 active+clean; 17130 MB data, 115 GB used, 167 GB / 297 GB avail 2014-06-02 15:46:06.836430 osd.0 [INF] 17.75 deep-scrub ok 2014-06-02 15:45:55.720929 mon.0 [INF] pgmap v41343: 952 pgs: 1 active+clean+scrubbing+deep, 951 active+clean; 17130 MB data, 115 GB used, 167 GB / 297 GB avail
输出包含以下信息:
Cluster ID 集群ID
Cluster health status 集群健康状态
The monitor map epoch and the status of the monitor quorum
The OSD map epoch and the status of OSDs
The placement group map version palcement group版本 :v41338
pg数量和pools
名义上总使用存储空间和存储的对象数量
总数据存储空间
Ceph如何统计空间
used值反映了实际使用的原生存储空间。xxx GB / xxx GB小的值反映了集群所有可用空间的值。概念数(notional number ,这里是17130 MB data)指的是数据没有被复制、克隆、快照的大小。此外,ceph存储数据实际使用空间远超过概念数空间,因为ceph会创建数据副本并且可能会进行克隆和快照。
检查集群空间使用状态
可以使用df选项检查数据使用情况:ceph df
输出示范:
ceph df
其中GLOBAL章节输出的是集群总使用情况:
SIZE:集群总空间
AVAIL:集群可用空间
RAW USED:存储已用空间
%RAW UESD:已用空间百分比。可以使用full radio和near full radio来保证不达到存储的上限。
POOLS章节出书的是所有POOL和该POOL使用的概念数空。这个输出不包含复制、克隆和快照。例如,这里显示存储一个对象使用了1M,notional使用显示为1M,但是实际使用空间会是2M或者更多(根据副本、克隆、快照的数量决定)。
NAME:pool的名称
ID:pool的id
USED:notional已经使用的空间
%USED:notional已经使用空间的百分比
Objects:notional存储的对象数量
注意 在POOLS中的数量是概念性的,他们不包含复制、快照或者克隆。这样的结果是USED和%USED的总数只和是和GLOBAL中RAW USED和%RAW USED不一致的。
检查集群状态
为了检查集群状态,执行以下命令:
ceph status
或者:
ceph -s
在交互模式下,可以使用status:
ceph> status
Ceph会返回状态结果. 一个仅有1个monitor和2个OSDs的返回值是:
cluster b370a29d-9287-4ca3-ab57-3d824f65e339 health HEALTH_OK monmap e1: 1 mons at {ceph1=10.0.0.8:6789/0}, election epoch 2, quorum 0 ceph1 osdmap e63: 2 osds: 2 up, 2 in pgmap v41332: 952 pgs, 20 pools, 17130 MB data, 2199 objects 115 GB used, 167 GB / 297 GB avail 1 active+clean+scrubbing+deep 951 active+clean
检查OSD状态
可以通过以下命令监控OSD状态:
ceph osd stat
或者:
ceph osd dump
你可以根据OSD在CRUSH map中的位置检查他们:
ceph osd tree
Ceph会返回host中CRUSH树和OSDs的状态、权重:
# id weight type name up/down reweight -1 3 pool default -3 3 rack mainrack -2 3 host osd-host 0 1 osd.0 up 1 1 1 osd.1 up 1 2 1 osd.2 up 1
更多信息,请参考 Monitoring OSDs and Placement Groups.
检查MONITOR状态
如果集群有多个MON,在集群开启后、读写数据前,需要检查monitor quorum status(集群仲裁状态)。当有多个monitors节点时,仲裁是必须要有的。应该定期检查monitor状态。
执行以下命令进行检查monitor:
ceph mon stat
Or:
ceph mon dump
检查仲裁:
ceph quorum_status
Ceph会返回仲裁状态。例如,一个有三个monitors组成的集群可能会返回:
{ "election_epoch": 10, "quorum": [ 0, 1, 2], "monmap": { "epoch": 1, "fsid": "444b489c-4f16-4b75-83f0-cb8097468898", "modified": "2011-12-12 13:28:27.505520", "created": "2011-12-12 13:28:27.505520", "mons": [ { "rank": 0, "name": "a", "addr": "127.0.0.1:6789\/0"}, { "rank": 1, "name": "b", "addr": "127.0.0.1:6790\/0"}, { "rank": 2, "name": "c", "addr": "127.0.0.1:6791\/0"} ] }}
检查MDS状态
Metadata servers provide metadata services for Ceph FS. Metadata servers have two sets of states: up | down and active | inactive. To ensure your metadata servers are up and active, execute the following:
ceph mds stat
To display details of the metadata cluster, execute the following:
ceph mds dump
检查PLACEMENT GROUP状态
PG会将对象对应到OSDs。当你监控pgs,你会希望他们都处于active+clean状态。更多信息请参考: Monitoring OSDs and Placement Groups.
USING THE ADMIN SOCKET使用ADMIN
Ceph admin socket允许你通过socket接口查询一个进程。默认情况下,Ceph的sockets文件的路径是/var/run/ceph。为了通过socket获取进程信息,需要登录到运行进程的主机并且运行以下命令:
ceph daemon {daemon-name} ceph daemon {path-to-socket-file}
例如,以下操作是相同的:
ceph daemon osd.0 foo ceph daemon /var/run/ceph/ceph-osd.0.asok foo
使用以下命令查看可以使用的管理socket信息:
ceph daemon {daemon-name} help
管理socket允许你在进程运行的时候显示和配置它。查看Viewing a Configuration at Runtime获取更详细的信息。另外,你可以在进程运行的时候直接设置参数。