검색

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

download PDF

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

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

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

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

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

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

Ceph 스토리지 클러스터를 시작한 후 데이터를 읽거나 쓰기 시작하기 전에 스토리지 클러스터의 상태를 먼저 확인합니다.

사전 요구 사항

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

프로세스

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

    예제

    root@host01 ~]# cephadm shell

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

    예제

    [ceph: root@host01 /]# ceph health
    HEALTH_OK

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

    예제

    [ceph: root@host01 /]# ceph status

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

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

      Ceph 클러스터를 시작할 때 HEALTH_WARN XXX 번호 배치 그룹과 같은 상태 경고가 발생할 수 있습니다. 잠시 기다렸다가 다시 확인하십시오. 스토리지 클러스터가 준비되면 ceph 상태는 HEALTH _OK 와 같은 메시지를 반환해야 합니다. 이 시점에서 클러스터 사용을 시작하는 것이 좋습니다.

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

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

사전 요구 사항

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

프로세스

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

    예제

    root@host01 ~]# cephadm shell

  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

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

사용된 값은 사용된 실제 원시 스토리지 양을 반영합니다. xxx GB / xxx GB 값은 클러스터의 전체 스토리지 용량 중 두 숫자 중 더 적은 수의 사용 가능한 양을 나타냅니다. notional 수는 저장된 데이터를 복제, 복제 또는 스냅샷하기 전의 크기를 반영합니다. 따라서 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

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이지만 실제 사용은 복제본 수(예: size = 3, 복제 및 스냅샷)에 따라 3MB 이상이 될 수 있습니다.

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

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

    MAX AVAIL 값을 계산하는 간단한 복제 풀의 ceph dfMAX AVAIL is incorrect 라는 Red Hat 지식베이스 문서를 참조하십시오.

  • QUOTA OBJECTS: 할당량 오브젝트 수입니다.
  • QUOTA BYTES: 할당량 오브젝트의 바이트 수입니다.
  • USED COMPR: 압축된 데이터, 할당, 복제 및 삭제 코딩 오버헤드를 포함하여 압축 데이터에 할당된 공간의 양입니다.
  • UNDER COMPR: 압축을 통해 전달되는 데이터의 양과 압축 형식으로 저장할 수 있을 만큼 유용합니다.UNDER COMPR: The amount of data passed through compression and beneficial enough to be stored in a compressed form.
참고

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

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

추가 리소스

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

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

사전 요구 사항

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

프로세스

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

    예제

    [root@host01 ~]# cephadm shell

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

    예제

    [ceph: root@host01 /]# ceph status

    또는

    예제

    [ceph: root@host01 /]# ceph -s

  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

3.1.7. Ceph Monitor 상태 확인

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

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

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

사전 요구 사항

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

프로세스

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

    예제

    [root@host01 ~]# cephadm shell

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

    예제

    [ceph: root@host01 /]# ceph mon stat

    또는

    예제

    [ceph: root@host01 /]# ceph mon dump

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

    [ceph: root@host01 /]# ceph quorum_status -f json-pretty

    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": "{}"
                }
            ]
        }
    }

3.1.8. Ceph 관리 소켓 사용

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

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

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

데몬이 실행되고 있지 않은 경우 관리 소켓을 사용하려고 할 때 다음 오류가 반환됩니다.

Error 111: Connection Refused
중요

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

사전 요구 사항

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

프로세스

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

    예제

    [root@host01 ~]# cephadm shell

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

    구문

    ceph daemon MONITOR_ID COMMAND

    교체:

    • 데몬의 MONITOR_ID
    • 실행할 명령을 사용합니다. 지정된 데몬에서 사용 가능한 명령을 나열하려면 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"
      }

      예제

      [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
      }

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

    구문

    ceph daemon /var/run/ceph/SOCKET_FILE COMMAND

  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
    }

    참고

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

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

    예제

    [ceph: root@host01 /]# ls /var/run/ceph

3.1.9. Ceph OSD 상태 이해

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

참고

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

OSD 상태

ceph health,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

또는

예제

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

결과에 따라 맵 epoch, eNNNN, 총 OSD 수, x, 최대 수, y 가 몇 개, z 가 몇 개인지 확인할 수 있습니다.

eNNNN: x osds: y up, z in

스토리지 클러스터에 있는 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

작은 정보

잘 설계된 CRUSH 계층 구조를 통해 검색하는 기능은 물리적 위치를 더 빨리 식별하여 스토리지 클러스터의 문제를 해결하는 데 도움이 될 수 있습니다.

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

구문

systemctl start CEPH_OSD_SERVICE_ID

예제

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

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.