一旦你有一个运行的集群,你可能会使用CEPH工具来监控集群状态。监控集群一般包含对OSD状态、MONITORS状态、PLACEMENT GROUP状态和METADATA SERVER状态的监控。
 
 交互模式
直接运行ceph命令,可以进入交互模式,例如:
 
 
ceph
ceph> health
ceph> status
ceph> quorum_status
ceph> mon_status 
 检查集群健康
在启动集群后、开始读写前,需要首先检查集群健康状态。可以通过以下命令检查集群健康状态:
 
 
ceph health
 
 
如果没有指定默认配置文件或者keyring的,需要手动指定:
 
 
ceph -c /path/to/conf -k /path/to/keyring health
 
  
 
  
  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获取更详细的信息。另外,你可以在进程运行的时候直接设置参数。