首页 > 其他分享 >Docker部署ceph

Docker部署ceph

时间:2024-06-02 15:28:35浏览次数:29  
标签:mgr 部署 ceph -- mon Docker root docker

一、实验目的

Docker部署ceph

二、实验内容

Docker部署ceph

三、实验过程(步骤、命令或源程序代码)及结果(截图)

监控,存储

1.部署环境

三台网络互通的 CentOS 虚拟机。
右键要克隆的虚拟机、选择管理 ——> 克隆,进入克隆虚拟机向导,然后根据向导即可轻松创建。

克隆完成

主机名称主机IP说明
summer192.168.2.130osd、mon、mgr、rgw
ceph- 1192.168.2.140osd、mon
ceph- 2192.168.2.150osd、mon

2.虚拟机CentOS7三台集群配置网络

(1)进入虚拟机网络编辑器,选择VMnet8, 选择NAT模式,确定子网IP段


点击DHCP设置,看下IP使用范围段

看完可用IP段后,我们将三台虚拟机的IP确定下来

主机名称主机IP说明
summer192.168.2.130osd、mon、mgr、rgw
ceph- 1192.168.2.140osd、mon
ceph- 2192.168.2.150osd、mon

(2)对于虚拟机的配置

进入第一台CentOS 7虚拟机,使用命令:
先输入systemctl stop firewalld命令关闭防火墙,然后输入systemctl disable firewalld命令禁用防火墙

修改主机名(hostbname):
不然会出现系统识别不出对应的虚拟机的情况,因为名字都一样
具体修改是通过命令hostnamectl set-hostname ***,例如:

修改后重启虚拟机,发现主机名被改变:

(3)配置Centos网络

通过命令到cd /etc/sysconfig/network-scripts到网络配置的目录下,找到当前虚拟机使用的网络的配置文件,修改为:

(4)修改host映射

通过命令vim /etc/hosts进入,加上所需的各个虚拟机的IP地址和主机号即可
修改完之后需要重启一下网络,使用命令service network restart,没有重启成功把虚拟机重启

(5)以同样的方式配置另外两台虚拟机

执行命令service network restart可能出现问题:
检查配置文件无问题还有报错
执行以下语句

$ systemctl stop NetworkManager
$ systemctl disable NetworkManager 

重启网络:systemctl start network.service即可解决。
如上所述,如果不出意外,三台虚拟机之间应该可以相互ping通,下图是在summer上ping了ceph-1和在summer上ping了ceph-2的演示。

3.拉取镜像

# 拉取镜像

docker pull ceph/daemon:master-7ef46af-nautilus-centos-7-x86_64

# 更改镜像tag

docker image tag ceph/daemon:master-7ef46af-nautilus-centos-7-x86_64 ceph/daemon:latest

4.启动 mon 容器

(1)登陆到第一台服务器(summer)。

创建挂载目录,并赋予权限。

sudo mkdir -p "/root/ceph/etc"
sudo mkdir -p "/root/ceph/lib"
sudo mkdir -p "/root/ceph/logs"
sudo mkdir -p "/root/ceph/data"
chmod -R 777 /root/ceph

(2)启动容器。

docker run -d \
    --net=host \
--name=mon \
    --privileged=true \
    -v /root/ceph/etc:/etc/ceph \
    -v /root/ceph/lib:/var/lib/ceph/ \
    -v /root/ceph/logs:/var/log/ceph \
-e MON_IP=192.168.2.130,192.168.2.140,192.168.2.150 \
    -e CEPH_PUBLIC_NETWORK=192.168.2.0/24 \
    ceph/daemon mon

(3)复制配置文件到另外两台服务器.

# ceph-1 192.168.2.140

scp -r /root/ceph [email protected]:/root

# ceph-2 192.168.2.150

scp -r /root/ceph [email protected]:/root


(4)执行上面的容器启动命令,在另外两台服务器上启动 mon 容器。

docker run -d \
    --net=host \
--name=mon \
    --privileged=true \
    -v /root/ceph/etc:/etc/ceph \
    -v /root/ceph/lib:/var/lib/ceph/ \
    -v /root/ceph/logs:/var/log/ceph \
-e MON_IP=192.168.2.130,192.168.2.140,192.168.2.150 \
    -e CEPH_PUBLIC_NETWORK=192.168.2.0/24 \
    ceph/daemon mon

docker run -d \
    --net=host \
--name=mon \
    --privileged=true \
    -v /root/ceph/etc:/etc/ceph \
    -v /root/ceph/lib:/var/lib/ceph/ \
    -v /root/ceph/logs:/var/log/ceph \
-e MON_IP=192.168.2.130,192.168.2.140,192.168.2.150 \
    -e CEPH_PUBLIC_NETWORK=192.168.2.0/24 \
    ceph/daemon mon

(5)查看部署状态。如下图,三个 mon 节点启动成功。

docker exec mon ceph -s

4.启动 osd 容器

在三台主机上执行下面的(1)(2)操作

(1)执行如下命令,在 mon 节点生成 osd 密钥信息,否则启动 osd 容器会报错。

docker exec -it mon ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring

(2)启动容器。

docker run -d \
    --net=host \
    --name=osd \
    --restart=always \
    --privileged=true \
    -v /root/ceph/etc:/etc/ceph \
    -v /root/ceph/lib/:/var/lib/ceph/ \
    -v /root/ceph/logs/:/var/log/ceph \
    -v /root/ceph/data/osd:/var/lib/ceph/osd \
    ceph/daemon osd_directory

(3)查看部署状态。如下图,三个 osd节点启动成功。

docker exec mon ceph -s

5.在三台主机上启动 mds 容器

 docker run -d \
     --net=host \
     --name mds \
     --restart=always \
     --privileged=true \
     -v /root/baseService/ceph/etc:/etc/ceph \
     -v /root/baseService/ceph/lib:/var/lib/ceph/ \
     -v /root/baseService/ceph/logs:/var/log/ceph \
     -e CEPHFS_CREATE=0 \
     -e CEPHFS_METADATA_POOL_PG=512 \
     -e CEPHFS_DATA_POOL_PG=512 \
     ceph/daemon mds

CEPHFS_CREATE 是为METADATA服务生成文件系统, 0表示不自动创建文件系统(默认值), 1表示自动创建。
CEPHFS_DATA_POOL_PG是数据池的数量,默认为8。
CEPHFS_METADATA_POOL_PG是元数据池的数量,默认为8。

6.启动 rgw 容器

在summer主机上执行(1)(2)操作

(1)执行如下命令,在 mon 节点生成 rgw密钥信息,否则启动 rgw容器会报错。

docker exec mon ceph auth get client.bootstrap-rgw -o /var/lib/ceph/bootstrap-rgw/ceph.keyring

(2)启动容器。

docker run -d \
     --net=host \
     --name rgw \
     --restart=always \
     -p 7480:80 \
     -v /root/ceph/etc:/etc/ceph \
     -v /root/ceph/lib:/var/lib/ceph/ \
     -v /root/ceph/logs:/var/log/ceph \
     ceph/daemon rgw

7.启动 mgr 容器

(1)在summer主机上启动容器。

docker run -d --net=host  \
  --name=mgr \
  --restart=always \
  -v /root/ceph/etc:/etc/ceph \
  -v /root/ceph/lib:/var/lib/ceph \
  -v /root/ceph/logs:/var/log/ceph \
  ceph/daemon mgr

(2)查看部署状态。如下图,至此,Ceph 集群节点全部启动成功。

docker exec mon ceph -s


8.安装 Dashboard 管理后台

(1)开启 Dashboard 功能。

docker exec mgr ceph mgr module enable dashboard

(2)创建证书。

docker exec mgr ceph dashboard create-self-signed-cert

(3)创建登陆用户名和密码。

docker exec mgr ceph dashboard set-login-credentials cephAdmin cephPassword

(4)配置外部访问端口。

docker exec mgr ceph config set mgr mgr/dashboard/server_port 7800

(5)配置外部访问 ip。

docker exec mgr ceph config set mgr mgr/dashboard/server_addr 10.0.28.10

(6)关闭 HTTPS(如果没有证书或内网使用,可以关闭)。

docker exec mgr ceph config set mgr mgr/dashboard/ssl false

(7)重启mgr服务。

docker restart mgr

(8)查看 Dashboard 服务信息。

docker exec mgr ceph mgr services

(9)浏览器访问 Dashboard 管理页面。

http://192.168.2.130:7800/

(10)登录用第(3)步创建的登陆用户名和密码

cephAdmin cephPassword

(11)登录后的界面


标签:mgr,部署,ceph,--,mon,Docker,root,docker
From: https://blog.csdn.net/m0_73690719/article/details/139391588

相关文章

  • 【jetson nano】yolov5环境配置tensorrt部署加速
    安装pytorchNano上预装的Jetpack版本为4.6.1,Python为3.6.9,CUDA环境为10.2。在PyTorchforJetson中可以下载不同版本的torch,torch<=1.10.0。1安装torch1.8.0#substitutethelinkURLandwheelfilenamefromthedesiredtorchversionabovewgethttps://nvidia.box.com......
  • Springboot计算机毕业设计一次性环保餐具销售系统小程序【附源码】开题+论文+mysql+程
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着外卖和快餐文化的快速发展,一次性餐具的使用量急剧增加,给环境带来了沉重的负担。传统的一次性餐具多为塑料制品,难以降解,对环境造成了长期污染。因......
  • Springboot计算机毕业设计药品外送小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今快节奏的生活环境中,人们对便捷性的需求日益增长。特别是在医疗健康领域,当患者因疾病需要药品时,能够迅速获得所需药物显得至关重要。随着互联网......
  • 高可用系统部署
    一、整体架构的规划前提:1、搭建一个wordpress博客,web网站需要搭建成一个高可用的架构。2、数据库:一主双从3、前端web产生的数据:需要存放到内网环境的一个nfs服务器上进行保存4、nfs需要搭建为高可用的状态5、前端需要使用调度器来调度用户的请求。注意:因为本地物理机......
  • 幻兽帕鲁服务器全自动部署保姆教程(含进阶指南)
    在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。引用自:https://store.steampowered.com/app/1623730/Palworld......
  • LNMP网站架构部署
     目录一、LNMP架构部署(源码编译安装)①实验准备②安装nginx服务③安装mysql服务,配置文件④安装php服务,修改配置文件⑤验证静态页面测试访问动态页面测试访问调用数据库测试二、LNMP架构应用实例1.论坛网站应用①nginx服务器上传压缩包并解压 ②php服务器上修改论......
  • [转]Debian 12 系统内安装 Docker 详细步骤
    转载来源:https://www.wonote.com/post/debian-12-xi-tong-nei-an-zhuang-docker-xiang-xi-bu-zou/Docker是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,实现虚拟化,使应用程序的部署和运维更加简单、高效......
  • docker 通过dockerfile制作镜像
    1.安装一个docker2.启动docker3.创建dockerfilemdkir-p/data/`date+%F`cd/data/2024-05-31生成密钥ssh-keygen ls-l/root/.ssh/id_rsa.pubcp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys将authorized_keys和Centos-vault-8.5.2111.repo上传到此目录......
  • 【代码片段】使用docker部署nginx 并通过nginx设置密码访问控制
    使用docker部署nginx服务docker-compose.ymlversion:'3'services:web:image:nginxvolumes:-./nginx.conf:/etc/nginx/nginx.confrestart:alwaysports:-"80:80"-"443:443"environment:......
  • 使用docker部署项目
    一、docker私有镜像仓库1、docker私有镜像仓库库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库。当我们执行dockerpullxxx的时候,它实际上是从registry.docker.com这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目上传到公共......