0
点赞
收藏
分享

微信扫一扫

Ceph实战(十一):重磅!!!一键部署集群的脚本


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

系列文章目录

​​Ceph实战(一):Ceph是什么?能做什么?有何优点​​

Ceph实战(二):用docker搭建Ceph集群之docker的基本概念以及操作
Ceph实战(三):用docker搭建Ceph集群(nautilus)
Ceph实战(四):用docker搭建Ceph集群问题整理(基于nautilus版本)
Ceph实战(五):Ceph的块设备的安装以及基本概念(基于nautilus版本)
Ceph实战(六):Ceph文件系统的基本概念,使用以及特点(基于nautilus版本)
Ceph实战(七):Ceph对象存储的基本概念,使用以及优点(基于nautilus版本)
Ceph实战(八):Ceph对象存储的Amazon S3接口的使用(!重点介绍分片上传接口)(基于nautilus版本))
Ceph实战(九):Ceph的核心组件的介绍(基于nautilus版本)
Ceph实战(十):Pool与PG的说明以及Ceph的IO流程

文章目录

  • ​​系列文章目录​​
  • ​​概述​​
  • ​​环境​​
  • ​​三台虚拟机的部署情况如下表所示:​​
  • ​​部署步骤​​
  • ​​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

hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3

  1. 在主节点ceph1上执行如下命令,配置免密登录到ceph2和ceph3。

#在 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}目录。

mkdir -p /usr/local/ceph/{admin,etc,lib,logs}

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

2.上传启动脚本

Ceph实战(十一):重磅!!!一键部署集群的脚本_ip地址


相关的脚本共有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镜像,最后分别执行该脚本。

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地址需要在同一个网段内,不然不在同一个网段的节点不能加入集群。

-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地址

ceph dashboard set-rgw-api-host 192.168.198.152

相关的脚本修改完成之后,就是将列表中的所有脚本上传到 /usr/local/ceph/admin目录下,接着在执行 start.sh脚本即可。脚本执行完成之后,启动正确的话,集群的状态应该是 HEALTH_OK。详细结果如下图所示:

Ceph实战(十一):重磅!!!一键部署集群的脚本_上传_02


主要是看各个组件是否都有显示。

接着通过http://192.168.198.152:18080/#/dashboard 访问dashboard管理平台。

生成完之后,我们可以在Dashboard的Object Gateway中的User 下看到我们创建的用户rgw。 至此整个集群就部署完成了。

总结

本文对ceph集群部署的脚本进行了整合,对启动步骤进行了简化,可以大大的提高部署效率。


举报

相关推荐

0 条评论