您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Docker中怎么部署ceph存儲集群,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Docker 拉取ceph/daemon版本
docker pull ceph/daemon
下載后查看images列表,docker images
,看到如圖所示:
Docker創建ceph專用網絡ceph-net
執行命令創建網絡,并查看ceph-net信息
docker network create ceph-net docker inspect ceph-net
根據ceph網絡創建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
執行sh cre_mon.sh
創建monitor容器: 如圖所示,創建成功。
創建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
創建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
執行sh cre_osd1.sh
后發現容器沒有成功啟動,查看logs,docker logs osd1
發現報錯
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執行生成keyring操作
docker exec -it mon bash ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
生成完成后,重新執行docker start osd1,仍然無法啟動。原理ceph-disk已經被棄用了。 對于does not generate config錯誤,是因為沒有生成密鑰,執行命令: docker exec -it mon ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
使用ceph-volume來創建osd
首先執行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
然后根據prepare完成的OSD_ID創建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
仿照如上命令創建osd.1,osd.2,osd3容器。 docker ps
查看osd已經在運行中。
關于Docker中怎么部署ceph存儲集群就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。