您好,我是码农飞哥,本篇文章是Ceph实战专栏的第十一篇文章,前面的系列文章我们分别介绍了集群的部署,介绍了集群的组件,最后到介绍到Ceph的IO流程等等。这一篇文章是结束之作,我将介绍一下重点介绍快速部署集群的脚本(PS:前面的部署脚本有点繁琐)。 订阅本专栏我会1V1的帮您解决部署和使用ceph时碰到的问题。
Ceph实战(二)和Ceph实战(三)两篇文章中,我分别介绍了如何安装docker以及如何通过docker部署ceph集群,但是相关的部署脚本还不够精简,部署的步骤还比较繁琐。这一篇文章我将提供一套快速部署集群的脚本。让您可以使用该脚本对ceph集群进行一键部署。
创建三台虚拟机,本教程涉及到的各组件的版本如下表所示:
组件 | 版本号 |
---|---|
CentOS | 7.6 |
docker | docker-ce-19.03.9 |
ceph | nautilus |
说明:CentOS可以是其他的版本,但是需要保证其内核版本不低于3.10,因为docker的安装环境要求Linux的内核版本不低于3.10。docker的版本和ceph的版本在下面的脚本中已经定下来。无需修改。
主机名称 | 主机IP | 说明 |
---|---|---|
ceph1 | 192.168.198.152 | 容器主节点(Dashbaord、mon、rgw、mgr、osd) |
ceph2 | 192.168.198.149 | 容器子节点(mon、rgw、mgr、osd) |
ceph3 | 192.168.198.151 | 容器子节点(mon、rgw、mgr、osd) |
特别说明:
hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3
#在 192.168.198.152(ceph1)上执行:
ssh-keygen
#把密钥发给ceph2、ceph3
ssh-copy-id ceph2
ssh-copy-id ceph3
在主节点ceph1上执行下面命令,在宿主机上创建Ceph目录与容器建立映射,便于直接操纵管理Ceph配置文件,以root身份在节点上创建/usr/local/ceph/{admin, etc,lib, logs}目录。
mkdir -p /usr/local/ceph/{admin,etc,lib,logs}
该命令会一次创建4个指定的目录,注意逗号分隔,不能有空格。其中:admin文件夹下用于存储启动脚本, etc文件夹下存放了ceph.conf等配置文件 lib文件夹下存放了各组件的密钥文件 logs文件夹下存放了ceph的日志文件。
相关的脚本共有7个,其中其中我们只需要执行1. before-install.sh和2.start.sh两个脚本。
脚本名称 | 脚本作用 | 脚本执行范围 |
---|---|---|
1. before-install.sh | 安装docker,拉取ceph镜像 | 三个节点均要执行,首先执行 |
2. start.sh | 主启动脚本,启动后续脚本 | 在before-install.sh执行完之后执行,只需要在主节点执行 |
3. start_mon.sh | 启动mon组件,不需要单独执行 | |
4. start_osd.sh | 启动osd组件,不需要单独执行 | |
5. start_mgr.sh | 启动mgr组件,不需要单独执行 | |
6. start_rgw.sh | 启动rgw组件,不需要单独执行 | |
7. dashboard_rgw.sh | 启动dashboard上开启rgw,不需要单独执行 |
在上传脚本之前我们需要对部分脚本进行修改
echo "配置host开始"
cat >> /etc/hosts <<EOF
192.168.198.152 ceph1
192.168.198.149 ceph2
192.168.198.151 ceph3
EOF
-e MON_IP=192.168.198.152,192.168.198.149,192.168.198.151 \
-e CEPH_PUBLIC_NETWORK=192.168.198.0/24 \
ceph dashboard set-rgw-api-host 192.168.198.152
相关的脚本修改完成之后,就是将列表中的所有脚本上传到 /usr/local/ceph/admin目录下,接着在执行 start.sh脚本即可。脚本执行完成之后,启动正确的话,集群的状态应该是 HEALTH_OK。详细结果如下图所示:
主要是看各个组件是否都有显示。接着通过http://192.168.198.152:18080/#/dashboard 访问dashboard管理平台。生成完之后,我们可以在Dashboard的Object Gateway中的User 下看到我们创建的用户rgw。至此整个集群就部署完成了。
本文对ceph集群部署的脚本进行了整合,对启动步骤进行了简化,可以大大的提高部署效率。
https://download.csdn.net/download/u014534808/14029138