Docker部署ceph

一、实验目的

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 root@192.168.2.140:/root

# ceph-2 192.168.2.150

scp -r /root/ceph root@192.168.2.150:/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)登录后的界面


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值