4.3. monmap삽입
Ceph Monitor에 오래되었거나 손상된 Ceph 모니터 맵(monmap
)이 있는 경우 잘못된 IP 주소의 다른 Ceph 모니터에 연결하려고 하므로 쿼럼에 참여할 수 없습니다.
이 문제를 해결하는 가장 안전한 방법은 다른 Ceph 모니터에서 실제 Ceph 모니터 맵을 가져와 삽입하는 것입니다.
이 작업은 Ceph Monitor에서 보관하는 기존 Ceph Monitor 맵을 덮어씁니다.
다음 절차에서는 다른 Ceph 모니터가 쿼럼을 만들 수 있거나 하나 이상의 Ceph 모니터에 올바른 Ceph 모니터 맵이 있는 경우 Ceph Monitor 맵을 삽입하는 방법을 보여줍니다. 모든 Ceph 모니터 저장소가 손상되어 Ceph 모니터 맵도 있는 경우 Ceph 모니터 저장소 복구를 참조하십시오.
사전 요구 사항
- Ceph 모니터 맵에 대한 액세스.
- Ceph 모니터 노드에 대한 루트 수준 액세스.
절차
나머지 Ceph Monitor가 쿼럼을 구성할 수 있는 경우
ceph mon getmap
명령을 사용하여 Ceph Monitor 맵을 가져옵니다.[root@mon ~]# ceph mon getmap -o /tmp/monmap
나머지 Ceph Monitor가 쿼럼을 구성할 수 없고 올바른 Ceph 모니터 맵이 있는 Ceph Monitor가 하나 이상 있는 경우 해당 Ceph Monitor에서 복사합니다.
Ceph Monitor 맵을 복사하려는 Ceph Monitor를 중지합니다.
[root@mon ~]# systemctl stop ceph-mon@<host-name>
예를 들어 host
1
짧은 호스트 이름이 있는 호스트에서 Ceph Monitor 실행을 중지하려면 다음을 수행합니다.[root@mon ~]# systemctl stop ceph-mon@host1
Ceph 모니터 맵을 복사합니다.
[root@mon ~]# ceph-mon -i ID --extract-monmap /tmp/monmap
ID
를 Ceph Monitor 맵을 복사하려는 Ceph Monitor의 ID로 바꿉니다.[root@mon ~]# ceph-mon -i mon.a --extract-monmap /tmp/monmap
손상된 Ceph 모니터 맵을 사용하여 Ceph Monitor를 중지합니다.
[root@mon ~]# systemctl stop ceph-mon@HOST_NAME
예를 들어 host
2
짧은 호스트 이름이 있는 호스트에서 Ceph Monitor 실행을 중지하려면 다음을 수행합니다.[root@mon ~]# systemctl stop ceph-mon@host2
Ceph Monitor 맵을 두 가지 방법으로
ceph
사용자로 삽입할 수 있습니다.ceph
사용자로 명령을 실행합니다.구문
su - ceph -c 'ceph-mon -i ID --inject-monmap /tmp/monmap'
ID
를 Ceph Monitor의 ID로 교체하여 손상된 Ceph Monitor 맵으로 변경합니다.예제
[root@mon ~]# su - ceph -c 'ceph-mon -i mon.c --inject-monmap /tmp/monmap'
root
사용자로 명령을 실행한 다음chown
을 실행하여 권한을 변경합니다.root 사용자로 명령을 실행합니다.
구문
ceph-mon -i ID --inject-monmap /tmp/monmap
ID
를 Ceph Monitor의 ID로 교체하여 손상된 Ceph Monitor 맵으로 변경합니다.예제
[root@mon ~]# ceph-mon -i mon.c --inject-monmap /tmp/monmap
파일 권한을 변경합니다.
예제
[root@mon ~]# chown -R ceph:ceph /var/lib/ceph/mon/ceph-c/
Ceph 모니터를 시작합니다.
[root@mon ~]# systemctl start ceph-mon@host2
다른 Ceph Monitor에서 Ceph Monitor 맵을 복사한 경우 해당 Ceph Monitor도 시작합니다.
[root@mon ~]# systemctl start ceph-mon@host1