관리 가이드
Red Hat Ceph Storage 관리
초록
1장. Ceph 관리 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage 클러스터는 모든 Ceph 배포의 기반입니다. Red Hat Ceph Storage 클러스터를 배포한 후에는 Red Hat Ceph Storage 클러스터를 정상 상태로 유지하고 최적의 상태로 성능을 유지할 수 있는 관리 작업이 있습니다.
Red Hat Ceph Storage 관리 가이드를 통해 스토리지 관리자는 다음과 같은 작업을 수행할 수 있습니다.
- Red Hat Ceph Storage 클러스터의 상태를 확인하려면 어떻게 해야 합니까?
- Red Hat Ceph Storage 클러스터 서비스를 시작하고 중지하는 방법은 무엇입니까?
- 실행 중인 Red Hat Ceph Storage 클러스터에서 OSD를 추가하거나 제거하려면 어떻게 해야 합니까?
- Red Hat Ceph Storage 클러스터에 저장된 오브젝트에 대한 사용자 인증 및 액세스 제어를 관리하려면 어떻게 해야 합니까?
- Red Hat Ceph Storage 클러스터에서 덮어쓰기를 사용하는 방법을 이해하고 싶습니다.
- Red Hat Ceph Storage 클러스터의 성능을 모니터링하고 싶습니다.
기본 Ceph 스토리지 클러스터는 두 가지 유형의 데몬으로 구성됩니다.
- Ceph OSD(Object Storage Device)는 OSD에 할당된 배치 그룹 내에서 데이터를 오브젝트로 저장합니다.
- Ceph 모니터는 클러스터 맵의 마스터 사본을 유지 관리합니다.
프로덕션 시스템에는 고가용성을 위해 3개 이상의 Ceph 모니터와 일반적으로 부하 분산을 위해 최소 50개의 OSD, 데이터 재조정 및 데이터 복구가 있습니다.
2장. Ceph 프로세스 관리 이해 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터의 유형 또는 인스턴스를 통해 다양한 Ceph 데몬을 조작할 수 있습니다. 이러한 데몬을 조작하면 필요에 따라 모든 Ceph 서비스를 시작, 중지 및 다시 시작할 수 있습니다.
2.1. Ceph 프로세스 관리 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage에서 모든 프로세스 관리는 Systemd 서비스를 통해 수행됩니다. Ceph 데몬을 시작,재시작, 중지 하려면 데몬 유형 또는 데몬 인스턴스를 지정해야 합니다.
추가 리소스
-
systemd사용에 대한 자세한 내용은 systemctl을 사용하여 시스템 서비스 관리를 참조하십시오.
2.2. systemctl 명령을 사용하여 모든 Ceph 데몬 시작, 중지 및 다시 시작 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 데몬을 중지하려는 호스트에서 모든 Ceph 데몬을 시작하고 중지하고 다시 시작할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
노드에
root액세스 권한이 있어야 합니다.
절차
데몬을 시작, 중지 및 재시작하려는 호스트에서 systemctl 서비스를 실행하여 서비스의 SERVICE_ID 를 가져옵니다.
예제
systemctl --type=service ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.service
[root@host01 ~]# systemctl --type=service ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 Ceph 데몬 시작:
구문
systemctl start SERVICE_ID
systemctl start SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl start ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.service
[root@host01 ~]# systemctl start ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 Ceph 데몬 중지:
구문
systemctl stop SERVICE_ID
systemctl stop SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl stop ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.service
[root@host01 ~]# systemctl stop ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 Ceph 데몬을 다시 시작합니다.
구문
systemctl restart SERVICE_ID
systemctl restart SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.service
[root@host01 ~]# systemctl restart ceph-499829b4-832f-11eb-8d6d-001a4a000635@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 모든 Ceph 서비스 시작, 중지 및 재시작 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 서비스는 동일한 유형의 Ceph 데몬의 논리 그룹입니다. 동일한 Red Hat Ceph Storage 클러스터에서 실행되도록 구성됩니다. Ceph의 오케스트레이션 계층을 사용하면 사용자가 이러한 서비스를 중앙 집중식 방식으로 관리할 수 있으므로 동일한 논리 서비스에 속하는 모든 Ceph 데몬에 영향을 주는 작업을 쉽게 실행할 수 있습니다. 각 호스트에서 실행 중인 Ceph 데몬은 Systemd 서비스를 통해 관리됩니다. Ceph 서비스를 관리하려는 호스트에서 모든 Ceph 서비스를 시작, 중지 및 다시 시작할 수 있습니다.
특정 호스트에서 특정 Ceph 데몬을 시작, 중지 또는 다시 시작하려면 SystemD 서비스를 사용해야 합니다. 특정 호스트에서 실행 중인 SystemD 서비스 목록을 가져오려면 호스트에 연결하고 다음 명령을 실행합니다.
예제
systemctl list-units “ceph*”
[root@host01 ~]# systemctl list-units “ceph*”
출력에서 각 Ceph 데몬을 관리하는 데 사용할 수 있는 서비스 이름 목록을 제공합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
노드에
root액세스 권한이 있어야 합니다.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph orch ls명령을 실행하여 Red Hat Ceph Storage 클러스터에 구성된 Ceph 서비스 목록을 가져오고 특정 서비스 ID를 가져옵니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 서비스를 시작하려면 다음 명령을 실행합니다.
구문
ceph orch start SERVICE_ID
ceph orch start SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch start node-exporter
[ceph: root@host01 /]# ceph orch start node-exporterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 서비스를 중지하려면 다음 명령을 실행합니다.
중요ceph orch stop SERVICE_ID명령을 실행하면 Red Hat Ceph Storage 클러스터에 액세스할 수 없게 되고 MON 및 MGR 서비스에만 액세스할 수 없게 됩니다.systemctl stop SERVICE_ID명령을 사용하여 호스트에서 특정 데몬을 중지하는 것이 좋습니다.구문
ceph orch stop SERVICE_ID
ceph orch stop SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch stop node-exporter
[ceph: root@host01 /]# ceph orch stop node-exporterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
ceph orch stop node-exporter명령은 노드 내보내기 서비스의 모든 데몬을 제거합니다.특정 서비스를 다시 시작하려면 다음 명령을 실행합니다.
구문
ceph orch restart SERVICE_ID
ceph orch restart SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch restart node-exporter
[ceph: root@host01 /]# ceph orch restart node-exporterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. 컨테이너에서 실행되는 Ceph 데몬의 로그 파일 보기 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너 호스트에서 journald 데몬을 사용하여 컨테이너에서 Ceph 데몬의 로그 파일을 확인합니다.
사전 요구 사항
- Red Hat Ceph Storage 소프트웨어 설치.
- 노드에 대한 루트 수준 액세스.
절차
전체 Ceph 로그 파일을 보려면 다음 형식으로 구성된
root로journalctl명령을 실행합니다.구문
journalctl -u ceph SERVICE_ID
journalctl -u ceph SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
journalctl -u ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.8.service
[root@host01 ~]# journalctl -u ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.8.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 예에서 ID가
osd.8인 OSD의 전체 로그를 볼 수 있습니다.최근 저널 항목만 표시하려면
-f옵션을 사용합니다.구문
journalctl -fu SERVICE_ID
journalctl -fu SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
journalctl -fu ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.8.service
[root@host01 ~]# journalctl -fu ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.8.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
sosreport 유틸리티를 사용하여 journald 로그를 볼 수도 있습니다. SOS 보고서에 대한 자세한 내용은 What is an sosreport and how to create one in Red Hat Enterprise Linux를 참조하십시오. Red Hat 고객 포털의 솔루션.
추가 리소스
-
journalctl도움말 페이지.
2.5. Red Hat Ceph Storage 클러스터의 전원을 끄고 재부팅 링크 복사링크가 클립보드에 복사되었습니다!
systemctl 명령과 Ceph Orchestrator의 두 가지 방법을 사용하여 Red Hat Ceph Storage 클러스터의 전원을 끄고 재부팅할 수 있습니다. 방법 중 하나를 선택하여 클러스터의 전원을 끄고 재부팅할 수 있습니다.
Ceph Object 게이트웨이 멀티사이트를 사용하여 Red Hat Ceph Storage 클러스터의 전원을 끄거나 재부팅할 때 IO가 진행되지 않았는지 확인합니다. 또한 사이트의 전원을 끄거나 한 번에 하나씩 전원을 끄십시오.
2.5.1. systemctl 명령을 사용하여 클러스터의 전원을 끄고 재부팅 링크 복사링크가 클립보드에 복사되었습니다!
systemctl 명령 접근 방식을 사용하여 Red Hat Ceph Storage 클러스터의 전원을 끄고 재부팅할 수 있습니다. 이 접근 방식은 서비스를 중지하는 Linux 방식을 따릅니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 루트 수준 액세스.
절차
Red Hat Ceph Storage 클러스터의 전원 끄기
- 클라이언트가 이 클러스터 및 기타 클라이언트에서 블록 장치 이미지 RADOS 게이트웨이 - Ceph 개체 게이트웨이를 사용하도록 중지합니다.
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터가 진행하기 전에 정상 상태(
Health_OK및 모든 PG활성+clean)여야 합니다. 클라이언트 인증 키(예: Ceph Monitor 또는 OpenStack 컨트롤러 노드)를 사용하여 호스트에서ceph 상태를실행하여 클러스터가 정상인지 확인합니다.예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph File System(
CephFS)을 사용하는 경우CephFS클러스터를 종료합니다.구문
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable false
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable false
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow noout ,
,norecovernorebalance,nobackfill, nodown,pause플래그를 설정합니다. Ceph Monitor 또는 OpenStack 컨트롤러 노드와 같이 클라이언트 인증 키가 있는 노드에서 다음을 실행합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요위의 예제는 OSD 노드에서 서비스와 각 OSD를 중지하는 데만 사용되며 각 OSD 노드에서 반복해야 합니다.
- MDS 및 Ceph Object Gateway 노드가 자체 전용 노드에 있는 경우 전원을 끕니다.
데몬의 systemd 대상을 가져옵니다.
예제
systemctl list-units --type target | grep ceph ceph-0b007564-ec48-11ee-b736-525400fd02f8.target loaded active active Ceph cluster 0b007564-ec48-11ee-b736-525400fd02f8 ceph.target loaded active active All Ceph clusters and services
[root@host01 ~]# systemctl list-units --type target | grep ceph ceph-0b007564-ec48-11ee-b736-525400fd02f8.target loaded active active Ceph cluster 0b007564-ec48-11ee-b736-525400fd02f8 ceph.target loaded active active All Ceph clusters and servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 FSID를 포함하는 대상을 비활성화합니다.
예제
systemctl disable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Removed "/etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target". Removed "/etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target".
[root@host01 ~]# systemctl disable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Removed "/etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target". Removed "/etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target".Copy to Clipboard Copied! Toggle word wrap Toggle overflow 대상을 중지합니다.
예제
systemctl stop ceph-0b007564-ec48-11ee-b736-525400fd02f8.target
[root@host01 ~]# systemctl stop ceph-0b007564-ec48-11ee-b736-525400fd02f8.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 중지해야 하는 호스트의 모든 데몬이 중지됩니다.
노드를 종료합니다.
예제
shutdown Shutdown scheduled for Wed 2024-03-27 11:47:19 EDT, use 'shutdown -c' to cancel.
[root@host01 ~]# shutdown Shutdown scheduled for Wed 2024-03-27 11:47:19 EDT, use 'shutdown -c' to cancel.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 클러스터의 모든 노드에 대해 위의 단계를 반복합니다.
Red Hat Ceph Storage 클러스터 재부팅
- 네트워크 장비가 관련된 경우 Ceph 호스트 또는 노드의 전원을 켜기 전에 전원이 켜져 있고 안정적인지 확인하십시오.
- 관리 노드의 전원을 켭니다.
systemd 대상을 활성화하여 모든 데몬을 실행합니다.
예제
systemctl enable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Created symlink /etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target → /etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target. Created symlink /etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target → /etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target.
[root@host01 ~]# systemctl enable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Created symlink /etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target → /etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target. Created symlink /etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target → /etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target.Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd 대상을 시작합니다.
예제
systemctl start ceph-0b007564-ec48-11ee-b736-525400fd02f8.target
[root@host01 ~]# systemctl start ceph-0b007564-ec48-11ee-b736-525400fd02f8.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 모든 노드가 시작될 때까지 기다립니다. 모든 서비스가 작동 중이며 노드 간에 연결 문제가 없는지 확인합니다.
noout ,
,norecovernorebalance,nobackfill, nodown 및플래그를 설정 해제합니다. Ceph Monitor 또는 OpenStack 컨트롤러 노드와 같이 클라이언트 인증 키가 있는 노드에서 다음을 실행합니다.pause예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph File System(
CephFS)을 사용하는 경우조인 가능한플래그를true로 설정하여CephFS클러스터를 다시 작동합니다.구문
ceph fs set FS_NAME joinable true
ceph fs set FS_NAME joinable trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph fs set cephfs joinable true
[ceph: root@host01 /]# ceph fs set cephfs joinable trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
클러스터가 정상 상태(
Health_OK및 모든 PG활성+clean)인지 확인합니다. 클라이언트 인증 키(예: Ceph Monitor 또는 OpenStack 컨트롤러 노드)를 사용하여 노드에서ceph 상태를실행하여 클러스터가 정상인지 확인합니다.
예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
2.5.2. Ceph Orchestrator를 사용하여 클러스터의 전원을 끄고 재부팅 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Orchestrator의 기능을 사용하여 Red Hat Ceph Storage 클러스터의 전원을 끄고 재부팅할 수도 있습니다. 대부분의 경우 클러스터 전원을 끄는 데 도움이 되는 단일 시스템 로그인입니다.
Ceph Orchestrator는 start,stop, restart 와 같은 여러 작업을 지원합니다. 일부의 경우, 클러스터의 전원을 끄거나 재부팅할 때 systemctl 과 함께 이러한 명령을 사용할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Red Hat Ceph Storage 클러스터의 전원 끄기
- 이 클러스터와 다른 클라이언트에서 사용자 블록 장치 이미지 및 Ceph 개체 게이트웨이를 사용하지 못하도록 클라이언트를 중지합니다.
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터가 진행하기 전에 정상 상태(
Health_OK및 모든 PG활성+clean)여야 합니다. 클라이언트 인증 키(예: Ceph Monitor 또는 OpenStack 컨트롤러 노드)를 사용하여 호스트에서ceph 상태를실행하여 클러스터가 정상인지 확인합니다.예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph File System(
CephFS)을 사용하는 경우CephFS클러스터를 종료합니다.구문
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable false ceph mds fail FS_NAME:N
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable false ceph mds fail FS_NAME:NCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable false [ceph: root@host01 /]# ceph mds fail cephfs:1
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable false [ceph: root@host01 /]# ceph mds fail cephfs:1Copy to Clipboard Copied! Toggle word wrap Toggle overflow noout ,
,norecovernorebalance,nobackfill, nodown,pause플래그를 설정합니다. Ceph Monitor 또는 OpenStack 컨트롤러 노드와 같이 클라이언트 인증 키가 있는 노드에서 다음을 실행합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MDS 서비스를 중지합니다.
MDS 서비스 이름을 가져옵니다.
예제
[ceph: root@host01 /]# ceph orch ls --service-type mds
[ceph: root@host01 /]# ceph orch ls --service-type mdsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계에서 가져온 이름을 사용하여 MDS 서비스를 중지합니다.
구문
ceph orch stop SERVICE-NAME
ceph orch stop SERVICE-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway 서비스를 중지합니다. 배포된 각 서비스에 대해 반복합니다.
Ceph Object Gateway 서비스 이름을 가져옵니다.
예제
[ceph: root@host01 /]# ceph orch ls --service-type rgw
[ceph: root@host01 /]# ceph orch ls --service-type rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 가져온 이름을 사용하여 Ceph Object Gateway 서비스를 중지합니다.
구문
ceph orch stop SERVICE-NAME
ceph orch stop SERVICE-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
Alertmanager 서비스를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch stop alertmanager
[ceph: root@host01 /]# ceph orch stop alertmanagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모니터링 스택의 일부인 node-exporter 서비스를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch stop node-exporter
[ceph: root@host01 /]# ceph orch stop node-exporterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Prometheus 서비스를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch stop prometheus
[ceph: root@host01 /]# ceph orch stop prometheusCopy to Clipboard Copied! Toggle word wrap Toggle overflow Grafana 대시보드 서비스를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch stop grafana
[ceph: root@host01 /]# ceph orch stop grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 크래시 서비스를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch stop crash
[ceph: root@host01 /]# ceph orch stop crashCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm 노드에서 OSD 노드를 하나씩 종료합니다. 클러스터의 모든 OSD에 대해 이 단계를 반복합니다.
OSD ID를 가져옵니다.
예제
[ceph: root@host01 /]# ceph orch ps --daemon-type=osd
[ceph: root@host01 /]# ceph orch ps --daemon-type=osdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 가져온 OSD ID를 사용하여 OSD 노드를 종료합니다.
예제
[ceph: root@host01 /]# ceph orch daemon stop osd.1 Scheduled to stop osd.1 on host 'host02'
[ceph: root@host01 /]# ceph orch daemon stop osd.1 Scheduled to stop osd.1 on host 'host02'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
한 번에 하나씩 모니터를 중지합니다.
모니터를 호스팅하는 호스트를 식별합니다.
예제
[ceph: root@host01 /]# ceph orch ps --daemon-type mon
[ceph: root@host01 /]# ceph orch ps --daemon-type monCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 호스트에서 모니터를 중지합니다.
systemctl단위 이름을 확인합니다.예제
[ceph: root@host01 /]# systemctl list-units ceph-* | grep mon
[ceph: root@host01 /]# systemctl list-units ceph-* | grep monCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 중지합니다.
구문
systemct stop SERVICE-NAME
systemct stop SERVICE-NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 모든 호스트를 종료합니다.
Red Hat Ceph Storage 클러스터 재부팅
- 네트워크 장비가 관련된 경우 Ceph 호스트 또는 노드의 전원을 켜기 전에 전원이 켜져 있고 안정적인지 확인하십시오.
- 모든 Ceph 호스트 전원을 켭니다.
Cephadm 쉘에서 관리 노드에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 서비스가 실행 중인지 확인합니다.
예제
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 상태가 'Health_OK'status인지 확인합니다.
예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow noout ,
,norecovernorebalance,nobackfill, nodown 및플래그를 설정 해제합니다. Ceph Monitor 또는 OpenStack 컨트롤러 노드와 같이 클라이언트 인증 키가 있는 노드에서 다음을 실행합니다.pause예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph File System(
CephFS)을 사용하는 경우조인 가능한플래그를true로 설정하여CephFS클러스터를 다시 작동합니다.구문
ceph fs set FS_NAME joinable true
ceph fs set FS_NAME joinable trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph fs set cephfs joinable true
[ceph: root@host01 /]# ceph fs set cephfs joinable trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
클러스터가 정상 상태(
Health_OK및 모든 PG활성+clean)인지 확인합니다. 클라이언트 인증 키(예: Ceph Monitor 또는 OpenStack 컨트롤러 노드)를 사용하여 노드에서ceph 상태를실행하여 클러스터가 정상인지 확인합니다.
예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
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 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
root@host01 ~]# cephadm shell
root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 Ceph 스토리지 클러스터의 상태를 확인할 수 있습니다.
예제
[ceph: root@host01 /]# ceph health HEALTH_OK
[ceph: root@host01 /]# ceph health HEALTH_OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph status명령을 실행하여 Ceph 스토리지 클러스터의 상태를 확인할 수 있습니다.예제
[ceph: root@host01 /]# ceph status
[ceph: root@host01 /]# ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음 정보를 제공합니다.
- 클러스터 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 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
root@host01 ~]# cephadm shell
root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 진행 이벤트를 조사하려면 다음 명령을 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. Ceph에서 데이터 사용량 계산 방법 링크 복사링크가 클립보드에 복사되었습니다!
사용된 값은 사용된 실제 원시 스토리지의 양을 반영합니다. xxxGB / xxx GB 값은 클러스터의 전체 스토리지 용량의 두 숫자의 사용 가능한 크기를 의미합니다. 개념 번호는 저장된 데이터의 크기를 복제, 복제 또는 스냅샷하기 전에 반영합니다. 따라서 Ceph가 데이터 복제본을 생성하고 복제 및 스냅샷에 스토리지 용량을 사용할 수도 있기 때문에 일반적으로 저장된 개념적인 양의 데이터를 실제로 저장하는 데이터 양을 초과합니다.
3.1.4. 스토리지 클러스터 사용량 통계 이해 링크 복사링크가 클립보드에 복사되었습니다!
풀 간 클러스터의 데이터 사용량 및 데이터 배포를 확인하려면 df 옵션을 사용합니다. Linux df 명령과 유사합니다.
ceph df 및 ceph status 명령 출력에서 SIZE/AVAIL/RAW USED 는 일부 OSD가 클러스터의 OUT 으로 표시된 경우 모든 OSD가 IN 인 경우와 다릅니다. SIZE/AVAIL/RAW USED 는 SIZE (osd disk size), RAW USE (total used space on disk) 및 IN 상태에 있는 모든 OSD의 AVAIL 에서 계산됩니다. ceph osd df tree 명령 출력의 모든 OSD에 대해 총 SIZE/AVAIL/RAW USED 를 확인할 수 있습니다.
예제
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 사용률을 확인합니다.
예제
- ID: OSD의 이름입니다.
- CLASS: OSD가 사용하는 장치 유형입니다.
- w EIGHT: CRUSH 맵에 있는 OSD의 가중치입니다.
- Re WEIGHT: 기본 가중치 값입니다.
- SIZE: OSD의 전체 스토리지 용량입니다.
- USE: OSD 용량입니다.
- DATA: 사용자 데이터에서 사용하는 OSD 용량의 양입니다.
-
OMAP: 오브젝트 맵(
omap) 데이터(Rensdb에 저장된 키 값)를 저장하는 데 사용되는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 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터 상태를 확인하려면 다음을 실행합니다.
예제
[ceph: root@host01 /]# ceph status
[ceph: root@host01 /]# ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 대화형 모드에서
ceph를 입력하고 Enter 를 누릅니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.7. Ceph Monitor 상태 확인 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클러스터에 프로덕션 Red Hat Ceph Storage 클러스터에 대한 요구 사항인 Ceph Monitor가 여러 개 있는 경우 스토리지 클러스터를 시작한 후 Ceph Monitor 쿼럼 상태를 확인하고 데이터를 읽거나 쓰기 전에 확인할 수 있습니다.
여러 Ceph 모니터가 실행 중인 경우 쿼럼이 있어야 합니다.
Ceph Monitor 상태를 주기적으로 확인하여 실행 중인지 확인합니다. Ceph Monitor에 문제가 있는 경우 스토리지 클러스터 상태에 대한 계약을 방지할 수 있으므로 Ceph 클라이언트가 데이터를 읽고 쓰는 것을 방지할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 모니터 맵을 표시하려면 다음을 실행합니다.
예제
[ceph: root@host01 /]# ceph mon stat
[ceph: root@host01 /]# ceph mon statCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
예제
[ceph: root@host01 /]# ceph mon dump
[ceph: root@host01 /]# ceph mon dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터의 쿼럼 상태를 확인하려면 다음을 실행합니다.
[ceph: root@host01 /]# ceph quorum_status -f json-pretty
[ceph: root@host01 /]# ceph quorum_status -f json-prettyCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph에서 쿼럼 상태를 반환합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.8. Ceph 관리 소켓 사용 링크 복사링크가 클립보드에 복사되었습니다!
UNIX 소켓을 사용하여 지정된 데몬과 직접 상호 작용하도록 관리 소켓을 사용합니다. 예를 들어 소켓을 사용하면 다음을 수행할 수 있습니다.
- 런타임 시 Ceph 구성 나열
-
모니터에 의존하지 않고 런타임에 직접 구성 값을 설정합니다. 이 기능은 모니터가
다운된 경우 유용합니다. - 기록 작업 덤프
- 작업 우선 순위 큐 상태 덤프
- 재부팅하지 않고 덤프 작업
- 덤프 성능 카운터
또한 소켓을 사용하면 Ceph 모니터 또는 OSD와 관련된 문제를 해결할 때 유용합니다.
데몬이 실행되지 않으면 관리 소켓을 사용할 때 다음 오류가 반환됩니다.
Error 111: Connection Refused
Error 111: Connection Refused
관리 소켓은 데몬이 실행 중인 경우에만 사용할 수 있습니다. 데몬을 올바르게 종료하면 관리 소켓이 제거됩니다. 그러나 데몬이 예기치 않게 종료되면 관리 소켓이 지속될 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 소켓을 사용하려면 다음을 수행합니다.
구문
ceph daemon MONITOR_ID COMMAND
ceph daemon MONITOR_ID COMMANDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 교체:
-
데몬의
MONITOR_ID 실행할 명령을 사용하여
COMMAND. 지정된 데몬에 사용 가능한 명령을 나열하려면help를 사용합니다.Ceph 모니터의 상태를 보려면 다음을 수행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
데몬의
또는 소켓 파일을 사용하여 Ceph 데몬을 지정합니다.
구문
ceph daemon /var/run/ceph/SOCKET_FILE COMMAND
ceph daemon /var/run/ceph/SOCKET_FILE COMMANDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 호스트에서
osd.0이라는 Ceph OSD의 상태를 보려면 다음을 수행합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고특정 데몬에 사용할 수 있는 다양한 옵션의
상태대신help를 사용할 수 있습니다.Ceph 프로세스의 모든 소켓 파일을 나열하려면 다음을 수행합니다.
예제
[ceph: root@host01 /]# ls /var/run/ceph
[ceph: root@host01 /]# ls /var/run/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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 -wHEALTH 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 stat
또는
예제
[ceph: root@host01 /]# ceph osd dump
[ceph: root@host01 /]# ceph osd dump
결과는 epoch, eNNNN, 총 OSD 수, x, 최대 OSD 수, y, 최대 크기, z 의 수, z 에 있는 수를 알려주어야 합니다.
eNNNN: x osds: y up, z in
eNNNN: x osds: y up, z in
스토리지 클러스터에 있는 Ceph OSD 수가 Ceph OSD 수보다 많 은 경우 . 다음 명령을 실행하여 실행되지 않는 ceph-osd 데몬을 식별합니다.
예제
잘 설계된 CRUSH 계층 구조를 통해 검색하는 기능을 사용하면 물리적 위치를 더 빠르게 식별하여 스토리지 클러스터 문제를 해결할 수 있습니다.
Ceph OSD가 다운 된 경우 노드에 연결하여 시작합니다. Red Hat Storage Console을 사용하여 Ceph OSD 데몬을 다시 시작하거나 명령줄을 사용할 수 있습니다.
구문
systemctl start CEPH_OSD_SERVICE_ID
systemctl start CEPH_OSD_SERVICE_ID
예제
systemctl start ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.6.service
[root@host01 ~]# systemctl start ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.6.service
3.2. Ceph 스토리지 클러스터의 하위 수준 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 낮은 수준의 관점에서 Red Hat Ceph Storage 클러스터의 상태를 모니터링할 수 있습니다. 하위 수준 모니터링은 일반적으로 Ceph OSD가 올바르게 피어링하는지 확인해야 합니다. 피어링 오류가 발생하면 배치 그룹이 성능 저하된 상태로 작동합니다. 이러한 성능 저하된 상태는 하드웨어 장애, 중단된 Ceph 데몬, 네트워크 대기 시간 또는 전체 사이트 중단과 같은 여러 가지 이유로 인해 발생할 수 있습니다.
3.2.1. 배치 그룹 세트 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
CRUSH가 Ceph OSD에 배치 그룹을 할당하면 풀의 복제본 수를 살펴보고 배치 그룹의 각 복제본이 다른 Ceph OSD에 할당되도록 배치 그룹을 Ceph OSD에 할당합니다. 예를 들어 풀에 배치 그룹의 복제본이 세 개 필요한 경우 CRUSH가 osd.1,osd.2 및 osd.3 에 각각 할당할 수 있습니다. CRUSH는 실제로 CRUSH 맵에서 설정한 실패 도메인을 고려할 의사 임의의 배치를 사용하므로 대규모 클러스터에서 가장 가까운 인접 Ceph OSD에 할당된 배치 그룹을 거의 볼 수 없습니다. 특정 배치 그룹의 복제본을 Acting Set 로 포함해야 하는 Ceph OSD 세트를 참조하십시오. 경우에 따라 Acting Set의 OSD가 다운 되었거나 배치 그룹의 개체에 대한 요청을 서비스할 수 없는 경우가 있습니다. 이러한 상황이 발생하면 패닉에 빠질 수 없습니다. 일반적인 예는 다음과 같습니다.
- OSD를 추가하거나 삭제했습니다. 그런 다음 CRUSH는 배치 그룹을 다른 Ceph OSD에 다시 할당함으로써 작동 세트의 구성을 변경하고 "backfill" 프로세스를 사용하여 데이터 마이그레이션을 생성합니다.
-
Ceph OSD
가다시 시작되었으며 이제복구되었습니다. -
작업 세트의 Ceph OSD는 작동
중단또는 서비스 요청을 처리할 수 없으며, 다른 Ceph OSD에서 해당 작업을 일시적으로 가정했습니다.
Ceph는 실제로 요청을 처리하는 Ceph OSD 세트인 Up Set 를 사용하여 클라이언트 요청을 처리합니다. 대부분의 경우 up 세트와 Acting Set는 사실상 동일합니다. Ceph가 데이터를 마이그레이션하지 않거나 Ceph OSD가 복구되었거나 문제가 있음을 나타낼 수 있습니다. 즉, Ceph는 일반적으로 이러한 시나리오에서 "stuck stale" 메시지와 함께 HEALTH WARN 상태를 에코합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배치 그룹 목록을 검색하려면 다음을 수행합니다.
예제
[ceph: root@host01 /]# ceph pg dump
[ceph: root@host01 /]# ceph pg dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 지정된 배치 그룹에 대한 활성 세트 또는 Up Set 에 있는 Ceph OSD를 확인합니다.
구문
ceph pg map PG_NUM
ceph pg map PG_NUMCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph pg map 128
[ceph: root@host01 /]# ceph pg map 128Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Up Set 및 Acting Set이 일치하지 않으면 스토리지 클러스터가 자체 또는 스토리지 클러스터의 잠재적인 문제를 재분산한다는 지표일 수 있습니다.
3.2.2. Ceph OSD 피어링 링크 복사링크가 클립보드에 복사되었습니다!
배치 그룹에 데이터를 쓰기 전에 먼저 활성 상태여야 하며 정리 된 상태 여야 합니다. Ceph가 배치 그룹의 현재 상태, 즉 작동 세트의 첫 번째 OSD인 배치 그룹의 기본 OSD를 확인하기 위해 보조 및 세 번째 OSD를 사용한 피어로 배치 그룹의 현재 상태에 대한 합의를 설정합니다. PG의 세 개의 복제본이 있는 풀을 가정합니다.
그림 3.1. peering
3.2.3. 배치 그룹 상태 링크 복사링크가 클립보드에 복사되었습니다!
ceph 상태 , 와 같은 명령을 실행하는 경우 클러스터가 ceph -s 또는 ceph -wHEALTH OK 를 항상 표시하지 않는 것을 확인할 수 있습니다. OSD가 실행 중인지 확인한 후 배치 그룹 상태도 확인해야 합니다. 여러 배치 그룹 피어링 관련 상황에서 클러스터가 HEALTH OK 를 표시 하지 않아야 합니다.
- 방금 풀과 배치 그룹을 만들었으므로 아직 피어링되지 않았습니다.
- 배치 그룹이 복구됩니다.
- OSD를 클러스터에 추가하거나 클러스터에서 OSD를 제거했습니다.
- CRUSH 맵을 방금 수정했으며 배치 그룹이 마이그레이션 중입니다.
- 배치 그룹의 여러 복제본에 일관성 없는 데이터가 있습니다.
- Ceph는 배치 그룹의 복제본을 스크럽하고 있습니다.
- Ceph에는 백필 작업을 완료할 수 있는 충분한 스토리지 용량이 없습니다.
관련 상황 중 하나가 Ceph가 HEALTH WARN 을 에코하도록 하는 경우 패닉을 발휘하지 마십시오. 대부분의 경우 클러스터가 자체적으로 복구됩니다. 경우에 따라 조치를 취해야 할 수도 있습니다. 배치 그룹을 모니터링하는 중요한 측면은 클러스터가 모든 배치 그룹이 활성 상태인지, 가장 바람직하게 실행 중인지 확인하는 것입니다.
모든 배치 그룹의 상태를 보려면 다음을 실행합니다.
예제
[ceph: root@host01 /]# ceph pg stat
[ceph: root@host01 /]# ceph pg stat
결과적으로 배치 그룹 맵 버전, vNNNNNN, 총 배치 그룹 수, x, 배치 그룹 수, y.가 active+clean 과 같은 특정 상태에 있음을 알 수 있습니다.
vNNNNNN: x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
vNNNNNN: x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
Ceph에서 배치 그룹에 대한 여러 상태를 보고하는 것이 일반적입니다.
스냅샷 PG 상태
스냅샷이 존재하는 경우, 두 개의 추가 PG 상태가 보고됩니다.
-
snaptrim: PG는 현재 트리밍 중입니다. -
snaptrim_wait: PG가 트리밍 대기 중입니다.
출력 예:
244 active+clean+snaptrim_wait 32 active+clean+snaptrim
244 active+clean+snaptrim_wait
32 active+clean+snaptrim
Ceph는 배치 그룹 상태 외에도 사용된 데이터 양, aa, 스토리지 용량은 나머지 스토리지 용량, bb, 배치 그룹의 총 스토리지 용량을 반환합니다. 이러한 수치는 몇 가지 경우에 중요할 수 있습니다.
-
가장 가
까운 비율 또는에 도달하고 있습니다.전체 비율 - CRUSH 구성의 오류로 인해 데이터가 클러스터에 배포되지 않습니다.
배치 그룹 ID
배치 그룹 ID는 풀 이름이 아니라 풀 번호로 구성되며 마침표(.)와 배치 그룹 ID- .a 16진수가 옵니다. ceph osd lspools 출력에서 풀 번호와 해당 이름을 볼 수 있습니다. 기본 풀 이름 data,metadata 및 rbd 는 각각 풀 번호 0,1 및 2 에 해당합니다. 정규화된 배치 그룹 ID에는 다음과 같은 형식이 있습니다.
구문
POOL_NUM.PG_ID
POOL_NUM.PG_ID
출력 예:
0.1f
0.1f
배치 그룹 목록을 검색하려면 다음을 수행합니다.
예제
[ceph: root@host01 /]# ceph pg dump
[ceph: root@host01 /]# ceph pg dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력을 JSON 형식으로 포맷하고 파일에 저장하려면 다음을 수행합니다.
구문
ceph pg dump -o FILE_NAME --format=json
ceph pg dump -o FILE_NAME --format=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph pg dump -o test --format=json
[ceph: root@host01 /]# ceph pg dump -o test --format=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 배치 그룹을 쿼리합니다.
구문
ceph pg POOL_NUM.PG_ID query
ceph pg POOL_NUM.PG_ID queryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.4. 배치 그룹 생성 상태 링크 복사링크가 클립보드에 복사되었습니다!
풀을 만들면 지정한 배치 그룹 수가 생성됩니다. Ceph는 하나 이상의 배치 그룹을 만들 때 생성 을 에코합니다. 배치 그룹이 생성되면 배치 그룹의 Acting Set에 속하는 OSD가 피어링됩니다. 피어링이 완료되면 배치 그룹 상태가 active+clean 여야 합니다. 즉, Ceph 클라이언트가 배치 그룹에 쓰기를 시작할 수 있습니다.
3.2.5. 배치 그룹 피어링 상태 링크 복사링크가 클립보드에 복사되었습니다!
Ceph가 배치 그룹을 피어링하는 경우 Ceph는 배치 그룹의 복제본을 저장하는 OSD를 배치 그룹 의 개체 및 메타데이터의 상태에 대해 합의합니다. Ceph가 피어링을 완료하면 배치 그룹을 저장하는 OSD가 배치 그룹의 현재 상태에 대해 동의합니다. 그러나 피어링 프로세스를 완료해도 각 복제본에 최신 콘텐츠가 포함되어 있지 않습니다.
권한 있는 내역
Ceph는 동작 세트의 모든 OSD가 쓰기 작업을 유지할 때까지 클라이언트에 대한 쓰기 작업을 승인 하지 않습니다. 이 관행은 행위 세트의 적어도 하나의 멤버가 마지막 피어링 작업 이후 승인 된 모든 쓰기 작업의 기록을 가질 수 있도록합니다.
확인된 각 쓰기 작업의 정확한 레코드로 Ceph는 배치 그룹의 새로운 권한 있는 이력을 구성하고 배포할 수 있습니다. 완료되면 배치 그룹의 OSD 복사본을 최신 상태로 가져오는 완전한 정렬 작업 세트가 수행됩니다.
3.2.6. 배치 그룹 활성 상태 링크 복사링크가 클립보드에 복사되었습니다!
Ceph가 피어링 프로세스를 완료하면 배치 그룹이 활성 상태가 될 수 있습니다. 활성 상태는 배치 그룹의 데이터를 일반적으로 기본 배치 그룹 및 읽기 및 쓰기 작업에 대한 복제본에서 사용할 수 있음을 의미합니다.
3.2.7. 배치 그룹 정리 상태 링크 복사링크가 클립보드에 복사되었습니다!
배치 그룹이 정리 상태에 있으면 기본 OSD와 복제본 OSD가 성공적으로 피어링되고 배치 그룹에 대한 stray 복제본이 없습니다. Ceph는 배치 그룹의 모든 오브젝트를 올바른 횟수로 복제했습니다.
3.2.8. 배치 그룹 성능 저하된 상태 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트가 기본 OSD에 개체를 쓸 때 기본 OSD는 복제본 OSD에 복제본을 작성합니다. 기본 OSD는 오브젝트를 스토리지에 쓴 후 Ceph가 복제본 오브젝트를 성공적으로 생성한 복제본 OSD에서 승인을 받을 때까지 배치 그룹이 성능 저하 상태로 유지됩니다.
배치 그룹이 활성+degraded 일 수 있는 이유는 아직 모든 오브젝트를 보유하지 않더라도 OSD가 활성화 될 수 있기 때문입니다. OSD가 다운 된 경우 Ceph는 OSD에 할당된 각 배치 그룹을 성능 저하 로 표시합니다. Ceph OSD가 다시 온라인 상태가 되면 Ceph OSD가 다시 피어링해야 합니다. 그러나 클라이언트는 활성화 된 경우 성능이 저하된 배치 그룹에 새 개체를 작성할 수 있습니다.
OSD가 다운 되어 성능이 저하된 조건이 지속되면 Ceph에서 OSD를 클러스터 외부에서 표시하고 다운 OSD에서 다른 OSD로 데이터를 다시 매핑할 수 있습니다. 표시된 것과 표시된 사이의 시간은 기본적으로 600 초로 설정된 mon_osd_ 에 의해 제어됩니다.
down _ out _interval
Ceph가 배치 그룹에 있다고 생각되는 하나 이상의 개체를 찾을 수 없기 때문에 배치 그룹 성능이 저하 될 수도 있습니다. unfound 개체를 읽거나 쓸 수는 없지만 성능이 저하된 배치 그룹의 다른 모든 개체에 계속 액세스할 수 있습니다.
예를 들어 세 가지 방법으로 복제본 풀의 OSD 9개가 있는 경우. OSD 번호 9가 다운되면 OSD 9에 할당된 PG가 저하된 상태가 됩니다. OSD 9가 복구되지 않으면 스토리지 클러스터에서 벗어나 스토리지 클러스터의 균형을 다시 조정합니다. 이 시나리오에서는 PG가 저하된 다음 활성 상태로 복구됩니다.
3.2.9. 배치 그룹 복구 상태 링크 복사링크가 클립보드에 복사되었습니다!
Ceph는 하드웨어와 소프트웨어 문제가 지속적으로 발생하는 규모에 대한 장애 발생을 위해 설계되었습니다. OSD가 다운 되면 해당 콘텐츠는 배치 그룹의 다른 복제본의 현재 상태 뒤에 떨어질 수 있습니다. OSD가 백업 되면 현재 상태를 반영하도록 배치 그룹의 콘텐츠를 업데이트해야 합니다. 이 기간 동안 OSD는 복구 상태를 반영할 수 있습니다.
하드웨어 장애로 인해 여러 Ceph OSD가 계단식으로 실패할 수 있으므로 복구가 항상 간단한 것은 아닙니다. 예를 들어 랙 또는 캐비닛의 네트워크 스위치가 실패할 수 있으므로 여러 호스트 시스템의 OSD가 스토리지 클러스터의 현재 상태에 떨어질 수 있습니다. 각 OSD는 오류가 해결되면 복구해야 합니다.
Ceph는 새 서비스 요청 간 리소스 경합과 데이터 개체를 복구하고 배치 그룹을 현재 상태로 복원하는 필요성 간의 균형을 유지하는 다양한 설정을 제공합니다. osd 복구 지연 시작 설정을 사용하면 OSD가 복구 프로세스를 시작하기 전에 일부 재생 요청을 다시 시작하고 다시 실행할 수 있습니다. osd 복구 스레드 설정은 기본적으로 하나의 스레드로 복구 프로세스의 스레드 수를 제한합니다. 여러 Ceph OSD가 실패, 재시작 및 staggered rate에서 피어를 다시 시작할 수 있으므로 osd 복구 스레드 시간 초과는 스레드 시간 초과를 설정합니다. osd 복구 max 활성 설정은 Ceph OSD가 동시에 작동하는 복구 요청 수를 제한하여 Ceph OSD를 서비스하지 않도록 합니다. osd 복구 max chunk 설정은 네트워크 혼잡을 방지하기 위해 복구된 데이터 청크의 크기를 제한합니다.
3.2.10. back fill state 링크 복사링크가 클립보드에 복사되었습니다!
새 Ceph OSD가 스토리지 클러스터에 참여하면 CRUSH가 클러스터의 OSD에서 새로 추가된 Ceph OSD에 배치 그룹을 다시 할당합니다. 새 OSD가 재 할당 배치 그룹을 즉시 수락하도록 강제 적용하면 새 Ceph OSD에 과도한 부하를 줄 수 있습니다. 배치 그룹으로 OSD를 다시 채우면 이 프로세스가 백그라운드에서 시작됩니다. 백필이 완료되면 새 OSD가 준비되면 요청 제공을 시작합니다.
백필 작업 중에 다음과 같은 몇 가지 상태 중 하나가 표시될 수 있습니다.
-
backfill_wait는 백필 작업이 보류 중이지만 아직 진행되지 않음을 나타냅니다. -
backfill은 백필 작업이 진행 중임을 나타냅니다. -
backfill_too_full은 백필 작업이 요청되었지만 스토리지 용량이 부족하여 완료할 수 없음을 나타냅니다.
배치 그룹을 다시 채울 수 없는 경우 불완전 한 것으로 간주될 수 있습니다.
Ceph는 특히 새 Ceph OSD에 배치 그룹을 재할당하는 것과 관련된 부하 급증을 관리할 수 있는 여러 가지 설정을 제공합니다. 기본적으로 osd_max_backfills 는 Ceph OSD에서 Ceph OSD로 또는 10으로 동시 백필의 최대 수를 설정합니다. osd 백필 비율을 사용하면 OSD가 전체 비율 (기본적으로 85%)에 접근하면 Ceph OSD에서 백필 요청을 거부할 수 있습니다. OSD에서 백필 요청을 거부하면 osd backfill 재시도 간격 을 사용하면 OSD에서 기본적으로 10초 후에 요청을 재시도할 수 있습니다. OSD는 osd backfill scan min 및 osd backfill scan max 를 설정하여 기본적으로 64 및 512의 검사 간격을 관리할 수 있습니다.
일부 워크로드의 경우 일반 복구를 완전히 방지하고 대신 백필을 사용하는 것이 좋습니다. 백필이 백그라운드에서 이루어지므로 OSD의 개체를 I/O로 진행할 수 있습니다. osd_min_pg_log_entries 옵션을 1 로 설정하고 osd_max_pg_log_entries 옵션을 2 로 설정하여 복구 대신 백필을 강제 적용할 수 있습니다. 이 상황이 워크로드에 적합한 시기에 대한 자세한 내용은 Red Hat 지원 계정 팀에 문의하십시오.
3.2.11. 배치 그룹 다시 매핑 상태 링크 복사링크가 클립보드에 복사되었습니다!
Acting Set that services a placement group이 변경되면 데이터는 이전 동작 세트에서 새로운 동작 세트로 마이그레이션됩니다. 새로운 기본 OSD가 서비스 요청을 처리하는 데 다소 시간이 걸릴 수 있습니다. 따라서 배치 그룹 마이그레이션이 완료될 때까지 이전 주에서 서비스 요청을 계속 실행하도록 요청할 수 있습니다. 데이터 마이그레이션이 완료되면 매핑은 새로운 동작 세트의 기본 OSD를 사용합니다.
3.2.12. 배치 그룹 오래된 상태 링크 복사링크가 클립보드에 복사되었습니다!
Ceph는 하트비트를 사용하여 호스트 및 데몬이 실행 중인지 확인하지만 ceph-osd 데몬은 통계를 적시에 보고하지 않는 상태가 끊긴 상태가 될 수도 있습니다. 예를 들어, 일시적인 네트워크 오류가 발생합니다. 기본적으로 OSD 데몬은 배치 그룹, 최대 thru, 부팅 및 실패 통계를 매 반초(즉, 0.5 )로 보고합니다. 이는 하트비트 임계값보다 더 자주 사용됩니다. 배치 그룹 설정의 기본 OSD 가 모니터에 보고되지 않거나 다른 OSD가 기본 OSD를 아래 로 보고하면 모니터에서 배치 그룹이 오래된 것으로 표시됩니다.
스토리지 클러스터를 시작하면 피어 프로세스가 완료될 때까지 오래된 상태를 확인하는 것이 일반적입니다. 잠시 동안 스토리지 클러스터가 실행된 후 오래 된 상태의 배치 그룹을 보면 해당 배치 그룹의 기본 OSD가 다운 되었거나 모니터에 배치 그룹 통계를 보고하지 않음을 나타냅니다.
3.2.13. 배치 그룹 잘못된 상태 링크 복사링크가 클립보드에 복사되었습니다!
PG가 OSD에 일시적으로 매핑되는 몇 가지 임시 백필 시나리오가 있습니다. 일시적 인 상황 이 더 이상 그렇지 않아야 할 때 PG는 여전히 임시 위치에 상주하고 적절한 위치에 있지 않을 수 있습니다. 이 경우, 그들은 잘못 배치 되었다고합니다. 그 이유는 올바른 수의 추가 사본이 실제로 존재하지만 하나 이상의 복사본이 잘못된 위치에 있기 때문입니다.
예를 들어 OSD 3개는 0,1,2이며, 모든 PG는 이러한 3개의 OSD에 매핑됩니다. 다른 OSD(OSD 3)를 추가하면 일부 PG가 이제 다른 OSD 대신 OSD 3에 매핑됩니다. 그러나 OSD 3이 다시 입력될 때까지 PG는 이전 매핑에서 I/O를 계속 제공할 수 있도록 임시 매핑을 갖습니다. 그 시간 동안 PG는 임시 매핑이 있지만 3 개의 사본이 있기 때문에 성능이 저하 되지 않기 때문에 잘못 배치 됩니다.
예제
pg 1.5: up=acting: [0,1,2] ADD_OSD_3 pg 1.5: up: [0,3,1] acting: [0,1,2]
pg 1.5: up=acting: [0,1,2]
ADD_OSD_3
pg 1.5: up: [0,3,1] acting: [0,1,2]
[0,1,2]는 임시 매핑이므로 up set는 동작 세트와 같지 않으며, [0,1,2]이 아직 3개이므로 PG는 잘못 배치 되지 않습니다.
예제
pg 1.5: up=acting: [0,3,1]
pg 1.5: up=acting: [0,3,1]
OSD 3이 다시 입력되어 임시 매핑이 제거되고 성능이 저하되지 않고 잘못 배치되지 않습니다.
3.2.14. placement Group incomplete 상태 링크 복사링크가 클립보드에 복사되었습니다!
불완전 한 콘텐츠와 피어링이 실패할 때 PG가 불완전한 상태가 됩니다. 즉, 복구 수행에 충분한 전체 OSD가 없는 경우 해당 상태가 없습니다.
OSD 1, 2, 3은 작동하는 OSD 세트이고 OSD 1, 4, 3으로 전환된 다음 osd.1 은 OSD 1, 2, 3의 임시 행동 세트를 요청하면서 다시 채우도록 합니다. 이 시간 동안 OSD 1, 2, 3이 모두 다운되면 osd.4 는 모든 데이터를 완전히 백업하지 않은 유일한 왼쪽이 됩니다. 현재 PG는 복구 수행에 충분한 완전한 OSD가 없음을 나타냅니다.
또는 osd.4 가 관련이 없고 동작 세트가 단순히 OSD 1, 2, 3인 경우 OSD 1, 2 및 3이 다운되는 경우, PG는 활동 세트가 변경 되기 때문에 해당 PG에 아무 것도 들어보지 않았음을 나타낼 수 있습니다. 새 OSD에 알리려면 OSD가 남아 있지 않습니다.
3.2.15. 중단된 배치 그룹 확인 링크 복사링크가 클립보드에 복사되었습니다!
배치 그룹은 active+clean 상태가 아니므로 반드시 문제가 되지는 않습니다. 일반적으로 배치 그룹이 중단될 때 자체 복구를 수행하는 Ceph 기능이 작동하지 않을 수 있습니다. 안정된 상태는 다음과 같습니다.
- unclean: 배치 그룹에는 원하는 횟수가 복제되지 않는 오브젝트가 포함됩니다. 그들은 회복되어야 합니다.
-
inactive: 배치 그룹은 최신 데이터로 OSD를 대기하므로 읽기 또는 쓰기를 처리할 수 없습니다.
-
stale: 배치 그룹은 잠시 동안 모니터 클러스터에 보고하지 않았기 때문에 알 수 없는 상태가 되고,
mon osd 보고서 시간 초과설정으로 구성할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
고정된 배치 그룹을 확인하려면 다음을 실행합니다.
구문
ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} {<int>}ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} {<int>}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph pg dump_stuck stale OK
[ceph: root@host01 /]# ceph pg dump_stuck stale OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.16. 오브젝트 위치 검색 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 클라이언트는 최신 클러스터 맵을 검색하고 CRUSH 알고리즘은 개체를 배치 그룹에 매핑하는 방법을 계산한 다음 배치 그룹을 OSD에 동적으로 할당하는 방법을 계산합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
오브젝트 위치를 찾으려면 오브젝트 이름과 풀 이름만 있으면 됩니다.
구문
ceph osd map POOL_NAME OBJECT_NAME
ceph osd map POOL_NAME OBJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd map mypool myobject
[ceph: root@host01 /]# ceph osd map mypool myobjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. Ceph 스토리지용 클러스터 확장 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 2개의 사이트 클러스터로 스트레치 모드로 전환하여 확장 클러스터를 구성할 수 있습니다.
Red Hat Ceph Storage는 CRUSH 맵에 무작위로 배포된 실패와 함께 네트워크 및 클러스터로 인해 Ceph OSD의 손실에도 불구하고 사용할 수 있습니다. 여러 OSD가 종료되면 나머지 OSD 및 모니터가 계속 작동합니다.
그러나 이는 Ceph 클러스터의 중요한 부분이 단일 네트워크 구성 요소만 사용할 수 있는 일부 확장 클러스터 구성에 적합하지 않을 수 있습니다. 이 예제에서는 여러 데이터 센터에 있는 단일 클러스터로, 사용자가 전체 데이터 센터의 손실을 유지하려고 합니다.
표준 구성은 두 개의 데이터 센터가 있습니다. 기타 구성은 클라우드 또는 가용성 영역에 있습니다. 각 사이트에는 두 개의 데이터 사본이 있으므로 복제 크기는 4입니다. 세 번째 사이트에는 연결 장치 모니터가 있어야 합니다. 이 모니터는 기본 사이트에 비해 가상 머신 또는 대기 시간이 길 수 있습니다. 이 모니터는 네트워크 연결이 실패하고 두 데이터 센터 모두 활성 상태로 유지되는 경우 데이터를 복원할 사이트 중 하나를 선택합니다.
표준 Ceph 구성은 네트워크 또는 데이터 센터의 많은 실패로 인해 유지되며 데이터 일관성은 손상되지 않습니다. 실패 후 충분한 Ceph 서버를 복원하면 복구됩니다. 데이터 센터가 손실되었지만 모니터의 쿼럼을 형성하고 풀의 min_size 또는 크기를 충족하기 위해 다시 복제하는 CRUSH 규칙을 충족하기에 충분한 사본으로 모든 데이터를 사용할 수 있는 경우 Ceph는 가용성을 유지합니다.
확장 클러스터의 전원을 끄는 추가 단계는 없습니다. 자세한 내용은 Red Hat Ceph Storage 클러스터 전원을 끄고 재부팅하는 것을 확인할 수 있습니다.
클러스터 장애 확장
Red Hat Ceph Storage는 데이터 무결성 및 일관성을 손상시키지 않습니다. 네트워크 오류 또는 노드 손실이 발생하고 서비스를 복원할 수 있는 경우에도 Ceph는 일반 기능으로 돌아갑니다.
그러나 Ceph의 일관성 및 크기 조정 제약 조건을 충족하기에 충분한 서버가 있거나 예기치 않게 제약 조건을 충족하지 않는 경우에도 데이터 가용성을 손실하는 경우가 있습니다.
첫 번째 중요한 유형의 오류는 일관되지 않은 네트워크에 의해 발생합니다. 네트워크 분할이 있는 경우 Ceph에서 기본 OSD를 복제할 수 없는 경우에도 작업 배치 그룹(PG) 세트에서 OSD를 아래로 표시할 수 없습니다. 이 경우 Ceph가 지속성 보장을 충족할 수 없기 때문에 I/O가 허용되지 않습니다.
두 번째 중요한 실패 범주는 데이터가 데이터 입력 간에 복제된 것처럼 보이지만 제약 조건은 이를 보장하는 데 충분하지 않습니다. 예를 들어 데이터 센터 A 및 B가 있을 수 있으며 CRUSH 규칙은 세 개의 사본을 대상으로 하고 각 데이터 센터에 min_size 가 2 인 복사본을 배치합니다. PG는 사이트 A에 있는 두 개의 사본과 사이트 B에 복사본이 없는 상태에서 활성화될 수 있습니다. 즉, 사이트 A가 손실되면 데이터가 손실되고 Ceph가 작동할 수 없습니다. 이 상황은 표준 CRUSH 규칙으로 방지하기 어렵습니다.
4.1. 스토리지 클러스터의 스트레치 모드 링크 복사링크가 클립보드에 복사되었습니다!
확장 클러스터를 구성하려면 스트레치 모드로 전환해야 합니다. 스트레치 모드가 활성화되면 Ceph OSD는 데이터 센터 간에 피어링할 때만 PG를 활성 상태로 사용하거나 지정한 다른 CRUSH 버킷 유형이 둘 다 활성 상태라고 가정합니다. 풀 크기는 기본 3에서 4로 증가하고 각 사이트에 복사본이 두 개씩 증가합니다.
확장 모드에서는 Ceph OSD가 동일한 데이터 센터 내의 모니터에만 연결할 수 있습니다. 새 모니터는 지정된 위치 없이 클러스터에 참여할 수 없습니다.
데이터 센터의 모든 OSD 및 모니터에 한 번에 액세스할 수 없게 되면 남아 있는 데이터 센터가 성능이 저하된 스트레치 모드가 됩니다. 이렇게 하면 경고가 발행되고 min_size 를 1 로 줄이고 클러스터가 나머지 사이트의 데이터로 활성 상태에 도달할 수 있습니다.
풀 크기가 변경되지 않기 때문에 성능이 저하된 상태도 풀이 너무 작다는 경고를 트리거합니다. 그러나 특수 스트레치 모드 플래그를 사용하면 OSD에서 나머지 데이터 센터에 추가 복사본을 생성하지 못하므로 여전히 2개의 복사본을 유지합니다.
누락된 데이터 센터가 다시 시도되면 클러스터가 복구 스트레치 모드로 전환됩니다. 이렇게 하면 경고가 변경되고 피어링을 허용하지만 데이터 센터의 OSD만 있으면 전체 시간이 걸렸습니다.
모든 PG가 알려진 상태에 있고 성능이 저하되거나 불완전하지 않으면 클러스터는 일반 스트레치 모드로 돌아가 경고를 종료하고 min_size 를 시작 값 2 로 복원합니다. 클러스터에 다시 두 사이트 피어가 있어야 전체 시간을 유지하는 사이트뿐만 아니라 피어가 필요하므로 필요한 경우 다른 사이트로 장애 조치 할 수 있습니다.
스트레치 모드 제한
- 이 모드가 입력되면 스트레치 모드를 종료할 수 없습니다.
- 스트레치 모드의 클러스터와 함께 삭제 코딩된 풀을 사용할 수 없습니다. 삭제 코딩된 풀을 사용하여 스트레치 모드로 전환하거나 스트레치 모드가 활성 상태일 때 삭제 코딩된 풀을 생성할 수 없습니다.
- 두 사이트 이상의 스트레치 모드가 지원됩니다.
두 사이트의 가중치는 동일해야 합니다. 그렇지 않으면 다음과 같은 오류가 발생합니다.
예제
[ceph: root@host01 /]# ceph mon enable_stretch_mode host05 stretch_rule datacenter Error EINVAL: the 2 datacenter instances in the cluster have differing weights 25947 and 15728 but stretch mode currently requires they be the same!
[ceph: root@host01 /]# ceph mon enable_stretch_mode host05 stretch_rule datacenter Error EINVAL: the 2 datacenter instances in the cluster have differing weights 25947 and 15728 but stretch mode currently requires they be the same!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 사이트 모두에서 동일한 가중치를 달성하려면 두 사이트에 배포된 Ceph OSD는 크기가 같아야 합니다. 즉, 첫 번째 사이트의 스토리지 용량은 두 번째 사이트의 스토리지 용량과 동일합니다.
- 적용되지는 않지만 각 사이트에서 두 개의 Ceph 모니터를 실행하고 총 5 개에 대해 묶인 모니터를 실행해야 합니다. 이는 OSD가 스트레치 모드일 때 자체 사이트의 모니터에만 연결할 수 있기 때문입니다.
- 각 사이트에 두 개의 복사본을 제공하는 고유한 CRUSH 규칙을 생성해야 하며 두 사이트 모두에서 총 4개의 복사본을 제공해야 합니다.
-
기본 크기가 아닌 기존 풀이 있거나
min_size인 경우 스트레치 모드를 활성화할 수 없습니다. -
성능이 저하된 경우 클러스터는
min_size 1로 실행되므로 all-flash OSD가 있는 스트레치 모드만 사용해야 합니다. 이렇게 하면 연결이 복원되면 복구에 필요한 시간이 최소화되고 데이터 손실 가능성을 최소화합니다.
4.1.1. 데몬의 crush 위치 설정 링크 복사링크가 클립보드에 복사되었습니다!
스트레치 모드로 전환하기 전에 Red Hat Ceph Storage 클러스터의 데몬으로 crush 위치를 설정하여 클러스터를 준비해야 합니다. 이 작업을 수행하는 방법은 다음 두 가지가 있습니다.
- 배포의 일부로 위치가 호스트에 추가되는 서비스 구성 파일을 통해 클러스터를 부트스트랩합니다.
-
클러스터가 배포된 후
ceph osd crush add-bucket및ceph osd crush move명령을 통해 수동으로 위치를 설정합니다.
방법 1: 클러스터 부팅
사전 요구 사항
- 노드에 대한 루트 수준 액세스.
절차
새 스토리지 클러스터를 부트 스트랩하는 경우 노드를 Red Hat Ceph Storage 클러스터에 추가하는 서비스 구성
.yaml파일을 생성하고 서비스가 실행되어야 하는 위치에 대한 특정 레이블을 설정할 수 있습니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --apply-spec옵션을 사용하여 스토리지 클러스터를 부트스트랩합니다.구문
cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url REGISTRY_URL --registry-username USER_NAME --registry-password PASSWORD
cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url REGISTRY_URL --registry-username USER_NAME --registry-password PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1
[root@host01 ~]# cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요cephadm bootstrap명령과 함께 다양한 명령 옵션을 사용할 수 있습니다. 그러나 서비스 구성 파일을 사용하고 호스트 위치를 구성하려면 항상--apply-spec옵션을 포함합니다.
방법 2: 배포 후 위치 설정
사전 요구 사항
- 노드에 대한 루트 수준 액세스.
절차
tiebreaker 모니터의 위치를 CRUSH 맵에 설정하려는 두 개의 버킷을 CRUSH 맵으로 추가하여 버킷 유형을
데이터센터로 지정합니다.구문
ceph osd crush add-bucket BUCKET_NAME BUCKET_TYPE
ceph osd crush add-bucket BUCKET_NAME BUCKET_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd crush add-bucket DC1 datacenter [ceph: root@host01 /]# ceph osd crush add-bucket DC2 datacenter
[ceph: root@host01 /]# ceph osd crush add-bucket DC1 datacenter [ceph: root@host01 /]# ceph osd crush add-bucket DC2 datacenterCopy to Clipboard Copied! Toggle word wrap Toggle overflow root=default아래의 버킷을 이동합니다.구문
ceph osd crush move BUCKET_NAME root=default
ceph osd crush move BUCKET_NAME root=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd crush move DC1 root=default [ceph: root@host01 /]# ceph osd crush move DC2 root=default
[ceph: root@host01 /]# ceph osd crush move DC1 root=default [ceph: root@host01 /]# ceph osd crush move DC2 root=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 CRUSH 배치에 따라 OSD 호스트를 이동합니다.
구문
ceph osd crush move HOST datacenter=DATACENTER
ceph osd crush move HOST datacenter=DATACENTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd crush move host01 datacenter=DC1
[ceph: root@host01 /]# ceph osd crush move host01 datacenter=DC1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.2. 스트레치 모드 입력 링크 복사링크가 클립보드에 복사되었습니다!
새로운 스트레치 모드는 두 개의 사이트를 처리하도록 설계되었습니다. 2개 사이트 클러스터에서 구성 요소 가용성 중단의 위험이 줄어 듭니다.
사전 요구 사항
- 노드에 대한 루트 수준 액세스.
- crush 위치는 호스트로 설정됩니다.
절차
CRUSH 맵과 일치하는 각 모니터의 위치를 설정합니다.
구문
ceph mon set_location HOST datacenter=DATACENTER
ceph mon set_location HOST datacenter=DATACENTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph mon set_location host01 datacenter=DC1 [ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC1 [ceph: root@host01 /]# ceph mon set_location host04 datacenter=DC2 [ceph: root@host01 /]# ceph mon set_location host05 datacenter=DC2 [ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3
[ceph: root@host01 /]# ceph mon set_location host01 datacenter=DC1 [ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC1 [ceph: root@host01 /]# ceph mon set_location host04 datacenter=DC2 [ceph: root@host01 /]# ceph mon set_location host05 datacenter=DC2 [ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 데이터 센터에 두 개의 복사본을 배치하는 CRUSH 규칙을 생성합니다.
구문
ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt
[ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해제된 CRUSH 맵 파일을 편집하여 새 규칙을 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 규칙은 클러스터에 데이터 센터
DC1에 대한 읽기 방지를 제공합니다. 따라서 모든 읽기 또는 쓰기는DC1에 배치된 Ceph OSD를 통해 수행됩니다.이것이 바람직하지 않고 읽기 또는 쓰기를 영역에 균등하게 분산하는 경우 crush 규칙은 다음과 같습니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 규칙에서는 데이터 센터가 임의로 자동으로 선택됩니다.
firstn및indep옵션에 대한 자세한 내용은 CRUSH 규칙을 참조하십시오.
CRUSH 맵을 삽입하여 클러스터에서 규칙을 사용할 수 있도록 합니다.
구문
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin
[ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 연결 모드에서 모니터를 실행하지 않으면 선택 전략을
connectivity로 설정합니다.예제
[ceph: root@host01 /]# ceph mon set election_strategy connectivity
[ceph: root@host01 /]# ceph mon set election_strategy connectivityCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 센터 간에 분할되도록 연결 장치 모니터의 위치를 설정하여 스트레치 모드로 전환합니다.
구문
ceph mon set_location HOST datacenter=DATACENTER ceph mon enable_stretch_mode HOST stretch_rule datacenter
ceph mon set_location HOST datacenter=DATACENTER ceph mon enable_stretch_mode HOST stretch_rule datacenterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3 [ceph: root@host01 /]# ceph mon enable_stretch_mode host07 stretch_rule datacenter
[ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3 [ceph: root@host01 /]# ceph mon enable_stretch_mode host07 stretch_rule datacenterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 모니터
mon.host07은 타이블러입니다.중요tiebreaker 모니터의 위치는 이전에 비대신 모니터를 설정한 데이터 센터와 달라야 합니다. 위의 예에서 데이터 센터
DC3입니다.중요이 데이터 센터를 CRUSH 맵에 추가하지 마십시오. 이 데이터 센터를 스트레치 모드로 전환하려고 할 때 다음과 같은 오류가 발생합니다.
Error EINVAL: there are 3 datacenters in the cluster but stretch mode currently only works with 2!
Error EINVAL: there are 3 datacenters in the cluster but stretch mode currently only works with 2!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph 배포를 위해 자체 툴링을 작성하는 경우
ceph mon set_location명령을 실행하는 대신 모니터를 부팅할 때 새로운--set-crush-location옵션을 사용할 수 있습니다. 이 옵션은enable_stretch_mode명령을 실행할 때 지정한 버킷 유형과 일치해야 하는ceph-mon --set-crush-location 'datacenter=DC1'과 같은 단일bucket=location쌍만 허용합니다.스트레치 모드가 성공적으로 활성화되었는지 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow stretch_mode_enabled를true로 설정해야 합니다. 스트레치 버킷 수, 스트레치 모드 버킷, 스트레치 모드의 성능이 저하되거나 복구되는 경우에도 볼 수 있습니다.모니터가 적절한 위치에 있는지 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 어떤 모니터가 묶인 모니터와 모니터 선택 전략을 확인할 수 있습니다.
4.1.3. 스트레치 모드에서 OSD 호스트 추가 링크 복사링크가 클립보드에 복사되었습니다!
확장 모드에서 Ceph OSD를 추가할 수 있습니다. 절차는 스트레치 모드가 활성화되지 않은 클러스터에서 OSD 호스트를 추가하는 것과 유사합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 클러스터에서 활성화된 스트레치 모드입니다.
- 노드에 대한 루트 수준 액세스.
절차
OSD를 배포할 사용 가능한 장치를 나열합니다.
구문
ceph orch device ls [--hostname=HOST_1 HOST_2] [--wide] [--refresh]
ceph orch device ls [--hostname=HOST_1 HOST_2] [--wide] [--refresh]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch device ls
[ceph: root@host01 /]# ceph orch device lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 호스트 또는 사용 가능한 모든 장치에 OSD를 배포합니다.
특정 호스트의 특정 장치에서 OSD를 생성합니다.
구문
ceph orch daemon add osd HOST:DEVICE_PATH
ceph orch daemon add osd HOST:DEVICE_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch daemon add osd host03:/dev/sdb
[ceph: root@host01 /]# ceph orch daemon add osd host03:/dev/sdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 사용되지 않는 장치에 OSD를 배포합니다.
중요이 명령은 배치된 WAL 및 DB 장치를 생성합니다. 공동 배치되지 않은 장치를 생성하려면 이 명령을 사용하지 마십시오.
예제
[ceph: root@host01 /]# ceph orch apply osd --all-available-devices
[ceph: root@host01 /]# ceph orch apply osd --all-available-devicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
CRUSH 버킷 아래의 OSD 호스트를 이동합니다.
구문
ceph osd crush move HOST datacenter=DATACENTER
ceph osd crush move HOST datacenter=DATACENTERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd crush move host03 datacenter=DC1 [ceph: root@host01 /]# ceph osd crush move host06 datacenter=DC2
[ceph: root@host01 /]# ceph osd crush move host03 datacenter=DC1 [ceph: root@host01 /]# ceph osd crush move host06 datacenter=DC2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고두 사이트 모두에 동일한 토폴로지 노드를 추가해야 합니다. 호스트가 한 사이트에만 추가되면 문제가 발생할 수 있습니다.
5장. Ceph 동작 재정의 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터에 재정의를 사용하여 런타임 중에 Ceph 옵션을 변경하는 방법을 이해해야 합니다.
5.1. Ceph 재정의 옵션 설정 및 설정 해제 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 옵션을 설정하고 설정 해제하여 Ceph의 기본 동작을 재정의할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
Ceph의 기본 동작을 재정의하려면
ceph osd set명령과 재정의하려는 동작을 사용합니다.구문
ceph osd set FLAG
ceph osd set FLAGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 동작을 설정하면
ceph 상태가클러스터에 설정된 덮어쓰기를 반영합니다.예제
[ceph: root@host01 /]# ceph osd set noout
[ceph: root@host01 /]# ceph osd set nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph의 기본 동작 재정의를 중지하려면
ceph osd unset명령과 중단하려는 재정의를 사용합니다.구문
ceph osd unset FLAG
ceph osd unset FLAGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph osd unset noout
[ceph: root@host01 /]# ceph osd unset nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow
| 플래그 | 설명 |
|---|---|
|
|
OSD가 클러스터에서처럼 취급되지 않도록 합니다. |
|
|
OSD가 클러스터 |
|
|
OSD가 |
|
|
OSD가 |
|
|
클러스터가 |
|
|
Ceph는 읽기 및 쓰기 작업의 처리를 중지하지만, |
|
| Ceph에서 새 백필 작업을 방지합니다. |
|
| Ceph에서 새 리밸런싱 작업을 방지합니다. |
|
| Ceph는 새로운 복구 작업을 방지합니다. |
|
| Ceph는 새 스크럽 작업을 방지합니다. |
|
| Ceph는 새로운 딥 스크럽 작업을 방지합니다. |
|
| Ceph는 플러시 및 제거할 cold/dirty 오브젝트를 찾는 프로세스를 비활성화합니다. |
5.2. Ceph 재정의 사용 사례 링크 복사링크가 클립보드에 복사되었습니다!
-
noin: 일반적으로 플로팅 OSD를해결하기 위해 noout와 함께 사용됩니다. -
noout:mon osd 보고서 시간초과를 초과하고 OSD가 모니터에 보고되지 않은 경우 OSD는밖으로 표시됩니다. 이 문제가 잘못 발생하면 문제 해결 중에 OSD가 표시되지 않도록noout을 설정할 수 있습니다. -
noup: 플로팅 OSD를해결하기위해 nodown과 함께 일반적으로 사용됩니다. -
Nodown : 네트워킹 문제가 Ceph 'heartbeat' 프로세스를 중단할 수 있으며 OSD는 작동 중이지만여전히 아래로 표시됩니다. 문제를 해결하는동안 OSD가 표시되지 않도록 nodown을 설정할 수 있습니다. Full: 클러스터가에 도달한 경우 미리 클러스터를 전체로 설정하고 용량을 확장하도록 클러스터를 설정할 수 있습니다.full_ratio참고클러스터를
full으로 설정하면 쓰기 작업이 수행되지 않습니다.-
: 클라이언트가 데이터를 읽고 쓰지 않고 실행 중인 Ceph 클러스터의 문제를 해결해야 하는 경우 클라이언트 작업을 방지하기 위해 일시 정지하도록 클러스터를 설정할 수 있습니다.pause -
nobackfill: OSD 또는 노드를 일시적으로중단해야 하는 경우(예: 데몬 업그레이드)를 설정하면 OSD가중단된 동안 Ceph가 다시 입력되지 않도록nobackfill을 설정할 수 있습니다. -
norecover: OSD 디스크를 교체해야 하고 PG가 핫스키핑 디스크인 동안 다른 OSD로 복구할 필요가 없는 경우, 다른 OSD가 새 PG 세트를 다른 OSD로 복사하지 못하도록norecover를 설정할 수 있습니다. -
noscrub및nodeep-scrubb: 예를 들어 높은 부하, 복구, 백필링 중 오버헤드를 줄이기 위해 스크럽을 방지하고,noscrub및/또는nodeep-scrub를 설정하여 클러스터가 OSD를 스크럽되지 않도록 할 수 있습니다. -
notieragent: 계층 에이전트 프로세스를 백업 스토리지 계층으로 플러시할 콜드 오브젝트를 찾는 것을 중지하려면notieragent를 설정할 수 있습니다.
6장. Ceph 사용자 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 인증을 제공하고 Red Hat Ceph Storage 클러스터의 오브젝트에 대한 액세스 제어를 제공하여 Ceph 사용자 기반을 관리할 수 있습니다.
Cephadm은 클라이언트가 Cephadm 범위 내에 있는 한 Red Hat Ceph Storage 클러스터의 클라이언트 인증 키를 관리합니다. 문제 해결이 없는 경우 사용자는 Cephadm에서 관리하는 인증 키를 수정하지 않아야 합니다.
6.1. Ceph 사용자 관리 배경 링크 복사링크가 클립보드에 복사되었습니다!
Ceph가 인증 및 권한 부여로 실행되면 사용자 이름을 지정해야 합니다. 사용자 이름을 지정하지 않으면 Ceph에서 client.admin 관리 사용자를 기본 사용자 이름으로 사용합니다.
또는 CEPH_ARGS 환경 변수를 사용하여 사용자 이름과 시크릿의 재입력을 방지할 수 있습니다.
Ceph 클라이언트 유형(예: 블록 장치, 오브젝트 저장소, 파일 시스템, 네이티브 API 또는 Ceph 명령줄)에 관계없이 모든 데이터를 풀 내에 오브젝트로 저장합니다. Ceph 사용자는 데이터를 읽고 쓰기 위해 풀에 액세스할 수 있어야 합니다. 또한 관리 Ceph 사용자에게 Ceph의 관리 명령을 실행할 수 있는 권한이 있어야 합니다.
다음 개념은 Ceph 사용자 관리를 이해하는 데 도움이 될 수 있습니다.
스토리지 클러스터 사용자
Red Hat Ceph Storage 클러스터의 사용자는 개인 또는 애플리케이션입니다. 사용자를 생성하면 스토리지 클러스터, 해당 풀 및 해당 풀 내의 데이터에 액세스할 수 있는 사용자를 제어할 수 있습니다.
Ceph에는 사용자 유형이 있습니다. 사용자 관리의 목적을 위해 유형은 항상 클라이언트 입니다. Ceph는 사용자 유형 및 사용자 ID로 구성된 사용자와 마침표(.)로 구분된 양식을 식별합니다. 예를 들어 TYPE.ID,client.admin 또는 client.user1 입니다. 사용자 입력의 이유는 Ceph Monitor와 OSD도 Cephx 프로토콜을 사용하지만 클라이언트가 아니기 때문입니다. 사용자 유형을 구분하면 클라이언트 사용자와 다른 사용자가 액세스 제어, 사용자 모니터링 및 추적 가능성을 구별하는 데 도움이 됩니다.
Ceph 명령줄을 사용하면 명령줄 사용에 따라 유형을 포함하거나 포함하지 않고 Ceph의 사용자 유형이 혼동되는 경우가 있습니다. --user 또는 --id 를 지정하면 유형을 생략할 수 있습니다. 따라서 client.user1 은 user1 로 간단히 입력할 수 있습니다. --name 또는 -n 을 지정하는 경우 client.user1 과 같은 유형과 이름을 지정해야 합니다. 가능한 경우 유형 및 이름을 모범 사례로 사용하는 것이 좋습니다.
Red Hat Ceph Storage 클러스터 사용자는 Ceph Object Gateway 사용자와 다릅니다. 오브젝트 게이트웨이는 Red Hat Ceph Storage 클러스터 사용자를 사용하여 게이트웨이 데몬과 스토리지 클러스터 간에 통신하지만 게이트웨이에는 최종 사용자에게 고유한 사용자 관리 기능이 있습니다.
구문
DAEMON_TYPE 'allow CAPABILITY' [DAEMON_TYPE 'allow CAPABILITY']
DAEMON_TYPE 'allow CAPABILITY' [DAEMON_TYPE 'allow CAPABILITY']
모니터 능력: 모니터 기능은
r,w,x,allow profile CAP, andprofile rbd.예제
mon 'allow rwx` mon 'allow profile osd'
mon 'allow rwx` mon 'allow profile osd'Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD Caps: OSD 기능에는
r,w,x,class-read,class-write,profile osd,profile rbd,profile rbd-read-only가 있습니다. 또한 OSD 기능은 풀 및 네임스페이스 설정도 허용합니다.구문
osd 'allow CAPABILITY' [pool=POOL_NAME] [namespace=NAMESPACE_NAME]
osd 'allow CAPABILITY' [pool=POOL_NAME] [namespace=NAMESPACE_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph Object Gateway 데몬(radosgw)은 Ceph 스토리지 클러스터의 클라이언트이므로 Ceph 스토리지 데몬 유형으로 표시되지 않습니다.
다음 항목에서는 각 기능을 설명합니다.
|
| 데몬의 액세스 설정보다 우선합니다. |
|
| 사용자에게 읽기 액세스 권한을 부여합니다. CRUSH 맵을 검색하는 데 모니터에 필요합니다. |
|
| 사용자에게 오브젝트에 대한 쓰기 액세스 권한을 부여합니다. |
|
|
사용자에게 클래스 메서드(즉, 읽기 및 쓰기)를 호출하고 모니터에서 |
|
|
사용자에게 클래스 읽기 메서드를 호출하는 기능을 제공합니다. |
|
|
사용자에게 클래스 쓰기 메서드를 호출하는 기능을 제공합니다. |
|
| 사용자에게 특정 데몬 또는 풀에 대해 읽기, 쓰기, 실행 권한을 제공하고, admin 명령을 실행할 수 있습니다. |
|
| OSD로 다른 OSD 또는 모니터에 연결할 수 있는 권한을 사용자에게 제공합니다. OSD에서 OSD를 통해 복제 하트비트 트래픽 및 상태 보고를 처리할 수 있습니다. |
|
| OSD를 부트 스트랩할 때 키를 추가할 수 있는 권한이 있도록 OSD를 부트스트랩할 수 있는 권한을 사용자에게 제공합니다. |
|
| 사용자에게 Ceph 블록 장치에 대한 읽기-쓰기 액세스 권한을 부여합니다. |
|
| 사용자에게 Ceph 블록 장치에 대한 읽기 전용 액세스 권한을 부여합니다. |
pool
풀은 Ceph 클라이언트의 스토리지 전략을 정의하고 해당 전략의 논리 파티션 역할을 합니다.
Ceph 배포에서 다양한 유형의 사용 사례를 지원하는 풀을 생성하는 것이 일반적입니다. 예를 들어 클라우드 볼륨 또는 이미지, 오브젝트 스토리지, 핫 스토리지, 콜드 스토리지 등이 있습니다. OpenStack의 백엔드로 Ceph를 배포할 때 일반적인 배포에는 볼륨, 이미지, 백업 및 가상 머신, client.glance,client.cinder 등과 같은 사용자를 위한 풀이 있습니다.
네임스페이스
풀 내의 개체는 네임스페이스 - 풀 내 개체의 논리 그룹에 연결할 수 있습니다. 풀에 대한 사용자의 액세스는 사용자가 네임스페이스 내에서만 읽고 쓸 수 있도록 네임스페이스와 연결할 수 있습니다. 풀 내에서 네임스페이스에 작성된 오브젝트는 네임스페이스에 액세스할 수 있는 사용자만 액세스할 수 있습니다.
현재는 librados 위에 작성된 애플리케이션에만 네임스페이스가 유용합니다. 블록 장치 및 오브젝트 스토리지와 같은 Ceph 클라이언트는 현재 이 기능을 지원하지 않습니다.
네임스페이스의 논리는 각 풀이 OSD에 매핑된 배치 그룹 세트를 생성하기 때문에 풀은 사용 사례별로 데이터를 분리하는 계산적으로 비용이 많이 드는 방법일 수 있다는 것입니다. 여러 풀이 동일한 CRUSH 계층 및 규칙 세트를 사용하는 경우 로드가 증가하면 OSD 성능이 저하될 수 있습니다.
예를 들어, 풀에는 OSD당 약 100개의 배치 그룹이 있어야 합니다. 따라서 OSD가 1000개인 예시적인 클러스터에는 하나의 풀에 대해 100,000개의 배치 그룹이 있습니다. 동일한 CRUSH 계층 및 규칙 세트에 매핑된 각 풀은 예시적인 클러스터에서 또 다른 100,000개의 배치 그룹을 생성합니다. 반면, 개체를 네임스페이스에 쓰는 것은 단순히 별도의 풀의 계산 오버헤드와 네임스페이스를 개체 이름에 연결합니다. 사용자 또는 사용자 집합에 대해 별도의 풀을 생성하는 대신 네임스페이스를 사용할 수 있습니다.
현재 librados 만 사용할 수 있습니다.
6.2. Ceph 사용자 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 사용자를 생성, 수정, 삭제 및 가져와 Ceph 사용자를 관리할 수 있습니다. Ceph 클라이언트 사용자는 Ceph 클라이언트를 사용하여 Red Hat Ceph Storage 클러스터 데몬과 상호 작용하는 개인 또는 애플리케이션일 수 있습니다.
6.2.1. Ceph 사용자 나열 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 스토리지 클러스터의 사용자를 나열할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
스토리지 클러스터의 사용자를 나열하려면 다음을 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
사용자의 TYPE.ID 표기법은 osd.0 유형의 사용자인 osd.0이 0 인 사용자이고,client.admin 은 유형 클라이언트 의 사용자이고, 해당 ID는 admin 입니다. 즉, 기본 client.admin 사용자입니다. 또한 각 항목에는 VALUE 항목과 하나 이상의 caps: 항목이 있습니다.
ceph auth list 와 함께 -o FILE_NAME 옵션을 사용하여 출력을 파일에 저장할 수 있습니다.
6.2.2. Ceph 사용자 정보 표시 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 Ceph의 사용자 정보를 표시할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
특정 사용자, 키 및 기능을 검색하려면 다음을 실행합니다.
구문
ceph auth export TYPE.ID
ceph auth export TYPE.IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth export mgr.host02.eobuuv
[ceph: root@host01 /]# ceph auth export mgr.host02.eobuuvCopy to Clipboard Copied! Toggle word wrap Toggle overflow -o FILE_NAME옵션을 사용할 수도 있습니다.구문
ceph auth export TYPE.ID -o FILE_NAME
ceph auth export TYPE.ID -o FILE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth export osd.9 -o filename export auth(key=AQBV7U5g1XDULhAAKo2tw6ZhH1jki5aVui2v7g==)
[ceph: root@host01 /]# ceph auth export osd.9 -o filename export auth(key=AQBV7U5g1XDULhAAKo2tw6ZhH1jki5aVui2v7g==)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
auth export 명령은 auth get 와 동일하지만 최종 사용자와 관련이 없는 내부 auid 도 출력합니다.
6.2.3. 새 Ceph 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
사용자를 추가하면 사용자 이름(즉, TYPE.ID, secret 키, 사용자를 생성하는 데 사용하는 명령에 포함된 모든 기능이 생성됩니다.
사용자 키를 사용하면 사용자가 Ceph 스토리지 클러스터를 인증할 수 있습니다. 사용자의 기능은 Ceph 모니터(mon), Ceph OSD(osd) 또는 Ceph 메타데이터 서버(mds)에서 읽기, 쓰기 또는 실행할 수 있는 권한을 부여합니다.
사용자를 추가할 수 있는 몇 가지 방법이 있습니다.
-
Ceph auth add: 이 명령은 사용자를 추가하는 표준 방법입니다. 사용자를 생성하고 키를 생성하고 지정된 기능을 추가합니다. -
Ceph auth get-or-create: 이 명령은 사용자 이름(대괄호로)과 키를 사용하여 키 파일 형식을 반환하므로 사용자를 생성하는 가장 편리한 방법입니다. 사용자가 이미 존재하는 경우 이 명령은 키 파일 형식으로 사용자 이름과 키를 반환합니다.-o FILE_NAME옵션을 사용하여 출력을 파일에 저장할 수 있습니다. -
Ceph auth get-or-create-key: 이 명령은 사용자를 생성하고 사용자 키만 반환하는 편리한 방법입니다. 이는 키가 필요한 클라이언트에 유용합니다(예:libvirt). 사용자가 이미 있는 경우 이 명령은 단순히 키를 반환합니다.-o FILE_NAME옵션을 사용하여 출력을 파일에 저장할 수 있습니다.
클라이언트 사용자를 생성할 때 기능 없이 사용자를 생성할 수 있습니다. 클라이언트가 모니터에서 클러스터 맵을 검색할 수 없기 때문에 기능이 없는 사용자는 인증만 사용하지 않습니다. 그러나 ceph auth caps 명령을 사용하여 나중에 기능 추가를 연기하려는 경우 기능이 없는 사용자를 생성할 수 있습니다.
일반 사용자는 Ceph OSD에서 적어도 Ceph 모니터 및 읽기 및 쓰기 기능이 있습니다. 또한 사용자의 OSD 권한은 특정 풀에 액세스하도록 제한되는 경우가 많습니다.
[ceph: root@host01 /]# ceph auth add client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=mypool' -o george.keyring [ceph: root@host01 /]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=mypool' -o ringo.key
[ceph: root@host01 /]# ceph auth add client.john mon 'allow r' osd 'allow rw pool=mypool'
[ceph: root@host01 /]# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=mypool'
[ceph: root@host01 /]# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=mypool' -o george.keyring
[ceph: root@host01 /]# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=mypool' -o ringo.key
OSD에서 사용자에게 기능을 제공하지만 특정 풀에 대한 액세스를 제한하지 않으면 사용자는 클러스터의 모든 풀에 액세스할 수 있습니다.
6.2.4. Ceph 사용자 수정 링크 복사링크가 클립보드에 복사되었습니다!
ceph auth caps 명령을 사용하면 사용자를 지정하고 사용자의 기능을 변경할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
기능을 추가하려면 양식을 사용하십시오.
구문
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'
ceph auth caps USERTYPE.USERID DAEMON 'allow [r|w|x|*|...] [pool=POOL_NAME] [namespace=NAMESPACE_NAME]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=mypool' [ceph: root@host01 /]# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
[ceph: root@host01 /]# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=mypool' [ceph: root@host01 /]# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=mypool' [ceph: root@host01 /]# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기능을 제거하려면 기능을 재설정할 수 있습니다. 사용자가 이전에 설정한 특정 데몬에 대한 액세스 권한이 없으면 빈 문자열을 지정합니다.
예제
[ceph: root@host01 /]# ceph auth caps client.ringo mon ' ' osd ' '
[ceph: root@host01 /]# ceph auth caps client.ringo mon ' ' osd ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.5. Ceph 사용자 삭제 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 Ceph 스토리지 클러스터에서 사용자를 삭제할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
사용자를 삭제하려면
ceph auth del을 사용합니다.구문
ceph auth del TYPE.ID
ceph auth del TYPE.IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth del osd.6
[ceph: root@host01 /]# ceph auth del osd.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.6. Ceph 사용자 키 출력 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 Ceph 사용자의 키 정보를 표시할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
사용자의 인증 키를 표준 출력에 인쇄합니다.
구문
ceph auth print-key TYPE.ID
ceph auth print-key TYPE.IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth print-key osd.6 AQBQ7U5gAry3JRAA3NoPrqBBThpFMcRL6Sr+5w==[ceph: root@host01 /]#
[ceph: root@host01 /]# ceph auth print-key osd.6 AQBQ7U5gAry3JRAA3NoPrqBBThpFMcRL6Sr+5w==[ceph: root@host01 /]#Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7장. ceph-volume 유틸리티 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 ceph-volume 유틸리티를 사용하여 Ceph OSD를 준비, 나열, 생성, 활성화, 활성화, 비활성화, 배치, 트리거, zap, 마이그레이션할 수 있습니다. ceph-volume 유틸리티는 논리 볼륨을 OSD로 배포하는 단일 용도의 명령줄 툴입니다. 플러그형 프레임워크를 사용하여 다양한 장치 기술로 OSD를 배포합니다. ceph-volume 유틸리티는 OSD를 배포하기 위한 ceph-disk 유틸리티의 유사한 워크플로를 따르며, OSD를 준비, 활성화 및 시작하는 데 필요한 강력한 방법으로 OSD를 배포합니다. 현재 ceph-volume 유틸리티는 향후 다른 기술을 지원할 계획인 lvm 플러그인만 지원합니다.
ceph-disk 명령은 더 이상 사용되지 않습니다.
7.1. Ceph 볼륨 lvm 플러그인 링크 복사링크가 클립보드에 복사되었습니다!
LVM 태그를 사용하면 lvm 하위 명령을 사용하여 OSD와 연결된 장치를 쿼리하여 활성화할 수 있도록 LVM 하위 명령을 저장하고 다시 검색할 수 있습니다. 여기에는 dm-cache 와 같은 lvm 기반 기술도 지원됩니다.
ceph-volume 를 사용하는 경우 dm-cache 를 사용할 수 없으며 논리 볼륨과 같이 dm-cache 를 처리합니다. dm-cache 를 사용할 때 성능상의 이점과 손실은 특정 워크로드에 따라 달라집니다. 일반적으로 무작위 및 순차적 읽기는 작은 블록 크기에서 성능이 향상되는 것을 볼 수 있습니다. 무작위 및 순차적 쓰기는 더 큰 블록 크기에서 성능이 저하되는 것을 볼 수 있습니다.
LVM 플러그인을 사용하려면 cephadm 쉘 내의 ceph-volume 명령에 lvm 을 하위 명령으로 추가합니다.
[ceph: root@host01 /]# ceph-volume lvm
[ceph: root@host01 /]# ceph-volume lvm
lvm 하위 명령은 다음과 같습니다.
-
준비- LVM 장치를 포맷하고 OSD와 연결합니다. -
활성화- OSD ID와 연결된 LVM 장치를 검색하고 마운트하고 Ceph OSD를 시작합니다. -
list- Ceph와 연결된 논리 볼륨 및 장치를 나열합니다. -
일괄 처리- 최소한의 상호 작용을 통해 다중 OSD 프로비저닝을 위한 장치를 자동으로 조정합니다. -
비활성화- OSD 비활성화. -
Create - LVM 장치에서 새 OSD를
만듭니다. -
Trigger- OSD를 활성화하는 systemd 도우미입니다. -
zap- 논리 볼륨 또는 파티션에서 모든 데이터와 파일 시스템을 제거합니다. -
마이그레이션- BlueFS 데이터를 다른 LVM 장치로 마이그레이션합니다. -
new-wal- 지정된 논리 볼륨에서 OSD에 대한 새 WAL 볼륨을 할당합니다. -
new-db- 지정된 논리 볼륨에서 OSD의 새 DB 볼륨을 할당합니다.
create 하위 명령을 사용하면 prepare 및 activate 하위 명령이 하나의 하위 명령으로 결합됩니다.
7.2. ceph-volume 이 ceph-disk 를 대체하는 이유는 무엇입니까? 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage 4까지 ceph-disk 유틸리티는 OSD를 준비, 활성화 및 생성하는 데 사용되었습니다. Red Hat Ceph Storage 4부터 ceph-disk 는 OSD로 논리 볼륨을 배포하는 단일 용도 명령줄 툴인 ceph-volume 유틸리티로 교체되며 OSD를 준비, 활성화 및 생성할 때 ceph-disk 에 유사한 API를 유지 관리합니다.
ceph-volume 은 어떻게 작동합니까?
ceph-volume 은 현재 하드웨어 장치, 레거시 ceph-disk 장치 및 LVM(Logical Volume Manager) 장치를 프로비저닝하는 두 가지 방법을 지원하는 모듈식 툴입니다. ceph-volume lvm 명령은 LVM 태그를 사용하여 Ceph 관련 장치와 OSD와의 관계에 대한 정보를 저장합니다. 나중에 OSDS와 연결된 장치를 다시 검색하고 쿼리하여 활성화할 수 있도록 이러한 태그를 사용합니다. LVM 및 dm-cache 를 기반으로 하는 기술도 지원합니다.
ceph-volume 유틸리티는 dm-cache 를 투명하게 사용하고 이를 논리 볼륨으로 처리합니다. 처리 중인 특정 워크로드에 따라 dm-cache 를 사용할 때 성능 향상 및 손실을 고려할 수 있습니다. 일반적으로, 무작위 및 순차적 읽기 작업의 성능은 더 작은 블록 크기로 증가하지만, 임의의 쓰기 및 순차적 쓰기 작업의 성능은 더 큰 블록 크기로 감소합니다. ceph-volume 을 사용하면 상당한 성능 저하가 발생하지 않습니다.
ceph-disk 유틸리티는 더 이상 사용되지 않습니다.
ceph-volume simple 명령은 이러한 장치를 아직 사용 중인 경우 기존 ceph-disk 장치를 처리할 수 있습니다.
ceph-disk 는 어떻게 작동합니까?
ceph-disk 유틸리티는 upstart 또는 sysvinit 와 같은 다양한 유형의 init 시스템을 지원하는 동시에 장치를 검색할 수 있어야 합니다. 이러한 이유로 ceph-disk 는 GUID 파티션 테이블(GPT) 파티션에만 집중합니다. 특히 다음과 같은 질문에 답할 수 있는 고유한 방법으로 장치에 레이블을 지정하는 GPT GUID의 경우 다음과 같습니다.
-
이 장치는
저널입니까? - 이 장치는 암호화된 데이터 파티션입니까?
- 장치가 부분적으로 준비됩니까?
이러한 문제를 해결하기 위해 ceph-disk 는 UDEV 규칙을 사용하여 GUID와 일치시킵니다.
ceph-disk 사용의 단점은 무엇입니까?
ceph-disk 를 호출하기 위해 UDEV 규칙을 사용하면 ceph-disk systemd 장치와 ceph-disk 실행 파일 사이에 back-and-forth가 발생할 수 있습니다. 프로세스는 매우 신뢰할 수 없으며 시간이 오래 걸리며 노드의 부팅 프로세스 중에 OSD가 전혀 나타나지 않을 수 있습니다. 또한 UDEV의 비동기 동작을 고려하여 디버깅하거나 이러한 문제를 복제하기가 어렵습니다.
ceph-disk 는 GPT 파티션에서만 작동하므로 LVM(Logical Volume Manager) 볼륨 또는 유사한 장치 매퍼 장치와 같은 다른 기술을 지원할 수 없습니다.
GPT 파티션이 장치 검색 워크플로우에서 올바르게 작동하도록 하려면 ceph-disk 를 사용하려면 다수의 특수 플래그를 사용해야 합니다. 또한 이러한 파티션은 Ceph에서 장치를 독점적으로 소유해야 합니다.
7.3. ceph-volume을 사용하여 Ceph OSD 준비 링크 복사링크가 클립보드에 복사되었습니다!
prepare 하위 명령은 OSD 백엔드 오브젝트 저장소를 준비하고 OSD 데이터와 저널 모두에 논리 볼륨(LV)을 사용합니다. LVM을 사용하여 일부 메타데이터 태그를 추가하는 경우를 제외하고 논리 볼륨을 수정하지 않습니다. 이러한 태그를 사용하면 볼륨을 더 쉽게 검색할 수 있으며, 볼륨을 Ceph Storage 클러스터의 일부로 식별하고 스토리지 클러스터에서 해당 볼륨의 역할도 식별합니다.
BlueStore OSD 백엔드는 다음 구성을 지원합니다.
-
블록 장치,
block.wal장치,block.db장치 -
블록 장치 및
block.wal장치 -
블록 장치 및
block.db장치 - 단일 블록 장치
prepare 하위 명령은 전체 장치 또는 파티션 또는 블록 용으로 논리 볼륨을 허용합니다.
사전 요구 사항
- OSD 노드에 대한 루트 수준 액세스.
- 선택적으로 논리 볼륨을 생성합니다. 물리적 장치에 대한 경로를 제공하면 하위 명령이 장치를 논리 볼륨으로 전환합니다. 이 방법은 더 간단하지만 논리 볼륨이 생성되는 방식을 구성하거나 변경할 수 없습니다.
절차
Ceph 인증 키를 추출합니다.
구문
ceph auth get client.ID -o ceph.client.ID.keyring
ceph auth get client.ID -o ceph.client.ID.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
[ceph: root@host01 /]# ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow LVM 볼륨을 준비합니다.
구문
ceph-volume lvm prepare --bluestore --data VOLUME_GROUP/LOGICAL_VOLUME
ceph-volume lvm prepare --bluestore --data VOLUME_GROUP/LOGICAL_VOLUMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --data example_vg/data_lv
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --data example_vg/data_lvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 RocksDB에 별도의 장치를 사용하려면
--block.db및--block.wal옵션을 지정합니다.구문
ceph-volume lvm prepare --bluestore --block.db BLOCK_DB_DEVICE --block.wal BLOCK_WAL_DEVICE --data DATA_DEVICE
ceph-volume lvm prepare --bluestore --block.db BLOCK_DB_DEVICE --block.wal BLOCK_WAL_DEVICE --data DATA_DEVICECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --block.db /dev/sda --block.wal /dev/sdb --data /dev/sdc
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --block.db /dev/sda --block.wal /dev/sdb --data /dev/sdcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로 데이터를 암호화하려면
--dmcrypt플래그를 사용합니다.구문
ceph-volume lvm prepare --bluestore --dmcrypt --data VOLUME_GROUP/LOGICAL_VOLUME
ceph-volume lvm prepare --bluestore --dmcrypt --data VOLUME_GROUP/LOGICAL_VOLUMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --dmcrypt --data example_vg/data_lv
[ceph: root@host01 /]# ceph-volume lvm prepare --bluestore --dmcrypt --data example_vg/data_lvCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4. ceph-volume을 사용하여 장치 나열 링크 복사링크가 클립보드에 복사되었습니다!
ceph-volume lvm list 하위 명령을 사용하여 Ceph 클러스터와 연결된 논리 볼륨 및 장치를 나열할 수 있습니다. 출력은 장치와 연결된 OSD ID로 그룹화됩니다. 논리 볼륨의 경우 devices 키 는 논리 볼륨과 연결된 물리 장치로 채워집니다.
ceph -s 명령의 출력에 다음 오류 메시지가 표시되는 경우도 있습니다.
1 devices have fault light turned on
1 devices have fault light turned on
이러한 경우 ceph device ls-lights 명령을 사용하여 장치를 나열하여 장치의 표시에 대한 세부 정보를 제공할 수 있습니다. 정보를 기반으로 장치에서 불을 끌 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
절차
Ceph 클러스터의 장치를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 표시등으로 스토리지 클러스터의 장치를 나열합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 장치에서 불을 끄십시오.
구문
ceph device light off DEVICE_NAME FAULT/INDENT --force
ceph device light off DEVICE_NAME FAULT/INDENT --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph device light off SEAGATE_ST12000NM002G_ZL2KTGCK0000C149 fault --force
[ceph: root@host01 /]# ceph device light off SEAGATE_ST12000NM002G_ZL2KTGCK0000C149 fault --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5. ceph-volume을 사용하여 Ceph OSD 활성화 링크 복사링크가 클립보드에 복사되었습니다!
활성화 프로세스를 사용하면 부팅 시 systemd 장치를 활성화하여 올바른 OSD 식별자와 해당 UUID를 활성화 및 마운트할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
-
ceph-volume유틸리티에서 준비한 Ceph OSD.
절차
OSD 노드에서 OSD ID 및 OSD FSID를 가져옵니다.
[ceph: root@host01 /]# ceph-volume lvm list
[ceph: root@host01 /]# ceph-volume lvm listCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD를 활성화합니다.
구문
ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
ceph-volume lvm activate --bluestore OSD_ID OSD_FSIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm activate --bluestore 10 7ce687d9-07e7-4f8f-a34e-d1b0efb89920
[ceph: root@host01 /]# ceph-volume lvm activate --bluestore 10 7ce687d9-07e7-4f8f-a34e-d1b0efb89920Copy to Clipboard Copied! Toggle word wrap Toggle overflow 활성화할 수 있는 모든 OSD를 활성화하려면
--all옵션을 사용합니다.예제
[ceph: root@host01 /]# ceph-volume lvm activate --all
[ceph: root@host01 /]# ceph-volume lvm activate --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로
trigger하위 명령을 사용할 수 있습니다. 이 명령은 직접 사용할 수 없으며,ceph-volume lvm에 대한 입력을 프록시하도록. 그러면 systemd 및 startup에서 들어오는 메타데이터를 구문 분석하여 OSD와 연결된 UUID 및 ID를 탐지합니다.systemd에서 사용합니다구문
ceph-volume lvm trigger SYSTEMD_DATA
ceph-volume lvm trigger SYSTEMD_DATACopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서 SYSTEMD_DATA 는 OSD_ID-OSD_FSID 형식입니다.
예제
[ceph: root@host01 /]# ceph-volume lvm trigger 10 7ce687d9-07e7-4f8f-a34e-d1b0efb89920
[ceph: root@host01 /]# ceph-volume lvm trigger 10 7ce687d9-07e7-4f8f-a34e-d1b0efb89920Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6. ceph-volume을 사용하여 Ceph OSD 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
ceph-volume lvm 하위 명령을 사용하여 Ceph OSD를 비활성화할 수 있습니다. 이 하위 명령은 볼륨 그룹과 논리 볼륨을 제거합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
-
Ceph OSD는
ceph-volume유틸리티를 사용하여 활성화됩니다.
절차
OSD 노드에서 OSD ID를 가져옵니다.
[ceph: root@host01 /]# ceph-volume lvm list
[ceph: root@host01 /]# ceph-volume lvm listCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD를 비활성화합니다.
구문
ceph-volume lvm deactivate OSD_ID
ceph-volume lvm deactivate OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm deactivate 16
[ceph: root@host01 /]# ceph-volume lvm deactivate 16Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.7. ceph-volume을 사용하여 Ceph OSD 생성 링크 복사링크가 클립보드에 복사되었습니다!
create 하위 명령은 prepare 하위 명령을 호출한 다음 activate 하위 명령을 호출합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
생성 프로세스를 더 많이 제어하려는 경우, create를 사용하는 대신 prepare 하위 명령을 별도로 사용하여 OSD를 만들 수 있습니다. 두 개의 하위 명령을 사용하여 대량의 데이터를 재조정하는 것을 피하면서 점진적으로 새 OSD를 스토리지 클러스터에 도입할 수 있습니다. 두 접근 방식은 create 하위 명령을 사용하면 OSD가 완료되면 즉시 가동 되는 것을 제외하고는 동일한 방식으로 작동합니다.
절차
새 OSD를 생성하려면 다음을 수행합니다.
구문
ceph-volume lvm create --bluestore --data VOLUME_GROUP/LOGICAL_VOLUME
ceph-volume lvm create --bluestore --data VOLUME_GROUP/LOGICAL_VOLUMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ceph-volume lvm create --bluestore --data example_vg/data_lv
[root@osd ~]# ceph-volume lvm create --bluestore --data example_vg/data_lvCopy to Clipboard Copied! Toggle word wrap Toggle overflow
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage 관리 가이드의 'ceph-volume'을 사용하여 CephOSD 준비 섹션을 참조하십시오.
- 자세 한 내용은 Red Hat Ceph Storage 관리 가이드에서 'ceph-volume'을 사용하여 Ceph OSD 활성화 섹션을 참조하십시오.
7.8. BlueFS 데이터 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
migrate LVM 하위 명령을 사용하여 소스 볼륨에서 대상 볼륨으로 RocksDB 데이터인 BlueStore 파일 시스템(BlueFS) 데이터를 마이그레이션할 수 있습니다. 기본 볼륨을 제외한 소스 볼륨은 성공 시 제거됩니다.
LVM 볼륨은 주로 대상 전용입니다.
새 볼륨이 OSD에 연결되어 소스 드라이브 중 하나를 대체합니다.
다음은 LVM 볼륨에 대한 배치 규칙입니다.
- 소스 목록에 DB 또는 WAL 볼륨이 있는 경우 대상 장치에서 대체됩니다.
-
소스 목록에 볼륨 속도가 느린 경우
new-db또는new-wal명령을 사용하여 명시적 할당이 필요합니다.
new-db 및 new-wal 명령은 지정된 논리 볼륨을 각각 DB 또는 WAL 볼륨으로 지정된 OSD에 연결합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
-
ceph-volume유틸리티에서 준비한 Ceph OSD. - 볼륨 그룹 및 논리 볼륨이 생성됩니다.
절차
cephadm쉘에 로그인합니다.예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow DB 또는 WAL 장치를 추가해야 하는 OSD를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch daemon stop osd.1
[ceph: root@host01 /]# ceph orch daemon stop osd.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너에 새 장치를 마운트합니다.
예제
cephadm shell --mount /var/lib/ceph/72436d46-ca06-11ec-9809-ac1f6b5635ee/osd.1:/var/lib/ceph/osd/ceph-1
[root@host01 ~]# cephadm shell --mount /var/lib/ceph/72436d46-ca06-11ec-9809-ac1f6b5635ee/osd.1:/var/lib/ceph/osd/ceph-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 지정된 논리 볼륨을 DB/WAL 장치로 OSD에 연결합니다.
참고OSD에 연결된 DB가 있는 경우 이 명령이 실패합니다.
구문
ceph-volume lvm new-db --osd-id OSD_ID --osd-fsid OSD_FSID --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm new-db --osd-id OSD_ID --osd-fsid OSD_FSID --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm new-db --osd-id 1 --osd-fsid 7ce687d9-07e7-4f8f-a34e-d1b0efb89921 --target vgname/new_db [ceph: root@host01 /]# ceph-volume lvm new-wal --osd-id 1 --osd-fsid 7ce687d9-07e7-4f8f-a34e-d1b0efb89921 --target vgname/new_wal
[ceph: root@host01 /]# ceph-volume lvm new-db --osd-id 1 --osd-fsid 7ce687d9-07e7-4f8f-a34e-d1b0efb89921 --target vgname/new_db [ceph: root@host01 /]# ceph-volume lvm new-wal --osd-id 1 --osd-fsid 7ce687d9-07e7-4f8f-a34e-d1b0efb89921 --target vgname/new_walCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 다음과 같은 방법으로 마이그레이션할 수 있습니다.
BlueFS 데이터를 DB로 이미 연결된 LV로 이동합니다.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data --target vgname/db
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data --target vgname/dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 공유 기본 장치에서 새 DB로 연결해야 하는 LV로 이동합니다.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data --target vgname/new_db
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data --target vgname/new_dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 DB 장치에서 새 LV로 이동하고 DB 장치를 교체하십시오.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from db --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from db --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from db --target vgname/new_db
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from db --target vgname/new_dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 기본 및 DB 장치에서 새 LV로 이동하고 DB 장치를 교체하십시오.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data db --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data db --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data db --target vgname/new_db
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data db --target vgname/new_dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 기본, DB 및 WAL 장치에서 새 LV로 이동하고, WAL 장치를 제거한 후 DB 장치를 교체합니다.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data db wal --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from data db wal --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data db --target vgname/new_db
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from data db --target vgname/new_dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueFS 데이터를 기본, DB 및 WAL 장치에서 기본 장치로 이동하여 WAL 및 DB 장치를 제거하십시오.
구문
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from db wal --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
ceph-volume lvm migrate --osd-id OSD_ID --osd-fsid OSD_UUID --from db wal --target VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from db wal --target vgname/data
[ceph: root@host01 /]# ceph-volume lvm migrate --osd-id 1 --osd-fsid 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8 --from db wal --target vgname/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.9. BlueFS DB 장치 확장 링크 복사링크가 클립보드에 복사되었습니다!
ceph-bluestore 도구를 사용하여 ceph-volume 생성 OSD의 RocksDB 데이터인 BlueStore 파일 시스템(BlueFS) 데이터의 스토리지를 확장할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
-
Ceph OSD는
ceph-volume유틸리티를 통해 준비합니다. - 볼륨 그룹 및 논리 볼륨이 생성됩니다.
OSD가 배포된 호스트에서 다음 단계를 실행합니다.
절차
선택 사항:
cephadm쉘 외에도 Red Hat Ceph Storage 클러스터의 장치를 나열합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨 그룹 정보를 가져옵니다.
예제
vgs VG #PV #LV #SN Attr VSize VFree db-test 1 1 0 wz--n- <200.00g <160.00g test 1 1 0 wz--n- <200.00g <170.00g
[root@host01 ~]# vgs VG #PV #LV #SN Attr VSize VFree db-test 1 1 0 wz--n- <200.00g <160.00g test 1 1 0 wz--n- <200.00g <170.00gCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph OSD 서비스를 중지합니다.
예제
systemctl stop host01a6112da-ed05-11ee-bacd-525400565cda@osd.3.service
[root@host01 ~]# systemctl stop host01a6112da-ed05-11ee-bacd-525400565cda@osd.3.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 논리 볼륨의 크기를 조정, 축소 및 확장합니다.
예제
lvresize -l 100%FREE /dev/db-test/db1 Size of logical volume db-test/db1 changed from 40.00 GiB (10240 extents) to <160.00 GiB (40959 extents). Logical volume db-test/db1 successfully resized.
[root@host01 ~]# lvresize -l 100%FREE /dev/db-test/db1 Size of logical volume db-test/db1 changed from 40.00 GiB (10240 extents) to <160.00 GiB (40959 extents). Logical volume db-test/db1 successfully resized.Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm쉘을 시작합니다.구문
cephadm shell -m /var/lib/ceph/CLUSTER_FSID/osd.OSD_ID:/var/lib/ceph/osd/ceph-OSD_ID:z
cephadm shell -m /var/lib/ceph/CLUSTER_FSID/osd.OSD_ID:/var/lib/ceph/osd/ceph-OSD_ID:zCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm shell -m /var/lib/ceph/1a6112da-ed05-11ee-bacd-525400565cda/osd.3:/var/lib/ceph/osd/ceph-3:z
[root@host01 ~]# cephadm shell -m /var/lib/ceph/1a6112da-ed05-11ee-bacd-525400565cda/osd.3:/var/lib/ceph/osd/ceph-3:zCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-bluestore-tool은cephadm쉘 컨테이너 내에서 BlueStore 데이터에 액세스해야 하므로 바인딩 마운트해야 합니다. BlueStore 데이터를 사용하려면-m옵션을 사용합니다.확장 전에 Rocks DB의 크기를 확인하십시오.
구문
ceph-bluestore-tool show-label --path OSD_DIRECTORY_PATH
ceph-bluestore-tool show-label --path OSD_DIRECTORY_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BlueStore 장치를 확장합니다.
구문
ceph-bluestore-tool bluefs-bdev-expand --path OSD_DIRECTORY_PATH
ceph-bluestore-tool bluefs-bdev-expand --path OSD_DIRECTORY_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow block.db가 확장되었는지 확인합니다.구문
ceph-bluestore-tool show-label --path OSD_DIRECTORY_PATH
ceph-bluestore-tool show-label --path OSD_DIRECTORY_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 쉘을 종료하고 OSD를 다시 시작합니다.
예제
systemctl start host01a6112da-ed05-11ee-bacd-525400565cda@osd.3.service osd.3 host01 running (15s) 0s ago 13m 46.9M 4096M 19.0.0-2493-gd82c9aa1 3714003597ec 02150b3b6877
[root@host01 ~]# systemctl start host01a6112da-ed05-11ee-bacd-525400565cda@osd.3.service osd.3 host01 running (15s) 0s ago 13m 46.9M 4096M 19.0.0-2493-gd82c9aa1 3714003597ec 02150b3b6877Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.10. ceph-volume과 함께 배치 모드 사용 링크 복사링크가 클립보드에 복사되었습니다!
batch 하위 명령은 단일 장치를 제공하면 여러 OSD 생성을 자동화합니다.
ceph-volume 명령은 드라이브 유형에 따라 OSD를 생성하는 데 사용할 최적의 방법을 결정합니다. Ceph OSD 최적화는 사용 가능한 장치에 따라 다릅니다.
-
모든 장치가 기존 하드 드라이브인 경우
배치는 장치당 하나의 OSD를 생성합니다. -
모든 장치가 솔리드 상태 드라이브인 경우
배치는 장치당 두 개의 OSD를 생성합니다. -
기존 하드 드라이브와 솔리드 스테이트 드라이브가 혼합된 경우
일괄 처리는 데이터를 위해 기존 하드 드라이브를 사용하고 솔리드 스테이트 드라이브에서 가능한 가장 큰 저널(block.db)을 생성합니다.
batch 하위 명령은 write-ahead-log(block.wal) 장치에 대해 별도의 논리 볼륨 생성을 지원하지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
절차
여러 드라이브에서 OSD를 생성하려면 다음을 수행합니다.
구문
ceph-volume lvm batch --bluestore PATH_TO_DEVICE [PATH_TO_DEVICE]
ceph-volume lvm batch --bluestore PATH_TO_DEVICE [PATH_TO_DEVICE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm batch --bluestore /dev/sda /dev/sdb /dev/nvme0n1
[ceph: root@host01 /]# ceph-volume lvm batch --bluestore /dev/sda /dev/sdb /dev/nvme0n1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11. ceph-volume을 사용한 데이터 zapping 링크 복사링크가 클립보드에 복사되었습니다!
zap 하위 명령은 논리 볼륨 또는 파티션에서 모든 데이터와 파일 시스템을 제거합니다.
zap 하위 명령을 사용하여 Ceph OSD에서 재사용하기 위해 사용하는 논리 볼륨, 파티션 또는 원시 장치를 zap 하위 명령을 사용할 수 있습니다. 지정된 논리 볼륨 또는 파티션에 있는 파일 시스템이 제거되고 모든 데이터가 제거됩니다.
필요한 경우 --destroy 플래그를 사용하여 논리 볼륨, 파티션 또는 물리적 장치를 완전히 제거할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph OSD 노드에 대한 루트 수준 액세스.
절차
논리 볼륨을 zap합니다.
구문
ceph-volume lvm zap VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME [--destroy]
ceph-volume lvm zap VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME [--destroy]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm zap osd-vg/data-lv
[ceph: root@host01 /]# ceph-volume lvm zap osd-vg/data-lvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 파티션을 zap합니다.
구문
ceph-volume lvm zap DEVICE_PATH_PARTITION [--destroy]
ceph-volume lvm zap DEVICE_PATH_PARTITION [--destroy]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm zap /dev/sdc1
[ceph: root@host01 /]# ceph-volume lvm zap /dev/sdc1Copy to Clipboard Copied! Toggle word wrap Toggle overflow raw device를 zap합니다.
구문
ceph-volume lvm zap DEVICE_PATH --destroy
ceph-volume lvm zap DEVICE_PATH --destroyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm zap /dev/sdc --destroy
[ceph: root@host01 /]# ceph-volume lvm zap /dev/sdc --destroyCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD ID를 사용하여 여러 장치를 삭제합니다.
구문
ceph-volume lvm zap --destroy --osd-id OSD_ID
ceph-volume lvm zap --destroy --osd-id OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm zap --destroy --osd-id 16
[ceph: root@host01 /]# ceph-volume lvm zap --destroy --osd-id 16Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고모든 상대 장치는 zapped입니다.
FSID로 OSD를 삭제합니다.
구문
ceph-volume lvm zap --destroy --osd-fsid OSD_FSID
ceph-volume lvm zap --destroy --osd-fsid OSD_FSIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph-volume lvm zap --destroy --osd-fsid 65d7b6b1-e41a-4a3c-b363-83ade63cb32b
[ceph: root@host01 /]# ceph-volume lvm zap --destroy --osd-fsid 65d7b6b1-e41a-4a3c-b363-83ade63cb32bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고모든 상대 장치는 zapped입니다.
8장. Ceph 성능 벤치마크 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터의 성능을 벤치마크할 수 있습니다. 이 섹션의 목적은 Ceph 관리자에게 Ceph의 기본 벤치마킹 툴에 대한 기본적인 이해를 제공하기 위한 것입니다. 이러한 툴은 Ceph 스토리지 클러스터의 수행 방식에 대한 몇 가지 통찰력을 제공합니다. 이 가이드는 Ceph 성능 벤치마킹에 대한 확정 가이드가 아니며 이에 따라 Ceph를 조정하는 방법에 대한 가이드가 아닙니다.
8.1. 성능 기준 링크 복사링크가 클립보드에 복사되었습니다!
저널, 디스크 및 네트워크 처리량을 포함한 OSD에는 각각 비교할 성능 기준선이 있어야 합니다. 기본 성능 데이터를 Ceph 네이티브 툴의 데이터와 비교하여 잠재적인 튜닝 기회를 확인할 수 있습니다. Red Hat Enterprise Linux는 수많은 오픈 소스 커뮤니티 툴과 함께 이러한 작업을 수행하는 데 도움이 되는 다양한 툴을 제공합니다.
추가 리소스
- 사용 가능한 도구 중 일부에 대한 자세한 내용은 기술 자료 문서 를 참조하십시오.
8.2. Ceph 성능 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
Ceph에는 RADOS 스토리지 클러스터에서 성능 벤치마킹을 수행하는 rados bench 명령이 포함되어 있습니다. 이 명령은 쓰기 테스트와 두 가지 유형의 읽기 테스트를 실행합니다. 읽기 및 쓰기 성능을 테스트할 때 --no-cleanup 옵션을 사용하는 것이 중요합니다. 기본적으로 rados bench 명령은 스토리지 풀에 작성된 오브젝트를 삭제합니다. 이러한 오브젝트 뒤에 두 개의 읽기 테스트를 통해 순차적 및 임의의 읽기 성능을 측정할 수 있습니다.
이러한 성능 테스트를 실행하기 전에 다음을 실행하여 모든 파일 시스템 캐시를 삭제합니다.
예제
[ceph: root@host01 /]# echo 3 | sudo tee /proc/sys/vm/drop_caches && sudo sync
[ceph: root@host01 /]# echo 3 | sudo tee /proc/sys/vm/drop_caches && sudo sync
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
새 스토리지 풀을 생성합니다.
예제
[ceph: root@host01 /]# ceph osd pool create testbench 100 100
[ceph: root@host01 /]# ceph osd pool create testbench 100 100Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로 생성된 스토리지 풀에 10초 동안 쓰기 테스트를 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 풀까지 10초 동안 연속 읽기 테스트를 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 풀까지 10초 동안 임의의 읽기 테스트를 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동시 읽기 및 쓰기 수를 늘리려면
-t옵션을 사용합니다. 기본값은 16개 스레드입니다. 또한-b매개 변수는 작성 중인 개체의 크기를 조정할 수 있습니다. 기본 오브젝트 크기는 4MB입니다. 안전한 최대 오브젝트 크기는 16MB입니다. Red Hat은 다양한 풀에 이러한 벤치마크 테스트 사본을 여러 개 실행하는 것이 좋습니다. 이 작업을 수행하면 여러 클라이언트의 성능 변경이 표시됩니다.--run-name LABEL옵션을 추가하여 벤치마크 테스트 중에 작성된 오브젝트의 이름을 제어합니다. 실행 중인 각 명령 인스턴스의--run-name레이블을 변경하여 여러rados bench명령을 동시에 실행할 수 있습니다. 이렇게 하면 여러 클라이언트가 동일한 오브젝트에 액세스하려고 할 때 발생할 수 있는 잠재적인 I/O 오류가 발생하지 않도록 하고 다른 클라이언트가 다른 오브젝트에 액세스할 수 있습니다.--run-name옵션은 실제 워크로드를 시뮬레이션하려고 할 때도 유용합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rados bench명령을 통해 생성된 데이터를 제거합니다.예제
[ceph: root@host01 /]# rados -p testbench cleanup
[ceph: root@host01 /]# rados -p testbench cleanupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. Ceph 블록 성능 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
Ceph에는 처리량 및 대기 시간을 측정한 블록 장치에 대한 순차적인 쓰기를 테스트하는 rbd bench-write 명령이 포함되어 있습니다. 기본 바이트 크기는 4096이고 기본 I/O 스레드 수는 16이고 쓸 기본 총 바이트 수는 1GB입니다. 이러한 기본값은 --io-size,--io-threads 및 --io-total 옵션에 의해 각각 수정할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
블록 장치에 대해 쓰기 성능 테스트 실행
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4. CephFS 성능 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
FIO 툴을 사용하여 Ceph 파일 시스템(CephFS) 성능을 벤치마킹할 수 있습니다. 이 툴은 Ceph 블록 장치를 벤치마킹하는 데도 사용할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
- FIO 툴이 노드에 설치되어 있습니다. 자세한 내용은 KCS How to install the flexible I/O Tester (fio) performance benchmarking tool 을 참조하십시오.
- 블록 장치 또는 노드에 마운트된 Ceph 파일 시스템입니다.
절차
블록 장치 또는 CephFS가 마운트된 노드 또는 애플리케이션으로 이동합니다.
예제
cd /mnt/ceph-block-device cd /mnt/ceph-file-system
[root@host01 ~]# cd /mnt/ceph-block-device [root@host01 ~]# cd /mnt/ceph-file-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow FIO 명령을 실행합니다. 4k에서
bs값을 시작하고 다양한iodepth설정으로 2 증분 (4k, 8k, 16k, 32k … 128k… 512k, 1m, 2m, 4m)의 전원을 반복합니다. 또한 예상되는 워크로드 작업 수준에서 테스트를 실행해야 합니다.다양한 iodepth 값을 사용하는 4K 테스트의 예
fio --name=randwrite --rw=randwrite --direct=1 --ioengine=libaio --bs=4k --iodepth=32 --size=5G --runtime=60 --group_reporting=1
fio --name=randwrite --rw=randwrite --direct=1 --ioengine=libaio --bs=4k --iodepth=32 --size=5G --runtime=60 --group_reporting=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다양한 iodepth 값을 사용하는 8K 테스트의 예
fio --name=randwrite --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --iodepth=32 --size=5G --runtime=60 --group_reporting=1
fio --name=randwrite --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --iodepth=32 --size=5G --runtime=60 --group_reporting=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고fio명령 사용에 대한 자세한 내용은fio도움말 페이지를 참조하십시오.
8.5. Ceph Object Gateway 성능 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
s3cmd 툴을 사용하여 Ceph Object Gateway 성능을 벤치마킹할 수 있습니다.
get 및 put requests를 사용하여 성능을 확인합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
-
s3cmd가 노드에 설치되어 있어야 합니다.
절차
파일을 업로드하고 속도를 측정합니다.
time명령은 업로드 기간을 측정합니다.구문
time s3cmd put PATH_OF_SOURCE_FILE PATH_OF_DESTINATION_FILE
time s3cmd put PATH_OF_SOURCE_FILE PATH_OF_DESTINATION_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
time s3cmd put /path-to-local-file s3://bucket-name/remote/file
time s3cmd put /path-to-local-file s3://bucket-name/remote/fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow /path-to-local-file을 업로드할 파일로 바꾸고s3://bucket-name/remote/file을 S3 버킷의 대상으로 바꿉니다.파일을 다운로드하고 속도를 측정합니다.
time명령은 다운로드 기간을 측정합니다.구문
time s3cmd get PATH_OF_DESTINATION_FILE DESTINATION_PATH
time s3cmd get PATH_OF_DESTINATION_FILE DESTINATION_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
time s3cmd get s3://bucket-name/remote/file /path-to-local-destination
time s3cmd get s3://bucket-name/remote/file /path-to-local-destinationCopy to Clipboard Copied! Toggle word wrap Toggle overflow s3://bucket-name/remote/file을 다운로드하려는 S3 오브젝트로 바꾸고/path-to-local-destination을 파일을 저장하려는 로컬 디렉터리로 바꿉니다.지정된 버킷의 모든 오브젝트를 나열하고 응답 시간을 측정합니다.
구문
time s3cmd ls s3://BUCKET_NAME
time s3cmd ls s3://BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
time s3cmd ls s3://bucket-name
time s3cmd ls s3://bucket-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
출력을 분석하여 업로드/ 다운로드 속도를 계산하고 time 명령으로 보고된 기간에 따라 응답
시간을측정합니다.
9장. Ceph 성능 카운터 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터의 성능 지표를 수집할 수 있습니다. Ceph 성능 카운터는 내부 인프라 지표 컬렉션입니다. 이 메트릭 데이터의 수집, 집계 및 그래프는 도구의 구조로 수행할 수 있으며 성능 분석에 유용할 수 있습니다.
9.1. Ceph 성능 카운터에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
성능 카운터는 Ceph 모니터 및 OSD의 소켓 인터페이스를 통해 사용할 수 있습니다. 각 데몬의 소켓 파일은 기본적으로 /var/run/ceph 에 있습니다. 성능 카운터는 컬렉션 이름으로 그룹화됩니다. 이러한 컬렉션 이름은 하위 시스템 또는 하위 시스템의 인스턴스를 나타냅니다.
다음은 각 기능에 대한 간략한 설명이 포함된 Monitor 및 OSD 컬렉션 이름 카테고리의 전체 목록입니다.
컬렉션 이름 카테고리 모니터링
- 클러스터 지표 - 스토리지 클러스터에 대한 정보 표시: 모니터, OSD, 풀, PGs
-
수준 데이터베이스 지표 - 백엔드
KeyValueStore데이터베이스에 대한 정보 표시 - 모니터 지표 - 일반 모니터 정보 표시
- Paxos Metrics - 클러스터 쿼럼 관리에 대한 정보 표시
- throttle Metrics - 모니터가 제한되는 방법에 대한 통계를 표시합니다
OSD 컬렉션 이름 범주
- back Throttle Metrics 작성 - 쓰기 백성당이 발생하지 않은 IO를 추적하는 방법에 대한 통계를 표시합니다.
-
수준 데이터베이스 지표 - 백엔드
KeyValueStore데이터베이스에 대한 정보 표시 - Objecter Metrics - 다양한 오브젝트 기반 작업에 대한 정보를 표시합니다.
- 작업 지표 읽기 및 쓰기 - 다양한 읽기 및 쓰기 작업에 대한 정보 표시
- 복구 상태 지표 - 다양한 복구 상태에 대기 시간 표시
- OSD Throttle Metrics - OSD가 제한되는 방법에 대한 통계 표시
RADOS Gateway Collection Name Categories
- Object Gateway Client Metrics - GET 및 PUT 요청에 대한 통계 표시
- Objecter Metrics - 다양한 오브젝트 기반 작업에 대한 정보를 표시합니다.
- Object Gateway Throttle Metrics - OSD가 제한되는 방법에 대한 통계 표시
9.2. Ceph 성능 카운터 표시 링크 복사링크가 클립보드에 복사되었습니다!
ceph 데몬 DAEMON_NAME perf schema 명령은 사용 가능한 지표를 출력합니다. 각 메트릭에는 관련 비트 필드 값 유형이 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
지표의 스키마를 보려면 다음을 수행합니다.
Synatx
ceph daemon DAEMON_NAME perf schema
ceph daemon DAEMON_NAME perf schemaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고데몬을 실행하는 노드에서
ceph daemon명령을 실행해야 합니다.모니터 노드에서
ceph 데몬 DAEMON_NAME perf 스키마명령을 실행합니다.예제
[ceph: root@host01 /]# ceph daemon mon.host01 perf schema
[ceph: root@host01 /]# ceph daemon mon.host01 perf schemaCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 노드에서
ceph 데몬 DAEMON_NAME perf 스키마명령을 실행합니다.예제
[ceph: root@host01 /]# ceph daemon osd.11 perf schema
[ceph: root@host01 /]# ceph daemon osd.11 perf schemaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
| bit | 의미 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
각 값에는 부동 소수점 또는 정수 값 중 하나를 나타내는 비트 1 또는 2가 설정됩니다.Each value will have bit 1 or 2 set to indicate the type, either a floating point or an integer value. 비트 4를 설정하면 읽을 값, 합계 및 개수가 두 개 있습니다. 비트 8이 설정되면 이전 간격에 대한 평균은 이전 간격의 합계 델타가 계산 델타로 구분되어 있기 때문에 합계 델타가 됩니다. 또는 값을 비워 두면 수명 평균 값이 제공됩니다.Alternatively, dividing the values outright would provide the lifetime average value. 일반적으로 대기 시간, 요청 수 및 요청 대기 시간 합계를 측정하는 데 사용됩니다. 일부 비트 값은 결합 됩니다(예: 5, 6 및 10). 5의 비트 값은 비트 1과 비트 4의 조합입니다. 즉, 평균은 부동 소수점 값이 됩니다. 비트 값 6은 비트 2와 비트 4의 조합입니다. 평균 값은 정수여야 합니다.The average value is an integer. 10의 비트 값은 비트 2와 비트 8의 조합입니다. 즉, counter 값은 정수 값이 됩니다.This means the counter value will be an integer value.
9.3. Ceph 성능 카운터 덤프 링크 복사링크가 클립보드에 복사되었습니다!
ceph 데몬 .. perf dump 명령은 현재 값을 출력하고 각 하위 시스템의 컬렉션 이름 아래에 지표를 그룹화합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
절차
현재 지표 데이터를 보려면 다음을 수행합니다.
구문
ceph daemon DAEMON_NAME perf dump
ceph daemon DAEMON_NAME perf dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고데몬을 실행하는 노드에서
ceph daemon명령을 실행해야 합니다.모니터 노드에서
ceph 데몬 .. perf dump명령을 실행합니다.[ceph: root@host01 /]# ceph daemon mon.host01 perf dump
[ceph: root@host01 /]# ceph daemon mon.host01 perf dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 노드에서
ceph 데몬 .. perf dump명령을 실행합니다.[ceph: root@host01 /]# ceph daemon osd.11 perf dump
[ceph: root@host01 /]# ceph daemon osd.11 perf dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4. 평균 수 및 합계 링크 복사링크가 클립보드에 복사되었습니다!
모든 대기 시간 숫자는 비트 필드 값이 5입니다. 이 필드에는 평균 개수 및 합계의 부동 소수점 값이 포함됩니다. avgcount 는 이 범위의 작업 수이며 합계 는 총 대기 시간(초)입니다. avgcount 로 합계 를 나눌 때 작업당 대기 시간에 대한 아이디어를 제공합니다.
추가 리소스
- 사용 가능한 각 OSD 메트릭에 대한 간단한 설명을 보려면 Ceph OSD 표 를 참조하십시오.
9.5. Ceph Monitor 지표 링크 복사링크가 클립보드에 복사되었습니다!
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 모니터 수 |
|
| 2 | 쿼럼의 모니터 수 | |
|
| 2 | OSD 총 수 | |
|
| 2 | 가동 중인 OSD 수 | |
|
| 2 | 클러스터에 있는 OSD 수 | |
|
| 2 | OSD 맵의 현재 epoch | |
|
| 2 | 총 클러스터 용량(바이트) | |
|
| 2 | 클러스터에서 사용된 바이트 수 | |
|
| 2 | 클러스터에서 사용 가능한 바이트 수 | |
|
| 2 | 풀 수 | |
|
| 2 | 총 배치 그룹 수 | |
|
| 2 | active+clean 상태의 배치 그룹 수 | |
|
| 2 | 활성 상태의 배치 그룹 수 | |
|
| 2 | 피어링 상태의 배치 그룹 수 | |
|
| 2 | 클러스터의 총 오브젝트 수 | |
|
| 2 | 성능 저하(복제 허용) 오브젝트 수 | |
|
| 2 | 잘못된 위치 수(클러스터의 위치 표시) 오브젝트 수 | |
|
| 2 | Unfound 오브젝트 수 | |
|
| 2 | 모든 오브젝트의 총 바이트 수 | |
|
| 2 | 작동 중인 MDS 수 | |
|
| 2 | 클러스터에 있는 MDS 수 | |
|
| 2 | 실패한 MDS 수 | |
|
| 2 | 현재 MDS 맵의 epoch |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | Get |
|
| 10 | 트랜잭션 | |
|
| 10 | 압축 | |
|
| 10 | 범위별 압축 | |
|
| 10 | 압축 대기열에 있는 범위 병합 | |
|
| 2 | 압축 대기열의 길이 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 현재 열려 있는 모니터 세션 수 |
|
| 10 | 생성된 모니터 세션 수 | |
|
| 10 | 모니터의 remove_session 호출 수 | |
|
| 10 | 트리밍된 모니터 세션 수 | |
|
| 10 | 여러 선거 모니터가 참여했습니다. | |
|
| 10 | 모니터로 시작한 선거 수 | |
|
| 10 | 모니터로 이기한 선거 수 | |
|
| 10 | 모니터에 의해 손실된 선거 수 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | 리더 역할에서 시작 |
|
| 10 | peon 역할에서 시작 | |
|
| 10 | 재시작 | |
|
| 10 | 새로 고침 | |
|
| 5 | 새로 고침 대기 시간 | |
|
| 10 | 시작 및 처리 시작 | |
|
| 6 | 시작 시 트랜잭션의 키 | |
|
| 6 | 시작할 때 트랜잭션의 데이터 | |
|
| 5 | 시작 작업의 대기 시간 | |
|
| 10 | 커밋 | |
|
| 6 | 커밋 시 트랜잭션의 키 | |
|
| 6 | 커밋 시 트랜잭션의 데이터 | |
|
| 5 | 커밋 대기 시간 | |
|
| 10 | peon collects | |
|
| 6 | peon 수집의 트랜잭션의 키 | |
|
| 6 | peon 수집의 트랜잭션 데이터 | |
|
| 5 | peon 수집 대기 시간 | |
|
| 10 | started 및 handled collects에서 커밋되지 않은 값 | |
|
| 10 | 시간 제한 수집 | |
|
| 10 | 제한 시간 수락 | |
|
| 10 | 리스 승인 시간 초과 | |
|
| 10 | 리스 시간 초과 | |
|
| 10 | 공유 상태를 디스크에 저장 | |
|
| 6 | 저장된 상태의 트랜잭션의 키 | |
|
| 6 | 저장된 상태의 트랜잭션 데이터 | |
|
| 5 | 상태 대기 시간 저장 | |
|
| 10 | 상태 공유 | |
|
| 6 | 공유 상태의 키 | |
|
| 6 | 공유 상태의 데이터 | |
|
| 10 | 새로운 제안 번호 쿼리 | |
|
| 5 | 새로운 제안 번호 대기 시간 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | 현재 사용 가능한 throttle |
|
| 10 | throttle에 대한 최대 값 | |
|
| 10 | Get | |
|
| 10 | 데이터 가져오기 | |
|
| 10 | get_or_fail에서 차단됨 | |
|
| 10 | get_or_fail | |
|
| 10 | takes | |
|
| 10 | 가져온 데이터 | |
|
| 10 | puts | |
|
| 10 | 데이터 저장 | |
|
| 5 | 대기 대기 시간 |
9.6. Ceph OSD 지표 링크 복사링크가 클립보드에 복사되었습니다!
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 더티 데이터 |
|
| 2 | 기록된 데이터 | |
|
| 2 | 더티 작업 | |
|
| 2 | 작성된 작업 | |
|
| 2 | 쓰기를 기다리는 항목 | |
|
| 2 | 작성된 항목 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | Get |
|
| 10 | 트랜잭션 | |
|
| 10 | 압축 | |
|
| 10 | 범위별 압축 | |
|
| 10 | 압축 대기열에 있는 범위 병합 | |
|
| 2 | 압축 대기열의 길이 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 활성 작업 |
|
| 2 | 지연 작업 | |
|
| 10 | 전송된 작업 | |
|
| 10 | 전송 데이터 | |
|
| 10 | 리sent 작업 | |
|
| 10 | 커밋 콜백 | |
|
| 10 | 작업 커밋 | |
|
| 10 | 작업 | |
|
| 10 | 읽기 작업 | |
|
| 10 | 쓰기 작업 | |
|
| 10 | read-modify-write 작업 | |
|
| 10 | PG 작업 | |
|
| 10 | 통계 작업 | |
|
| 10 | 오브젝트 작업 생성 | |
|
| 10 | 읽기 작업 | |
|
| 10 | 쓰기 작업 | |
|
| 10 | 전체 오브젝트 작업 작성 | |
|
| 10 | 추가 작업 | |
|
| 10 | object를 0 작업으로 설정 | |
|
| 10 | 개체 작업 truncate | |
|
| 10 | 개체 작업 삭제 | |
|
| 10 | 맵 범위 작업 | |
|
| 10 | 스파스 읽기 작업 | |
|
| 10 | 복제 범위 작업 | |
|
| 10 | xattr 작업 얻기 | |
|
| 10 | xattr 작업 설정 | |
|
| 10 | xattr 비교 작업 | |
|
| 10 | xattr 작업 제거 | |
|
| 10 | xattr 작업 재설정 | |
|
| 10 | TMAP 업데이트 작업 | |
|
| 10 | TMAP 배치 | |
|
| 10 | TMAP 액세스 | |
|
| 10 | 호출(실행) 작업 | |
|
| 10 | 오브젝트 작업 조사 | |
|
| 10 | 오브젝트 작업에 대한 알림 | |
|
| 10 | 다중 작업에서 확장된 특성 비교 | |
|
| 10 | 기타 작업 | |
|
| 2 | 활성 위치 작업 | |
|
| 10 | 보낸 홀더링 작업 | |
|
| 10 | resent lingering 작업 | |
|
| 10 | 링 작업에 ping을 보냅니다. | |
|
| 2 | 활성 풀 작업 | |
|
| 10 | 전송된 풀 작업 | |
|
| 10 | 리sent pool 작업 | |
|
| 2 | 활성 get pool stat 작업 | |
|
| 10 | pool stat 작업 전송 | |
|
| 10 | 리sent pool 통계 | |
|
| 2 | statfs 작업 | |
|
| 10 | 전송된 FS 통계 | |
|
| 10 | 리sent FS 통계 | |
|
| 2 | 활성 명령 | |
|
| 10 | 전송된 명령 | |
|
| 10 | resent 명령 | |
|
| 2 | OSD 맵 epoch | |
|
| 10 | 수신된 전체 OSD 맵 | |
|
| 10 | 수신된 증분 OSD 맵 | |
|
| 2 | 열려 있는 세션 | |
|
| 10 | 세션 열기 | |
|
| 10 | 세션 닫기 | |
|
| 2 | laggy OSD 세션 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 현재 처리 중인 복제 작업(기본) |
|
| 10 | 클라이언트 작업 총 쓰기 크기 | |
|
| 10 | 클라이언트 작업 총 읽기 크기 | |
|
| 5 | 클라이언트 작업 대기 시간( 큐 시간 포함) | |
|
| 5 | 클라이언트 작업 대기 시간( 큐 시간 제외) | |
|
| 10 | 클라이언트 읽기 작업 | |
|
| 10 | 클라이언트 데이터 읽기 | |
|
| 5 | 읽기 작업의 대기 시간 ( 큐 시간 포함) | |
|
| 5 | 읽기 작업의 대기 시간 ( 큐 시간 제외) | |
|
| 10 | 클라이언트 쓰기 작업 | |
|
| 10 | 작성된 클라이언트 데이터 | |
|
| 5 | 클라이언트 쓰기 작업 읽기/ 적용 대기 시간 | |
|
| 5 | 쓰기 대기 시간( 큐 시간 포함) | |
|
| 5 | 쓰기 작업 대기 시간( 큐 시간 제외) | |
|
| 10 | 클라이언트 읽기-수정-쓰기 작업 | |
|
| 10 | 클라이언트 읽기-쓰기 작업 쓰기 | |
|
| 10 | 클라이언트 읽기-수정-쓰기 작업 읽기 | |
|
| 5 | 클라이언트 읽기-수정-쓰기 작업 읽기/추가 대기 시간 | |
|
| 5 | read-modify-write 작업의 대기 시간( 큐 시간 포함) | |
|
| 5 | read-modify-write 작업의 대기 시간( 큐 시간 제외) | |
|
| 10 | 하위 작업 | |
|
| 10 | 합계 크기의 하위 작업 | |
|
| 5 | 하위 작업 대기 시간 | |
|
| 10 | 복제된 쓰기 | |
|
| 10 | 복제된 작성된 데이터 크기 | |
|
| 5 | 복제된 쓰기 대기 시간 | |
|
| 10 | 가져오기 요청 하위 작업 | |
|
| 5 | 끌어오기 대기 시간을 서브스크립션합니다. | |
|
| 10 | Suboperations push messages | |
|
| 10 | 내보낸 하위 작업 크기 | |
|
| 5 | 푸시 대기 시간 하위 작업 | |
|
| 10 | 전송된 가져오기 요청 | |
|
| 10 | 보낸 메시지 푸시 | |
|
| 10 | 푸시된 크기 | |
|
| 10 | 인바운드 푸시 메시지 | |
|
| 10 | 인바운드 푸시 크기 | |
|
| 10 | 시작 복구 작업 | |
|
| 2 | CPU 로드 | |
|
| 2 | 할당된 총 버퍼 크기 | |
|
| 2 | 배치 그룹 | |
|
| 2 | 이 osd가 기본인 배치 그룹 | |
|
| 2 | 이 osd가 복제본인 배치 그룹 | |
|
| 2 | 이 osd에서 삭제할 준비가 된 배치 그룹 | |
|
| 2 | 전송한 하트비트 (ping) 피어 | |
|
| 2 | 확인할 수 있는 하트비트 (ping) 피어 | |
|
| 10 | OSD 맵 메시지 | |
|
| 10 | OSD 맵 epochs | |
|
| 10 | OSD 맵 중복 | |
|
| 2 | OSD 크기 | |
|
| 2 | 사용된 공간 | |
|
| 2 | 사용 가능한 공간 | |
|
| 10 | RADOS 'copy-from' 작업 | |
|
| 10 | 계층 프로모션 | |
|
| 10 | 계층 플러시 | |
|
| 10 | 실패한 계층 플러시 | |
|
| 10 | 계층 플러시 시도 | |
|
| 10 | 실패한 계층 플러시 시도 | |
|
| 10 | 계층 제거 | |
|
| 10 | 계층 흰색 | |
|
| 10 | 더티 계층 플래그 설정 | |
|
| 10 | 더티 계층 플래그 정리 | |
|
| 10 | 계층 지연 (후원 대기) | |
|
| 10 | 계층 프록시 읽기 | |
|
| 10 | 계층화 에이전트 발생 | |
|
| 10 | 에이전트에서 건너뛰는 오브젝트 | |
|
| 10 | 계층화 에이전트 플러시 | |
|
| 10 | 계층화 에이전트 제거 | |
|
| 10 | 오브젝트 컨텍스트 캐시 적중 | |
|
| 10 | 오브젝트 컨텍스트 캐시 조회 | |
|
| 2 | 차단된 클라이언트 수 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 5 | 초기 복구 상태 대기 시간 |
|
| 5 | 복구 상태 대기 시간 시작 | |
|
| 5 | 복구 상태 대기 시간 재설정 | |
|
| 5 | 복구 상태 대기 시간 시작 | |
|
| 5 | 기본 복구 상태 대기 시간 | |
|
| 5 | 복구 상태 대기 시간 피어링 | |
|
| 5 | 복구 상태 대기 시간 다시 입력 | |
|
| 5 | 원격 백필 예약 상태 대기 시간 | |
|
| 5 | 로컬 백필 예약된 복구 상태 대기 시간 | |
|
| 5 | Notbackfilling 복구 상태 대기 시간 | |
|
| 5 | 복구 상태 대기 시간 복구 | |
|
| 5 | Re rep wait recovery reserved recovery state latency | |
|
| 5 | Re rep wait backfill 예약된 복구 상태 대기 시간 | |
|
| 5 | 복구 상태 대기 시간 복구 | |
|
| 5 | 복구 상태 대기 시간 활성화 | |
|
| 5 | 로컬 복구 예약된 복구 상태 대기 | |
|
| 5 | 원격 복구 예약된 복구 상태 대기 시간 | |
|
| 5 | 복구 상태 대기 시간 복구 | |
|
| 5 | 복구 상태 대기 시간 | |
|
| 5 | 정리 복구 상태 대기 시간 | |
|
| 5 | 활성 복구 상태 대기 시간 | |
|
| 5 | Replicaactive 복구 상태 대기 시간 | |
|
| 5 | 스프레이 복구 상태 대기 시간 | |
|
| 5 | Getinfo 복구 상태 대기 시간 | |
|
| 5 | Getlog 복구 상태 대기 시간 | |
|
| 5 | WaitactingChange 복구 상태 대기 시간 | |
|
| 5 | 불완전한 복구 상태 대기 시간 | |
|
| 5 | 복구 상태 대기 시간 가져오기 | |
|
| 5 | Waitupthru 복구 상태 대기 시간 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | 현재 사용 가능한 throttle |
|
| 10 | throttle에 대한 최대 값 | |
|
| 10 | Get | |
|
| 10 | 데이터 가져오기 | |
|
| 10 | get_or_fail에서 차단됨 | |
|
| 10 | get_or_fail | |
|
| 10 | takes | |
|
| 10 | 가져온 데이터 | |
|
| 10 | puts | |
|
| 10 | 데이터 저장 | |
|
| 5 | 대기 대기 시간 |
9.7. Ceph Object Gateway 지표 링크 복사링크가 클립보드에 복사되었습니다!
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | 요구 사항 |
|
| 10 | 요청 중지 | |
|
| 10 | Get | |
|
| 10 | 취득 크기 | |
|
| 5 | 대기 시간 가져오기 | |
|
| 10 | puts | |
|
| 10 | 제품 상세 정보 | |
|
| 5 | 대기 시간 저장 | |
|
| 2 | 대기열 길이 | |
|
| 2 | 활성 요청 대기열 | |
|
| 10 | 캐시 적중 | |
|
| 10 | 캐시 누락 | |
|
| 10 | Keystone 토큰 캐시 적중 | |
|
| 10 | Keystone 토큰 캐시 누락 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 2 | 활성 작업 |
|
| 2 | 지연 작업 | |
|
| 10 | 전송된 작업 | |
|
| 10 | 전송 데이터 | |
|
| 10 | 리sent 작업 | |
|
| 10 | 커밋 콜백 | |
|
| 10 | 작업 커밋 | |
|
| 10 | 작업 | |
|
| 10 | 읽기 작업 | |
|
| 10 | 쓰기 작업 | |
|
| 10 | read-modify-write 작업 | |
|
| 10 | PG 작업 | |
|
| 10 | 통계 작업 | |
|
| 10 | 오브젝트 작업 생성 | |
|
| 10 | 읽기 작업 | |
|
| 10 | 쓰기 작업 | |
|
| 10 | 전체 오브젝트 작업 작성 | |
|
| 10 | 추가 작업 | |
|
| 10 | object를 0 작업으로 설정 | |
|
| 10 | 개체 작업 truncate | |
|
| 10 | 개체 작업 삭제 | |
|
| 10 | 맵 범위 작업 | |
|
| 10 | 스파스 읽기 작업 | |
|
| 10 | 복제 범위 작업 | |
|
| 10 | xattr 작업 얻기 | |
|
| 10 | xattr 작업 설정 | |
|
| 10 | xattr 비교 작업 | |
|
| 10 | xattr 작업 제거 | |
|
| 10 | xattr 작업 재설정 | |
|
| 10 | TMAP 업데이트 작업 | |
|
| 10 | TMAP 배치 | |
|
| 10 | TMAP 액세스 | |
|
| 10 | 호출(실행) 작업 | |
|
| 10 | 오브젝트 작업 조사 | |
|
| 10 | 오브젝트 작업에 대한 알림 | |
|
| 10 | 다중 작업에서 확장된 특성 비교 | |
|
| 10 | 기타 작업 | |
|
| 2 | 활성 위치 작업 | |
|
| 10 | 보낸 홀더링 작업 | |
|
| 10 | resent lingering 작업 | |
|
| 10 | 링 작업에 ping을 보냅니다. | |
|
| 2 | 활성 풀 작업 | |
|
| 10 | 전송된 풀 작업 | |
|
| 10 | 리sent pool 작업 | |
|
| 2 | 활성 get pool stat 작업 | |
|
| 10 | pool stat 작업 전송 | |
|
| 10 | 리sent pool 통계 | |
|
| 2 | statfs 작업 | |
|
| 10 | 전송된 FS 통계 | |
|
| 10 | 리sent FS 통계 | |
|
| 2 | 활성 명령 | |
|
| 10 | 전송된 명령 | |
|
| 10 | resent 명령 | |
|
| 2 | OSD 맵 epoch | |
|
| 10 | 수신된 전체 OSD 맵 | |
|
| 10 | 수신된 증분 OSD 맵 | |
|
| 2 | 열려 있는 세션 | |
|
| 10 | 세션 열기 | |
|
| 10 | 세션 닫기 | |
|
| 2 | laggy OSD 세션 |
| 컬렉션 이름 | 메트릭 이름 | 비트 필드 값 | 짧은 설명 |
|---|---|---|---|
|
|
| 10 | 현재 사용 가능한 throttle |
|
| 10 | throttle에 대한 최대 값 | |
|
| 10 | Get | |
|
| 10 | 데이터 가져오기 | |
|
| 10 | get_or_fail에서 차단됨 | |
|
| 10 | get_or_fail | |
|
| 10 | takes | |
|
| 10 | 가져온 데이터 | |
|
| 10 | puts | |
|
| 10 | 데이터 저장 | |
|
| 5 | 대기 대기 시간 |
10장. mClock OSD 스케줄러 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 mClock 대기 스케줄러를 사용하여 Red Hat Ceph Storage의 QoS(Quality of Service)를 구현할 수 있습니다. 이는 dmClock이라는 mClock 알고리즘의 수정에 기반을 두고 있습니다.
mClock OSD 스케줄러는 구성 프로필을 사용하여 원하는 QoS를 제공하여 서비스 유형에 적절한 예약, 가중치 및 제한 태그를 할당합니다.
mClock OSD 스케줄러는 OSD의 IOPS 기능(자동으로 결정됨) 및 최대 순차 대역폭 기능을 사용하여 SSD 또는 HDD인 다양한 장치 유형에 대한 QoS 계산을 수행합니다(자동으로 결정됨) 및 최대 순차 대역폭 기능 참조(참조 osd_mclock_max_bandwidth_hdd 및 osd_mclock_max_sequential_bandwidth_ssd ). https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/6/html-single/administration_guide/#the-mclock-configuration-options_admin
10.1. mClock OSD 스케줄러와 FlexVolumeQ OSD 스케줄러 비교 링크 복사링크가 클립보드에 복사되었습니다!
mClock OSD 스케줄러는 Red Hat Ceph Storage 6.1에서 WMCO(Weighted Priority Queue) OSD 스케줄러를 기본 스케줄러로 대체합니다.
mClock 스케줄러는 BlueStore OSD에서 지원됩니다.
FlexVolumeQ OSD 스케줄러는 일반 대기열보다 먼저 큐에 해제되는 엄격한 하위 큐를 제공합니다. FlexVolumeQ는 큐의 종료를 방지하기 위해 우선순위와 관련하여 큐에서 작업을 제거합니다. 이렇게 하면 일부 Ceph OSD가 다른 Ceph OSD보다 과부하가 더 많은 경우에 도움이 됩니다.
mClock OSD 스케줄러는 현재 즉시 응답이 필요한 작업이 대기열에 있는 즉시 큐를 제공합니다. 즉시 큐는 mClock에 의해 처리되지 않고, 첫 번째 큐에서 간단한 것으로 기능하며 첫 번째 우선 순위가 부여됩니다.
OSD 복제 작업, OSD 작업 응답, 피어링, 우선 순위가 가장 높은 복구 등은 즉시 큐에 대기됩니다. 다른 모든 작업은 mClock 알고리즘에 따라 작동하는 mClock 큐로 큐에 추가됩니다.
mClock 큐인 mclock_scheduler 는 해당 버킷이 속한 버킷에 따라 작업에 우선순위를 지정합니다. pg 복구,pg scrub,snap trim,client op 및 pg 삭제
백그라운드 작업이 진행됨에 따라 IOPS(초당 입력 및 출력 작업)인 평균 클라이언트 처리량이 훨씬 높으며 대기 시간이 mClock 프로필과 비교될 때 mClock 프로필로 줄어듭니다. 이는 mClock의 QoS 매개변수의 효과적인 할당 때문입니다.
10.2. 입력 및 출력 리소스 할당 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 QoS 제어가 예약, 제한 및 가중치 할당을 통해 내부적으로 작동하는 방법을 설명합니다. 사용자는 이러한 제어를 mClock 프로파일로 자동 설정할 것으로 예상되지 않습니다. 이러한 컨트롤 튜닝은 사용 가능한 mClock 프로필을 통해서만 수행할 수 있습니다.
dmClock 알고리즘은 Ceph 클러스터의 입력 및 출력(I/O) 리소스를 가중치에 비례하여 할당합니다. 최소 예약 및 최대 제한 조건을 구현하여 서비스가 리소스에 대해 공정하게 경쟁할 수 있도록 합니다.
현재 mclock_scheduler 작업 대기열은 I/O 리소스와 관련된 Ceph 서비스를 다음 버킷으로 나눕니다.
-
Client op : 클라이언트에서발행한 IOPS(초당 입력 및 출력 작업)입니다. -
PG 삭제: 기본 Ceph OSD에서 발행한 IOPS -
snap trim: 스냅샷 트리밍 관련 요청입니다. -
PG 복구: 복구 관련 요청 -
PG scrub: 스크루브 관련 요청
리소스는 다음 세 가지 태그 세트를 사용하여 분할됩니다. 즉, 각 서비스 유형의 공유는 이러한 세 가지 태그로 제어됩니다.
- 예약
- 제한
- 가중치
예약
서비스에 할당된 최소 IOPS입니다. 서비스가 더 많이 할당될수록 필요한 리소스를 확보할 수 있습니다.
예를 들어 예약이 0.1(또는 10%)로 설정된 서비스에는 항상 OSD의 IOPS 용량의 10%가 할당되어 있습니다. 따라서 클라이언트가 대량의 I/O 요청을 발행하기 시작하는 경우에도 로드가 높은 클러스터에서도 모든 I/O 리소스를 소진하지 않으며 서비스의 작업이 소모되지 않습니다.
제한
서비스에 할당된 최대 IOPS입니다. 이 서비스는 필요한 경우에도 초당 설정된 요청 수를 초과하지 않으며 다른 서비스는 서비스하지 않습니다. 서비스가 적용된 제한을 초과하면 제한이 복원될 때까지 작업이 작업 대기열에 남아 있습니다.
값을 0 (비활성화)으로 설정하면 서비스가 제한 설정으로 제한되지 않으며 다른 경쟁 작업이 없는 경우 모든 리소스를 사용할 수 있습니다. mClock 프로필에서 "MAX"로 표시됩니다.
예약 및 제한 매개변수 할당은 Ceph OSD 아래의 backup 장치 유형(임의화 또는 SSD)을 기반으로 합니다. osd_op_num_shards_hdd 및 osd_op_num_shards_ssd 매개변수에 대한 자세한 내용은 OSD Object 스토리지 데몬 구성 옵션을 참조하십시오.
가중치
추가 용량 또는 시스템이 충분하지 않은 경우 용량 비례 비율입니다. 서비스는 I/O 리소스의 더 큰 부분을 사용할 수 있습니다.
서비스의 예약 및 제한 값은 OSD의 총 IOPS 용량의 비율로 지정됩니다. 비율은 mClock 프로필의 백분율로 표시됩니다. 가중치에는 단위가 없습니다. 가중치는 서로 상대적이므로 한 클래스의 요청의 가중치가 9이고 다른 클래스가 1인 경우 요청은 9~1 비율로 수행됩니다. 그러나 예약이 충족되는 경우에만 발생하며 해당 값에는 예약 단계에서 수행되는 작업이 포함됩니다.
가중치가 W 로 설정되면 입력되는 다음 클래스에 1/W 의 weight 태그와 이전 weight 태그 또는 현재 시간이 더 큰 것을 요청합니다. 즉, W 가 너무 크므로 1/W 가 너무 작으면 현재 시간 값을 가져오므로 계산된 태그가 할당되지 않을 수 있습니다.
따라서 weight 값은 항상 1초마다 서비스될 것으로 예상되는 요청 수 미만이어야 합니다.
10.3. mClock 작업 대기열에 영향을 미치는 요인 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage 내에서 mClock 작업 대기열의 영향을 줄일 수 있는 세 가지 요인이 있습니다.
- 클라이언트 작업의 shard 수입니다.
- 작업 시퀀스의 작업 수입니다.
- Ceph OSD용 분산 시스템 사용
클라이언트 작업의 shard 수
Ceph OSD에 대한 요청은 배치 그룹 식별자에 의해 분할됩니다. 각 shard에는 자체 mClock 큐가 있으며 이러한 대기열은 상호 작용하지도 않으며 해당 대기열 간에 정보를 공유하지 않습니다.
이러한 구성 옵션을 사용하여 shard 수를 제어할 수 있습니다.
-
osd_op_num_shards -
osd_op_num_shards_hdd -
osd_op_num_shards_ssd
더 적은 수의 shard는 mClock 큐의 영향을 증가시키지만 다른 손상에 영향을 미칠 수 있습니다.
설정 옵션 osd_op_num_shards, osd_op_num_shards ,osd_op_nums_hdd , 수를 사용합니다.
osd_op_num_shards _sshards_ssd 로 정의된 기본 shard
작업 시퀀스의 작업 수
요청은 작업 대기열에서 처리되는 작업 시퀀스기로 전송됩니다. mClock 스케줄러는 작업 대기열에 있습니다. 작업 시퀀스로 전송할 작업을 결정합니다.
작업 시퀀스에 허용되는 작업 수는 복잡한 문제입니다. 목표는 작업 시퀀스에 충분한 작업을 유지하는 것입니다. 따라서 디스크 및 네트워크 액세스가 다른 작업을 완료하기 위해 대기하는 동안에는 항상 일부에서 작동합니다.
그러나 mClock은 더 이상 작업 시퀀스로 전송되는 작업을 제어할 수 없습니다. 따라서 mClock의 영향을 극대화하기 위해 목표는 가능한 한 작업 시퀀스에 몇 가지 작업을 유지하는 것입니다.
작업 시퀀스기의 작업 수에 영향을 미치는 구성 옵션은 다음과 같습니다.
-
bluestore_throttle_bytes -
bluestore_throttle_deferred_bytes -
bluestore_throttle_cost_per_io -
bluestore_throttle_cost_per_io_hdd -
bluestore_throttle_cost_per_io_ssd
bluestore_throttle_ bytes 및 옵션에 정의된 기본값을 사용합니다. 그러나 이러한 옵션은 벤치마킹 단계에서 확인할 수 있습니다.
bluestore_throttle _deferred_bytes
Ceph OSD용 분산 시스템 사용
mClock 알고리즘의 영향에 영향을 미치는 세 번째 요소는 분산 시스템을 사용하는 것입니다. 여기서 여러 Ceph OSD에 대한 요청이 수행되고 각 Ceph OSD에는 여러 shard가 있을 수 있습니다. 그러나 Red Hat Ceph Storage는 현재 mClock의 분산 버전이 아닌 mClock 알고리즘을 사용합니다.
dmClock은 mClock의 분산 버전입니다.
10.4. mClock 구성 링크 복사링크가 클립보드에 복사되었습니다!
mClock을 보다 사용하기 쉽고 직관적으로 만들기 위해 mClock 설정 프로파일은 Red Hat Ceph Storage 6에 도입되었습니다. mClock 프로필은 사용자의 낮은 수준의 세부 정보를 숨기므로 mClock을 보다 쉽게 구성하고 사용할 수 있습니다.
mClock 프로파일이 QoS(Quality of Service) 관련 매개변수를 구성하려면 다음 입력 매개변수가 필요합니다.
- 각 Ceph OSD(초당 IOPS)의 총 입력 및 출력 작업 용량입니다. 이는 자동으로 결정됩니다.
-
각 OS의 최대 순차적 대역폭 용량(MiB/s)입니다.
osd_mclock_max_sequential_bandwidth_[hdd/ssd]옵션을 참조하십시오. -
활성화할 mClock 프로파일 유형입니다. 기본값은
balanced입니다.
Ceph OSD는 지정된 프로필의 설정을 사용하여 하위 수준의 mClock 및 Ceph 매개 변수를 결정하고 적용합니다. mClock 프로필을 통해 적용되는 매개변수를 사용하면 OSD의 클라이언트 I/O와 백그라운드 작업 간에 QoS를 튜닝할 수 있습니다.
10.5. mClock 클라이언트 링크 복사링크가 클립보드에 복사되었습니다!
mClock 스케줄러는 다양한 유형의 Ceph 서비스의 요청을 처리합니다. 각 서비스는 mClock에 의해 클라이언트 유형으로 고려됩니다. 처리된 요청 유형에 따라 mClock 클라이언트는 버킷으로 분류됩니다.
- 클라이언트 - Ceph의 외부 클라이언트가 발행한 입력 및 출력(I/O) 요청을 처리합니다.
- 백그라운드 복구 - 내부 복구 요청을 처리합니다.
- background best-effort - 내부 백필, 스크러블, 스냅 트리 및 배치 그룹(PG) 삭제 요청을 처리합니다.
mClock 스케줄러는 osd_mclock_max_capacity_iops_hdd | osd_mclock_max_capacity_iops_sd , osd_mclock_max_sequential_bandwidth_hdd |osd_mclock_max_sequential_bandwidth_hdd | osd_mclock_max_iops_d에서 사용되는 작업의 비용을 파생합니다. 및 osd_op_num_shards_hdd | osd_op_num_shards_ssd 매개변수.
10.6. mClock 프로필 링크 복사링크가 클립보드에 복사되었습니다!
mClock 프로필은 구성 설정입니다. 실행 중인 Red Hat Ceph Storage 클러스터에 적용되는 경우 백그라운드 복구, scrub,snap trim,client op 및 pg 삭제 와 같은 다른 클라이언트 클래스에 속하는 IOPS 작업을 제한할 수 있습니다.
mClock 프로필은 용량 제한 및 사용자가 선택한 mClock 프로파일 유형을 사용하여 낮은 수준의 mClock 리소스 제어 구성 매개변수를 확인하고 투명하게 적용합니다. 기타 Red Hat Ceph Storage 구성 매개변수도 적용됩니다. 낮은 수준의 mClock 리소스 제어 매개 변수는 리소스 공유를 제어하는 예약, 제한 및 가중치입니다. mClock 프로필은 각 클라이언트 유형에 대해 이러한 매개변수를 다르게 할당합니다.
10.6.1. mClock 프로파일 유형 링크 복사링크가 클립보드에 복사되었습니다!
mClock 프로필은 내장 및 사용자 정의 프로필로 분류할 수 있습니다.
mClock 프로필이 활성화되어 있는 경우 다음 Red Hat Ceph Storage 구성 절전 옵션이 비활성화되어 있습니다. 즉, 0 으로 설정됩니다.
-
osd_recovery_sleep -
osd_recovery_sleep_hdd -
osd_recovery_sleep_ssd -
osd_recovery_sleep_hybrid -
osd_scrub_sleep -
osd_delete_sleep -
osd_delete_sleep_hdd -
osd_delete_sleep_ssd -
osd_delete_sleep_hybrid -
osd_snap_trim_sleep -
osd_snap_trim_sleep_hdd -
osd_snap_trim_sleep_ssd -
osd_snap_trim_sleep_hybrid
mClock 스케줄러가 작업 대기열에서 다음 작업을 선택할 시기를 결정하고 이를 작업 시퀀스기로 전송할 수 있도록 하기 위한 것입니다. 이로 인해 원하는 QoS가 모든 클라이언트에서 제공됩니다.
사용자 정의 프로필
이 프로필을 사용하면 모든 mClock 구성 매개변수를 완전히 제어할 수 있습니다. mClock 및 Red Hat Ceph Storage 관련 구성 옵션을 이해하는 고급 사용자를 위해 신중하게 사용해야 합니다.
기본 제공 프로필
기본 제공 프로필이 활성화되면 mClock 스케줄러는 각 클라이언트 유형에 대해 활성화된 프로필을 기반으로 낮은 수준의 mClock 매개변수(즉, 예약, 가중치 및 제한)를 계산합니다.
mClock 매개변수는 사전에 제공되는 최대 Ceph OSD 용량을 기반으로 계산됩니다. 따라서 기본 제공 프로필을 사용할 때는 다음 mClock 구성 옵션을 수정할 수 없습니다.
-
osd_mclock_scheduler_client_res -
osd_mclock_scheduler_client_wgt -
osd_mclock_scheduler_client_lim -
osd_mclock_scheduler_background_recovery_res -
osd_mclock_scheduler_background_recovery_wgt -
osd_mclock_scheduler_background_recovery_lim -
osd_mclock_scheduler_background_best_effort_res -
osd_mclock_scheduler_background_best_effort_wgt osd_mclock_scheduler_background_best_effort_lim참고이러한 기본값은
config set,config daemon또는config tell명령과 같은 config 하위 시스템 명령을 사용하여 변경할 수 없습니다. 위의 명령은 성공했다고 보고하지만 mclock QoS 매개변수는 해당 기본 제공 프로필 기본값으로 되돌아갑니다.
다음 복구 및 백필 관련 Ceph 옵션은 mClock 기본값으로 재정의됩니다.
기본 제공 프로필이 최적화되어 있으므로 이러한 옵션을 변경하지 마십시오. 이러한 기본값을 변경하면 예기치 않은 성능 결과가 발생할 수 있습니다.
-
osd_max_backfills -
osd_recovery_max_active -
osd_recovery_max_active_hdd -
osd_recovery_max_active_ssd
다음 옵션은 전경 클라이언트 작업의 성능을 최대화하기 위해 현재 기본값과 동일한 mClock 기본값을 보여줍니다.
osd_max_backfills- 원래 기본값
-
1 - mClock default
-
1
osd_recovery_max_active- 원래 기본값
-
0 - mClock default
-
0
osd_recovery_max_active_hdd- 원래 기본값
-
3 - mClock default
-
3
osd_recovery_max_active_sdd- 원래 기본값
-
10 - mClock default
-
10
위의 mClock 기본값은 기본적으로 false 로 설정된 osd_mclock_override_recovery_settings 를 활성화하여 필요한 경우에만 수정할 수 있습니다. 이러한 매개변수 를 수정하려면 백필 및 복구 옵션 수정을 참조하십시오.
기본 제공 프로필 유형
사용자는 다음과 같은 기본 제공 프로필 유형 중에서 선택할 수 있습니다.
-
balanced(기본값) -
high_client_ops -
high_recovery_ops
아래 목록에 언급된 값은 서비스 유형에 할당된 Ceph OSD의 총 IOPS 용량의 비율을 나타냅니다.
-
balanced:
기본 mClock 프로필은 클라이언트 IO 또는 복구 IO 간의 타협을 나타내기 때문에 균형 조정으로 설정됩니다. 클라이언트 작업 및 백그라운드 복구 작업에 동일한 예약 또는 우선 순위를 할당합니다. 배경 최고 수준의 운영에는 더 낮은 예약이 부여되므로 경쟁이 가능한 작업이 있을 때 완료하는 데 시간이 오래 걸립니다. 이 프로필은 외부 클라이언트 성능 요구 사항이 중요하지 않고 OSD 내에서 여전히 주의가 필요한 기타 백그라운드 작업이 있는 경우 클러스터의 일반 상태 요구 사항을 충족합니다.
클라이언트 작업 또는 복구 작업에 더 높은 우선 순위를 부여해야 하는 인스턴스가 있을 수 있습니다. 이러한 요구 사항을 충족하기 위해 high_client_ops 프로필을 선택하여 클라이언트 IO의 우선 순위를 지정하거나 high_recovery_ops 프로필을 선택하여 복구 IO를 우선 순위를 지정할 수 있습니다. 이러한 프로필에 대해서는 아래에서 자세히 설명합니다.
- 서비스 유형: client
- 예약
- 50%
- 제한
- MAX
- 가중치
-
1
- 서비스 유형: 배경 복구
- 예약
- 50%
- 제한
- MAX
- 가중치
-
1
- 서비스 유형: background best-effort
- 예약
- 분
- 제한
- 90%
- 가중치
1-
high_client_ops
-
이 프로필은 Ceph OSD의 백그라운드 작업과 비교하여 클라이언트 작업에 더 많은 예약 및 제한을 할당하여 백그라운드 활동에 대한 클라이언트 성능을 최적화합니다. 예를 들어 이 프로필은 복구 속도가 느린 비용으로 지속적인 기간 동안 I/O 집약적인 애플리케이션에 필요한 성능을 제공하도록 활성화할 수 있습니다. 아래 목록은 프로필에서 설정한 리소스 제어 매개변수를 보여줍니다.
- 서비스 유형: client
- 예약
- 60%
- 제한
- MAX
- 가중치
-
2
- 서비스 유형: 배경 복구
- 예약
- 40%
- 제한
- MAX
- 가중치
-
1
- 서비스 유형: background best-effort
- 예약
- 분
- 제한
- 70%
- 가중치
1-
high_recovery_ops
-
이 프로필은 Ceph OSD 내의 외부 클라이언트 및 기타 백그라운드 작업에 비해 백그라운드 복구 성능을 최적화합니다.
예를 들어 관리자가 사용하지 않는 시간 동안 백그라운드 복구 속도를 높일 수 있습니다. 아래 목록은 프로필에서 설정한 리소스 제어 매개변수를 보여줍니다.
- 서비스 유형: client
- 예약
- 30%
- 제한
- MAX
- 가중치
-
1
- 서비스 유형: 배경 복구
- 예약
- 70%
- 제한
- MAX
- 가중치
-
2
- 서비스 유형: background best-effort
- 예약
- 분
- 제한
- MAX
- 가중치
-
1
10.6.2. mClock 프로파일 변경 링크 복사링크가 클립보드에 복사되었습니다!
기본 mClock 프로필은 balanced 로 설정됩니다. 기본 제공 프로필의 다른 유형은 high_client_ops 및 high_recovery_ops 입니다.
고급 사용자가 아닌 경우 사용자 정의 프로필을 사용하지 않는 것이 좋습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow osd_mclock_profile옵션을 설정합니다.구문
ceph config set osd.OSD_ID osd_mclock_profile VALUE
ceph config set osd.OSD_ID osd_mclock_profile VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile high_recovery_ops
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile high_recovery_opsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
osd.0에서 더 빠르게 복구할 수 있도록 프로필을 변경합니다.참고최적의 성능을 위해서는 다음 명령을 사용하여 모든 Ceph OSD에서 프로필을 설정해야 합니다.
구문
ceph config set osd osd_mclock_profile VALUE
ceph config set osd osd_mclock_profile VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.6.3. 기본 제공 프로필과 사용자 지정 프로필 간 전환 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계에서는 기본 제공 프로필에서 사용자 지정 프로필로 전환하는 방법을 설명하고 그 반대의 경우도 마찬가지입니다.
모든 mClock 설정 옵션을 완전히 제어하려면 사용자 정의 프로필로 전환할 수 있습니다. 그러나 고급 사용자가 아닌 경우 사용자 정의 프로필을 사용하지 않는 것이 좋습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
기본 제공 프로필에서 사용자 지정 프로필로 전환
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 프로필로 전환합니다.
구문
ceph config set osd.OSD_ID osd_mclock_profile custom
ceph config set osd.OSD_ID osd_mclock_profile customCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile custom
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_profile customCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고최적의 성능을 위해서는 다음 명령을 사용하여 모든 Ceph OSD에서 프로필을 설정해야 합니다.
예제
[ceph: root@host01 /]# ceph config set osd osd_mclock_profile custom
[ceph: root@host01 /]# ceph config set osd osd_mclock_profile customCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자 정의 프로필로 전환한 후 원하는 mClock 구성 옵션을 수정합니다.
구문
ceph config set osd.OSD_ID MCLOCK_CONFIGURATION_OPTION VALUE
ceph config set osd.OSD_ID MCLOCK_CONFIGURATION_OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_scheduler_client_res 0.5
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_scheduler_client_res 0.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 특정 OSD
osd.0의 클라이언트 예약 IOPS 비율을 0.5(50%)로 변경합니다.중요OSD의 IOPS 용량의 최대 비율(1.0)을 초과하지 않도록 백그라운드 복구 및 배경 best-effort와 같은 기타 서비스의 예약을 변경합니다.
사용자 정의 프로필에서 기본 제공 프로필로 전환
cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 원하는 기본 제공 프로필을 설정합니다.
구문
ceph config set osd osd_mclock_profile MCLOCK_PROFILE
ceph config set osd osd_mclock_profile MCLOCK_PROFILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd osd_mclock_profile high_client_ops
[ceph: root@host01 /]# ceph config set osd osd_mclock_profile high_client_opsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 기본 제공 프로필을 모든 Ceph OSD에서
high_client_ops로 설정합니다.데이터베이스의 기존 사용자 지정 mClock 구성 설정을 확인합니다.
예제
[ceph: root@host01 /]# ceph config dump
[ceph: root@host01 /]# ceph config dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 결정된 사용자 정의 mClock 구성 설정을 제거합니다.
구문
ceph config rm osd MCLOCK_CONFIGURATION_OPTION
ceph config rm osd MCLOCK_CONFIGURATION_OPTIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config rm osd osd_mclock_scheduler_client_res
[ceph: root@host01 /]# ceph config rm osd osd_mclock_scheduler_client_resCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 모든 Ceph OSD에 설정된 설정 옵션
osd_mclock_scheduler_client_res를 제거합니다.기존 사용자 지정 mClock 구성 설정이 중앙 구성 데이터베이스에서 제거되면
high_client_ops와 관련된 구성 설정이 적용됩니다.Ceph OSD의 설정을 확인합니다.
구문
ceph config show osd.OSD_ID
ceph config show osd.OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config show osd.0
[ceph: root@host01 /]# ceph config show osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.6.4. mClock 프로필 간에 일시적으로 전환 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 mClock 프로필 간에 일시적으로 전환하는 단계를 설명합니다.
이 섹션은 고급 사용자 또는 실험 테스트용입니다. 예기치 않은 결과가 발생할 수 있으므로 실행 중인 스토리지 클러스터에서 아래 명령을 사용하지 마십시오.
아래 명령을 사용하여 Ceph OSD에서 구성 변경 사항은 일시적이며 Ceph OSD를 다시 시작하면 손실됩니다.
이 섹션에 설명된 명령을 사용하여 재정의된 구성 옵션은 ceph config set osd.OSD_ID 명령을 사용하여 추가로 수정할 수 없습니다. 변경 사항은 지정된 Ceph OSD를 다시 시작할 때까지 적용되지 않습니다. 구성 하위 시스템 설계에 따라 의도적입니다. 그러나 이러한 명령을 사용하여 임시로 추가 수정이 수행될 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 mClock 설정을 덮어씁니다.
구문
ceph tell osd.OSD_ID injectargs '--MCLOCK_CONFIGURATION_OPTION=VALUE'
ceph tell osd.OSD_ID injectargs '--MCLOCK_CONFIGURATION_OPTION=VALUE'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph tell osd.0 injectargs '--osd_mclock_profile=high_recovery_ops'
[ceph: root@host01 /]# ceph tell osd.0 injectargs '--osd_mclock_profile=high_recovery_ops'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
osd.0의osd_mclock_profile옵션을 덮어씁니다.선택 사항: 이전
ceph에 대한 대안으로 osd.OSD_ID injectargs명령을 사용할 수 있습니다.구문
ceph daemon osd.OSD_ID config set MCLOCK_CONFIGURATION_OPTION VALUE
ceph daemon osd.OSD_ID config set MCLOCK_CONFIGURATION_OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph daemon osd.0 config set osd_mclock_profile high_recovery_ops
[ceph: root@host01 /]# ceph daemon osd.0 config set osd_mclock_profile high_recovery_opsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
사용자 정의 프로필에 대한 개별 QoS 관련 구성 옵션은 위의 명령을 사용하여 일시적으로 수정할 수도 있습니다.
10.6.5. mClock 프로필과 함께 성능이 저하된 오브젝트 복구 속도 링크 복사링크가 클립보드에 복사되었습니다!
성능 저하된 오브젝트 복구는 백그라운드 복구 버킷으로 분류됩니다. 모든 mClock 프로필에서 성능이 저하된 개체 복구는 잘못된 개체 복구와 비교할 때 우선 순위가 높습니다. 성능이 저하된 개체 복구는 성능이 저하된 객체에 존재하지 않는 데이터 안전 문제가 있기 때문입니다.
백필 또는 잘못 배치된 오브젝트 복구 작업은 백그라운드 best-effort 버킷으로 분류됩니다. balanced 및 high_client_ops mClock 프로필에 따르면 백그라운드 best-effort 클라이언트는 예약(0으로 설정)으로 제한되지 않지만 다른 경쟁이 없는 경우 참여 OSD 용량의 일부를 사용하도록 제한됩니다.
따라서 balanced 또는 high_client_ops 프로필과 다른 배경 경쟁 서비스를 활성 상태로 사용하면 이전 Wight edPriorityQueue (WPQ) 스케줄러에 비해 백필 속도가 느려질 것으로 예상됩니다.
더 높은 백필 비율이 필요한 경우 아래 섹션에 언급된 단계를 따르십시오.
백필 속도 개선
balanced 또는 high_client_ops 프로필을 사용할 때 더 빠른 백필 속도를 얻으려면 다음 단계를 따르십시오.
- 백필 기간 동안 'high_recovery_ops' mClock 프로필로 전환합니다. 이를 위해 mClock 프로필 변경을 참조하십시오. 백필 단계가 완료되면 mClock 프로필을 이전에 활성 상태로 전환합니다. 'high_recovery_ops' 프로필로 백필 비율에 상당한 개선이 없는 경우 다음 단계를 계속합니다.
- mClock 프로필을 이전 활성 프로필로 다시 전환합니다.
-
'osd_max_backfills'를 더 높은 값(예:
3)으로 수정합니다. 이를 위해 백필 및 복구 옵션 수정 을 참조하십시오. - 백필링이 완료되면 3단계에서 언급된 동일한 절차에 따라 'osd_max_backfills'를 기본값 1로 재설정할 수 있습니다.
osd_max_backfills 를 수정하면 다른 작업이 발생할 수 있습니다(예: 클라이언트 작업에서는 백필링 단계에서 대기 시간이 길어질 수 있습니다. 따라서 클러스터의 다른 작업에 대한 성능 영향을 최소화하기 위해 osd_max_backfills 를 작은 증분으로 늘리는 것이 좋습니다.
10.6.6. 백필 및 복구 옵션 수정 링크 복사링크가 클립보드에 복사되었습니다!
ceph config set 명령을 사용하여 백필 및 복구 옵션을 수정합니다.
수정할 수 있는 백필 또는 복구 옵션은 mClock 프로필 유형에 나열됩니다.
이 섹션은 고급 사용자 또는 실험 테스트용입니다. 예기치 않은 결과가 발생할 수 있으므로 실행 중인 스토리지 클러스터에서 아래 명령을 사용하지 마십시오.
실험적 테스트에만 값을 수정하거나 클러스터가 값을 처리할 수 없거나 기본 설정으로 성능이 저하된 경우 값을 수정합니다.
mClock 기본 백필 또는 복구 옵션의 수정은 기본적으로 false 로 설정된 osd_mclock_override_recovery_settings 옵션에 의해 제한됩니다.
osd_mclock_override_recovery_settings 를 true 로 설정하지 않고 기본 백필 또는 복구 옵션을 수정하려고 하면 클러스터 로그에 로그인한 경고 메시지와 함께 옵션이 mClock 기본값으로 다시 재설정됩니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 Ceph OSD에서
osd_mclock_override_recovery_settings설정 옵션을true로 설정합니다.예제
[ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings true
[ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 원하는
백필또는복구옵션을 설정합니다.구문
ceph config set osd OPTION VALUE
ceph config set osd OPTION VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd osd_max_backfills_ 5
[ceph: root@host01 /]# ceph config set osd osd_max_backfills_ 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 몇 초 정도 기다린 후 특정 OSD의 구성을 확인합니다.
구문
ceph config show osd.OSD_ID_ | grep OPTION
ceph config show osd.OSD_ID_ | grep OPTIONCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config show osd.0 | grep osd_max_backfills
[ceph: root@host01 /]# ceph config show osd.0 | grep osd_max_backfillsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 OSD에서
osd_mclock_override_recovery_settings구성 옵션을false로 재설정합니다.예제
[ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings false
[ceph: root@host01 /]# ceph config set osd osd_mclock_override_recovery_settings falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.7. Ceph OSD 용량 결정 링크 복사링크가 클립보드에 복사되었습니다!
총 IOPS 측면에서 Ceph OSD 용량은 Ceph OSD 초기화 중에 자동으로 결정됩니다. 이를 위해 Ceph OSD bench 툴을 실행하고 장치 유형에 따라 osd_mclock_max_capacity_iops_[hdd, ssd] 옵션의 기본값을 덮어씁니다. Ceph OSD 용량을 설정하기 위해 사용자의 다른 작업이나 입력이 필요하지 않습니다.
자동화된 프로세스의 비현실 Ceph OSD 용량 완화
특정 조건에서 Ceph OSD bench 툴에 드라이브 구성 및 기타 환경 관련 조건에 따라 비현실적 또는 인플레이스된 결과가 표시될 수 있습니다.
이러한 비현실적 용량으로 인한 성능 영향을 완화하기 위해 OSD 장치 유형에 따라 다음과 같은 몇 가지 임계값 구성 옵션이 정의되고 사용됩니다.
-
osd_mclock_iops_capacity_threshold_hdd= 500 -
osd_mclock_iops_capacity_threshold_ssd= 80000
다음 자동화된 단계가 수행됩니다.
기본 OSD 용량 사용으로 대체
Ceph OSD bench 툴이 위의 임계값을 초과하는 측정을 보고하는 경우 대체 메커니즘은 기본값 osd_mclock_max_capacity_iops_hdd 또는 osd_mclock_max_capacity_iops_ssd 로 되돌아갑니다. 임계값 구성 옵션은 사용된 드라이브 유형에 따라 재구성할 수 있습니다.
측정이 임계값을 초과하면 클러스터 경고가 기록됩니다.
예제
2022-10-27T15:30:23.270+0000 7f9b5dbe95c0 0 log_channel(cluster) log [WRN] : OSD bench result of 39546.479392 IOPS exceeded the threshold limit of 25000.000000 IOPS for osd.1. IOPS capacity is unchanged at 21500.000000 IOPS. The recommendation is to establish the osd's IOPS capacity using other benchmark tools (e.g. Fio) and then override osd_mclock_max_capacity_iops_[hdd|ssd].
2022-10-27T15:30:23.270+0000 7f9b5dbe95c0 0 log_channel(cluster) log [WRN]
: OSD bench result of 39546.479392 IOPS exceeded the threshold limit of 25000.000000 IOPS for osd.1. IOPS capacity is unchanged at 21500.000000 IOPS. The recommendation is to establish the osd's IOPS capacity using other benchmark tools (e.g. Fio) and then override osd_mclock_max_capacity_iops_[hdd|ssd].
기본 용량이 Ceph OSD 용량을 정확하게 나타내지 않는 경우 드라이브 Fio를 사용하여 사용자 정의 벤치마크를 실행한 다음 최대 OSD 용량을 지정하는 데 설명된 대로 osd_mclock_max_capacity_iops_[hdd, ssd] 옵션을 재정의하는 것이 좋습니다.
10.7.1. OSD의 용량 확인 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클러스터를 설정한 후 Ceph OSD의 용량을 확인할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph OSD의 용량을 확인합니다.
구문
ceph config show osd.OSD_ID osd_mclock_max_capacity_iops_[hdd, ssd]
ceph config show osd.OSD_ID osd_mclock_max_capacity_iops_[hdd, ssd]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config show osd.0 osd_mclock_max_capacity_iops_ssd 21500.000000
[ceph: root@host01 /]# ceph config show osd.0 osd_mclock_max_capacity_iops_ssd 21500.000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.7.2. 수동으로 OSD 벤치마킹 링크 복사링크가 클립보드에 복사되었습니다!
Ceph OSD를 수동으로 벤치마킹하려면 기존 벤치마킹 툴(예: Fio)을 사용할 수 있습니다. 사용된 도구 또는 명령에 관계없이 아래 단계는 동일하게 유지됩니다.
shard 및 BlueStore throttle 매개변수의 수는 mClock 작업 대기열에 영향을 미칩니다. 따라서 mclock 스케줄러의 영향을 극대화하려면 이러한 값을 신중하게 설정하는 것이 중요합니다. 이러한 값에 대한 자세한 내용은 mClock 작업 대기열에 영향을 미치는 ECDHEs를 참조하십시오.
이 섹션의 단계는 OSD 초기화 중에 자동으로 결정되는 Ceph OSD 용량을 재정의하려는 경우에만 필요합니다.
벤치마크 데이터를 이미 결정하고 Ceph OSD의 최대 OSD 용량을 수동으로 재정의하려면 최대 OSD 용량 지정 섹션으로 건너뜁니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph OSD를 벤치마킹합니다.
구문
ceph tell osd.OSD_ID bench [TOTAL_BYTES] [BYTES_PER_WRITE] [OBJ_SIZE] [NUM_OBJS]
ceph tell osd.OSD_ID bench [TOTAL_BYTES] [BYTES_PER_WRITE] [OBJ_SIZE] [NUM_OBJS]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
- TOTAL_BYTES: 쓸 바이트 수입니다.
- BYTES_PER_WRITE: 쓰기당 블록 크기
- OBJ_SIZE: 오브젝트당 바이트 수입니다.
- NUM_OBJS: 쓸 오브젝트 수입니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.7.3. 올바른 BlueStore throttle 값 확인 링크 복사링크가 클립보드에 복사되었습니다!
이 선택적 섹션에서는 올바른 BlueStore throttle 값을 결정하는 데 사용되는 단계에 대해 자세히 설명합니다. 단계에는 기본 shard가 사용됩니다.
테스트를 실행하기 전에 캐시를 지워 정확한 측정을 가져옵니다. 다음 명령을 사용하여 실행되는 각 벤치마크 간에 OSD 캐시를 지웁니다.
구문
ceph tell osd.OSD_ID cache drop
ceph tell osd.OSD_ID cache drop
예제
[ceph: root@host01 /]# ceph tell osd.0 cache drop
[ceph: root@host01 /]# ceph tell osd.0 cache drop
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 벤치마크하려는 OSD를 호스팅하는 Ceph Monitor 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD에서 간단한 4KiB 임의 쓰기 워크로드를 실행합니다.
구문
ceph tell osd.OSD_ID bench 12288000 4096 4194304 100
ceph tell osd.OSD_ID bench 12288000 4096 4194304 100Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
osd bench명령 출력에서 얻은 전체 처리량입니다. 이 값은 기본 BlueStore throttle 옵션이 적용되는 경우 기준 처리량입니다.
- 이전 명령의 출력에서 얻은 IOPS인 전체 처리량을 기록해 둡니다.
환경의 BlueStore throttle 값을 결정하려면
bluestore_throttle_bytes및bluestore_throttle_deferred_bytes옵션을 32 KiB, 즉 32768 Bytes로 설정합니다.구문
ceph config set osd.OSD_ID bluestore_throttle_bytes 32768 ceph config set osd.OSD_ID bluestore_throttle_deferred_bytes 32768
ceph config set osd.OSD_ID bluestore_throttle_bytes 32768 ceph config set osd.OSD_ID bluestore_throttle_deferred_bytes 32768Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_bytes 32768 [ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_deferred_bytes 32768
[ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_bytes 32768 [ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_deferred_bytes 32768Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러지 않으면 최대 OSD 용량을 지정하는 다음 섹션으로 건너뛸 수 있습니다.
OSD bench 명령을 사용하기 전에 4KiB 임의 쓰기 테스트를 실행합니다.
예제
[ceph: root@host01 /]# ceph tell osd.0 bench 12288000 4096 4194304 100
[ceph: root@host01 /]# ceph tell osd.0 bench 12288000 4096 4194304 100Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 출력의 전체 처리량을 확인하고 이 값을 이전에 기록된 기준 처리량과 비교합니다.
- 처리량이 기준과 일치하지 않으면 BlueStore throttle 옵션을 2로 곱하여 늘립니다.
- 4KiB 임의 쓰기 테스트를 실행하고 기준 처리량과 비교하여 BlueStore throttle 옵션을 2로 곱하여 단계를 반복합니다.
예를 들어 NVMe SSD가 있는 머신에서 벤치마킹하는 동안 BlueStore throttle 및 deferred 바이트 모두에 대해 256 KiB의 값이 mClock의 영향을 극대화하기 위해 결정되었습니다. DestinationRules의 경우 해당 값은 40MiB이고 전체 처리량은 기준 처리량과 거의 동일합니다.
일반적으로ECDHEs의 경우 BlueStore throttle 값은 SSD에 비해 더 높아질 것으로 예상됩니다.
10.7.4. 최대 OSD 용량 지정 링크 복사링크가 클립보드에 복사되었습니다!
OSD 초기화 중에 설정된 최대 Ceph OSD 용량을 자동으로 덮어쓸 수 있습니다.
이러한 단계는 선택 사항입니다. 기본 용량이 Ceph OSD 용량을 정확하게 나타내지 않는 경우 다음 단계를 수행합니다.
OSD 수동 벤치마킹 에 설명된 대로 벤치마크 데이터를 먼저 결정하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Monitor 호스트에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD에 대해
osd_mclock_max_capacity_iops_[hdd, ssd]옵션을 설정합니다.구문
ceph config set osd.OSD_ID osd_mclock_max_capacity_iops_[hdd,ssd] VALUE
ceph config set osd.OSD_ID osd_mclock_max_capacity_iops_[hdd,ssd] VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_max_capacity_iops_hdd 350
[ceph: root@host01 /]# ceph config set osd.0 osd_mclock_max_capacity_iops_hdd 350Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 기본 장치 유형이 350개의 IOPS인
osd.0의 최대 용량을 설정합니다.
11장. BlueStore 링크 복사링크가 클립보드에 복사되었습니다!
bluestore는 OSD 데몬의 백엔드 오브젝트 저장소이며, 블록 장치에 오브젝트를 직접 배치합니다.
Bluestore는 프로덕션 환경에서 OSD 데몬을 위한 고성능 백엔드를 제공합니다. 기본적으로 BlueStore는 자체 튜닝되도록 구성됩니다. BlueStore가 수동으로 튜닝된 상태에서 환경을 더 잘 수행하는 경우 Red Hat 지원팀에 연락하여 자동 조정 기능을 개선하는 데 도움이 되도록 설정 세부 정보를 공유하십시오. Red Hat은 귀하의 의견을 기다리고 권장 사항을 감사 드립니다.
11.1. Ceph BlueStore 링크 복사링크가 클립보드에 복사되었습니다!
다음은 BlueStore 사용의 몇 가지 주요 기능입니다.
- 스토리지 장치의 직접 관리
- Bluestore는 원시 블록 장치 또는 파티션을 사용합니다. 이렇게 하면 성능을 제한하거나 복잡성을 추가할 수 있는 XFS와 같은 로컬 파일 시스템과 같은 추상화 계층을 모두 방지할 수 있습니다.
- RocksDB를 사용한 메타데이터 관리
- bluestore는 RocksDB 키-값 데이터베이스를 사용하여 개체 이름에서 디스크의 블록 위치에 대한 매핑과 같은 내부 메타데이터를 관리합니다.
- 전체 데이터 및 메타데이터 체크섬
- 기본적으로 BlueStore에 작성된 모든 데이터 및 메타데이터는 하나 이상의 체크섬에 의해 보호됩니다. 데이터 또는 메타데이터는 디스크에서 읽거나 확인 없이 사용자에게 반환되지 않습니다.
- 인라인 압축
- 디스크에 쓰기 전에 데이터를 선택적으로 압축할 수 있습니다.
- 효율적인 COW(Copy-On-Write)
- Ceph 블록 장치 및 Ceph 파일 시스템 스냅샷은 BlueStore에서 효율적으로 구현된 COW(Copy-On-Write) 복제 메커니즘을 사용합니다. 이로 인해 일반 스냅샷과 효율적인 2단계 커밋을 구현하기 위해 복제에 의존하는 코딩된 풀의 경우 모두 I/O 효율성이 발생합니다.
- 큰 double-Writes 없음
- 먼저 bluestore는 블록 장치의 할당되지 않은 공간에 새 데이터를 작성한 다음, 디스크의 새 영역을 참조하도록 오브젝트 메타데이터를 업데이트하는 RocksDB 트랜잭션을 커밋합니다. 쓰기 작업이 구성 가능한 크기 임계값 미만인 경우에만 미리 쓰기 저널링 스키마로 전환됩니다.
- 멀티 장치 지원
- Bluestore는 다양한 데이터를 저장하기 위해 여러 블록 장치를 사용할 수 있습니다. 예를 들어 데이터에 대한 Hard Disk Drive (HDD)는 메타데이터, NVMe(Non-volatile Memory) 또는 NVRAM(Non-volatile random-access memory) 또는 RocksDB 쓰기 로그(WAL)의 영구 메모리에 대한 SSD(Solid-state Drive)입니다. 자세한 내용은 Ceph BlueStore 장치 를 참조하십시오.
- 효율적인 블록 장치 사용
- BlueStore는 파일 시스템을 사용하지 않으므로 스토리지 장치 캐시를 지우는 필요성을 최소화합니다.
- 할당 메타데이터
-
할당 메타데이터는 더 이상 IRQsDB에 저장된 시스템의 모든 할당 상태에서 할당 정보를 추론할 수 있으므로 dropsDB의 독립형 개체를 사용하지 않습니다. Bluestore V3 코드는 할당 시 update를 생략하고
umount중 단일 단계에서 모든 OSD 할당 상태를 사용하여 할당자 오브젝트의 전체 삭제 단계를 수행합니다. 이로 인해 IOPS가 25% 증가되고 작은 임의 쓰기 워크로드에서 대기 시간이 단축되지만, 할당 메타데이터를 재생성하기 위해 모두 반복해야 하므로 umount가 호출되지 않는 장애 발생 시 복구 시간이 길어집니다. - 캐시 사용 기간
- Red Hat Ceph Storage는 다른 캐시에 있는 항목을 "age bins"와 연결하여 모든 캐시 항목의 상대적 수명 보기를 제공합니다.
11.2. Ceph BlueStore 장치 링크 복사링크가 클립보드에 복사되었습니다!
Bluestore는 백엔드에서 하나, 두 개 또는 세 개의 스토리지 장치를 관리합니다.
- primary
- WAL
- DB
가장 간단한 경우 BlueStore는 단일 기본 스토리지 장치를 사용합니다. 스토리지 장치는 일반적으로 전체적으로 사용되며 BlueStore에서 직접 관리하는 전체 장치를 차지합니다. 기본 장치는 데이터 디렉터리의 블록 심볼릭 링크로 식별됩니다.
데이터 디렉터리는 OSD에 대한 정보를 보유하는 모든 공통 OSD 파일(예: 속하는 클러스터, 개인 키링)으로 채워지는 tmpfs 마운트입니다.
스토리지 장치는 다음을 포함하는 두 부분으로 분할됩니다.
- OSD 메타데이터: OSD의 기본 메타데이터가 포함된 XFS로 포맷된 작은 파티션입니다. 이 데이터 디렉터리에는 OSD에 대한 정보(예: ID, 해당 클러스터가 속한 클러스터 및 개인 인증 키)에 대한 정보가 포함되어 있습니다.
- Data: BlueStore에서 직접 관리하고 모든 OSD 데이터가 들어 있는 장치의 나머지 부분을 차지합니다. 이 기본 장치는 데이터 디렉터리의 블록 심볼릭 링크로 식별됩니다.
두 개의 추가 장치를 사용할 수도 있습니다.
-
WAL(Write-ahead-log) 장치: BlueStore 내부 저널 또는 미리 쓰기 로그를 저장하는 장치입니다. 이는 데이터 디렉터리에서
block.wal심볼릭 링크로 식별됩니다. 장치가 기본 장치보다 빠른 경우에만 WAL 장치를 사용하는 것이 좋습니다. 예를 들어, WAL 장치에서 SSD 디스크를 사용하고 기본 장치에서 DestinationRule 디스크를 사용하는 경우입니다. - DB 장치: BlueStore 내부 메타데이터를 저장하는 장치입니다. 포함된 RocksDB 데이터베이스는 성능 향상을 위해 기본 장치 대신 DB 장치에서 가능한 한 많은 메타데이터를 배치합니다. DB 장치가 가득 차면 기본 장치에 메타데이터 추가를 시작합니다. 장치가 기본 장치보다 빠른 경우에만 DB 장치를 사용하는 것이 좋습니다.
빠른 장치에서 사용할 수 있는 기가바이트 미만의 스토리지가 있는 경우 이를 WAL 장치로 사용하는 것이 좋습니다. 더 빠른 장치를 사용할 수 있는 경우 DB 장치로 사용하는 것이 좋습니다. BlueStore 저널은 항상 가장 빠른 장치에 배치되므로 DB 장치를 사용하면 WAL 장치와 동일한 이점을 제공하는 동시에 추가 메타데이터를 저장할 수 있습니다.
11.3. Ceph BlueStore 캐싱 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore 캐시는 구성에 따라 버퍼 모음으로, OSD 데몬이 디스크에서 읽거나 쓰는 것처럼 데이터로 채울 수 있습니다. 기본적으로 Red Hat Ceph Storage에서 BlueStore는 읽기에 캐시되지만 쓰기는 캐시하지 않습니다. 이는 캐시 제거와 관련된 잠재적인 오버헤드를 피하기 위해 bluestore_default_buffered_write 옵션이 false 로 설정되어 있기 때문입니다.
bluestore_default_buffered_write 옵션이 true 로 설정되면 데이터가 먼저 버퍼에 기록된 다음 디스크에 커밋됩니다. 그런 다음 쓰기 승인이 클라이언트에 전송되어 데이터가 제거될 때까지 캐시에 이미 있는 데이터에 더 빠르게 액세스할 수 있습니다.
읽기 중심 워크로드는 BlueStore 캐싱을 통해 즉각적인 이점을 얻을 수 없습니다. 더 많은 읽기가 완료되면 캐시가 시간이 지남에 따라 증가되고 후속 읽기는 성능이 개선됩니다. 캐시가 채우는 속도는 BlueStore 블록 및 데이터베이스 디스크 유형과 클라이언트의 워크로드 요구 사항에 따라 달라집니다.
bluestore_default_buffered_write 옵션을 활성화하기 전에 Red Hat 지원에 문의하십시오.
캐시 사용 기간
Red Hat Ceph Storage는 다른 캐시에 있는 항목을 "age bins"와 연결하여 모든 캐시 항목의 상대적 수명 보기를 제공합니다. 예를 들어, delivery 캐시의 BlueStore에 오래된 항목이 있는 경우 단일 큰 오브젝트에 대해 핫 읽기 워크로드가 발생합니다. 해당 OSD의 우선 순위 캐시는 이전 버전의 hot 오브젝트의 버퍼 캐시 데이터보다 우선 순위가 낮은 수준으로 정렬합니다. 일반적으로 Ceph가 특정 우선 순위 수준에서의 것을 크게 선호하지만, 이 핫 워크로드 시나리오에서 이전 버전에서는 핫 워크로드 데이터보다 우선 순위가 더 낮을 수 있으므로 버퍼 데이터 메모리 요청이 먼저 수행됩니다.
11.4. Ceph BlueStore의 크기 조정 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore OSD를 사용하여 기존 및 솔리드 상태 드라이브를 혼합하는 경우, RocksDB 논리 볼륨(block.db)의 크기를 적절하게 조정해야 합니다. Red Hat은 RocksDB 논리 볼륨이 오브젝트, 파일 및 혼합된 워크로드를 사용하여 블록 크기의 4% 미만이어야 합니다. Red Hat은 RocksDB 및 OpenStack 블록 워크로드에서 BlueStore 블록 크기의 1%를 지원합니다. 예를 들어 블록 크기가 개체 워크로드에 대해 1TB인 경우 최소한 40GB RocksDB 논리 볼륨을 생성합니다.
드라이브 유형을 혼합하지 않는 경우 별도의 RocksDB 논리 볼륨이 필요하지 않습니다. Bluestore는 RocksDB의 크기를 자동으로 관리합니다.
Bluestore의 캐시 메모리는ECDHEsDB, BlueStore 메타데이터 및 개체 데이터의 키-값 쌍 메타데이터에 사용됩니다.
BlueStore 캐시 메모리 값은 OSD에서 이미 사용 중인 메모리 풋프린트 외에 있습니다.
11.5. bluestore_min_alloc_size 매개변수를 사용하여 Ceph BlueStore 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
이 절차는 신규 또는 새로 배포된 OSD를 위한 절차입니다.
BlueStore에서 원시 파티션이 bluestore_min_alloc_size 의 청크로 할당되고 관리됩니다. 기본적으로 bluestore_min_alloc_size 는 HDD 및 SSD의 4KiB에 해당하는 4096 개입니다. 각 청크의 작성되지 않은 영역은 원시 파티션에 쓸 때 0으로 채워집니다. 이로 인해 작은 오브젝트를 작성하는 경우와 같이 워크로드에 맞게 올바르게 크기가 지정되지 않은 경우 사용되지 않은 공간이 낭비될 수 있습니다.
가장 작은 쓰기와 일치하도록 bluestore_min_alloc_size 를 설정하는 것이 가장 효과적이므로 이러한 쓰기 위반을 피할 수 있습니다.
bluestore_min_alloc_size 값을 변경하는 것은 권장되지 않습니다. 지원이 필요한 경우 Red Hat 지원에 문의하십시오.
bluestore_min_alloc_size_ssd 및 bluestore_min_alloc_size_hdd 설정은 각각 SSD 및 HDD에 한정되지만 bluestore_min_alloc_size 를 설정하면 설정이 필요하지 않습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 모니터 및 관리자는 클러스터에 배포됩니다.
- OSD 노드로 새로 프로비저닝할 수 있는 서버 또는 노드
- 기존 Ceph OSD 노드를 재배포하는 경우 Ceph Monitor 노드의 관리자 인증 키입니다.
절차
부트스트랩 노드에서
bluestore_min_alloc_size매개변수 값을 변경합니다.구문
ceph config set osd.OSD_ID bluestore_min_alloc_size_DEVICE_NAME_ VALUE
ceph config set osd.OSD_ID bluestore_min_alloc_size_DEVICE_NAME_ VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config set osd.4 bluestore_min_alloc_size_hdd 8192
[ceph: root@host01 /]# ceph config set osd.4 bluestore_min_alloc_size_hdd 8192Copy to Clipboard Copied! Toggle word wrap Toggle overflow bluestore_min_alloc_size가 8192바이트로 설정되어 있으며 이는 8KiB와 동일합니다.참고선택한 값은 2 정렬의 전원이어야 합니다.
OSD 서비스를 다시 시작합니다.
구문
systemctl restart SERVICE_ID
systemctl restart SERVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# systemctl restart ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.4.service
[ceph: root@host01 /]# systemctl restart ceph-499829b4-832f-11eb-8d6d-001a4a000635@osd.4.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
ceph daemon명령을 사용하여 설정을 확인합니다.구문
ceph daemon osd.OSD_ID config get bluestore_min_alloc_size__DEVICE_
ceph daemon osd.OSD_ID config get bluestore_min_alloc_size__DEVICE_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6. BlueStore 관리자 툴을 사용하여 RocksDB 데이터베이스 다시 배치 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore 관리자 도구를 사용하여 데이터베이스를 다시 배치 할 수 있습니다. OSD를 재배포하지 않고 BlueStore의 RocksDB 데이터베이스를 한 모양에서 다른 여러 열 제품군으로 변환합니다. 열 제품군은 전체 데이터베이스와 동일한 기능을 가지고 있지만 사용자가 더 작은 데이터 세트에서 작동하고 다른 옵션을 적용할 수 있습니다. 저장된 키의 예상 다른 수명을 활용합니다. 새 키를 생성하거나 기존 키를 삭제하지 않고 변환 중에 키를 이동합니다.
OSD를 복구하는 방법은 다음 두 가지가 있습니다.
-
rocksdb-resharding.yml플레이북을 사용합니다. - OSD를 수동으로 재하드합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- BlueStore로 구성된 오브젝트 저장소입니다.
- 호스트에 배포된 OSD 노드
- 모든 호스트에 대한 루트 수준 액세스.
-
모든 호스트에 설치된
ceph-common및cephadm패키지입니다.
11.6.1. rocksdb-resharding.yml 플레이북 사용 링크 복사링크가 클립보드에 복사되었습니다!
root 사용자로 관리 노드에서 플레이북이 설치된
cephadm폴더로 이동합니다.예제
cd /usr/share/cephadm-ansible
[root@host01 ~]# cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북을 실행합니다.
구문
ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAME
ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복구가 완료되었는지 확인합니다.
재하드된 OSD를 중지합니다.
예제
[ceph: root@host01 /]# ceph orch daemon stop osd.7
[ceph: root@host01 /]# ceph orch daemon stop osd.7Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 컨테이너를 입력합니다.
예제
cephadm shell --name osd.7
[root@host03 ~]# cephadm shell --name osd.7Copy to Clipboard Copied! Toggle word wrap Toggle overflow resharding을 확인합니다.
예제
[ceph: root@host03 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-7/ show-sharding m(3) p(3,0-12) O(3,0-13) L P[ceph: root@host03 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-7/ show-sharding m(3) p(3,0-12) O(3,0-13) L PCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD를 시작합니다.
예제
[ceph: root@host01 /]# ceph orch daemon start osd.7
[ceph: root@host01 /]# ceph orch daemon start osd.7Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6.2. OSD 수동 복구 링크 복사링크가 클립보드에 복사되었습니다!
cephadm쉘에 로그인합니다.예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 노드에서 OSD_ID 및 호스트 세부 정보를 가져옵니다.
예제
[ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 호스트에
root사용자로 로그인하여 OSD를 중지합니다.구문
cephadm unit --name OSD_ID stop
cephadm unit --name OSD_ID stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm unit --name osd.0 stop
[root@host02 ~]# cephadm unit --name osd.0 stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중지된 OSD 데몬 컨테이너에 입력합니다.
구문
cephadm shell --name OSD_ID
cephadm shell --name OSD_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm shell --name osd.0
[root@host02 ~]# cephadm shell --name osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm 쉘에로그인하고 파일 시스템의 일관성을 확인합니다.구문
ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsck
ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsckCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck fsck success
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck fsck successCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 노드의 분할 상태를 확인합니다.
구문
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-shardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13) L P
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13) L PCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-bluestore-tool명령을 실행하여 하드를 다시 실행합니다. Red Hat은 명령에 지정된 대로 매개변수를 사용하는 것이 좋습니다.구문
ceph-bluestore-tool --log-level 10 -l log.txt --path /var/lib/ceph/osd/ceph-OSD_ID/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshardceph-bluestore-tool --log-level 10 -l log.txt --path /var/lib/ceph/osd/ceph-OSD_ID/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshardCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard reshard success[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard reshard successCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 노드의 분할 상태를 확인하려면
show-sharding명령을 실행합니다.구문
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-shardingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L PCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm쉘을 종료합니다.[ceph: root@host02 /]# exit
[ceph: root@host02 /]# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 호스트에
root사용자로 로그인하고 OSD를 시작합니다.구문
cephadm unit --name OSD_ID start
cephadm unit --name OSD_ID startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm unit --name osd.0 start
[root@host02 ~]# cephadm unit --name osd.0 startCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7. BlueStore 조각화 툴 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 BlueStore OSD의 조각화 수준을 주기적으로 확인하려고 합니다. 오프라인 또는 온라인 OSD를 위해 하나의 간단한 명령으로 조각화 수준을 확인할 수 있습니다.
11.7.1. BlueStore 조각화 툴이란 무엇입니까? 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore OSD의 경우 기본 스토리지 장치의 시간이 지남에 따라 사용 가능한 공간이 조각화됩니다. 일부 조각화는 정상이지만 과도한 조각화가 발생하면 성능이 저하됩니다.
BlueStore 조각화 툴은 BlueStore OSD의 조각화 수준에 대한 점수를 생성합니다. 이러한 조각화 점수는 0부터 1까지의 범위로 지정됩니다. 점수 0은 조각화를 의미하지 않으며 1의 점수는 심각한 조각화를 의미합니다.
| 점수 | 조각화 Amount |
|---|---|
| 0.0 - 0.4 | 조각화를 작게 하는 것은 아닙니다. |
| 0.4 - 0.7 | 소규모 및 허용 조각화. |
| 0.7 - 0.9 | 상당한, 그러나 안전한 조각화. |
| 0.9 - 1.0 | 심각한 조각화 및 성능 문제를 발생시킵니다. |
심각한 조각화가 있고 문제를 해결하는 데 도움이 필요한 경우 Red Hat 지원팀에 문의하십시오.
11.7.2. 조각화 확인 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore OSD의 조각화 수준을 확인하려면 온라인 또는 오프라인에서 수행할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- bluestore OSD.
온라인 BlueStore 조각화 점수
실행중인 BlueStore OSD 프로세스를 검사합니다.
간단한 보고서의 경우 다음 명령을 실행합니다.
구문
ceph daemon OSD_ID bluestore allocator score block
ceph daemon OSD_ID bluestore allocator score blockCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph daemon osd.123 bluestore allocator score block
[ceph: root@host01 /]# ceph daemon osd.123 bluestore allocator score blockCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보다 자세한 보고서를 보려면 다음 명령을 실행합니다.
구문
ceph daemon OSD_ID bluestore allocator dump block
ceph daemon OSD_ID bluestore allocator dump blockCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph daemon osd.123 bluestore allocator dump block
[ceph: root@host01 /]# ceph daemon osd.123 bluestore allocator dump blockCopy to Clipboard Copied! Toggle word wrap Toggle overflow
오프라인 BlueStore 조각화 점수
오프라인 BlueStore OSD를 확인하는 것이 좋습니다.
구문
cephadm shell --name osd.ID
[root@host01 ~]# cephadm shell --name osd.IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm shell --name osd.2 Inferring fsid 110bad0a-bc57-11ee-8138-fa163eb9ffc2 Inferring config /var/lib/ceph/110bad0a-bc57-11ee-8138-fa163eb9ffc2/osd.2/config Using ceph image with id `17334f841482` and tag `ceph-6-rhel-9-containers-candidate-59483-20240301201929` created on 2024-03-01 20:22:41 +0000 UTC registry-proxy.engineering.redhat.com/rh-osbs/rhceph@sha256:09fc3e5baf198614d70669a106eb87dbebee16d4e91484375778d4adbccadacd
[root@host01 ~]# cephadm shell --name osd.2 Inferring fsid 110bad0a-bc57-11ee-8138-fa163eb9ffc2 Inferring config /var/lib/ceph/110bad0a-bc57-11ee-8138-fa163eb9ffc2/osd.2/config Using ceph image with id `17334f841482` and tag `ceph-6-rhel-9-containers-candidate-59483-20240301201929` created on 2024-03-01 20:22:41 +0000 UTC registry-proxy.engineering.redhat.com/rh-osbs/rhceph@sha256:09fc3e5baf198614d70669a106eb87dbebee16d4e91484375778d4adbccadacdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 실행 불가능한 BlueStore OSD 프로세스를 검사합니다.
간단한 보고서의 경우 다음 명령을 실행합니다.
구문
ceph-bluestore-tool --path PATH_TO_OSD_DATA_DIRECTORY --allocator block free-score
ceph-bluestore-tool --path PATH_TO_OSD_DATA_DIRECTORY --allocator block free-scoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-123 --allocator block free-score
[root@host01 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-123 --allocator block free-scoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보다 자세한 보고서를 보려면 다음 명령을 실행합니다.
구문
ceph-bluestore-tool --path PATH_TO_OSD_DATA_DIRECTORY --allocator block free-dump block: { "fragmentation_rating": 0.018290238194701977 }ceph-bluestore-tool --path PATH_TO_OSD_DATA_DIRECTORY --allocator block free-dump block: { "fragmentation_rating": 0.018290238194701977 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.8. Ceph BlueStore BlueFS 링크 복사링크가 클립보드에 복사되었습니다!
bluestore 블록 데이터베이스는 메타데이터를 RocksDB 데이터베이스에 키-값 쌍으로 저장합니다. 블록 데이터베이스는 저장 장치의 작은 BlueFS 파티션에 있습니다. BlueFS는 RocksDB 파일을 보관하도록 설계된 최소 파일 시스템입니다.
BlueFS 파일
다음은ECDHEsDB가 생성하는 세 가지 유형의 파일 유형입니다.
-
제어 파일(예:
CURRENT,IDENTITY,MANIFEST-000011) -
DB 테이블 파일(예:
004112.sst) -
선행 로그(예:
000038.log)를 작성합니다.
또한 BlueFS 재생 로그, 인 o 1, 디렉터리 구조, 파일 매핑 및 작업 로그로 작동하는 내부 숨겨진 파일이 있습니다.
대체 계층
BlueFS를 사용하면 모든 장치에 파일을 배치할 수 있습니다. 파일의 일부는 WAL, DB 및ECDHEOW 다른 장치에 있을 수도 있습니다. BlueFS가 파일을 배치하는 순서가 있습니다. 파일은 기본 스토리지가 소진된 경우에만 보조 스토리지에 배치되고 보조 스토리지가 소진될 때만 3차 스토리지에 배치됩니다.
특정 파일의 순서는 다음과 같습니다.
- 미리 로그 쓰기: WAL, DB,ECDHEOW
-
로그 재생
1: DB, OW 제어 및 DB 파일: DB,ECDHEOW
공간 부족 시 제어 및 DB 파일 순서:ECDHEOW
중요제어 및 DB 파일 순서에 대한 예외가 있습니다. 사용자가 DB 파일에 공간이 부족함을 감지하면ECDHEOW 장치에 파일을 배치하도록 직접 알립니다.
11.8.1. bluefs_buffered_io 설정 보기 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 bluefs_buffered_io 매개변수에 대한 현재 설정을 볼 수 있습니다.
Red Hat Ceph Storage의 경우 기본적으로 bluefs_buffered_io 옵션이 True 로 설정됩니다. 이 옵션을 사용하면 BlueFS에서 버퍼링된 읽기를 수행할 수 있으며 커널 페이지 캐시가 RocksDB 블록 읽기와 같은 읽기에 대한 보조 캐시 역할을 할 수 있습니다.
bluefs_buffered_io 의 값을 변경하는 것은 권장되지 않습니다. bluefs_buffered_io 매개변수를 변경하기 전에 Red Hat 지원 계정 팀에 문의하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph 모니터 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
bluefs_buffered_io매개변수의 현재 값을 세 가지 방법으로 볼 수 있습니다.
방법 1
구성 데이터베이스에 저장된 값을 확인합니다.
예제
[ceph: root@host01 /]# ceph config get osd bluefs_buffered_io
[ceph: root@host01 /]# ceph config get osd bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
방법 2
특정 OSD의 구성 데이터베이스에 저장된 값을 확인합니다.
구문
ceph config get OSD_ID bluefs_buffered_io
ceph config get OSD_ID bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_io
[ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
방법 3
실행 중인 값이 구성 데이터베이스에 저장된 값과 다른 OSD의 실행 중인 값을 확인합니다.
구문
ceph config show OSD_ID bluefs_buffered_io
ceph config show OSD_ID bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_io
[ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.8.2. Ceph OSD의 Ceph BlueFS 통계 보기 링크 복사링크가 클립보드에 복사되었습니다!
bluefs stats 명령을 사용하여 배치되지 않은 Ceph OSD 및 배치되지 않은 Ceph OSD에 대한 BluesFS 관련 정보를 봅니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- BlueStore로 구성된 오브젝트 저장소입니다.
- OSD 노드에 대한 루트 수준 액세스.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow BlueStore OSD 통계를 확인합니다.
구문
ceph daemon osd.OSD_ID bluefs stats
ceph daemon osd.OSD_ID bluefs statsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배치된 OSD의 예
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB) wal_total:0, db_total:15296836403, slow_total:0
[ceph: root@host01 /]# ceph daemon osd.1 bluefs stats 1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB) wal_total:0, db_total:15296836403, slow_total:0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배치되지 않은 OSD의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
0: 전용 WAL 장치 즉block.wal을 나타냅니다.1: 이는block.db인 전용 DB 장치를 나타냅니다.2: 이것은 블록 또는느린주요블록장치를 나타냅니다.장치 크기: 장치의 실제 크기를 나타냅니다.사용: 전체 사용량을 나타냅니다. BlueFS에 국한되지 않습니다.참고DB 및 WAL 장치는 BlueFS에서만 사용됩니다. 메인 장치의 경우 저장된 BlueStore 데이터 사용도 포함됩니다. 위의 예에서
2.3MiB는 BlueStore의 데이터입니다.wal_total,db_total,slow_total: 이러한 값은 위의 장치 값을 다시 나타냅니다.db_avail: 이 값은 필요한 경우 /bbit 장치에서 가져올 수 있는 바이트 수를 나타냅니다.사용법 매트릭스-
WAL,DB,ECDHEOW : 특정 파일을 배치할 위치를 설명합니다. -
행
LOG: BlueFS 재생 로그 인o 1에대해 설명합니다. -
WAL,DB,ECDHEOW 열은 데이터가 실제로 배치되는 위치에 대해 설명합니다. 값은 할당 단위에 있습니다. WAL 및 DB는 성능상의 이유로 더 큰 할당 단위를 갖습니다. -
* / *열은ceph-bluestore-tool에 사용되는 virtual devicesnew-db및new-wal과 관련이 있습니다. 항상0 B로 표시해야합니다. -
실제 열
은바이트 단위로 실제 사용량을 표시합니다. -
열
: 파일수를 표시합니다.
-
MAXIMUMS: 이 표에서는 사용 매트릭스에서 각 항목의 최대값을 캡처합니다.
12장. Cephadm 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터의 문제를 해결할 수 있습니다. Cephadm 명령이 실패한 이유 또는 특정 서비스가 올바르게 실행되지 않는 이유를 조사해야 하는 경우가 있습니다.
12.1. cephadm을 일시 중지 또는 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm이 예상대로 작동하지 않으면 다음 명령을 사용하여 대부분의 백그라운드 활동을 일시 중지할 수 있습니다.
예제
[ceph: root@host01 /]# ceph orch pause
[ceph: root@host01 /]# ceph orch pause
이렇게 하면 변경 사항이 중지되지만 Cephadm은 정기적으로 호스트를 검사하여 데몬 및 장치의 인벤토리를 새로 고칩니다.
Cephadm을 완전히 비활성화하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph orch set backend '' [ceph: root@host01 /]# ceph mgr module disable cephadm
[ceph: root@host01 /]# ceph orch set backend ''
[ceph: root@host01 /]# ceph mgr module disable cephadm
이전에 배포한 데몬 컨테이너가 계속 존재하며 이전과 같이 시작됩니다.
클러스터에서 Cephadm을 다시 활성화하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph mgr module enable cephadm [ceph: root@host01 /]# ceph orch set backend cephadm
[ceph: root@host01 /]# ceph mgr module enable cephadm
[ceph: root@host01 /]# ceph orch set backend cephadm
12.2. 서비스당 및 데몬 이벤트당 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm은 실패한 데몬 배포를 디버깅하는 데 도움이 되도록 서비스당 이벤트와 데몬별로 이벤트를 저장합니다. 이러한 이벤트에는 종종 관련 정보가 포함되어 있습니다.
서비스당
구문
ceph orch ls --service_name SERVICE_NAME --format yaml
ceph orch ls --service_name SERVICE_NAME --format yaml
예제
데몬당
구문
ceph orch ps --service-name SERVICE_NAME --daemon-id DAEMON_ID --format yaml
ceph orch ps --service-name SERVICE_NAME --daemon-id DAEMON_ID --format yaml
예제
12.3. cephadm 로그 확인 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 사용하여 Cephadm 로그를 실시간으로 모니터링할 수 있습니다.
예제
[ceph: root@host01 /]# ceph -W cephadm
[ceph: root@host01 /]# ceph -W cephadm
다음 명령을 사용하여 마지막 몇 개의 메시지를 볼 수 있습니다.
예제
[ceph: root@host01 /]# ceph log last cephadm
[ceph: root@host01 /]# ceph log last cephadm
파일에 대한 로깅을 활성화한 경우 모니터 호스트에 ceph.cephadm.log 라는 Cephadm 로그 파일이 표시될 수 있습니다.
12.4. 로그 파일 수집 링크 복사링크가 클립보드에 복사되었습니다!
journalctl 명령을 사용하여 모든 데몬의 로그 파일을 수집할 수 있습니다.
cephadm 쉘 외부에서 이러한 모든 명령을 실행해야 합니다.
기본적으로 Cephadm은 journald에 로그를 저장하므로 /var/log/ceph 에서 데몬 로그를 더 이상 사용할 수 없습니다.
특정 데몬의 로그 파일을 읽으려면 다음 명령을 실행합니다.
구문
cephadm logs --name DAEMON_NAME
cephadm logs --name DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm logs --name cephfs.hostname.ppdhsz
[root@host01 ~]# cephadm logs --name cephfs.hostname.ppdhszCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이 명령은 데몬이 실행 중인 동일한 호스트에서 실행될 때 작동합니다.
다른 호스트에서 실행 중인 특정 데몬의 로그 파일을 읽으려면 다음 명령을 실행합니다.
구문
cephadm logs --fsid FSID --name DAEMON_NAME
cephadm logs --fsid FSID --name DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cephadm logs --fsid 2d2fd136-6df1-11ea-ae74-002590e526e8 --name cephfs.hostname.ppdhsz
[root@host01 ~]# cephadm logs --fsid 2d2fd136-6df1-11ea-ae74-002590e526e8 --name cephfs.hostname.ppdhszCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
fsid는ceph status명령에서 제공하는 클러스터 ID입니다.지정된 호스트의 모든 데몬의 모든 로그 파일을 가져오려면 다음 명령을 실행합니다.
구문
for name in $(cephadm ls | python3 -c "import sys, json; [print(i['name']) for i in json.load(sys.stdin)]") ; do cephadm logs --fsid FSID_OF_CLUSTER --name "$name" > $name; done
for name in $(cephadm ls | python3 -c "import sys, json; [print(i['name']) for i in json.load(sys.stdin)]") ; do cephadm logs --fsid FSID_OF_CLUSTER --name "$name" > $name; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
for name in $(cephadm ls | python3 -c "import sys, json; [print(i['name']) for i in json.load(sys.stdin)]") ; do cephadm logs --fsid 57bddb48-ee04-11eb-9962-001a4a000672 --name "$name" > $name; done
[root@host01 ~]# for name in $(cephadm ls | python3 -c "import sys, json; [print(i['name']) for i in json.load(sys.stdin)]") ; do cephadm logs --fsid 57bddb48-ee04-11eb-9962-001a4a000672 --name "$name" > $name; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5. systemd 상태 수집 링크 복사링크가 클립보드에 복사되었습니다!
systemd 장치의 상태를 출력하려면 다음 명령을 실행합니다.
예제
systemctl status ceph-a538d494-fb2a-48e4-82c8-b91c37bb0684@mon.host01.service
[root@host01 ~]$ systemctl status ceph-a538d494-fb2a-48e4-82c8-b91c37bb0684@mon.host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.6. 다운로드한 모든 컨테이너 이미지 나열 링크 복사링크가 클립보드에 복사되었습니다!
호스트에 다운로드한 모든 컨테이너 이미지를 나열하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# podman ps -a --format json | jq '.[].Image' "docker.io/library/rhel9" "registry.redhat.io/rhceph-alpha/rhceph-6-rhel9@sha256:9aaea414e2c263216f3cdcb7a096f57c3adf6125ec9f4b0f5f65fa8c43987155"
[ceph: root@host01 /]# podman ps -a --format json | jq '.[].Image'
"docker.io/library/rhel9"
"registry.redhat.io/rhceph-alpha/rhceph-6-rhel9@sha256:9aaea414e2c263216f3cdcb7a096f57c3adf6125ec9f4b0f5f65fa8c43987155"
12.7. 수동으로 컨테이너 실행 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm은 컨테이너를 실행하는 작은 래퍼를 작성합니다. 컨테이너 실행 명령을 실행하려면 /var/lib/ceph/CLUSTER_FSID/SERVICE_NAME/unit 을 참조하십시오.
SSH 오류 분석
다음 오류가 발생하는 경우:
예제
execnet.gateway_bootstrap.HostNotFound: -F /tmp/cephadm-conf-73z09u6g -i /tmp/cephadm-identity-ky7ahp_5 root@10.10.1.2 ... raise OrchestratorError(msg) from e orchestrator._interface.OrchestratorError: Failed to connect to 10.10.1.2 (10.10.1.2). Please make sure that the host is reachable and accepts connections using the cephadm SSH key
execnet.gateway_bootstrap.HostNotFound: -F /tmp/cephadm-conf-73z09u6g -i /tmp/cephadm-identity-ky7ahp_5 root@10.10.1.2
...
raise OrchestratorError(msg) from e
orchestrator._interface.OrchestratorError: Failed to connect to 10.10.1.2 (10.10.1.2).
Please make sure that the host is reachable and accepts connections using the cephadm SSH key
다음 옵션을 사용하여 문제를 해결합니다.
Cephadm에 SSH ID 키가 있는지 확인하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph config-key get mgr/cephadm/ssh_identity_key > ~/cephadm_private_key INFO:cephadm:Inferring fsid f8edc08a-7f17-11ea-8707-000c2915dd98 INFO:cephadm:Using recent ceph image docker.io/ceph/ceph:v15 obtained 'mgr/cephadm/ssh_identity_key' [root@mon1 ~] # chmod 0600 ~/cephadm_private_key
[ceph: root@host01 /]# ceph config-key get mgr/cephadm/ssh_identity_key > ~/cephadm_private_key INFO:cephadm:Inferring fsid f8edc08a-7f17-11ea-8707-000c2915dd98 INFO:cephadm:Using recent ceph image docker.io/ceph/ceph:v15 obtained 'mgr/cephadm/ssh_identity_key' [root@mon1 ~] # chmod 0600 ~/cephadm_private_keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령에 실패하면 Cephadm에 키가 없습니다. SSH 키를 생성하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# chmod 0600 ~/cephadm_private_key
[ceph: root@host01 /]# chmod 0600 ~/cephadm_private_keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
예제
[ceph: root@host01 /]# cat ~/cephadm_private_key | ceph cephadm set-ssk-key -i-
[ceph: root@host01 /]# cat ~/cephadm_private_key | ceph cephadm set-ssk-key -i-Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH 구성이 올바른지 확인하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph cephadm get-ssh-config
[ceph: root@host01 /]# ceph cephadm get-ssh-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에 대한 연결을 확인하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ssh -F config -i ~/cephadm_private_key root@host01
[ceph: root@host01 /]# ssh -F config -i ~/cephadm_private_key root@host01Copy to Clipboard Copied! Toggle word wrap Toggle overflow
authorized_keys 에 공개 키가 있는지 확인합니다.
공개 키가 authorized_keys 파일에 있는지 확인하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph cephadm get-pub-key [ceph: root@host01 /]# grep "`cat ~/ceph.pub`" /root/.ssh/authorized_keys
[ceph: root@host01 /]# ceph cephadm get-pub-key
[ceph: root@host01 /]# grep "`cat ~/ceph.pub`" /root/.ssh/authorized_keys
12.8. CIDR 네트워크 오류 링크 복사링크가 클립보드에 복사되었습니다!
CIDR(Classless inter domain routing)은 supernetting이라고도 하며 IP(Internet Protocol) 주소를 할당하는 방법입니다.FThe Cephadm 로그 항목은 주소 배포의 효율성을 개선하고 클래스 A, 클래스 B 및 클래스 C 네트워크를 기반으로 이전 시스템을 대체하는 현재 상태를 보여줍니다. 다음 오류 중 하나가 표시되는 경우:
ERROR: Failed to infer CIDR network formon ip *; pass --skip-mon-network to configure it later
또는
public_network 구성 옵션을 설정하거나 CIDR 네트워크, ceph addrvec 또는 일반 IP를 지정해야 합니다.
다음 명령을 실행해야 합니다.
예제
[ceph: root@host01 /]# ceph config set host public_network hostnetwork
[ceph: root@host01 /]# ceph config set host public_network hostnetwork
12.9. admin 소켓에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
각 Ceph 데몬은 MON을 우회하는 관리 소켓을 제공합니다.
admin 소켓에 액세스하려면 호스트의 데몬 컨테이너를 입력합니다.
예제
[ceph: root@host01 /]# cephadm enter --name cephfs.hostname.ppdhsz [ceph: root@mon1 /]# ceph --admin-daemon /var/run/ceph/ceph-cephfs.hostname.ppdhsz.asok config show
[ceph: root@host01 /]# cephadm enter --name cephfs.hostname.ppdhsz
[ceph: root@mon1 /]# ceph --admin-daemon /var/run/ceph/ceph-cephfs.hostname.ppdhsz.asok config show
12.10. mgr 데몬 수동 배포 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm에는 Red Hat Ceph Storage 클러스터를 관리하기 위해 mgr 데몬이 필요합니다. Red Hat Ceph Storage 클러스터의 마지막 mgr 데몬이 제거된 경우 Red Hat Ceph Storage 클러스터의 임의의 호스트에 mgr 데몬을 수동으로 배포할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 모든 노드에 대한 루트 수준 액세스.
- 호스트가 클러스터에 추가됩니다.
절차
Cephadm 쉘에 로그인합니다.
예제
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cephadm 스케줄러를 비활성화하여 다음 명령으로 Cephadm이 새 MGR 데몬을 제거하지 못하도록 합니다.
예제
[ceph: root@host01 /]# ceph config-key set mgr/cephadm/pause true
[ceph: root@host01 /]# ceph config-key set mgr/cephadm/pause trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 MGR 데몬의
auth항목을 가져오거나 생성합니다.예제
[ceph: root@host01 /]# ceph auth get-or-create mgr.host01.smfvfd1 mon "profile mgr" osd "allow *" mds "allow *" [mgr.host01.smfvfd1] key = AQDhcORgW8toCRAAlMzlqWXnh3cGRjqYEa9ikw==
[ceph: root@host01 /]# ceph auth get-or-create mgr.host01.smfvfd1 mon "profile mgr" osd "allow *" mds "allow *" [mgr.host01.smfvfd1] key = AQDhcORgW8toCRAAlMzlqWXnh3cGRjqYEa9ikw==Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph.conf파일을 엽니다.예제
[ceph: root@host01 /]# ceph config generate-minimal-conf # minimal ceph.conf for 8c9b0072-67ca-11eb-af06-001a4a0002a0 [global] fsid = 8c9b0072-67ca-11eb-af06-001a4a0002a0 mon_host = [v2:10.10.200.10:3300/0,v1:10.10.200.10:6789/0] [v2:10.10.10.100:3300/0,v1:10.10.200.100:6789/0]
[ceph: root@host01 /]# ceph config generate-minimal-conf # minimal ceph.conf for 8c9b0072-67ca-11eb-af06-001a4a0002a0 [global] fsid = 8c9b0072-67ca-11eb-af06-001a4a0002a0 mon_host = [v2:10.10.200.10:3300/0,v1:10.10.200.10:6789/0] [v2:10.10.10.100:3300/0,v1:10.10.200.100:6789/0]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너 이미지를 가져옵니다.
예제
[ceph: root@host01 /]# ceph config get "mgr.host01.smfvfd1" container_image
[ceph: root@host01 /]# ceph config get "mgr.host01.smfvfd1" container_imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow config-json.json파일을 생성하고 다음을 추가합니다.참고ceph config generate-minimal-conf명령의 출력에서 값을 사용합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cephadm 쉘을 종료합니다.
예제
[ceph: root@host01 /]# exit
[ceph: root@host01 /]# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow MGR 데몬을 배포합니다.
예제
cephadm --image registry.redhat.io/rhceph-alpha/rhceph-6-rhel9:latest deploy --fsid 8c9b0072-67ca-11eb-af06-001a4a0002a0 --name mgr.host01.smfvfd1 --config-json config-json.json
[root@host01 ~]# cephadm --image registry.redhat.io/rhceph-alpha/rhceph-6-rhel9:latest deploy --fsid 8c9b0072-67ca-11eb-af06-001a4a0002a0 --name mgr.host01.smfvfd1 --config-json config-json.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Cephadm 쉘에서 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
새로운 mgr 데몬이 추가된 것을 확인할 수 있습니다.
13장. Cephadm 작업 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Red Hat Ceph Storage 클러스터에서 Cephadm 작업을 수행할 수 있습니다.
13.1. cephadm 로그 메시지 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm 클러스터 로그 채널에 대한 로그가 있어 실시간으로 진행 상황을 모니터링할 수 있습니다.
실시간으로 진행 상황을 모니터링하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph -W cephadm
[ceph: root@host01 /]# ceph -W cephadmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 로그는 정보 수준 이벤트 이상을 표시합니다. 디버그 수준 메시지를 보려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/log_to_cluster_level debug [ceph: root@host01 /]# ceph -W cephadm --watch-debug [ceph: root@host01 /]# ceph -W cephadm --verbose
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/log_to_cluster_level debug [ceph: root@host01 /]# ceph -W cephadm --watch-debug [ceph: root@host01 /]# ceph -W cephadm --verboseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 디버깅 수준을 기본 정보로
반환:예제
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/log_to_cluster_level info
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/log_to_cluster_level infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 최근 이벤트를 보려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph log last cephadm
[ceph: root@host01 /]# ceph log last cephadmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이러한 이벤트는 모니터 호스트의 ceph.cephadm.log 파일 및 모니터 데몬의 stderr에도 기록됩니다.
13.2. Ceph 데몬 로그 링크 복사링크가 클립보드에 복사되었습니다!
stderr 또는 파일을 통해 Ceph 데몬 로그를 볼 수 있습니다.
stdout에 로깅
일반적으로 Ceph 데몬은 /var/log/ceph 에 로깅되었습니다. 기본적으로 Cephadm 데몬 로그는 stderr 에 기록되고 로그는 컨테이너 런타임 환경에서 캡처됩니다. 기본적으로 대부분의 시스템에서는 이러한 로그가 journald 로 전송되고 journalctl 명령을 통해 액세스할 수 있습니다.
예를 들어 ID 5c5a50ae-272a-455d-99e9-32c6a013e694 인 스토리지 클러스터의 경우 host01 의 데몬 로그를 보려면 다음을 실행합니다.
예제
[ceph: root@host01 /]# journalctl -u ceph-5c5a50ae-272a-455d-99e9-32c6a013e694@host01
[ceph: root@host01 /]# journalctl -u ceph-5c5a50ae-272a-455d-99e9-32c6a013e694@host01Copy to Clipboard Copied! Toggle word wrap Toggle overflow
로깅 수준이 낮은 경우 일반 Cephadm 작업에서 잘 작동합니다.
stderr에 로깅을 비활성화하려면 다음 값을 설정합니다.예제
[ceph: root@host01 /]# ceph config set global log_to_stderr false [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_stderr false
[ceph: root@host01 /]# ceph config set global log_to_stderr false [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_stderr falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
파일에 로깅
stderr 대신 파일에 기록하도록 Ceph 데몬을 구성할 수도 있습니다. 파일에 로그인할 때 Ceph 로그는 /var/log/ceph/CLUSTER_FSID 에 있습니다.
파일에 로깅을 활성화하려면 다음 값을 설정합니다.
예제
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file true
[ceph: root@host01 /]# ceph config set global log_to_file true [ceph: root@host01 /]# ceph config set global mon_cluster_log_to_file trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
stderr 에 대한 로깅을 비활성화하여 이중 로그를 사용하지 않는 것이 좋습니다.
기본이 아닌 경로로의 로그 회전은 현재 지원되지 않습니다.
기본적으로 Cephadm은 각 호스트에서 로그 회전을 설정하여 이러한 파일을 회전합니다. /etc/logrotate.d/ceph.CLUSTER_FSID 를 수정하여 로깅 보존 일정을 구성할 수 있습니다.
13.3. 데이터 위치 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm 데몬 데이터 및 로그는 이전 버전의 Ceph와 약간 다른 위치에 있습니다.
-
/var/log/ceph/CLUSTER_FSID에는 모든 스토리지 클러스터 로그가 포함되어 있습니다.stderr및 컨테이너 런타임을 통해 기본적으로 Cephadm 로그가 있으므로 이러한 로그는 일반적으로 존재하지 않습니다. -
/var/lib/ceph/CLUSTER_FSID에는 로그 외에 모든 클러스터 데몬 데이터가 포함됩니다. -
var/lib/ceph/CLUSTER_FSID/DAEMON_NAME에는 특정 데몬의 모든 데이터가 포함됩니다. -
/var/lib/ceph/CLUSTER_FSID/crash에는 스토리지 클러스터에 대한 크래시 보고서가 포함되어 있습니다. -
/var/lib/ceph/CLUSTER_FSID/removed에는 Cephadm에서 제거된 상태 저장 데몬(예: monitor 또는 Prometheus)에 대한 이전 데몬 데이터 디렉터리가 포함되어 있습니다.
디스크 사용량
일부 Ceph 데몬은 중요한 양의 데이터를 /var/lib/ceph (특히 모니터 및 Prometheus 데몬)에 저장할 수 있으므로 이 디렉터리를 자체 디스크, 파티션 또는 논리 볼륨으로 이동하여 루트 파일 시스템이 가득 차지 않도록 하는 것이 좋습니다.
13.4. Cephadm 사용자 정의 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm은 데몬에 대한 기타 구성 파일 지정을 지원합니다. 구성 파일의 내용과 마운트해야 하는 데몬 컨테이너 내에 위치를 모두 제공해야 합니다.
YAML 사양은 지정된 사용자 정의 구성 파일을 사용하여 적용됩니다. Cephadm은 구성 파일이 지정된 데몬을 재배포합니다. 그런 다음 이러한 파일은 지정된 위치에 있는 데몬 컨테이너 내에 마운트됩니다.
사용자 정의 구성 파일을 사용하여 YAML 사양을 적용할 수 있습니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데몬의 컨테이너 내에 새 구성 파일을 마운트할 수 있습니다.
구문
ceph orch redeploy SERVICE_NAME
ceph orch redeploy SERVICE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
[ceph: root@host01 /]# ceph orch redeploy grafana
[ceph: root@host01 /]# ceph orch redeploy grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
14장. Cephadm 상태 점검 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Cephadm 모듈에서 제공하는 추가 상태 점검을 사용하여 Red Hat Ceph Storage 클러스터를 모니터링할 수 있습니다. 이는 스토리지 클러스터에서 제공하는 기본 상태 확인에 대한 보조 항목입니다.
14.1. Cephadm 작업 상태 점검 링크 복사링크가 클립보드에 복사되었습니다!
상태 점검은 Cephadm 모듈이 활성화되면 실행됩니다. 다음과 같은 상태 경고를 받을 수 있습니다.
CEPHADM_PAUSED
ceph 또는ch pause 명령을 사용하여 Cephadm 배경 작업이 일시 중지됩니다. Cephadm은 호스트 및 데몬 상태 확인과 같은 수동 모니터링 활동을 계속 수행하지만 데몬 배포 또는 제거와 같은 변경을 수행하지 않습니다. ceph orch resume 명령을 사용하여 Cephadm 작업을 다시 시작할 수 있습니다.
CEPHADM_STRAY_HOST
Ceph 데몬을 실행하고 있는 하나 이상의 호스트는 Cephadm 모듈에서 관리하는 호스트로 등록되지 않습니다. 즉, 이러한 서비스는 현재 Cephadm에서 관리되지 않습니다(예: ceph orch ps 명령에 포함된 재시작 및 업그레이드). ceph orch 호스트에서 HOST_NAME명령을 사용하여 호스트 를 관리할 수 있지만 원격 호스트에 대한 SSH 액세스가 구성되어 있는지 확인할 수 있습니다. 또는 호스트에 수동으로 연결하고 해당 호스트의 서비스가 Cephadm에서 관리하는 호스트로 마이그레이션되었는지 확인할 수 있습니다. ceph config set mgr/cephadm/warn_on_on_stray_hosts false를 설정하여 이 경고를 비활성화할 수도 있습니다.
CEPHADM_STRAY_DAEMON
하나 이상의 Ceph 데몬이 실행 중이지만 Cephadm 모듈에서 관리하지 않습니다. 이는 다른 툴을 사용하여 배포하거나 수동으로 시작되었기 때문일 수 있습니다. 이러한 서비스는 현재 Cephadm에서 관리하지 않습니다(예: ceph orch ps 명령에 포함된 재시작 및 업그레이드).
데몬이 모니터 또는 OSD 데몬인 상태 저장 장치인 경우 Cephadm에서 해당 데몬을 채택해야 합니다. 상태 비저장 데몬의 경우 ceph orch apply 명령을 사용하여 새 데몬을 프로비저닝한 다음 관리되지 않는 데몬을 중지할 수 있습니다.
ceph config set mgr/cephadm/warn_on_on_stray_daemons false 를 설정하여 이 상태 경고를 비활성화할 수 있습니다.
CEPHADM_HOST_CHECK_FAILED
1개 이상의 호스트가 기본 Cephadm 호스트 검사에 실패하여 해당:name: 값을 확인합니다.
- 호스트에 연결할 수 있으며 Cephadm을 실행할 수 있습니다.
- 호스트는 Podman , 작업 시간 동기화인 작동 중인 컨테이너 런타임과 같은 기본 사전 요구 사항을 충족합니다. 이 테스트에 실패하면 Cephadm에서 해당 호스트의 서비스를 관리할 수 있습니다.
cephadm check-host HOST_NAME 명령을 사용하여 이 검사를 수동으로 실행할 수 있습니다. ceph orch 호스트 rm HOST_NAME명령을 사용하여 관리에서 손상된 호스트 를 제거할 수 있습니다. ceph config set mgr/cephadm/warn_on_failed_host_check false 를 설정하여 이 상태 경고를 비활성화할 수 있습니다.
14.2. Cephadm 구성 상태 점검 링크 복사링크가 클립보드에 복사되었습니다!
Cephadm은 스토리지 클러스터의 각 호스트를 주기적으로 검사하여 OS, 디스크 및 NIC의 상태를 확인합니다. 이러한 팩트는 스토리지 클러스터의 호스트 전체에서 일관성을 위해 분석되어 구성 문제를 식별합니다. 구성 검사는 선택적 기능입니다.
다음 명령을 사용하여 이 기능을 활성화할 수 있습니다.
예제
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/config_checks_enabled true
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/config_checks_enabled trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
구성 검사는 각 호스트 검사 후 1분 동안 트리거됩니다.
ceph -W cephadm명령은 다음과 같이 현재 상태의 로그 항목과 구성 검사 결과를 표시합니다.비활성화된 상태
예제
ALL cephadm checks are disabled, use 'ceph config set mgr mgr/cephadm/config_checks_enabled true' to enable
ALL cephadm checks are disabled, use 'ceph config set mgr mgr/cephadm/config_checks_enabled true' to enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 활성화된 상태
예제
CEPHADM 8/8 checks enabled and executed (0 bypassed, 0 disabled). No issues detected
CEPHADM 8/8 checks enabled and executed (0 bypassed, 0 disabled). No issues detectedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 검사 자체는 여러
cephadm하위 명령을 통해 관리됩니다.구성 검사가 활성화되었는지 확인하려면 다음 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph cephadm config-check status
[ceph: root@host01 /]# ceph cephadm config-check statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구성 검사기의 상태를 Enabled 또는 Disabled 로 반환합니다.
모든 구성 검사 및 현재 상태를 나열하려면 다음 명령을 실행합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 구성 검사는 다음과 같이 설명되어 있습니다.
CEPHADM_CHECK_KERNEL_LSM
스토리지 클러스터 내의 각 호스트는 동일한 LSM(Linux Security Module) 상태에서 작동할 것으로 예상됩니다. 예를 들어 대부분의 호스트가 강제 모드에서 SELINUX를 사용하여 실행되는 경우 이 모드에서 실행되지 않는 모든 호스트는 약간 저하되고 경고 상태가 있는 상태 점검이 발생합니다.
CEPHADM_CHECK_SUBSCRIPTION
이 검사는 공급업체 서브스크립션 상태와 관련이 있습니다. 이 검사는 Red Hat Enterprise Linux를 사용하는 호스트에서만 수행되지만, 패치 및 업데이트를 사용할 수 있도록 모든 호스트가 활성 서브스크립션에서 적용되는지 확인하는 데 도움이 됩니다.
CEPHADM_CHECK_PUBLIC_MEMBERSHIP
클러스터의 모든 멤버가 공용 네트워크 서브넷 중 하나 이상에서 NIC를 구성해야 합니다. 공용 네트워크에 없는 호스트는 성능에 영향을 줄 수 있는 라우팅을 사용합니다.
CEPHADM_CHECK_MTU
OSD에서 NIC의 최대 전송 단위(MTU)는 일관된 성능을 유지하는 핵심 요인이 될 수 있습니다. 이 검사에서는 OSD 서비스를 실행하는 호스트를 검사하여 MTU가 클러스터 내에 일관되게 구성되었는지 확인합니다. 이는 대다수 호스트가 사용 중인 MTU 설정을 설정하여 Ceph 상태 점검이 발생하는 예외와 함께 결정됩니다.
CEPHADM_CHECK_LINKSPEED
MTU 검사와 유사하게 링크 속도 일관성은 클러스터 성능이 일관된 요소이기도 합니다. 이 검사에서는 대부분의 OSD 호스트에서 공유하는 링크 속도가 결정되므로 링크 속도가 더 낮은 속도로 설정된 모든 호스트에 대해 상태 점검이 수행됩니다.
CEPHADM_CHECK_NETWORK_MISSING
public_network 및 cluster_network 설정은 IPv4 및 IPv6에 대한 서브넷 정의를 지원합니다. 스토리지 클러스터의 호스트에서 이러한 설정을 찾을 수 없는 경우 상태 점검이 발생합니다.
CEPHADM_CHECK_CEPH_RELEASE
정상적인 작업에서는 Ceph 클러스터가 동일한 Ceph 릴리스에서 데몬을 실행해야 합니다(예: 모든 Red Hat Ceph Storage 클러스터 5 릴리스). 이 검사에서는 각 데몬의 활성 릴리스를 살펴보고 모든 anomalies를 상태 점검으로 보고합니다. 업그레이드 프로세스가 클러스터 내에서 활성화되어 있는 경우 이 검사가 무시됩니다.
CEPHADM_CHECK_KERNEL_VERSION
OS 커널 버전은 호스트에서 일관성을 검사합니다. 다시 한 번, 대부분의 호스트는 anomalies를 식별하는 기반으로 사용됩니다.
15장. cephadm-ansible 모듈을 사용하여 Red Hat Ceph Storage 클러스터 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ansible 플레이북에서 cephadm-ansible 모듈을 사용하여 Red Hat Ceph Storage 클러스터를 관리할 수 있습니다. cephadm-ansible 패키지는 cephadm 호출을 래핑하여 클러스터를 관리하기 위해 고유한 Ansible 플레이북을 작성할 수 있는 여러 모듈을 제공합니다.
현재 cephadm-ansible 모듈은 가장 중요한 작업만 지원합니다. cephadm-ansible 모듈에서 다루지 않는 작업은 플레이북에서 command 또는 shell Ansible 모듈을 사용하여 완료해야 합니다.
15.1. cephadm-ansible 모듈 링크 복사링크가 클립보드에 복사되었습니다!
모듈은 cephadm 및 cephadm -ansibleceph orch 명령에 래퍼를 제공하여 Ansible 플레이북 작성을 간소화하는 모듈 컬렉션입니다. 모듈을 사용하여 하나 이상의 모듈을 사용하여 클러스터를 관리하기 위해 고유한 Ansible 플레이북을 작성할 수 있습니다.
cephadm-ansible 패키지에는 다음 모듈이 포함되어 있습니다.
-
cephadm_bootstrap -
ceph_orch_host -
ceph_config -
ceph_orch_apply -
ceph_orch_daemon -
cephadm_registry_login
15.2. cephadm-ansible 모듈 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에는 cephadm-ansible 모듈에 사용할 수 있는 옵션이 나열되어 있습니다. 필요에 따라 나열된 옵션은 Ansible 플레이북에서 모듈을 사용할 때 설정해야 합니다. 기본값인 true 로 나열된 옵션은 모듈을 사용할 때 옵션이 자동으로 설정되므로 플레이북에 지정할 필요가 없음을 나타냅니다. 예를 들어 cephadm_bootstrap 모듈의 경우 dashboard: false 를 설정하지 않으면 Ceph 대시보드가 설치됩니다.
cephadm_bootstrap | 설명 | 필수 항목 | 기본값 |
|---|---|---|---|
|
| Ceph Monitor IP 주소. | true | |
|
| Ceph 컨테이너 이미지. | false | |
|
|
| false | |
|
| Ceph FSID를 정의합니다. | false | |
|
| Ceph 컨테이너 이미지를 가져옵니다. | false | true |
|
| Ceph 대시보드를 배포합니다. | false | true |
|
| 특정 Ceph 대시보드 사용자를 지정합니다. | false | |
|
| Ceph 대시보드 암호. | false | |
|
| 모니터링 스택을 배포합니다. | false | true |
|
| firewalld를 사용하여 방화벽 규칙을 관리합니다. | false | true |
|
| 기존 --output-config, --output-keyring 또는 --output-pub-ssh-key 파일을 덮어쓸 수 있습니다. | false | false |
|
| 사용자 정의 레지스트리의 URL입니다. | false | |
|
| 사용자 정의 레지스트리의 사용자 이름. | false | |
|
| 사용자 정의 레지스트리의 암호입니다. | false | |
|
| 사용자 정의 레지스트리 로그인 정보가 있는 JSON 파일입니다. | false | |
|
|
호스트에 대해 | false | |
|
|
| false | |
|
| FQDN(정규화된 도메인 이름)인 호스트 이름을 허용합니다. | false | false |
|
| 클러스터 복제, 복구 및 하트비트에 사용할 서브넷입니다. | false |
ceph_orch_host | 설명 | 필수 항목 | 기본값 |
|---|---|---|---|
|
| 와 상호 작용할 Ceph 클러스터의 FSID입니다. | false | |
|
| 사용할 Ceph 컨테이너 이미지입니다. | false | |
|
| 추가, 제거 또는 업데이트할 호스트의 이름입니다. | true | |
|
| 호스트의 IP 주소입니다. |
| |
|
|
지정된 호스트에서 | false | false |
|
| 호스트에 적용할 라벨 목록입니다. | false | [] |
|
|
| false | present |
ceph_config | 설명 | 필수 항목 | 기본값 |
|---|---|---|---|
|
| 와 상호 작용할 Ceph 클러스터의 FSID입니다. | false | |
|
| 사용할 Ceph 컨테이너 이미지입니다. | false | |
|
|
| false | set |
|
| 구성을 로 설정하는 데몬은 무엇입니까. | true | |
|
|
| true | |
|
| 설정할 매개 변수의 값입니다. |
action이 |
ceph_orch_apply | 설명 | 필수 항목 |
|---|---|---|
|
| 와 상호 작용할 Ceph 클러스터의 FSID입니다. | false |
|
| 사용할 Ceph 컨테이너 이미지입니다. | false |
|
| 적용할 서비스 사양입니다. | true |
ceph_orch_daemon | 설명 | 필수 항목 |
|---|---|---|
|
| 와 상호 작용할 Ceph 클러스터의 FSID입니다. | false |
|
| 사용할 Ceph 컨테이너 이미지입니다. | false |
|
|
| true
가
를 |
|
| 서비스의 ID입니다. | true |
|
| 서비스 유형입니다. | true |
cephadm_registry_login | 설명 | 필수 항목 | 기본값 |
|---|---|---|---|
|
| 레지스트리에서 로그인 또는 로그아웃. | false | login |
|
|
| false | |
|
| 사용자 정의 레지스트리의 URL입니다. | false | |
|
| 사용자 정의 레지스트리의 사용자 이름. |
| |
|
| 사용자 정의 레지스트리의 암호입니다. |
| |
|
| JSON 파일의 경로입니다. 이 작업을 실행하기 전에 이 파일이 원격 호스트에 있어야 합니다. 이 옵션은 현재 지원되지 않습니다. |
15.3. cephadm_bootstrap 및 cephadm_registry_login 모듈을 사용하여 스토리지 클러스터 부트 스트랩 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ansible 플레이북의 cephadm_bootstrap 및 cephadm_registry_login 모듈을 사용하여 Ansible을 사용하여 스토리지 클러스터를 부트스트랩할 수 있습니다.
사전 요구 사항
- 첫 번째 Ceph Monitor 컨테이너의 IP 주소이며, 이는 스토리지 클러스터의 첫 번째 노드의 IP 주소이기도 합니다.
-
registry.redhat.io에 대한 로그인 액세스 -
/var/lib/containers/용으로 최소 10GB의 여유 공간이 필요 -
AppStream에 번들로 제공되는
ansible-core가 포함된 Red Hat Enterprise Linux 9.0 이상. -
Ansible 관리 노드에
cephadm-ansible패키지 설치 - 암호 없는 SSH는 스토리지 클러스터의 모든 호스트에 설정됩니다.
- 호스트는 CDN에 등록됩니다.
절차
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트파일을 생성하고 호스트, 레이블을 추가하고, 스토리지 클러스터에서 첫 번째 호스트의 IP 주소를 모니터링합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow preflight Playbook을 실행합니다.
구문
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터를 부트스트랩할 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북을 실행합니다.
구문
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.yml -vvv
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.yml -vvvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts bootstrap.yml -vvv
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts bootstrap.yml -vvvCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 플레이북을 실행한 후 Ansible 출력을 검토합니다.
15.4. ceph_orch_host 모듈을 사용하여 호스트 추가 또는 제거 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ansible 플레이북에서 ceph_orch_host 모듈을 사용하여 스토리지 클러스터에서 호스트를 추가하고 제거할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드를 CDN에 등록하고 서브스크립션을 연결합니다.
- 스토리지 클러스터의 모든 노드에 대한 sudo 및 암호 없는 SSH 액세스 권한이 있는 Ansible 사용자.
-
Ansible 관리 노드에
cephadm-ansible패키지 설치 - 새 호스트에는 스토리지 클러스터의 공용 SSH 키가 있습니다. 스토리지 클러스터의 공용 SSH 키를 새 호스트에 복사하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage 설치 가이드의 호스트 추가 를 참조하십시오.
절차
다음 절차에 따라 새 호스트를 클러스터에 추가합니다.
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 호스트 및 레이블을 Ansible 인벤토리 파일에 추가합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전에 새 호스트를 Ansible 인벤토리 파일에 추가하고 호스트에서 preflight 플레이북을 실행한 경우 3단계로 건너뜁니다.
--limit옵션을 사용하여 preflight 플레이북을 실행합니다.구문
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit NEWHOST
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit NEWHOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host02
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs" --limit host02Copy to Clipboard Copied! Toggle word wrap Toggle overflow preflight Playbook은 새 호스트에
podman,lvm2,chronyd,cephadm을 설치합니다. 설치가 완료되면cephadm은/usr/sbin/디렉터리에 있습니다.새 호스트를 클러스터에 추가하는 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기본적으로 Ansible은 플레이북의
hosts줄과 일치하는 호스트에서 모든 작업을 실행합니다.ceph orch명령은 관리자 인증 키와 Ceph 구성 파일이 포함된 호스트에서 실행해야 합니다.delegate_to키워드를 사용하여 클러스터에서 admin 호스트를 지정합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 플레이북은 새 호스트를 클러스터에 추가하고 현재 호스트 목록을 표시합니다.
플레이북을 실행하여 클러스터에 호스트를 추가합니다.
구문
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.yml
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts add-hosts.yml
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts add-hosts.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 절차에 따라 클러스터에서 호스트를 제거합니다.
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터에서 호스트 또는 호스트를 제거하는 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 플레이북 작업은
host07의 모든 데몬을 드레이닝하고, 클러스터에서 호스트를 제거하고, 현재 호스트 목록을 표시합니다.Playbook을 실행하여 클러스터에서 호스트를 제거합니다.
구문
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.yml
ansible-playbook -i INVENTORY_FILE PLAYBOOK_FILENAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts remove-hosts.yml
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts remove-hosts.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
클러스터의 현재 호스트 목록을 표시하는 Ansible 작업 출력을 검토합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5. ceph_config 모듈을 사용하여 구성 옵션 설정 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 ceph_config 모듈을 사용하여 Red Hat Ceph Storage 구성 옵션을 설정하거나 가져올 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 sudo 및 암호 없는 SSH 액세스 권한이 있는 Ansible 사용자.
-
Ansible 관리 노드에
cephadm-ansible패키지 설치 - Ansible 인벤토리 파일에는 클러스터와 관리 호스트가 포함되어 있습니다.
절차
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 변경 사항으로 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 플레이북은 먼저
mon_allow_pool_delete옵션을false로 설정합니다. 그러면 플레이북이 현재mon_allow_pool_delete설정을 가져와 Ansible 출력에 값을 표시합니다.플레이북을 실행합니다.
구문
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.yml
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts change_configuration.yml
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts change_configuration.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
플레이북 작업의 출력을 검토합니다.
예제
TASK [print current mon_allow_pool_delete setting] ************************************************************* Wednesday 29 June 2022 13:51:41 -0400 (0:00:05.523) 0:00:17.953 ******** ok: [host01] => msg: the value of 'mon_allow_pool_delete' is true
TASK [print current mon_allow_pool_delete setting] ************************************************************* Wednesday 29 June 2022 13:51:41 -0400 (0:00:05.523) 0:00:17.953 ******** ok: [host01] => msg: the value of 'mon_allow_pool_delete' is trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.6. ceph_orch_apply 모듈을 사용하여 서비스 사양 적용 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ansible 플레이북의 ceph_orch_apply 모듈을 사용하여 스토리지 클러스터에 서비스 사양을 적용할 수 있습니다. 서비스 사양은 Ceph 서비스를 배포하는 데 사용되는 서비스 속성 및 구성 설정을 지정하는 데이터 구조입니다. 서비스 사양을 사용하여 mon,크 래시,mds,mgr,osd,rdb 또는 rbd-mirror 와 같은 Ceph 서비스 유형을 배포할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 sudo 및 암호 없는 SSH 액세스 권한이 있는 Ansible 사용자.
-
Ansible 관리 노드에
cephadm-ansible패키지 설치 - Ansible 인벤토리 파일에는 클러스터와 관리 호스트가 포함되어 있습니다.
절차
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 사양으로 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 플레이북은
osd레이블이 있는 모든 호스트에 Ceph OSD 서비스를 배포합니다.플레이북을 실행합니다.
구문
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.yml
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts deploy_osd_service.yml
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts deploy_osd_service.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 플레이북 작업의 출력을 검토합니다.
15.7. ceph_orch_daemon 모듈을 사용하여 Ceph 데몬 상태 관리 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 관리자는 Ansible 플레이북에서 ceph_orch_daemon 모듈을 사용하여 호스트에서 Ceph 데몬을 시작, 중지 및 재시작할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 sudo 및 암호 없는 SSH 액세스 권한이 있는 Ansible 사용자.
-
Ansible 관리 노드에
cephadm-ansible패키지 설치 - Ansible 인벤토리 파일에는 클러스터와 관리 호스트가 포함되어 있습니다.
절차
- Ansible 관리 노드에 로그인합니다.
Ansible 관리 노드에서
/usr/share/cephadm-ansible디렉터리로 이동합니다.예제
cd /usr/share/cephadm-ansible
[ceph-admin@admin ~]$ cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데몬 상태 변경 사항을 사용하여 플레이북을 생성합니다.
구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 플레이북은 ID가
0인 OSD를 시작하고host02ID가 있는 Ceph Monitor를 중지합니다.플레이북을 실행합니다.
구문
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.yml
ansible-playbook -i INVENTORY_FILE _PLAYBOOK_FILENAME.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ansible-playbook -i hosts restart_services.yml
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i hosts restart_services.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 플레이북 작업의 출력을 검토합니다.
부록 A. mClock 설정 옵션 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에는 mClock 설정 옵션 목록이 포함되어 있습니다.
osd_mclock_profile- 설명
배경 복구,
백필,pg scrub,snap trim,클라이언트 op및pg 삭제와 같은 다른 클래스에 속하는 작업을 기반으로 서비스 품질 (QoS)을 제공하는 데 사용할 mClock 프로파일 유형을 설정합니다.기본 제공 프로필이 활성화되면 예약, 가중치 및 제한인 하위 수준의 mClock 리소스 제어 매개 변수, 일부 Ceph 구성 매개변수가 투명하게 설정됩니다. 사용자 지정 프로필에는 적용되지 않습니다.
- 유형
- 문자열
- 기본값
-
balanced - 유효한 선택
-
균형 잡힌,high_recovery_ops,high_client_ops,custom
osd_mclock_max_capacity_iops_hdd- 설명
-
순환 미디어의 OSD당 고려할 최대 임의의 쓰기 IOPS 용량을 4KiB 블록 크기로 설정합니다. dmclock 프로필을 활성화할 때 QoS 계산에 기여합니다.
osd_op_queue = mclock_scheduler에서만 간주됩니다. - 유형
- 플로트
- 기본값
-
315.0
osd_mclock_max_capacity_iops_ssd- 설명
- 견고한 상태 미디어의 OSD당 고려할 최대 임의의 쓰기 IOPS 용량을 4KiB 블록 크기로 설정합니다.
- 유형
- 플로트
- 기본값
-
21500.0
osd_mclock_cost_per_byte_usec_ssd- 설명
-
dmclock 프로필을 활성화할 때 QoS 계산에서 OSD당 고려할 바이트당 비용을 나타냅니다.
osd_op_queue = mclock_scheduler에서만 간주됩니다. - 유형
- 플로트
- 기본값
-
0.011
osd_mclock_max_sequential_bandwidth_hdd- 설명
-
기본 장치 유형이 회전 미디어인 OSD에 대해 고려할 최대 순차적 대역폭(바이트)을 나타냅니다. 이는 QoS 계산에 사용할 비용 요소를 파생하기 위해 mclock 스케줄러에서 고려합니다.
osd_op_queue = mclock_scheduler에서만 고려됨 - 유형
- 크기
- 기본값
-
150_M
osd_mclock_max_sequential_bandwidth_ssd- 설명
-
기본 장치 유형이 솔리드 상태 미디어인 OSD에 대해 고려할 최대 순차적 대역폭(바이트)을 나타냅니다. 이는 QoS 계산에 사용할 비용 요소를 파생하기 위해 mclock 스케줄러에서 고려합니다.
osd_op_queue = mclock_scheduler에서만 고려됨 - 유형
- 크기
- 기본값
-
1200_M
osd_mclock_force_run_benchmark_on_init- 설명
- 이를 통해 OSD 초기화 또는 부팅 시 OSD 벤치마크가 강제 실행됩니다.
- 유형
- 부울
- 기본값
- False
- 또한 참조
-
osd_mclock_max_capacity_iops_hdd,osd_mclock_max_capacity_iops_ssd
osd_mclock_skip_benchmark- 설명
- 이 옵션을 설정하면 OSD 초기화 또는 부팅 시 OSD 벤치마크를 건너뜁니다.
- 유형
- 부울
- 기본값
- False
- 또한 참조
-
osd_mclock_max_capacity_iops_hdd,osd_mclock_max_capacity_iops_ssd
osd_mclock_override_recovery_settings- 설명
-
이 옵션을 설정하면
osd_recovery_max_active_hdd, osd_max_active_ssd ,또는 백필 제한을 덮어쓸 수 있습니다.osd_max_backfills옵션에 정의된 mClock 스케줄러에 대한 복구 - 유형
- 부울
- 기본값
- False
- 또한 참조
-
osd_recovery_max_active_hdd,osd_recovery_max_active_ssd,osd_max_backfills
osd_mclock_iops_capacity_threshold_hdd- 설명
- 이는 4KiB 블록 크기에서 임계값 IOPS 용량을 나타냅니다. 그 이상으로 Ceph OSD에 대한 벤치마크 결과를 무시할 수 있습니다.
- 유형
- 플로트
- 기본값
-
500.0
osd_mclock_iops_capacity_threshold_ssd- 설명
- 이는 4KiB 블록 크기로 임계값 IOPS 용량을 나타내며, 그 이상으로 SSD의 OSD에 대한 Ceph OSD 벤치 결과를 무시합니다.
- 유형
- 플로트
- 기본값
-
80000.0
osd_mclock_scheduler_client_res- 설명
-
이는 각 클라이언트에 대해 예약된 기본 I/O 비율입니다. 기본값인
0은 가능한 가장 낮은 예약을 지정합니다. 0보다 크고 최대 1.0 이상의 값은 OSD의 최대 IOPS 용량의 일부 측면에서 각 클라이언트에 예약할 최소 IO 비율을 지정합니다. - 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0
osd_mclock_scheduler_client_wgt- 설명
- 예약 시 각 클라이언트의 기본 I/O 공유입니다.
- 유형
- 부호 없는 정수
- 기본값
-
1
osd_mclock_scheduler_client_lim- 설명
-
예약 시 각 클라이언트의 기본 I/O 제한입니다. 기본값인
0은 제한 적용 기능을 지정하지 않으므로 각 클라이언트에서 OSD의 가능한 최대 IOPS 용량을 사용할 수 있습니다. 0보다 크고 1.0까지의 값은 각 클라이언트가 OSD의 최대 IOPS 용량의 일부로 수신하는 예약보다 상위 IO 제한을 지정합니다. - 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0
osd_mclock_scheduler_background_recovery_res- 설명
- 백그라운드 복구를 위해 예약된 기본 I/O 비율입니다. 기본값인 0은 가능한 가장 낮은 예약을 지정합니다. 0보다 크고 최대 1.0 이상의 값은 OSD의 최대 IOPS 용량의 일부 측면에서 백그라운드 복구 작업을 위해 예약할 최소 IO 비율을 지정합니다.
- 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0
osd_mclock_scheduler_background_recovery_wgt- 설명
- 예약에 따른 각 백그라운드 복구에 대한 I/O 공유를 나타냅니다.
- 유형
- 부호 없는 정수
- 기본값
-
1
osd_mclock_scheduler_background_recovery_lim- 설명
- 예약에 대한 백그라운드 복구에 대한 I/O 제한을 나타냅니다. 기본값인 0은 제한을 지정하지 않으므로 백그라운드 복구 작업에서 OSD의 가능한 최대 IOPS 용량을 사용할 수 있습니다. 0보다 크고 1.0까지의 값은 백그라운드 복구 작업이 OSD의 최대 IOPS 용량의 일부로 수신하는 예약보다 상위 IO 제한을 지정합니다.
- 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0
osd_mclock_scheduler_background_best_effort_res- 설명
-
백그라운드
best_effort용으로 예약된 기본 I/O 비율을 나타냅니다. 기본값인 0은 가능한 가장 낮은 예약을 지정합니다. 0과 최대 1.0보다 큰 값은 OSD의 최대 IOPS 용량의 일부 측면에서 백그라운드 best_effort 작업을 위해 예약할 최소 IO 비율을 지정합니다. - 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0
osd_mclock_scheduler_background_best_effort_wgt- 설명
-
이는 예약보다
best_effort각 배경에 대한 I/O 공유를 나타냅니다. - 유형
- 부호 없는 정수
- 기본값
-
1
osd_mclock_scheduler_background_best_effort_lim- 설명
-
이는 예약보다
best_effort배경에 대한 I/O 제한을 나타냅니다. 기본값인 0은 제한 적용 기능을 지정하지 않으므로 백그라운드 best_effort 작업에서 OSD의 최대 IOPS 용량을 사용할 수 있습니다. 0보다 크고 최대 1.0 이상의 값은 백그라운드 best_effort 작업이 OSD의 최대 IOPS 용량의 일부로 수신하는 예약 이상의 상위 IO 제한을 지정합니다. - 유형
- 플로트
- 기본값
-
0 - 분
- 0
- Max
- 1.0