3.3. 명령줄 인터페이스를 사용하여 Ceph OSD 추가
다음은 Red Hat Ceph Storage에 OSD를 수동으로 추가하기 위한 상위 수준 워크플로입니다.
-
ceph-osd
패키지를 설치하고 새 OSD 인스턴스 생성 - OSD 데이터 및 저널 드라이브 준비 및 마운트
- CRUSH 맵에 새 OSD 노드 추가
- 소유자 및 그룹 권한을 업데이트
-
ceph-osd
데몬 활성화 및 시작
ceph-disk
명령은 더 이상 사용되지 않습니다. 이제 명령줄 인터페이스에서 OSD를 배포하는 데 ceph-volume
명령이 선호됩니다. 현재 ceph-volume
명령은 lvm
플러그인만 지원합니다. Red Hat은 두 명령을 참조로 사용하여 이 가이드의 예제를 제공하므로 스토리지 관리자가 ceph-disk를 사용하는 모든 사용자 지정 스크립트를
으로 변환할 수 있습니다.
ceph-
volume
ceph-volume
명령 사용에 대한 자세한 내용은 Red Hat Ceph Storage 관리 가이드 를 참조하십시오.
사용자 지정 스토리지 클러스터 이름의 경우 ceph
및 ceph-osd
명령과 함께 --cluster $CLUSTER_NAME
옵션을 사용합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Red Hat Enterprise Linux 또는 Ubuntu 설치 가이드의 Red Hat Ceph Storage 설치 요구 사항을 검토하십시오.
-
새 노드에 대한
루트
액세스 권한 보유.
절차
Red Hat Ceph Storage 3 OSD 소프트웨어 리포지토리를 활성화합니다.
Red Hat Enterprise Linux
[root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd- els-rpms
-
/etc/ceph/
디렉토리를 만듭니다. - 새 OSD 노드에서 Ceph Monitor 노드 중 하나에서 Ceph 관리 인증 키링 및 구성 파일을 복사합니다.
새 Ceph OSD 노드에
ceph-osd
패키지를 설치합니다.Red Hat Enterprise Linux
[root@osd ~]# yum install ceph-osd
저널을 배치하거나 새 OSD에 전용 저널을 사용할지 여부를 결정합니다.
참고--filestore
옵션이 필요합니다.배치된 저널이 있는 OSD의 경우:
구문
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME
예제:
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda
전용 저널이 있는 OSD의 경우:
구문
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME
또는
[root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm prepare --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME
예
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda /dev/sdb
[root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm prepare --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
noup
옵션을 설정합니다.[root@osd ~]# ceph osd set noup
새 OSD를 활성화합니다.
구문
[root@osd ~]# docker exec $CONTAINER_ID ceph-disk activate /dev/$DEVICE_NAME
또는
[root@osd ~]# docker exec $CONTAINER_ID ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID
예제
[root@osd ~]# docker exec ceph-osd-osd1 ceph-disk activate /dev/sda
[root@osd ~]# docker exec ceph-osd-osd1 ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
CRUSH 맵에 OSD를 추가합니다.
구문
ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]
예제
[root@osd ~]# ceph osd crush add 4 1 host=node4
참고버킷을 두 개 이상 지정하는 경우 명령은 지정된 버킷에 OSD를 배치하고 지정한 다른 버킷 아래의 버킷을 이동합니다.
참고CRUSH 맵을 수동으로 편집할 수도 있습니다. Red Hat Ceph Storage 3용 스토리지 전략 가이드의 CRUSH 맵 편집 섹션을 참조하십시오.
중요루트 버킷만 지정하면 OSD가 root에 직접 연결되지만 CRUSH 규칙에는 호스트 버킷 내부에 OSD가 있어야 합니다.
noup
옵션을 설정 해제합니다.[root@osd ~]# ceph osd unset noup
새로 생성된 디렉터리에 대한 소유자 및 그룹 권한을 업데이트합니다.
구문
chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY
예제
[root@osd ~]# chown -R ceph:ceph /var/lib/ceph/osd [root@osd ~]# chown -R ceph:ceph /var/log/ceph [root@osd ~]# chown -R ceph:ceph /var/run/ceph [root@osd ~]# chown -R ceph:ceph /etc/ceph
사용자 지정 이름으로 클러스터를 사용하는 경우 적절한 파일에 다음 행을 추가합니다.
Red Hat Enterprise Linux
[root@osd ~]# echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph
$CLUSTER_NAME
을 사용자 지정 클러스터 이름으로 교체합니다.새 OSD가
가동
되어 데이터를 수신할 준비가 되었는지 확인하려면 OSD 서비스를 활성화하고 시작합니다.구문
systemctl enable ceph-osd@$OSD_ID systemctl start ceph-osd@$OSD_ID
예제
[root@osd ~]# systemctl enable ceph-osd@4 [root@osd ~]# systemctl start ceph-osd@4