跳至主要內容

Ceph安装-docker

知识库集成配置文件系统OSSCeph大约 4 分钟

docker 运行 ceph

# 参考文档:https://www.codenong.com/cs106379205/

#启动mon
docker run -d --net=host  --name=mon \
-v /opt/ceph/etc:/etc/ceph \
-v /opt/ceph/lib/:/var/lib/ceph/ \
-e MON_IP=192.168.60.100 \
-e CEPH_PUBLIC_NETWORK=192.168.60.0/24 \
ceph/daemon:latest-mimic mon

#启动mgr
docker run -d --net=host --name=mgr \
-v /opt/ceph/etc:/etc/ceph  \
-v /opt/ceph/lib/:/var/lib/ceph  \
ceph/daemon:latest-mimic  mgr

#启动osd 1-3
docker run -d --net=host --name=osd1 \
--privileged=true \
-v /opt/ceph/etc:/etc/ceph  \
-v /opt/ceph/lib/:/var/lib/ceph  \
-v /dev/:/dev/ \
-e OSD_DEVICE=/dev/sdb  \
-e OSD_TYPE=disk \
ceph/daemon:latest-mimic osd
docker run -d --net=host --name=osd2 \
--privileged=true \
-v /opt/ceph/etc:/etc/ceph  \
-v /opt/ceph/lib/:/var/lib/ceph  \
-v /dev/:/dev/ \
-e OSD_DEVICE=/dev/sdc  \
-e OSD_TYPE=disk \
ceph/daemon:latest-mimic osd
docker run -d --net=host --name=osd3 \
--privileged=true \
-v /opt/ceph/etc:/etc/ceph  \
-v /opt/ceph/lib/:/var/lib/ceph  \
-v /dev/:/dev/ \
-e OSD_DEVICE=/dev/sdd  \
-e OSD_TYPE=disk \
ceph/daemon:latest-mimic osd

#启动mds
docker run -d --net=host --name=mds \
-v /opt/ceph/etc:/etc/ceph \
-v /opt/ceph/lib/:/var/lib/ceph/ \
-e CEPHFS_CREATE=1 \
ceph/daemon:latest-mimic mds

#配置ceph
docker exec -it mon bash
#执行以下命令
ceph -s
ceph osd pool set cephfs_data pg_num 64
ceph osd pool set cephfs_data pgp_num 64
ceph osd pool set cephfs_metadata pg_num 32
ceph osd pool set cephfs_metadata pgp_num 32
ceph osd pool set cephfs_metadata min_size 1
ceph osd pool set cephfs_data min_size 1

#映射到客户端磁盘目录
#获取口令
cat /opt/ceph/etc/ceph.client.admin.keyring
#基于上面的口令加载磁盘
mount -t ceph 192.168.60.100:6789:/ /data -o name=admin,secret=AQDLp19jQYDUJBAAGgesnbf1D9A2g1FVW0DPSw==

## 防火墙
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.60.0/16" accept"
firewall-cmd --reload

cephadm工具部署

自行安装docker

## 安装集群
yum install -y python3
## 安装 cephadm 工具
curl --silent --remote-name --location https://mirrors.chenby.cn/https://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm
## 创建源信息
./cephadm add-repo --release 17.2.5
sed -i 's#download.ceph.com#mirrors.ustc.edu.cn/ceph#' /etc/yum.repos.d/ceph.repo 
./cephadm install
## 引导新的集群
cephadm bootstrap --mon-ip 192.168.1.25
docker images
docker ps

## 切换shell命令模式
cephadm shell
ceph -s  
## 查看目前集群内运行的组件(包括其他节点)
ceph orch ps  
## 查看某一组件的状态
ceph orch ps --daemon-type mon  

## ceph命令的第二种应用
cephadm shell -- ceph -s

## 安装ceph-common包
cephadm install ceph-common
ceph -v 

## 创建mon和mgr
ceph orch host add ceph-2
ceph orch host add ceph-3

## 查看目前集群纳管的节点
ceph orch host ls 
ceph orch apply mon --placement="3 ceph-1 ceph-2 ceph-3"
ceph orch apply mgr --placement="3 ceph-1 ceph-2 ceph-3"
ceph orch ls 

## 创建osd
ceph orch daemon add osd ceph-1:/dev/sdb
ceph orch daemon add osd ceph-2:/dev/sdb
ceph orch daemon add osd ceph-3:/dev/sdb

## 创建mds
ceph osd pool create cephfs_data
ceph osd pool create cephfs_metadata
ceph fs new cephfs cephfs_metadata cephfs_data
## #开启mds组件,cephfs:文件系统名称;–placement:指定集群内需要几个mds,后面跟主机名
ceph orch apply mds cephfs --placement="3 ceph-1 ceph-2 ceph-3"
# 查看各节点是否已启动mds容器;还可以使用ceph orch ps 查看某一节点运行的容器
ceph orch ps --daemon-type mds

## 创建rgw
# 首先创建一个领域
radosgw-admin realm create --rgw-realm=myorg --default
# 创建区域组
radosgw-admin zonegroup create --rgw-zonegroup=default --master --default
# #创建区域
radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=cn-east-1 --master --default
# 为特定领域和区域部署radosgw守护程序
ceph orch apply rgw myorg cn-east-1 --placement="3 ceph-1 ceph-2 ceph-3"
# 验证各节点是否启动rgw容器
ceph orch ps --daemon-type rgw

为所有节点安装ceph-common包

# 为所有节点安装ceph-common包
scp /etc/yum.repos.d/ceph.repo ceph-2:/etc/yum.repos.d/    #将主节点的ceph源同步至其他节点
scp /etc/yum.repos.d/ceph.repo ceph-3:/etc/yum.repos.d/    #将主节点的ceph源同步至其他节点
yum -y install ceph-common    #在节点安装ceph-common,ceph-common包会提供ceph命令并在etc下创建ceph目录
scp /etc/ceph/ceph.conf ceph-2:/etc/ceph/    #将ceph.conf文件传输至对应节点
scp /etc/ceph/ceph.conf ceph-3:/etc/ceph/    #将ceph.conf文件传输至对应节点
scp /etc/ceph/ceph.client.admin.keyring ceph-2:/etc/ceph/    #将密钥文件传输至对应节点
scp /etc/ceph/ceph.client.admin.keyring ceph-3:/etc/ceph/    #将密钥文件传输至对应节点

页面访问

User: admin Password: dsvi6yiat7

ceph
ceph

常用命令

ceph orch ls    #列出集群内运行的组件
ceph orch host ls    #列出集群内的主机
ceph orch ps     #列出集群内容器的详细信息
ceph orch apply mon --placement="3 node1 node2 node3"    #调整组件的数量
ceph orch ps --daemon-type rgw    #--daemon-type:指定查看的组件
ceph orch host label add node1 mon    #给某个主机指定标签
ceph orch apply mon label:mon    #告诉cephadm根据标签部署mon,修改后只有包含mon的主机才会成为mon,不过原来启动的mon现在暂时不会关闭
ceph orch device ls    #列出集群内的存储设备
## 例如,要在newhost1IP地址10.1.2.123上部署第二台监视器,并newhost2在网络10.1.2.0/24中部署第三台monitor
ceph orch apply mon --unmanaged    #禁用mon自动部署
ceph orch daemon add mon newhost1:10.1.2.123
ceph orch daemon add mon newhost2:10.1.2.0/24