본문 바로가기
서버구축 (WEB,DB)

컨테이너를 통해 Ceph 데몬을 부트스트랩하고 관리하는 방법

by 날으는물고기 2023. 10. 9.

컨테이너를 통해 Ceph 데몬을 부트스트랩하고 관리하는 방법

Ceph 컨테이너를 사용하여 Ceph 데몬을 부트스트랩하고 관리하는 방법에 대한 가이드입니다.

Ceph storage on Ubuntu: An overview

Ceph는 분산 스토리지 시스템으로 사용되며, 컨테이너를 통해 Ceph 데몬을 실행하고 구성하는 데 도움이 되는 정보를 포함하고 있습니다.

 

CLUSTER (클러스터 이름): Ceph 클러스터의 이름을 지정합니다. 기본값은 "ceph"입니다.

 

SELinux:
SELinux가 활성화된 경우, /etc/ceph/var/lib/ceph 디렉터리에 대한 SELinux 레이블을 설정해야 합니다. 다음 명령어를 실행하여 SELinux 레이블을 설정할 수 있습니다.

sudo chcon -Rt svirt_sandbox_file_t /etc/ceph
sudo chcon -Rt svirt_sandbox_file_t /var/lib/ceph

 

KV 백엔드:
Ceph는 구성 플래그, 키 및 맵을 저장하기 위한 KV (키-값) 백엔드 중 하나를 지원합니다. 현재는 etcd만 지원됩니다.

 

Populate Key Value Store:
KV 스토어를 채우려면 다음 명령어를 사용할 수 있습니다. 이 명령어는 etcd를 사용하여 KV 스토어를 채우는 데 사용됩니다.

docker run -d --net=host \
-e KV_TYPE=etcd \
-e KV_IP=127.0.0.1 \
-e KV_PORT=2379 \
ceph/daemon populate_kvstore

 

Zap a Device:
파티션 테이블을 제거하려면 다음과 같이 디스크를 제거할 수 있습니다.

docker run -d --privileged=true \
-v /dev/:/dev/ \
-e OSD_DEVICE=/dev/sdd \
ceph/daemon zap_device

 

Deploy a Monitor:
모니터를 배포하는 방법에는 KV 스토어를 사용하는 경우와 그렇지 않은 경우 두 가지가 있습니다.

KV 스토어를 사용하지 않는 경우:

docker run -d --net=host \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-e MON_IP=192.168.0.20 \
-e CEPH_PUBLIC_NETWORK=192.168.0.0/24 \
ceph/daemon mon

KV 스토어를 사용하는 경우:

docker run -d --net=host \
-v /var/lib/ceph:/var/lib/ceph \
-e MON_IP=192.168.0.20 \
-e CEPH_PUBLIC_NETWORK=192.168.0.0/24 \
-e KV_TYPE=etcd \
-e KV_IP=192.168.0.20 \
ceph/daemon mon

 

Deploy a Manager Daemon:
매니저 데몬을 배포하는 방법에는 KV 스토어를 사용하는 경우와 그렇지 않은 경우 두 가지가 있습니다.

KV 스토어를 사용하지 않는 경우:

docker run -d --net=host \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
ceph/daemon mgr

KV 스토어를 사용하는 경우:

docker run -d --net=host \
-v /var/lib/ceph:/var/lib/ceph \
-e KV_TYPE=etcd \
-e KV_IP=192.168.0.20 \
ceph/daemon mgr

 

Deploy an OSD (Object Storage Daemon):
OSD를 배포하는 방법에는 OSD 유형에 따라 다양한 옵션이 있습니다. OSD 유형을 설정하지 않는 경우 OSD가 자동 감지됩니다. OSD를 활성화하려면 다음과 같이 실행할 수 있습니다.

docker run -d --net=host \
--pid=host \
--privileged=true \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-v /run/udev/:/run/udev/ \
-e OSD_DEVICE=/dev/vdd \
ceph/daemon osd

 

Ceph Disk Activate:
Ceph Disk Activate는 Ceph OSD를 컨테이너 외부에서 사전 준비한 디바이스로 활성화하는 데 사용됩니다. 디바이스를 준비한 후 컨테이너 내에서 활성화됩니다. 다음과 같이 실행할 수 있습니다.

docker run -d --net=host \
--privileged=true \
--pid=host \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-v /run/udev/:/run/udev/ \
-e OSD_DEVICE=/dev/vdd \
-e OSD_TYPE=activate \
ceph/daemon osd

 

Ceph OSD Directory:
OSD 디렉터리를 사용하여 OSD를 실행하는 방법과 관련된 환경 변수가 있습니다. OSD를 생성하려면 OSD 디렉터리를 적절하게 소유자를 변경해야 합니다.

chown -R 167:167 /var/lib/ceph/osd/

 

Deploy a MDS (Metadata Server):
MDS를 배포하려면 MDS 생성 및 구성에 사용되는 환경 변수를 설정할 수 있습니다. MDS를 생성하려면 CEPHFS_CREATE=1로 설정하세요. 기본값이 적절한 경우 대부분의 사람들은 다른 환경 변수를 사용할 필요가 없습니다.

docker run -d --net=host \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /etc/ceph:/etc/ceph \
-e CEPHFS_CREATE=1 \
ceph/daemon mds

 

Deploy a Rados Gateway (RGW):
Rados Gateway를 배포하려면 다음과 같이 실행할 수 있습니다. civetweb를 사용하여 실행됩니다.

docker run -d --net=host \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /etc/ceph:/etc/ceph \
ceph/daemon rgw

 

Deploy a REST API:
REST API를 배포하려면 다음과 같이 실행할 수 있습니다. luminous 버전 이상에서만 사용 가능합니다.

docker run -d --net=host \
-e KV_TYPE=etcd \
-e KV_IP=192.168.0.20 \
ceph/daemon restapi

 

Deploy a RBD Mirror:
RBD Mirror를 배포하려면 다음과 같이 실행할 수 있습니다.

docker run -d --net=host \
-e KV_TYPE=etcd \
-e KV_IP=192.168.0.20 \
ceph/daemon rbd_mirror

위 가이드 문서의 내용을 참고하여 Ceph 컨테이너를 배포하고 구성하는 데 도움이 되길 바랍니다.

필요한 경우 각 명령어와 환경 변수를 조정하여 Ceph 클러스터를 적절히 구성할 수 있습니다.

 

참고 : https://hub.docker.com/r/ceph/daemon

728x90

댓글