3장. Ceph 스토리지 클러스터 모니터링


스토리지 관리자는 Ceph의 개별 구성 요소 상태를 모니터링하고 함께 Red Hat Ceph Storage 클러스터의 전반적인 상태를 모니터링할 수 있습니다.

Red Hat Ceph Storage 클러스터가 실행 중이면 스토리지 클러스터 모니터링을 시작하여 Ceph Monitor 및 Ceph OSD 데몬이 높은 수준에서 실행 중인지 확인할 수 있습니다. Ceph 스토리지 클러스터 클라이언트는 Ceph Monitor에 연결하고 최신 버전의 스토리지 클러스터 맵을 수신하므로 스토리지 클러스터 내 Ceph 풀에 데이터를 읽고 쓸 수 있습니다. 따라서 모니터 클러스터는 Ceph 클라이언트가 데이터를 읽고 쓸 수 있기 전에 클러스터 상태에 대해 동의해야 합니다.

Ceph OSD는 보조 OSD에서 배치 그룹 사본과 기본 OSD의 배치 그룹을 피어링해야 합니다. 오류가 발생하면 피어링은 활성 + 클린 상태가 아닌 다른 것을 반영합니다.

3.1. Ceph 스토리지 클러스터의 고급 모니터링

스토리지 관리자는 Ceph 데몬의 상태를 모니터링하여 실행 중인지 확인할 수 있습니다. 또한 높은 수준의 모니터링에는 스토리지 클러스터 용량을 확인하여 스토리지 클러스터가 전체 비율 을 초과하지 않도록 해야 합니다. Red Hat Ceph Storage 대시보드 는 고급 모니터링을 수행하는 가장 일반적인 방법입니다. 그러나 명령줄 인터페이스, Ceph admin 소켓 또는 Ceph API를 사용하여 스토리지 클러스터를 모니터링할 수도 있습니다.

3.1.1. 스토리지 클러스터 상태 확인

Ceph 스토리지 클러스터를 시작하고 데이터 읽기 또는 쓰기를 시작하기 전에 스토리지 클러스터 상태를 먼저 확인합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 사용하여 Ceph 스토리지 클러스터의 상태를 확인할 수 있습니다.

    예제

    [ceph: root@host01 /]# ceph health
    HEALTH_OK
    Copy to Clipboard Toggle word wrap

  3. ceph status 명령을 실행하여 Ceph 스토리지 클러스터의 상태를 확인할 수 있습니다.

    예제

    [ceph: root@host01 /]# ceph status
    Copy to Clipboard Toggle word wrap

    출력은 다음 정보를 제공합니다.

    • 클러스터 ID
    • 클러스터 상태
    • 모니터 맵 epoch 및 monitor 쿼럼의 상태입니다.
    • OSD는 epoch 및 OSD 상태를 매핑합니다.
    • Ceph Manager의 상태입니다.
    • 오브젝트 게이트웨이의 상태입니다.
    • 배치 그룹 맵 버전입니다.
    • 배치 그룹 및 풀 수입니다.
    • 저장된 데이터의 양과 저장된 오브젝트 수입니다.
    • 저장된 총 데이터 양입니다.
    • IO 클라이언트 작업입니다.
    • 클러스터가 업그레이드 중인 경우 업그레이드 프로세스에서 업데이트

      Ceph 클러스터를 시작하면 HEALT H_WARN XXX num 배치 그룹 오래된 상태 경고가 표시될 수 있습니다. 잠시 기다렸다가 다시 확인하십시오. 스토리지 클러스터가 준비되면 ceph 상태가 HEALTH_OK 와 같은 메시지를 반환해야 합니다. 이 시점에서 클러스터 사용을 시작할 수 있습니다.

3.1.2. 스토리지 클러스터 이벤트 감시

명령줄 인터페이스를 사용하여 Ceph 스토리지 클러스터에서 발생하는 이벤트를 조사할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 클러스터의 진행 이벤트를 조사하려면 다음 명령을 실행합니다.

    예제

    [ceph: root@host01 /]# ceph -w
      cluster:
        id:     8c9b0072-67ca-11eb-af06-001a4a0002a0
        health: HEALTH_OK
    
      services:
        mon: 2 daemons, quorum Ceph5-2,Ceph5-adm (age 3d)
        mgr: Ceph5-1.nqikfh(active, since 3w), standbys: Ceph5-adm.meckej
        osd: 5 osds: 5 up (since 2d), 5 in (since 8w)
        rgw: 2 daemons active (test_realm.test_zone.Ceph5-2.bfdwcn, test_realm.test_zone.Ceph5-adm.acndrh)
    
      data:
        pools:   11 pools, 273 pgs
        objects: 459 objects, 32 KiB
        usage:   2.6 GiB used, 72 GiB / 75 GiB avail
        pgs:     273 active+clean
    
      io:
        client:   170 B/s rd, 730 KiB/s wr, 0 op/s rd, 729 op/s wr
    
    2021-06-02 15:45:21.655871 osd.0 [INF] 17.71 deep-scrub ok
    2021-06-02 15:45:47.880608 osd.1 [INF] 1.0 scrub ok
    2021-06-02 15:45:48.865375 osd.1 [INF] 1.3 scrub ok
    2021-06-02 15:45:50.866479 osd.1 [INF] 1.4 scrub ok
    2021-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
    2021-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
    2021-06-02 15:45:53.997726 osd.1 [INF] 1.5 scrub ok
    2021-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
    2021-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
    2021-06-02 15:46:06.836430 osd.0 [INF] 17.75 deep-scrub ok
    2021-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
    Copy to Clipboard Toggle word wrap

3.1.3. Ceph에서 데이터 사용량 계산 방법

사용된 값은 사용된 실제 원시 스토리지의 양을 반영합니다. xxxGB / xxx GB 값은 클러스터의 전체 스토리지 용량의 두 숫자의 사용 가능한 크기를 의미합니다. 개념 번호는 저장된 데이터의 크기를 복제, 복제 또는 스냅샷하기 전에 반영합니다. 따라서 Ceph가 데이터 복제본을 생성하고 복제 및 스냅샷에 스토리지 용량을 사용할 수도 있기 때문에 일반적으로 저장된 개념적인 양의 데이터를 실제로 저장하는 데이터 양을 초과합니다.

3.1.4. 스토리지 클러스터 사용량 통계 이해

풀 간 클러스터의 데이터 사용량 및 데이터 배포를 확인하려면 df 옵션을 사용합니다. Linux df 명령과 유사합니다.

ceph dfceph status 명령 출력에서 SIZE/AVAIL/RAW USED 는 일부 OSD가 클러스터의 OUT 으로 표시된 경우 모든 OSD가 IN 인 경우와 다릅니다. SIZE/AVAIL/RAW USEDSIZE (osd disk size), RAW USE (total used space on disk) 및 IN 상태에 있는 모든 OSD의 AVAIL 에서 계산됩니다. ceph osd df tree 명령 출력의 모든 OSD에 대해 총 SIZE/AVAIL/RAW USED 를 확인할 수 있습니다.

예제

[ceph: root@host01 /]#ceph df
--- RAW STORAGE ---
CLASS   SIZE    AVAIL     USED  RAW USED  %RAW USED
hdd    5 TiB  2.9 TiB  2.1 TiB   2.1 TiB      42.98
TOTAL  5 TiB  2.9 TiB  2.1 TiB   2.1 TiB      42.98

--- POOLS ---
POOL                        ID  PGS   STORED  OBJECTS     USED  %USED  MAX AVAIL
.mgr                         1    1  5.3 MiB        3   16 MiB      0    629 GiB
.rgw.root                    2   32  1.3 KiB        4   48 KiB      0    629 GiB
default.rgw.log              3   32  3.6 KiB      209  408 KiB      0    629 GiB
default.rgw.control          4   32      0 B        8      0 B      0    629 GiB
default.rgw.meta             5   32  1.7 KiB       10   96 KiB      0    629 GiB
default.rgw.buckets.index    7   32  5.5 MiB       22   17 MiB      0    629 GiB
default.rgw.buckets.data     8   32  807 KiB        3  2.4 MiB      0    629 GiB
default.rgw.buckets.non-ec   9   32  1.0 MiB        1  3.1 MiB      0    629 GiB
source-ecpool-86            11   32  1.2 TiB  391.13k  2.1 TiB  53.49    1.1 TiB
Copy to Clipboard Toggle word wrap

ceph df detail 명령은 할당량 오브젝트, 할당량 바이트, 사용된 압축 등 다른 풀 통계에 대해 자세히 설명합니다.

출력의 RAW STORAGE 섹션에서는 스토리지 클러스터가 데이터용으로 관리하는 스토리지 크기에 대한 개요를 제공합니다.

  • CLASS: OSD 장치의 클래스입니다.
  • 크기: 스토리지 클러스터에서 관리하는 스토리지 용량의 양입니다.

    위의 예에서 SIZE 가 90GiB이면 복제 요소 없이 총 크기입니다. 기본값은 3입니다. 복제 요소가 있는 사용 가능한 총 용량은 90GiB/3 = 30GiB입니다. 기본적으로 0.85%의 전체 비율에 따라 사용 가능한 최대 공간은 30GiB * 0.85 = 25.5GiB입니다.

  • AVAIL: 스토리지 클러스터에서 사용 가능한 공간의 양입니다.

    위의 예에서 SIZE 가 90GiB이고 USED 공간이 6GiB인 경우 AVAIL 공간은 84GiB입니다. 기본적으로 복제 요소가 3개인 사용 가능한 총 공간은 84GiB/3 = 28GiB입니다.

  • USED: 사용자 데이터가 사용하는 원시 스토리지의 양입니다.

    위의 예에서 100MiB는 복제 요소를 고려한 후 사용 가능한 총 공간입니다. 실제 사용 가능한 크기는 33MiB입니다. RAW USED: 사용자 데이터, 내부 오버헤드 또는 예약된 용량에서 사용하는 원시 스토리지의 양입니다.

  • % RAW USED: RAW USED 의 백분율입니다. 이 숫자를 풀 비율함께 사용하여 스토리지 클러스터의 용량에 도달하지 않도록 합니다.

출력의 POOLS 섹션에서는 풀 목록과 각 풀의 개념 사용을 제공합니다. 이 섹션의 출력은 복제본, 복제본 또는 스냅샷을 반영 하지 않습니다. 예를 들어 1MB의 데이터가 포함된 오브젝트를 저장하는 경우 개념적 사용은 1MB이지만 실제 사용량은 복제본 수에 따라 3MB 이상(예: size = 3, clones, snapshots)일 수 있습니다.

  • POOL: 풀의 이름입니다.
  • ID: 풀 ID입니다.
  • STORED: 사용자가 풀에 저장된 실제 데이터 양입니다. 이 값은 (k+M)/K 값에 따른 원시 사용 데이터, 오브젝트 복사본 수 및 풀 통계 계산 시 성능이 저하된 오브젝트 수에 따라 변경됩니다.
  • OBJECTS: 풀당 저장된 오브젝트 수입니다. STORED 크기 * 복제 요소입니다.
  • USED: 킬로바이트 단위의 경우 숫자에 M (MB)을 추가하지 않는 한 킬로바이트 단위로 저장된 데이터의 양입니다.
  • %USED: 풀당 사용된 스토리지의 주요 비율입니다.
  • max AVAIL: 이 풀에 쓸 수 있는 개념적 데이터의 양을 추정합니다. 첫 번째 OSD가 가득 차기 전에 사용할 수 있는 데이터 양입니다. CRUSH 맵의 디스크 간에 데이터를 예상하고 첫 번째 OSD를 사용하여 대상으로 채웁니다.

    위의 예에서 MAX AVAIL 은 복제 요소를 고려하지 않고 153.85MB이며 기본적으로 3개입니다.

    MAX AVAIL 의 값을 계산하는 간단한 복제 풀의 경우 ceph df MAX AVAIL이라는 Red Hat Knowledgebase 문서를 참조하십시오.

  • QUOTA OBJECTS: 할당량 오브젝트 수입니다.
  • QUOTA BYTES: 할당량 오브젝트의 바이트 수입니다.
  • USED COMPR: 압축된 데이터, 할당, 복제 및 삭제 코딩 오버헤드를 포함하여 압축된 데이터에 할당된 공간의 양입니다.
  • COMPR: 압축을 통해 전달된 데이터의 양과 압축 형식으로 저장할 수 있을 만큼 유용합니다.
참고

POOLS 섹션의 숫자는 주목할 가치가 있습니다. 복제본, 스냅샷 또는 복제본 수를 포함하지 않습니다. 그 결과 USED%USED 금액의 합계는 출력의 GLOBAL 섹션에 RAW USED%RAW USED 금액에 추가되지 않습니다.

참고

MAX AVAIL 값은 사용된 복제 또는 삭제 코드의 복잡한 기능, 장치에 스토리지를 매핑하는 CRUSH 규칙, 해당 장치의 사용률, 구성된 mon_osd_full_ratio.

3.1.5. OSD 사용 통계 이해

ceph osd df 명령을 사용하여 OSD 사용률을 확인합니다.

예제

[ceph: root@host01 /]# ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE    USE     DATA    OMAP    META    AVAIL   %USE VAR  PGS
 3   hdd 0.90959  1.00000  931GiB 70.1GiB 69.1GiB      0B    1GiB  861GiB 7.53 2.93  66
 4   hdd 0.90959  1.00000  931GiB 1.30GiB  308MiB      0B    1GiB  930GiB 0.14 0.05  59
 0   hdd 0.90959  1.00000  931GiB 18.1GiB 17.1GiB      0B    1GiB  913GiB 1.94 0.76  57
MIN/MAX VAR: 0.02/2.98  STDDEV: 2.91
Copy to Clipboard Toggle word wrap

  • ID: OSD의 이름입니다.
  • CLASS: OSD가 사용하는 장치 유형입니다.
  • w EIGHT: CRUSH 맵에 있는 OSD의 가중치입니다.
  • Re WEIGHT: 기본 가중치 값입니다.
  • SIZE: OSD의 전체 스토리지 용량입니다.
  • USE: OSD 용량입니다.
  • DATA: 사용자 데이터에서 사용하는 OSD 용량의 양입니다.
  • OMAP: 오브젝트 맵(omap) 데이터(Ren sdb에 저장된 키 값)를 저장하는 데 사용되는 bluefs 스토리지의 추정치 값입니다.
  • META: 할당된 bluefs 공간 또는 bluestore_bluefs_min 매개변수에 설정된 값이 더 큰 경우 bluefs 에 할당된 총 공간으로 계산된 내부 메타데이터의 경우 예상 오맵 데이터 크기를 뺀 값입니다.
  • AVAIL: OSD에서 사용 가능한 공간의 양입니다.
  • %USE: OSD에서 사용하는 스토리지의 주요 비율
  • VAR: 위 또는 평균 사용률 이하의 변형.
  • PGS: OSD의 배치 그룹 수입니다.
  • MIN/MAX VAR: 모든 OSD의 최소 및 최대 변형입니다.

3.1.6. 스토리지 클러스터 상태 확인

명령줄 인터페이스에서 Red Hat Ceph Storage 클러스터의 상태를 확인할 수 있습니다. status sub 명령 또는 -s 인수는 스토리지 클러스터의 현재 상태를 표시합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 스토리지 클러스터 상태를 확인하려면 다음을 실행합니다.

    예제

    [ceph: root@host01 /]# ceph status
    Copy to Clipboard Toggle word wrap

    또는

    예제

    [ceph: root@host01 /]# ceph -s
    Copy to Clipboard Toggle word wrap

  3. 대화형 모드에서 ceph 를 입력하고 Enter 를 누릅니다.

    예제

    [ceph: root@host01 /]# ceph
    ceph> status
      cluster:
        id:     499829b4-832f-11eb-8d6d-001a4a000635
        health: HEALTH_WARN
                1 stray daemon(s) not managed by cephadm
                1/3 mons down, quorum host03,host02
                too many PGs per OSD (261 > max 250)
    
      services:
        mon:     3 daemons, quorum host03,host02 (age 3d), out of quorum: host01
        mgr:     host01.hdhzwn(active, since 9d), standbys: host05.eobuuv, host06.wquwpj
        osd:     12 osds: 11 up (since 2w), 11 in (since 5w)
        rgw:     2 daemons active (test_realm.test_zone.host04.hgbvnq, test_realm.test_zone.host05.yqqilm)
        rgw-nfs: 1 daemon active (nfs.foo.host06-rgw)
    
      data:
        pools:   8 pools, 960 pgs
        objects: 414 objects, 1.0 MiB
        usage:   5.7 GiB used, 214 GiB / 220 GiB avail
        pgs:     960 active+clean
    
      io:
        client:   41 KiB/s rd, 0 B/s wr, 41 op/s rd, 27 op/s wr
    
    ceph> health
    HEALTH_WARN 1 stray daemon(s) not managed by cephadm; 1/3 mons down, quorum host03,host02; too many PGs per OSD (261 > max 250)
    
    ceph> mon stat
    e3: 3 mons at {host01=[v2:10.74.255.0:3300/0,v1:10.74.255.0:6789/0],host02=[v2:10.74.249.253:3300/0,v1:10.74.249.253:6789/0],host03=[v2:10.74.251.164:3300/0,v1:10.74.251.164:6789/0]}, election epoch 6688, leader 1 host03, quorum 1,2 host03,host02
    Copy to Clipboard Toggle word wrap

3.1.7. Ceph Monitor 상태 확인

스토리지 클러스터에 프로덕션 Red Hat Ceph Storage 클러스터에 대한 요구 사항인 Ceph Monitor가 여러 개 있는 경우 스토리지 클러스터를 시작한 후 Ceph Monitor 쿼럼 상태를 확인하고 데이터를 읽거나 쓰기 전에 확인할 수 있습니다.

여러 Ceph 모니터가 실행 중인 경우 쿼럼이 있어야 합니다.

Ceph Monitor 상태를 주기적으로 확인하여 실행 중인지 확인합니다. Ceph Monitor에 문제가 있는 경우 스토리지 클러스터 상태에 대한 계약을 방지할 수 있으므로 Ceph 클라이언트가 데이터를 읽고 쓰는 것을 방지할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. Ceph 모니터 맵을 표시하려면 다음을 실행합니다.

    예제

    [ceph: root@host01 /]# ceph mon stat
    Copy to Clipboard Toggle word wrap

    또는

    예제

    [ceph: root@host01 /]# ceph mon dump
    Copy to Clipboard Toggle word wrap

  3. 스토리지 클러스터의 쿼럼 상태를 확인하려면 다음을 실행합니다.

    [ceph: root@host01 /]# ceph quorum_status -f json-pretty
    Copy to Clipboard Toggle word wrap

    Ceph에서 쿼럼 상태를 반환합니다.

    예제

    {
        "election_epoch": 6686,
        "quorum": [
            0,
            1,
            2
        ],
        "quorum_names": [
            "host01",
            "host03",
            "host02"
        ],
        "quorum_leader_name": "host01",
        "quorum_age": 424884,
        "features": {
            "quorum_con": "4540138297136906239",
            "quorum_mon": [
                "kraken",
                "luminous",
                "mimic",
                "osdmap-prune",
                "nautilus",
                "octopus",
                "pacific",
                "elector-pinging"
            ]
        },
        "monmap": {
            "epoch": 3,
            "fsid": "499829b4-832f-11eb-8d6d-001a4a000635",
            "modified": "2021-03-15T04:51:38.621737Z",
            "created": "2021-03-12T12:35:16.911339Z",
            "min_mon_release": 16,
            "min_mon_release_name": "pacific",
            "election_strategy": 1,
            "disallowed_leaders: ": "",
            "stretch_mode": false,
            "features": {
                "persistent": [
                    "kraken",
                    "luminous",
                    "mimic",
                    "osdmap-prune",
                    "nautilus",
                    "octopus",
                    "pacific",
                    "elector-pinging"
                ],
                "optional": []
            },
            "mons": [
                {
                    "rank": 0,
                    "name": "host01",
                    "public_addrs": {
                        "addrvec": [
                            {
                                "type": "v2",
                                "addr": "10.74.255.0:3300",
                                "nonce": 0
                            },
                            {
                                "type": "v1",
                                "addr": "10.74.255.0:6789",
                                "nonce": 0
                            }
                        ]
                    },
                    "addr": "10.74.255.0:6789/0",
                    "public_addr": "10.74.255.0:6789/0",
                    "priority": 0,
                    "weight": 0,
                    "crush_location": "{}"
                },
                {
                    "rank": 1,
                    "name": "host03",
                    "public_addrs": {
                        "addrvec": [
                            {
                                "type": "v2",
                                "addr": "10.74.251.164:3300",
                                "nonce": 0
                            },
                            {
                                "type": "v1",
                                "addr": "10.74.251.164:6789",
                                "nonce": 0
                            }
                        ]
                    },
                    "addr": "10.74.251.164:6789/0",
                    "public_addr": "10.74.251.164:6789/0",
                    "priority": 0,
                    "weight": 0,
                    "crush_location": "{}"
                },
                {
                    "rank": 2,
                    "name": "host02",
                    "public_addrs": {
                        "addrvec": [
                            {
                                "type": "v2",
                                "addr": "10.74.249.253:3300",
                                "nonce": 0
                            },
                            {
                                "type": "v1",
                                "addr": "10.74.249.253:6789",
                                "nonce": 0
                            }
                        ]
                    },
                    "addr": "10.74.249.253:6789/0",
                    "public_addr": "10.74.249.253:6789/0",
                    "priority": 0,
                    "weight": 0,
                    "crush_location": "{}"
                }
            ]
        }
    }
    Copy to Clipboard Toggle word wrap

3.1.8. Ceph 관리 소켓 사용

UNIX 소켓을 사용하여 지정된 데몬과 직접 상호 작용하도록 관리 소켓을 사용합니다. 예를 들어 소켓을 사용하면 다음을 수행할 수 있습니다.

  • 런타임 시 Ceph 구성 나열
  • 모니터에 의존하지 않고 런타임에 직접 구성 값을 설정합니다. 이 기능은 모니터가 다운 된 경우 유용합니다.
  • 기록 작업 덤프
  • 작업 우선 순위 큐 상태 덤프
  • 재부팅하지 않고 덤프 작업
  • 덤프 성능 카운터

또한 소켓을 사용하면 Ceph 모니터 또는 OSD와 관련된 문제를 해결할 때 유용합니다.

데몬이 실행되지 않으면 관리 소켓을 사용할 때 다음 오류가 반환됩니다.

Error 111: Connection Refused
Copy to Clipboard Toggle word wrap
중요

관리 소켓은 데몬이 실행 중인 경우에만 사용할 수 있습니다. 데몬을 올바르게 종료하면 관리 소켓이 제거됩니다. 그러나 데몬이 예기치 않게 종료되면 관리 소켓이 지속될 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

절차

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell
    Copy to Clipboard Toggle word wrap

  2. 소켓을 사용하려면 다음을 수행합니다.

    구문

    ceph daemon MONITOR_ID COMMAND
    Copy to Clipboard Toggle word wrap

    교체:

    • 데몬의 MONITOR_ID
    • 실행할 명령을 사용하여 COMMAND. 지정된 데몬에 사용 가능한 명령을 나열하려면 help 를 사용합니다.

      Ceph 모니터의 상태를 보려면 다음을 수행합니다.

      예제

      [ceph: root@host01 /]# ceph daemon mon.host01 help
      {
          "add_bootstrap_peer_hint": "add peer address as potential bootstrap peer for cluster bringup",
          "add_bootstrap_peer_hintv": "add peer address vector as potential bootstrap peer for cluster bringup",
          "compact": "cause compaction of monitor's leveldb/rocksdb storage",
          "config diff": "dump diff of current config and default config",
          "config diff get": "dump diff get <field>: dump diff of current and default config setting <field>",
          "config get": "config get <field>: get the config value",
          "config help": "get config setting schema and descriptions",
          "config set": "config set <field> <val> [<val> ...]: set a config variable",
          "config show": "dump current config settings",
          "config unset": "config unset <field>: unset a config variable",
          "connection scores dump": "show the scores used in connectivity-based elections",
          "connection scores reset": "reset the scores used in connectivity-based elections",
          "counter dump": "dump all labeled and non-labeled counters and their values",
          "counter schema": "dump all labeled and non-labeled counters schemas",
          "dump_historic_ops": "show recent ops",
          "dump_historic_slow_ops": "show recent slow ops",
          "dump_mempools": "get mempool stats",
          "get_command_descriptions": "list available commands",
          "git_version": "get git sha1",
          "heap": "show heap usage info (available only if compiled with tcmalloc)",
          "help": "list available commands",
          "injectargs": "inject configuration arguments into running daemon",
          "log dump": "dump recent log entries to log file",
          "log flush": "flush log entries to log file",
          "log reopen": "reopen log file",
          "mon_status": "report status of monitors",
          "ops": "show the ops currently in flight",
          "perf dump": "dump non-labeled counters and their values",
          "perf histogram dump": "dump perf histogram values",
          "perf histogram schema": "dump perf histogram schema",
          "perf reset": "perf reset <name>: perf reset all or one perfcounter name",
          "perf schema": "dump non-labeled counters schemas",
          "quorum enter": "force monitor back into quorum",
          "quorum exit": "force monitor out of the quorum",
          "sessions": "list existing sessions",
          "smart": "Query health metrics for underlying device",
          "sync_force": "force sync of and clear monitor store",
          "version": "get ceph version"
      }
      Copy to Clipboard Toggle word wrap

      예제

      [ceph: root@host01 /]# ceph daemon mon.host01 mon_status
      
      {
          "name": "host01",
          "rank": 0,
          "state": "leader",
          "election_epoch": 120,
          "quorum": [
              0,
              1,
              2
          ],
          "quorum_age": 206358,
          "features": {
              "required_con": "2449958747317026820",
              "required_mon": [
                  "kraken",
                  "luminous",
                  "mimic",
                  "osdmap-prune",
                  "nautilus",
                  "octopus",
                  "pacific",
                  "elector-pinging"
              ],
              "quorum_con": "4540138297136906239",
              "quorum_mon": [
                  "kraken",
                  "luminous",
                  "mimic",
                  "osdmap-prune",
                  "nautilus",
                  "octopus",
                  "pacific",
                  "elector-pinging"
              ]
          },
          "outside_quorum": [],
          "extra_probe_peers": [],
          "sync_provider": [],
          "monmap": {
              "epoch": 3,
              "fsid": "81a4597a-b711-11eb-8cb8-001a4a000740",
              "modified": "2021-05-18T05:50:17.782128Z",
              "created": "2021-05-17T13:13:13.383313Z",
              "min_mon_release": 16,
              "min_mon_release_name": "pacific",
              "election_strategy": 1,
              "disallowed_leaders: ": "",
              "stretch_mode": false,
              "features": {
                  "persistent": [
                      "kraken",
                      "luminous",
                      "mimic",
                      "osdmap-prune",
                      "nautilus",
                      "octopus",
                      "pacific",
                      "elector-pinging"
                  ],
                  "optional": []
              },
              "mons": [
                  {
                      "rank": 0,
                      "name": "host01",
                      "public_addrs": {
                          "addrvec": [
                              {
                                  "type": "v2",
                                  "addr": "10.74.249.41:3300",
                                  "nonce": 0
                              },
                              {
                                  "type": "v1",
                                  "addr": "10.74.249.41:6789",
                                  "nonce": 0
                              }
                          ]
                      },
                      "addr": "10.74.249.41:6789/0",
                      "public_addr": "10.74.249.41:6789/0",
                      "priority": 0,
                      "weight": 0,
                      "crush_location": "{}"
                  },
                  {
                      "rank": 1,
                      "name": "host02",
                      "public_addrs": {
                          "addrvec": [
                              {
                                  "type": "v2",
                                  "addr": "10.74.249.55:3300",
                                  "nonce": 0
                              },
                              {
                                  "type": "v1",
                                  "addr": "10.74.249.55:6789",
                                  "nonce": 0
                              }
                          ]
                      },
                      "addr": "10.74.249.55:6789/0",
                      "public_addr": "10.74.249.55:6789/0",
                      "priority": 0,
                      "weight": 0,
                      "crush_location": "{}"
                  },
                  {
                      "rank": 2,
                      "name": "host03",
                      "public_addrs": {
                          "addrvec": [
                              {
                                  "type": "v2",
                                  "addr": "10.74.249.49:3300",
                                  "nonce": 0
                              },
                              {
                                  "type": "v1",
                                  "addr": "10.74.249.49:6789",
                                  "nonce": 0
                              }
                          ]
                      },
                      "addr": "10.74.249.49:6789/0",
                      "public_addr": "10.74.249.49:6789/0",
                      "priority": 0,
                      "weight": 0,
                      "crush_location": "{}"
                  }
              ]
          },
          "feature_map": {
              "mon": [
                  {
                      "features": "0x3f01cfb9fffdffff",
                      "release": "luminous",
                      "num": 1
                  }
              ],
              "osd": [
                  {
                      "features": "0x3f01cfb9fffdffff",
                      "release": "luminous",
                      "num": 3
                  }
              ]
          },
          "stretch_mode": false
      }
      Copy to Clipboard Toggle word wrap

  3. 또는 소켓 파일을 사용하여 Ceph 데몬을 지정합니다.

    구문

    ceph daemon /var/run/ceph/SOCKET_FILE COMMAND
    Copy to Clipboard Toggle word wrap

  4. 특정 호스트에서 osd.0 이라는 Ceph OSD의 상태를 보려면 다음을 수행합니다.

    예제

    [ceph: root@host01 /]# ceph daemon /var/run/ceph/ceph-osd.0.asok status
    {
        "cluster_fsid": "9029b252-1668-11ee-9399-001a4a000429",
        "osd_fsid": "1de9b064-b7a5-4c54-9395-02ccda637d21",
        "whoami": 0,
        "state": "active",
        "oldest_map": 1,
        "newest_map": 58,
        "num_pgs": 33
    }
    Copy to Clipboard Toggle word wrap

    참고

    특정 데몬에 사용할 수 있는 다양한 옵션의 상태 대신 help 를 사용할 수 있습니다.

  5. Ceph 프로세스의 모든 소켓 파일을 나열하려면 다음을 수행합니다.

    예제

    [ceph: root@host01 /]# ls /var/run/ceph
    Copy to Clipboard Toggle word wrap

3.1.9. Ceph OSD 상태 이해

Ceph OSD의 상태 스토리지 클러스터에서 또는 스토리지 클러스터 외부에 있습니다. 실행 중이거나 실행 중이거나 실행 중이 닙니다. Ceph OSD가 작동 중인 경우 스토리지 클러스터에서 데이터를 읽고 쓸 수 있거나 스토리지 클러스터에서 데이터가 부족 할 수 있습니다. 스토리지 클러스터에 있고 최근에 스토리지 클러스터에서 이동하면 Ceph 에서 배치 그룹을 다른 Ceph OSD로 마이그레이션하기 시작합니다. Ceph OSD가 스토리지 클러스터 외부에 있는 경우 CRUSH는 Ceph OSD에 배치 그룹을 할당하지 않습니다. Ceph OSD가 다운 된 경우에 도 문제가 발생합니다.

참고

Ceph OSD가 다운 되어 있는 경우 문제가 발생하고 스토리지 클러스터가 정상 상태가 되지 않습니다.

ceph 상태,ceph -s 또는 ceph -w 와 같은 명령을 실행하는 경우 스토리지 클러스터가 항상 HEALTH OK 를 대체하지 않는 것을 확인할 수 있습니다. 패닉을 하지 마십시오. Ceph OSD와 관련하여 스토리지 클러스터는 몇 가지 예상 상황에서 HEALTH OK 를 표시 하지 않을 것으로 예상할 수 있습니다.

  • 스토리지 클러스터를 아직 시작하지 않았으며 응답하지 않았습니다.
  • 스토리지 클러스터를 시작하거나 다시 시작했으며 배치 그룹이 생성되고 Ceph OSD가 피어링 프로세스이기 때문에 아직 준비되지 않았습니다.
  • Ceph OSD를 추가 또는 삭제했습니다.
  • 스토리지 클러스터 맵을 방금 수정했습니다.

Ceph OSD 모니터링의 중요한 측면은 스토리지 클러스터에 있는 모든 Ceph OSD도 실행 중인지 확인하는 것입니다.

모든 OSD가 실행 중인지 확인하려면 다음을 실행합니다.

예제

[ceph: root@host01 /]# ceph osd stat
Copy to Clipboard Toggle word wrap

또는

예제

[ceph: root@host01 /]# ceph osd dump
Copy to Clipboard Toggle word wrap

결과는 epoch, eNNNN, 총 OSD 수, x, 최대 OSD 수, y, 최대 크기, z 의 수, z 있는 수를 알려주어야 합니다.

eNNNN: x osds: y up, z in
Copy to Clipboard Toggle word wrap

스토리지 클러스터에 있는 Ceph OSD 수가 Ceph OSD 수보다 은 경우 . 다음 명령을 실행하여 실행되지 않는 ceph-osd 데몬을 식별합니다.

예제

[ceph: root@host01 /]# ceph osd tree

# 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
Copy to Clipboard Toggle word wrap

작은 정보

잘 설계된 CRUSH 계층 구조를 통해 검색하는 기능을 사용하면 물리적 위치를 더 빠르게 식별하여 스토리지 클러스터 문제를 해결할 수 있습니다.

Ceph OSD가 다운 된 경우 노드에 연결하여 시작합니다. Red Hat Storage Console을 사용하여 Ceph OSD 데몬을 다시 시작하거나 명령줄을 사용할 수 있습니다.

구문

systemctl start CEPH_OSD_SERVICE_ID
Copy to Clipboard Toggle word wrap

예제

[root@host01 ~]# systemctl start ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.6.service
Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat