6장. Ceph MDSs 문제 해결
스토리지 관리자는 Ceph MDS(메타데이터 서버)를 사용할 때 발생할 수 있는 가장 일반적인 문제를 해결할 수 있습니다. 발생할 수 있는 몇 가지 일반적인 오류:
- MDS 노드 장애에 새 MDS 배포가 필요합니다.
- MDS 노드 문제로 인해 MDS 노드를 재배포해야 합니다.
6.1. Ceph MDS 재배포 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 메타데이터 서버(MDS) 데몬은 Ceph 파일 시스템을 배포하는 데 필요합니다. 클러스터의 MDS 노드가 실패하면 MDS 서버를 제거하고 새 또는 기존 서버를 추가하여 Ceph 메타데이터 서버를 재배포할 수 있습니다. 명령줄 인터페이스 또는 Ansible 플레이북을 사용하여 MDS 서버를 추가하거나 제거할 수 있습니다.
6.1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 실행 중인 Red Hat Ceph Storage 클러스터.
6.1.2. Ansible을 사용하여 Ceph MDS 제거 링크 복사링크가 클립보드에 복사되었습니다!
Ansible을 사용하여 Ceph 메타데이터 서버(MDS)를 제거하려면 shrink-mds 플레이북을 사용합니다.
MDS가 제거되면 사용할 대체 MDS가 없는 경우 클라이언트에서 파일 시스템을 사용할 수 없게 됩니다. 이것이 바람직하지 않은 경우 오프라인으로 전환하려는 MDS를 제거하기 전에 추가 MDS를 추가하는 것이 좋습니다.
사전 요구 사항
- 하나 이상의 MDS 노드
- Ansible에서 배포한 Red Hat Ceph Storage 클러스터 실행.
-
Ansible 관리 노드에 대한
root또는sudo액세스.
절차
- Ansible 관리 노드에 로그인합니다.
/usr/share/ceph-ansible디렉터리로 변경합니다.예제
[ansible@admin ~]$ cd /usr/share/ceph-ansibleAnsible
shrink-mds.yml플레이북을 실행하고 메시지가 표시되면yes를 입력하여 클러스터 축소를 확인합니다.구문
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hostsID 를 삭제하려는 MDS 노드의 ID로 바꿉니다. 플레이북이 실행될 때마다 Ceph MDS가 하나만 제거할 수 있습니다.
예제
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hostsroot또는sudo액세스로/usr/share/ceph-ansible/hosts인벤토리 파일을 열고 편집한 후[mds]섹션의 MDS 노드를 삭제합니다.구문
[mdss] MDS_NODE_NAME MDS_NODE_NAME예제
[mdss] node01 node03이 예에서는
node02가[mdss]목록에서 제거되었습니다.
검증
MDS 데몬 상태를 확인합니다.
구문
ceph fs dump예제
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
6.1.3. 명령줄 인터페이스를 사용하여 Ceph MDS 제거 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 Ceph 메타데이터 서버(MDS)를 수동으로 제거할 수 있습니다.
현재 MDS가 제거되면 사용할 대체 MDS가 없는 경우 클라이언트에서 파일 시스템을 사용할 수 없게 됩니다. 이것이 바람직하지 않은 경우 기존 MDS를 제거하기 전에 MDS를 추가하는 것이 좋습니다.
사전 요구 사항
-
ceph-common패키지가 설치되어 있습니다. - 실행 중인 Red Hat Ceph Storage 클러스터.
-
MDS 노드에 대한
root또는sudo액세스
절차
- MDS 데몬을 삭제할 Ceph MDS 노드에 로그인합니다.
Ceph MDS 서비스를 중지합니다.
구문
sudo systemctl stop ceph-mds@HOST_NAMEHOST_NAME 을 데몬이 실행 중인 호스트의 짧은 이름으로 교체합니다.
예제
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02MDS 서비스를 이 노드에 재배포하지 않는 경우 다음을 비활성화합니다.
구문
sudo systemctl disable ceph-mds@HOST_NAME데몬을 비활성화하려면 HOST_NAME 을 호스트의 짧은 이름으로 교체합니다.
예제
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02MDS 노드의
/var/lib/ceph/mds/ceph-MDS_ID디렉터리를 삭제합니다.구문
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_IDMDS_ID 를 MDS 데몬을 삭제하려는 MDS 노드의 ID로 바꿉니다.
예제
[admin@node02 ~]$ sudo rm -fr /var/lib/ceph/mds/ceph-node02
검증
MDS 데몬 상태를 확인합니다.
구문
ceph fs dump예제
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
6.1.4. Ansible을 사용하여 Ceph MDS 추가 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 플레이북을 사용하여 Ceph MDS(메타데이터 서버)를 추가합니다.
사전 요구 사항
- Ansible에서 배포한 Red Hat Ceph Storage 클러스터 실행.
-
Ansible 관리 노드에 대한
root또는sudo액세스. - MDS 노드로 프로비저닝할 수 있는 신규 또는 기존 서버.
절차
- Ansible 관리 노드에 로그인합니다.
/usr/share/ceph-ansible디렉터리로 변경합니다.예제
[ansible@admin ~]$ cd /usr/share/ceph-ansibleroot또는sudo액세스로/usr/share/ceph-ansible/hosts인벤토리 파일을 열고 편집하고[mds]섹션에 MDS 노드를 추가합니다.구문
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAMENEW_MDS_NODE_NAME 을 MDS 서버를 설치할 노드의 호스트 이름으로 교체합니다.
또는
[osds]및[mds]섹션에 동일한 노드를 추가하여 한 노드에서 OSD 데몬을 사용하여 MDS 데몬을 배치할 수 있습니다.예제
[mdss] node01 node03ansible사용자로 Ansible 플레이북을 실행하여 MDS 노드를 프로비저닝합니다.베어 메탈 배포:
[ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit mdss -i hosts컨테이너 배포:
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit mdss -i hostsAnsible 플레이북 실행을 완료하면 새로운 Ceph MDS 노드가 스토리지 클러스터에 나타납니다.
검증
MDS 데몬 상태를 확인합니다.
구문
ceph fs dump예제
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]또는
ceph mds stat명령을 사용하여 MDS가 활성 상태인지 확인할 수 있습니다.구문
ceph mds stat예제
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
6.1.5. 명령줄 인터페이스를 사용하여 Ceph MDS 추가 링크 복사링크가 클립보드에 복사되었습니다!
명령줄 인터페이스를 사용하여 수동으로 Ceph 메타데이터 서버(MDS)를 추가할 수 있습니다.
사전 요구 사항
-
ceph-common패키지가 설치되어 있습니다. - 실행 중인 Red Hat Ceph Storage 클러스터.
-
MDS 노드에 대한
root또는sudo액세스 - MDS 노드로 프로비저닝할 수 있는 신규 또는 기존 서버.
절차
노드에 로그인하고 MDS 마운트 지점을 생성하여 새 MDS 노드를 추가합니다.
구문
sudo mkdir /var/lib/ceph/mds/ceph-MDS_IDMDS_ID 를 MDS 데몬을 추가할 MDS 노드의 ID로 바꿉니다.
예제
[admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03Cephx 인증을 사용하는 경우 새 MDS 노드인 경우 인증 키를 생성합니다.
구문
sudo ceph auth get-or-create mds.MDS_ID mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-MDS_ID/keyringMDS 데몬을 배포할 MDS 노드의 ID로 MDS_ID 를 교체합니다.
예제
[admin@node03 ~]$ sudo ceph auth get-or-create mds.node03 mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-node03/keyring참고cephx 인증은 기본적으로 활성화되어 있습니다. Cephx 인증에 대한 자세한 내용은 추가 리소스 섹션의 Cephx 인증 링크를 참조하십시오.
MDS 데몬을 시작합니다.
구문
sudo systemctl start ceph-mds@HOST_NAMEHOST_NAME 을 데몬을 시작할 호스트의 짧은 이름으로 교체합니다.
예제
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03MDS 서비스를 활성화합니다.
구문
systemctl enable ceph-mds@HOST_NAME서비스를 활성화하려면 HOST_NAME 을 호스트의 짧은 이름으로 교체합니다.
예제
[admin@node03 ~]$ sudo systemctl enable ceph-mds@node03
검증
MDS 데몬 상태를 확인합니다.
구문
ceph fs dump예제
[admin@mon]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]또는
ceph mds stat명령을 사용하여 MDS가 활성 상태인지 확인할 수 있습니다.구문
ceph mds stat예제
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby