使用在第 4 天建立的 3 台虛擬機器進行部署。
每台虛擬機器均部署 mon、mgr、mds daemon。
因每台虛擬機器均有 3 顆 hdd,使用其中 2 顆 hdd 執行 2 個 osd daemon。
配合 VirtualBox 的 DHCP 設定,將 Ceph 部署於 10.13.13.0/24 網路中。
為了簡化部署 Ceph 的難度,將使用 https://hub.docker.com/r/ceph/daemon/ 進行 Ceph 節點的部署。
部署版本為:v3.2.1-stable-3.2-luminous-debian-9-x86_64。
假設要部署的虛擬機器 IP 為 10.13.13.101:
DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
NETWORK=10.13.13.0/24
HOSTIP=10.13.13.101
docker run -d --net=host \
--restart=always \
-v /etc/ceph:/etc/ceph \
-v /var/log/ceph/:/var/log/ceph/ \
-v /var/lib/ceph/mon:/var/lib/ceph/mon \
-v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
-v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
-v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
-v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
-e MON_IP=$HOSTIP \
-e CEPH_PUBLIC_NETWORK=$NETWORK \
--name mon \
${DOCKERIMAGE} mon
在所有虛擬機器上執行以下指令。
DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
docker run -d --net=host \
--restart=always \
-v /etc/ceph:/etc/ceph \
-v /var/log/ceph/:/var/log/ceph/ \
-v /var/lib/ceph/mgr:/var/lib/ceph/mgr \
-v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
-v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
-v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
-v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
--name mgr \
${DOCKERIMAGE} mgr
在所有虛擬主機上執行以下指令:
DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
for DEV in /dev/sdb /dev/sdc
do
OSDNAME=osd${DEV//\//-}
docker run -d --net=host \
--pid=host \
--restart=always \
--privileged=true \
-v /etc/ceph:/etc/ceph \
-v /var/log/ceph/:/var/log/ceph/ \
-v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
-v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
-v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
-v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
-v /dev/:/dev/ \
-e OSD_DEVICE=$DEV \
--name $OSDNAME \
${DOCKERIMAGE} osd
done
準備完 osd 節點後,即可部署 mds daemon,以提供 CephFS 服務。
請注意在部署 mds 時,需決定 pg num。請參考 https://ceph.io/pgcalc/ 計算所需的 pg 數。
在所有虛擬機器上執行以下指令:
DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
PGNUM=64
docker run -d --net=host \
--restart=always \
-v /etc/ceph:/etc/ceph \
-v /var/log/ceph/:/var/log/ceph/ \
-v /var/lib/ceph/mds:/var/lib/ceph/mds \
-v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
-v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
-v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
-v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
-e CEPHFS_CREATE=1 \
-e CEPHFS_DATA_POOL_PG=$PGNUM \
-e CEPHFS_METADATA_POOL_PG=$PGNUM \
--name mds \
${DOCKERIMAGE} mds