前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重磅!!!一键部署ceph集群的脚本

重磅!!!一键部署ceph集群的脚本

作者头像
码农飞哥
发布2021-08-18 11:13:08
1K0
发布2021-08-18 11:13:08
举报
文章被收录于专栏:好好学习

您好,我是码农飞哥,本篇文章是Ceph实战专栏的第十一篇文章,前面的系列文章我们分别介绍了集群的部署,介绍了集群的组件,最后到介绍到Ceph的IO流程等等。这一篇文章是结束之作,我将介绍一下重点介绍快速部署集群的脚本(PS:前面的部署脚本有点繁琐)。 订阅本专栏我会1V1的帮您解决部署和使用ceph时碰到的问题。

  • 概述
  • 环境
    • 三台虚拟机的部署情况如下表所示:
  • 部署步骤
    • 1. 预检&拉取ceph镜像
    • 2. 部署
    • 1. 首先创建Ceph目录
    • 2.上传启动脚本
  • 总结

概述

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)

特别说明:

  1. 命令或者脚本中的IP地址要根据实际机器的IP地址做相应的修改
  2. 所有命令均是在root用户下操作
  3. 通过 ping www.baidu.com 检查虚拟机网络是否连通。

部署步骤

1. 预检&拉取ceph镜像

  1. 设置主机名,在三台虚拟机上执行,将三台节点的主机名分别设置成ceph1,ceph2,ceph3
代码语言:javascript
复制
hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3
  1. 在主节点ceph1上执行如下命令,配置免密登录到ceph2和ceph3。
代码语言:javascript
复制
#在 192.168.198.152(ceph1)上执行:
ssh-keygen
#把密钥发给ceph2、ceph3
ssh-copy-id ceph2
ssh-copy-id ceph3

2. 部署

1. 首先创建Ceph目录

在主节点ceph1上执行下面命令,在宿主机上创建Ceph目录与容器建立映射,便于直接操纵管理Ceph配置文件,以root身份在节点上创建/usr/local/ceph/{admin, etc,lib, logs}目录。

代码语言:javascript
复制
mkdir -p /usr/local/ceph/{admin,etc,lib,logs}

该命令会一次创建4个指定的目录,注意逗号分隔,不能有空格。其中:admin文件夹下用于存储启动脚本, etc文件夹下存放了ceph.conf等配置文件 lib文件夹下存放了各组件的密钥文件 logs文件夹下存放了ceph的日志文件。

2.上传启动脚本

相关的脚本共有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,不需要单独执行

在上传脚本之前我们需要对部分脚本进行修改

  1. 安装docker&拉取ceph镜像文件,修改before-install.sh里的host里的相关IP地址,将其改成实际IP地址,2. 同时需要确保服务器下有独立磁盘/dev/sdb(通过 fdisk -l 查看),如果是没有该磁盘或者磁盘名称不对,请相应的修改脚本中的/dev/sdb。修改完成之后,将该脚本上传到三台服务器上分别拉取ceph镜像,最后分别执行该脚本。
代码语言:javascript
复制
echo "配置host开始"
cat >> /etc/hosts <<EOF
192.168.198.152 ceph1
192.168.198.149 ceph2
192.168.198.151 ceph3
EOF
  1. 修改start_mon.sh脚本里的MON_IP和CEPH_PUBLIC_NETWORK两个参数,将其换成实际的IP地址和网段,其中网段只需要修改192.168.198这个,需要注意的是三个IP地址需要在同一个网段内,不然不在同一个网段的节点不能加入集群。
代码语言:javascript
复制
    -e MON_IP=192.168.198.152,192.168.198.149,192.168.198.151 \
    -e CEPH_PUBLIC_NETWORK=192.168.198.0/24 \
  1. 修改dashboard_rgw.sh 脚本里的set-rgw-api-host,将其改成实际的IP地址
代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农飞哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 环境
    • 三台虚拟机的部署情况如下表所示:
    • 部署步骤
      • 1. 预检&拉取ceph镜像
        • 2. 部署
          • 1. 首先创建Ceph目录
            • 2.上传启动脚本
            • 总结
            • 脚本下载地址
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档