這篇文章將為大家詳細(xì)講解有關(guān)Docker中怎么部署ceph存儲集群,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
目前創(chuàng)新互聯(lián)公司已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、文山州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Docker 拉取ceph/daemon版本
docker pull ceph/daemon
下載后查看images列表,docker images
,看到如圖所示:
Docker創(chuàng)建ceph專用網(wǎng)絡(luò)ceph-net
執(zhí)行命令創(chuàng)建網(wǎng)絡(luò),并查看ceph-net信息
docker network create ceph-net docker inspect ceph-net
根據(jù)ceph網(wǎng)絡(luò)創(chuàng)建ceph monitor
vi cre_mon.sh
docker run -d --net=ceph-net -v ${PWD}/etc:/etc/ceph -v ${PWD}/lib:/var/lib/ceph -e MON_IP=172.18.0.2 -e CEPH_PUBLIC_NETWORK=172.18.0.0/16 --name=mon ceph/daemon mon
執(zhí)行sh cre_mon.sh
創(chuàng)建monitor容器: 如圖所示,創(chuàng)建成功。
創(chuàng)建mgr容器
docker run -d --net=ceph-net -v ${PWD}/etc:/etc/ceph -v ${PWD}/lib:/var/lib/ceph -e MON_IP=172.18.0.2 -e CEPH_PUBLIC_NETWORK=172.18.0.0/16 --name=mgr ceph/daemon mgr
創(chuàng)建osd
vi cre_osd1.sh
docker run -d --net=ceph-net
--privileged=true
-v ${PWD}/etc:/etc/ceph
-v ${PWD}/lib:/var/lib/ceph
-v /dev/:/dev/
-e OSD_DEVICE=/dev/sdb
-e OSD_TYPE=disk
-e OSD_FORCE_ZAP=1
--name=osd1
ceph/daemon osd
執(zhí)行sh cre_osd1.sh
后發(fā)現(xiàn)容器沒有成功啟動,查看logs,docker logs osd1
發(fā)現(xiàn)報錯
2020-10-13 06:44:58 /opt/ceph-container/bin/entrypoint.sh: static: does not generate config 2020-10-13 06:44:58 /opt/ceph-container/bin/entrypoint.sh: ERROR- /var/lib/ceph/bootstrap-osd/ceph.keyring must exist. You can extract it from your current monitor by running 'ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring'
通過登錄mon執(zhí)行生成keyring操作
docker exec -it mon bash ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
生成完成后,重新執(zhí)行docker start osd1,仍然無法啟動。原理ceph-disk已經(jīng)被棄用了。 對于does not generate config錯誤,是因?yàn)闆]有生成密鑰,執(zhí)行命令: docker exec -it mon ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
使用ceph-volume來創(chuàng)建osd
首先執(zhí)行prepare腳本:
# Execute Scripts
cat | docker run --rm -i --net=ceph-net --privileged=true -v ${PWD}/etc:/etc/ceph -v ${PWD}/lib:/var/lib/ceph -v /dev/:/dev/ --entrypoint=bash ceph/daemon << EOF
ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring vgs | grep ceph | awk '{print $1}' | xargs vgremove -y; pvremove /dev/sd{b,c,d,e} ceph-volume lvm prepare --no-systemd --data /dev/sdb ceph-volume lvm prepare --no-systemd --data /dev/sdc ceph-volume lvm prepare --no-systemd --data /dev/sdd ceph-volume lvm prepare --no-systemd --data /dev/sde exit EOF
然后根據(jù)prepare完成的OSD_ID創(chuàng)建container激活:
docker run -d --net=ceph-net
--restart=always
--privileged=true
-v ${PWD}/etc:/etc/ceph
-v ${PWD}/lib:/var/lib/ceph
-v ${PWD}/log:/var/log/ceph
-v /dev/:/dev/
-e OSD_ID=0
--name=osd.0
ceph/daemon osd_ceph_volume_activate
仿照如上命令創(chuàng)建osd.1,osd.2,osd3容器。 docker ps
查看osd已經(jīng)在運(yùn)行中。
關(guān)于Docker中怎么部署ceph存儲集群就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。