1.5. 컨테이너화된 배포로 변환
이 절차는 컨테이너화되지 않은 클러스터에 필요합니다. 스토리지 클러스터가 컨테이너화되지 않은 클러스터인 경우 이 절차에서는 클러스터를 컨테이너화된 버전으로 변환합니다.
Red Hat Ceph Storage 5는 컨테이너 기반 배포만 지원합니다. RHCS 5.x로 업그레이드하기 전에 클러스터를 컨테이너화해야 합니다.
Red Hat Ceph Storage 4 스토리지 클러스터가 이미 컨테이너화된 경우 이 섹션을 건너뛰십시오.
이 절차는 데몬을 중지하고 다시 시작합니다. 이 절차 중에 플레이북이 실행을 중지하면 재시작하기 전에 클러스터의 상태를 분석해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage가 아닌 4개의 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
- 유효한 고객 서브스크립션.
- Ansible 관리 노드에 대한 루트 수준 액세스.
- Ansible 애플리케이션에서 사용할 Ansible 사용자 계정입니다.
절차
-
다중 사이트 설정을 실행하는 경우
all.yml
에서rgw_multisite: false
를 설정합니다. group_vars/all.yml
에 구성 매개변수에 대한 다음과 같은 기본값이 있는지 확인합니다.ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: true
참고이러한 값은 로컬 레지스트리와 사용자 정의 이미지 이름을 사용하는 경우 다릅니다.
선택사항: 베어 메탈 스토리지 클러스터에서 명령줄 인터페이스를 사용하여 구성된 양방향 RBD 미러링의 경우 클러스터는 RBD 미러링을 마이그레이션하지 않습니다. 이러한 구성의 경우 컨테이너화되지 않은 스토리지 클러스터를 컨테이너화된 배포로 마이그레이션하기 전에 다음 단계를 따르십시오.
Ceph 클라이언트 노드에서 사용자를 생성합니다.
구문
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
예제
[root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
/etc/ceph
디렉토리의auth
파일의 사용자 이름을 변경합니다.예제
[client.rbd-mirror.rbd-client-site-a] key = AQCbKbVg+E7POBAA7COSZCodvOrg2LWIFc9+3g== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
인증
파일을 가져와 관련 권한을 추가합니다.구문
ceph auth import -i PATH_TO_KEYRING
예제
[root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring
RBD 미러 노드의 서비스 이름을 확인합니다.
예제
[root@rbd-client-site-a ~]# systemctl list-units --all systemctl stop ceph-rbd-mirror@rbd-client-site-a.service systemctl disable ceph-rbd-mirror@rbd-client-site-a.service systemctl reset-failed ceph-rbd-mirror@rbd-client-site-a.service systemctl start ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl enable ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl status ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
rbd-mirror 노드를
/etc/ansible/hosts
파일에 추가합니다.예제
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
컨테이너화된 데몬을 사용하는 경우 컨테이너화된 형식으로 변환합니다.
구문
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
-vvv
옵션은 변환 프로세스의 자세한 로그를 수집합니다.예제
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
플레이북이 성공적으로 완료되면
all.yml
파일에서rgw_multisite: true
값을 편집하고containerized_deployment
값이true
인지 확인합니다.참고관리 노드에서
ceph-iscsi
,libtcmu
,tcmu-runner
패키지를 제거해야 합니다.