Ceph 컨테이너를 사용하여 Ceph 데몬을 부트스트랩하고 관리하는 방법에 대한 가이드입니다.
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
댓글