Ceph集群Docker容器化部署過程
目標:使用Docker部署Ceph存儲集群
環(huán)境:CentOS 7
步驟:建立Ceph專用網絡->建立Monitor->建立OSD->建立RGW并測試對象存儲->建立MDS并測試文件系統(tǒng)->建立MGR
前期準備:Linux主機需提前安裝Docker
1.建立Ceph專用網絡
為了和docker預設網絡區(qū)別,新建一個ceph集群專用網絡:
docker network create --driver bridge ceph-net

docker network inspect ceph-net

2.建立Monitor
完成專用網絡構建后,開始部署ceph集群,第一步為啟動Ceph Monitor - 集群監(jiān)控容器。
Ceph Monitor 維護著展示集群狀態(tài)的各種圖表。
路徑設置:DIR $(pwd)
docker run -d --net=ceph-net -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ -e MON_IP=172.19.0.2 -e CEPH_PUBLIC_NETWORK=172.19.0.0/16 --name=mon1 ceph/daemon mon
查看monitor部署情況:
docker exec -ti mon1 ceph -v

docker exec -ti mon1 ceph -s

3.建立OSD
Ceph OSD為對象存儲守護進程,提供實際的存儲,默認情況下ceph集群需要部署3個OSD。
環(huán)境準備:為Linux主機添加3塊20GB硬盤(/dev/vdb、/dev/vdc、/dev/vdd)
docker run -d --net=ceph-net --privileged=true --pid=host -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ -v /dev/:/dev/ -e OSD_DEVICE=/dev/vdb -e OSD_TYPE=disk -e OSD_FORCE_ZAP=1 --name osd1 ceph/daemon osd
查看osd部署情況:
docker exec -ti osd1 df | grep "osd"

docker exec -ti mon1 ceph -s

osd2與osd3部署過程類似,只需將/dev設備換成對應的即可。
4.建立RGW并測試對象存儲
Ceph RGW - Rados網關:提供S3與Swift相容的API,存儲數據至對象存儲。
docker run -d --net=ceph-net -v ${DIR}/lib/ceph/:/var/lib/ceph/ -v ${DIR}/ceph:/etc/ceph -p 8080:8080 --name=rgw1 ceph/daemon rgw
curl工具測試部署情況:
curl -H "Content-Type: application/json" "http://127.0.0.1:8080"

下載測試文件:
wget "https://gist.githubusercontent.com/kairen/e0dec164fa6664f40784f303076233a5/raw/33add5a18cb7d6f18531d8d481562d017557747c/s3client" chmod u+x s3clinet
安裝執(zhí)行依賴:
yum install python-pip pip install boto
對象存儲測試:
(1) 創(chuàng)建一個使用者
docker exec -ti rgw1 radosgw-admin user create --uid="test" --display-name="I'm Test account" --email="test@example.com"

(2) 創(chuàng)建環(huán)境參數配置文件
vim s3key.sh

key信息對照test用戶
(3) 列出當前bucket
./s3client list

(4) 創(chuàng)建一個bucket并上傳文件
./s3client create files

./s3client upload files s3key.sh /

./s3client list files

5.建立MDS并測試文件系統(tǒng)
Ceph MDS - 元數據服務器,為ceph文件系統(tǒng)存儲元數據。
docker run -d --net=ceph-net -v ${DIR}/lib/ceph/:/var/lib/ceph/ -v ${DIR}/ceph:/etc/ceph -e CEPHFS_CREATE=1 --name=mds1 ceph/daemon mds
查看部署情況:
docker exec -ti mds1 ceph mds stat

docker exec -ti mds1 ceph fs ls

6.建立MGR
Ceph MGR - 集群管理組件
docker run -d --net=ceph-net -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ --name=mgr1 ceph/daemon mgr
docker ps

docker exec -it mon1 ceph -s

總結
以上,Ceph集群容器化部署完成。
這些僅為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker如何安裝帶postgis插件的postgresql數據庫
這篇文章主要介紹了docker如何安裝帶postgis插件的postgresql數據庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Docker鏡像倉庫的垃圾回收機制深度清理后端存儲空間的實現
本文主要介紹了Docker鏡像倉庫的垃圾回收機制深度清理后端存儲空間的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2026-04-04
通過docker部署發(fā)布python項目的實戰(zhàn)步驟
將Python項目通過Docker部署發(fā)布,可以實現環(huán)境一致性、快速遷移和高效運維,本文將為大家詳細介紹一下具體的實現步驟,希望對大家有所幫助2025-08-08
Docker拉取鏡像時遇到dial tcp...443:i/o timeout錯誤的解決方案
本文介紹了如何解決在使用Docker時遇到的網絡超時問題,包括配置鏡像加速服務以提高鏡像拉取速度和穩(wěn)定性2025-12-12

