您好,我是码农飞哥,本篇文章是Ceph实战专栏的第三篇文章,承接上文,默认我们已经在虚拟机上装好了docker,本文主要讲如何启动ceph文件系统的各个组件,将集群搭建起来。
创建三台虚拟机,本教程采用的Linux是CentOS7.6版本,Docker的版本是19.03.13,Ceph的版本是nautilus。三台虚拟机的情况如下:
部署Ceph之前我们需要对自身机器的环境做一个预检查。主要涉及到防火墙,主机名等设置。
- 关闭防火墙
- 关闭selinux(linux的安全子系统)
PS: 正式环境实际部署时,最好通过加入IP白名单的方式来操作,而不是直接关闭防火墙。 3. 设置主机名,分别把三台虚拟机的主机名设置成ceph1,ceph2,ceph3。
- 在主节点ceph1配置免密登录到ceph2和ceph3,下面命令在主节点ceph1上执行。
- 在三个节点上分别执行下列命令配置host。
- 打开ntp服务 ntp服务的作用是用于同步不同机器的时间。如果不打开ntp服务的话,则有可能会出现 这种问题。
- 其他配置 把容器内的 ceph 命令 alias 到本地,方便使用,其他 ceph 相关命令也可以参考添加:
上面的预检做完之后,下面我们就开始具体的部署。
在宿主机上创建Ceph目录与容器建立映射,便于直接操纵管理Ceph配置文件,以root身份在主要节点ceph1上创建这四个文件夹,命令如下:
该命令会一次创建4个指定的目录,注意逗号分隔,不能有空格。 其中: admin文件夹下用于存储启动脚本, etc文件夹下存放了ceph.conf等配置文件 lib文件夹下存放了各组件的密钥文件 logs文件夹下存放了ceph的日志文件。 2. 对docker内用户进行授权
- 创建OSD磁盘 OSD服务是对象存储守护进程,负责把对象存储到本地文件系统,必须要有一块独立的磁盘作为存储。
- 如果没有独立磁盘,我们可以在Linux下面创建一个虚拟磁盘进行挂载,步骤如下: 2.1. 初始化10G的镜像文件:
2.2. 将镜像文件虚拟成块设备: 2.3. 格式化(名称根据fdisk -l进行查询): 2.4. 挂载文件系统,就是将loop0磁盘挂载到/dev/osd目录下,
- 如果有独立磁盘的话(如果是虚拟机的话,则只需要在VM的设置上添加一个硬盘,如图所示)
3.1 直接格式化( 名称根据fdisk -l进行查询) 3.2 挂载文件系统:
- 可以通过命令查看挂载结果
这里用到了 dockerhub 上最流行的 ceph/daemon 镜像(这里需要拉取nautilus版本的ceph,latest-nautilus)
1. start_mon.sh
这个脚本是为了启动监视器,监视器的作用是维护整个Ceph集群的全局状态。一个集群至少要有一个监视器,最好要有奇数个监视器。方便当一个监视器挂了之后可以选举出其他可用的监视器。启动脚本说明:
- name参数,指定节点名称,这里设为mon
- -v xxx:xxx 是建立宿主机与容器的目录映射关系,包含 etc、lib、logs目录。
- 是Docker运行的IP地址(通过ifconfig来查询,取ens33里的inet那个IP),这里我们有3台服务器,那么MAN_IP需要写上3个IP,如果IP是跨网段的必须写上所有网段。
- 配置了运行Docker主机所有网段 这里必须指定nautilus版本,不然会默认操作最新版本ceph,mon必须与前面定义的name保持一致。 2. start_osd.sh
这个脚本是用于启动mgr组件,它的主要作用是分担和扩展monitor的部分功能,提供图形化的管理界面以便我们更好的管理ceph存储系统。其启动脚本比较简单,在此不再赘述。 4. start_rgw.sh
该脚本主要是用于启动rgw组件,rgw(Rados GateWay)作为对象存储网关系统,一方面扮演RADOS集群客户端角色,为对象存储应用提供数据存储,另一方面扮演HTTP服务端角色,接受并解析互联网传送的数据。
启动mon
- 首先在主节点ceph1上执行start_mon.sh脚本,启动后通过查看启动结果,启动成功之后生成配置数据,在ceph主配置文件中,追加如下内容:
- 拷贝所有数据(已包含脚本)到另外2台服务器
- 通过远程ssh,在ceph2和ceph3上依次启动mon(启动前不要修改ceph.conf文件)
启动后通过 查看集群状态,如果能够看到ceph2和ceph3,则表示集群创建成功,此时的状态应该是HEALTH_OK状态。
启动OSD
在执行start_osd.sh脚本之前,首先需要在mon节点生成osd的密钥信息,不然直接启动会报错。命令如下:
接着在主节点下执行如下命令:
全部osd都启动之后,稍等片刻后,执行查看状态,应该可以看到多了如下信息(总共3个osd)
PS: osd的个数最好维持在奇数个。
启动mgr
直接在主节点ceph1上执行如下三个命令:
启动rgw
同样的我们首先还是需要先在mon节点生成rgw的密钥信息,命令如下:
接着在主节点ceph1上执行如下三个命令:
启动完成之后再通过查看集群的状态
首先确定主节点,通过命令查看集群状态,找到mgr为active的那个节点,如下:
这里的主节点就是ceph1节点。
- 开启dashboard功能
- 创建登录用户与密码
这里设置用户名为admin,密码为test。 3. 配置外部访问端口个,这里指定端口号是18080,可以自定义修改
- 配置外部访问地址,这里我的主节点IP是192.168.161.137,你需要换成自己的IP地址。
- 关闭https(如果没有证书或内网访问, 可以关闭)
- 重启Mgr DashBoard服务
- 查看Mgr DashBoard服务
最后通过 http://192.168.161.137:18080/#/dashboard 访问。
至此,整个集群就已经搭建完毕,通过命令,可以查看整个集群信息,我们规划的所有节点都已创建成功并加入集群
本文介绍了通过docker部署ceph集群的详细步骤,本文只是启动了核心的必要的组件,一共有 mon,osd,mgr,rgw四个组件,其中mon,osd,mgr组件是必须要启动的,rgw组件是作为对象存储的网关系统,如果不用对象存储的话则不需要启动该组件,其他的组件入mds也只是cephFS才需要用到。后面文章会详细介绍这些组件的作用,本文主要是将集群搭建起来。
Centos7系统Docker Ceph 集群的安装配置(中篇) [基于Docker部署ceph分布式文件系统MImic13.2
到此这篇ceph 搭建(cephfs搭建)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/24149.html