3.5. Cephadm을 사용한 클러스터 부트스트랩 및 서비스 배포
cephadm 유틸리티는 cephadm bootstrap 명령이 실행되는 로컬 노드의 새로운 Red Hat Ceph Storage 클러스터에 대해 단일 Ceph Monitor 데몬과 Ceph Manager 데몬을 설치하고 시작합니다.
부트스트랩 프로세스에 대한 자세한 내용은 새 스토리지 클러스터 부트스트랩 을 참조하십시오.
절차
다음과 같이 json 파일을 사용하여 컨테이너 레지스트리에 대해 인증할 json 파일을 생성합니다.
$ cat <<EOF > /root/registry.json { "url":"registry.redhat.io", "username":"User", "password":"Pass" } EOF
RHCS 클러스터에 노드를 추가하고 다음 표 3.1을 실행해야 하는 위치에 대한 특정 레이블을 설정하는
cluster-spec.yaml
을 만듭니다.cat <<EOF > /root/cluster-spec.yaml service_type: host addr: 10.0.40.78 ## <XXX.XXX.XXX.XXX> hostname: ceph1 ## <ceph-hostname-1> location: root: default datacenter: DC1 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.35 hostname: ceph2 location: datacenter: DC1 labels: - osd - mon --- service_type: host addr: 10.0.40.24 hostname: ceph3 location: datacenter: DC1 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.185 hostname: ceph4 location: root: default datacenter: DC2 labels: - osd - mon - mgr --- service_type: host addr: 10.0.40.88 hostname: ceph5 location: datacenter: DC2 labels: - osd - mon --- service_type: host addr: 10.0.40.66 hostname: ceph6 location: datacenter: DC2 labels: - osd - mds - rgw --- service_type: host addr: 10.0.40.221 hostname: ceph7 labels: - mon --- service_type: mon placement: label: "mon" --- service_type: mds service_id: fs_name placement: label: "mds" --- service_type: mgr service_name: mgr placement: label: "mgr" --- service_type: osd service_id: all-available-devices service_name: osd.all-available-devices placement: label: "osd" spec: data_devices: all: true --- service_type: rgw service_id: objectgw service_name: rgw.objectgw placement: count: 2 label: "rgw" spec: rgw_frontend_port: 8080 EOF
부트 스트랩 노드에서 구성된 RHCS 공용 네트워크를 사용하여 NIC의 IP를 검색합니다.
10.0.40.0
을 ceph 공용 네트워크에 정의한 서브넷이 사용된 후 다음 명령을 실행합니다.$ ip a | grep 10.0.40
출력 예:
10.0.40.78
클러스터의 초기 모니터 노드가 될 노드에서
Cephadm
bootstrap 명령을 root 사용자로 실행합니다.IP_ADDRESS
옵션은cephadm bootstrap
명령을 실행하는 데 사용하는 노드의 IP 주소입니다.참고암호 없는 SSH 액세스를 위해
root
대신 다른 사용자를 구성한 경우--ssh-user=
플래그를cepadm bootstrap
명령과 함께 사용합니다.$ cephadm bootstrap --ssh-user=deployment-user --mon-ip 10.0.40.78 --apply-spec /root/cluster-spec.yaml --registry-json /root/registry.json
중요로컬 노드에서 FQDN(정규화된 도메인 이름)을 사용하는 경우 명령줄의
cephadm 부트스트랩
에--allow-fqdn-hostname
옵션을 추가합니다.부트스트랩이 완료되면 이전 cephadm 부트스트랩 명령의 다음 출력이 표시됩니다.
You can access the Ceph CLI with: sudo /usr/sbin/cephadm shell --fsid dd77f050-9afe-11ec-a56c-029f8148ea14 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring Please consider enabling telemetry to help improve Ceph: ceph telemetry on For more information see: https://docs.ceph.com/docs/pacific/mgr/telemetry/
ceph1의 Ceph CLI 클라이언트를 사용하여 Red Hat Ceph Storage 클러스터 배포 상태를 확인합니다.
$ ceph -s
출력 예:
cluster: id: 3a801754-e01f-11ec-b7ab-005056838602 health: HEALTH_OK services: mon: 5 daemons, quorum ceph1,ceph2,ceph4,ceph5,ceph7 (age 4m) mgr: ceph1.khuuot(active, since 5m), standbys: ceph4.zotfsp osd: 12 osds: 12 up (since 3m), 12 in (since 4m) rgw: 2 daemons active (2 hosts, 1 zones) data: pools: 5 pools, 107 pgs objects: 191 objects, 5.3 KiB usage: 105 MiB used, 600 GiB / 600 GiB avail 105 active+clean
참고모든 서비스를 시작하는 데 몇 분이 걸릴 수 있습니다.
osds가 구성되어 있지 않은 동안 글로벌 복구 이벤트를 얻는 것이 일반적입니다.
ceph orch ps
및ceph orch ls
를 사용하여 서비스 상태를 추가로 확인할 수 있습니다.모든 노드가
cephadm
클러스터의 일부인지 확인합니다.$ ceph orch host ls
출력 예:
HOST ADDR LABELS STATUS ceph1 10.0.40.78 _admin osd mon mgr ceph2 10.0.40.35 osd mon ceph3 10.0.40.24 osd mds rgw ceph4 10.0.40.185 osd mon mgr ceph5 10.0.40.88 osd mon ceph6 10.0.40.66 osd mds rgw ceph7 10.0.40.221 mon
참고ceph1
이 [admin] 그룹의 일부로cephadm-ansible
인벤토리에 구성되었으므로 호스트에서 Ceph 명령을 직접 실행할 수 있습니다. Ceph 관리자 키는cephadm 부트스트랩
프로세스 중에 호스트에 복사되었습니다.데이터센터에서 Ceph 모니터 서비스의 현재 배치를 확인합니다.
$ ceph orch ps | grep mon | awk '{print $1 " " $2}'
출력 예:
mon.ceph1 ceph1 mon.ceph2 ceph2 mon.ceph4 ceph4 mon.ceph5 ceph5 mon.ceph7 ceph7
데이터센터에서 Ceph 관리자 서비스의 현재 배치를 확인합니다.
$ ceph orch ps | grep mgr | awk '{print $1 " " $2}'
출력 예:
mgr.ceph2.ycgwyz ceph2 mgr.ceph5.kremtt ceph5
ceph osd crush 맵 레이아웃을 확인하여 각 호스트에 OSD가 하나씩 구성되어 있고 상태가
UP
인지 확인합니다. 또한 테이블 3.1에 지정된 대로 각 노드가 올바른 데이터 센터 버킷에 있는지 다시 확인하십시오.$ ceph osd tree
출력 예:
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.87900 root default -16 0.43950 datacenter DC1 -11 0.14650 host ceph1 2 ssd 0.14650 osd.2 up 1.00000 1.00000 -3 0.14650 host ceph2 3 ssd 0.14650 osd.3 up 1.00000 1.00000 -13 0.14650 host ceph3 4 ssd 0.14650 osd.4 up 1.00000 1.00000 -17 0.43950 datacenter DC2 -5 0.14650 host ceph4 0 ssd 0.14650 osd.0 up 1.00000 1.00000 -9 0.14650 host ceph5 1 ssd 0.14650 osd.1 up 1.00000 1.00000 -7 0.14650 host ceph6 5 ssd 0.14650 osd.5 up 1.00000 1.00000
새 RDB 블록 풀을 생성하고 활성화합니다.
$ ceph osd pool create rbdpool 32 32 $ ceph osd pool application enable rbdpool rbd
참고명령 끝에 있는 숫자 32는 이 풀에 할당된 PG 수입니다. PG의 수는 클러스터의 OSD 수, 풀의 %와 같은 여러 요인에 따라 다를 수 있습니다. 다음 계산기를 사용하여 필요한 PG 수를 확인할 수 있습니다. 풀 계산기당 Ceph PG(배치 그룹) 수를 확인할 수 있습니다.
RBD 풀이 생성되었는지 확인합니다.
$ ceph osd lspools | grep rbdpool
출력 예:
3 rbdpool
MDS 서비스가 활성 상태이며 각 데이터 센터에 하나의 서비스가 있는지 확인합니다.
$ ceph orch ps | grep mds
출력 예:
mds.cephfs.ceph3.cjpbqo ceph3 running (17m) 117s ago 17m 16.1M - 16.2.9 mds.cephfs.ceph6.lqmgqt ceph6 running (17m) 117s ago 17m 16.1M - 16.2.9
CephFS 볼륨을 생성합니다.
$ ceph fs volume create cephfs
참고ceph fs volume create
명령은 필요한 데이터 및 메타 CephFS 풀도 생성합니다. 자세한 내용은 Ceph 파일 시스템 구성 및 마운트 를 참조하십시오.Ceph
상태를 확인하여 MDS 데몬이 배포된 방법을 확인합니다.ceph6
이 이 파일 시스템의 기본 MDS인 상태가 활성이고ceph3
이 보조 MDS인지 확인합니다.$ ceph fs status
출력 예:
cephfs - 0 clients ====== RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS 0 active cephfs.ceph6.ggjywj Reqs: 0 /s 10 13 12 0 POOL TYPE USED AVAIL cephfs.cephfs.meta metadata 96.0k 284G cephfs.cephfs.data data 0 284G STANDBY MDS cephfs.ceph3.ogcqkl
RGW 서비스가 활성화되어 있는지 확인합니다.
$ ceph orch ps | grep rgw
출력 예:
rgw.objectgw.ceph3.kkmxgb ceph3 *:8080 running (7m) 3m ago 7m 52.7M - 16.2.9 rgw.objectgw.ceph6.xmnpah ceph6 *:8080 running (7m) 3m ago 7m 53.3M - 16.2.9