ceph集群

作者: 大龄程序员在帝都 | 来源:发表于2016-08-27 23:36 被阅读1641次

安装文件看这里

目标:通过三台主机搭建ceph分布式文件系统集群

1、首先在每台主机的hosts文件中定义节点
vim /etc/hosts文件

106.75.24.5 node1
106.75.22.219 node2
106.75.22.252 node3

将以上文件拷贝到另外两台主机上

2、设置ceph-node1到ceph-node2和ceph-node3的免密码登陆
执行如下命令:

ssh-keygen
ssh-copy-id root@node2
ssh-copy-id root@node3
如上图验证已经实现了免密码登陆

3、在操作系统防火墙内启用Ceph monitor OSD和 MDS所需要的端口,在所有节点上执行如下命令

 #firewall-cmd --zone=public --add-port=6789/tcp --permanent
#firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent
#firewall-cmd --reload
#firewall-cmd --zone=public --list-all

4、在所有节点上禁用SELINUX:

setenforce 0
sed -i s'SELINUX.*=.*enforcing/SELINUX=disabled'/g /etc/selinux/config

5、在所有节点上安装并配置ntp服务:

 yum install ntp ntpdate -y
ntpdate -u pool.ntp.org
systemctl restart ntpdate.service
systemctl restart ntpd.service
systemctl enable ntpd.service
systemctl enable ntpdate.service

6、在所有ceph节点上添加Ceph Giant版本库并更新yum:

rpm -Uhv http://download.ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm
yum update -y

在node1上创建ceph集群

7、在ceph-node1上安装ceph,并配置它成为Ceph monitor 和OSD节点

#1 在ceph-node1上安装ceph-deploy
yum install ceph-deploy -y
#2通过ceph-node1上执行一下命令,用ceph-deploy创建一个ceph集群
mkdir /etc/ceph; cd /etc/ceph

** 1、执行ceph-deploy的安装**

yum install ceph-deploy -y

2、在node1上执行如下命令,来通过cepy-deploy创建一个ceph集群

ceph-deploy new node1

执行完成以后,在当前目录下生成了:
ceph.conf 和ceph.mon.keyring文件

3、node1上执行如下命令:使用ceph-deploy在所有节点上安装ceph二进制软件包:

ceph-deploy  install node1 node2 node3

这里要经过一个漫长的过程:分别在node1 和 node2 node3上进行安装

如果中间有安装失败的节点,可以单独安装,比如node3节点安装失败,可以

ceph-deploy install node3

注意这个是在node1节点上执行安装node1

有时候会比较慢,看个人网络,搞了大半天终于安装成功了:

node1节点安装图 node2节点安装成功 node3节点安装成功

主要是网络慢,有一个包下载困难,如果通过ceph-deploy安装不成功就直接考虑手工安装:
官网手工安装教程

4、在node1上创建一个Ceph monitor:
执行如下命令:

ceph-deploy mon create-initial

出现如下错误:这是在我自己的云主机上出现的错误

[node1][INFO  ] Running command: ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.node1.asok mon_status
[node1][ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory

上面这个错误有待继续追究
下面是我在另外一套环境中继续尝试安装:没有任何困难,安装成功:/etc/ceph下面会生成如下文件:

安装监视器以后在路径/etc/ceph下的文件

5、安装完成以后对ceph执行健康检查

ceph执行健康检查

此时没有任何osds,所以显示 no osds

在node1上创建OSD

注意虚拟硬盘作为一个整个盘,不要挂载,因为执行osd安装时,会自动进行格式化和挂载,如果提前挂载了其他目录,会导致无法挂载新的磁盘,安装失败
1、虚拟硬盘首先进行格式化
不同文件格式的文件系统格式化方式不一样,以下是xfs格式化命令

mkfs.xfs -f  /dev/vdc

格式化多个磁盘就执行多次
2、列出 node1上可用的磁盘

[root@node1 ceph]# ceph-deploy disk list node1

3、disk zap子命令删除现有分区表和磁盘内容,这一步一定要确认好选择的正确的磁盘名称
执行如下:比如我三个硬盘 /dev/vdc /dev/vdd /dev/vde

[root@node1 ceph]# ceph-deploy disk zap node1:/dev/vdc  node1:/dev/vdd node1:/dev/vde

osd create子命令准备磁盘,即默认先用xfs文件系统格式化磁盘,然后会激活磁盘的第一第二分区,分别作为数据分区和日志分区:

4、以上操作以后开始创建osd,执行如下命令

ceph-deploy osd create node1:/dev/vdc  node1:/dev/vdd node1:/dev/vde

5、执行完成以上操作以后,检查ceph的健康状况
执行

ceph -s
osd顺利装上

3up代表 3个可用 3in代表一共三个

6、可以看下ceph在安装过程中自动分区挂载

df
安装完成以后的挂载和分区

如上:/dev/vdc /dev/vdd /dev/vde 三块硬盘,每个硬盘分了一个区,每个分区都自动进行挂载 自动命名

如上对ceph健康状况进行检查的时候,可以看到ceph健康状况还处于warning状态,是因为monitor只有一个非高可用

扩展ceph集群

扩展monitor

1、为了保证高可用,首先扩展 monitor节点为三个:
在/etc/ceph/ceph.conf中设置公共网络地址

public network = 118.144.155.0/24

在节点2和节点3上创建monitor


ceph-deploy mon create node2
ceph-deploy mon create node3

执行 ceph -s 查看是否成功

显示3个monitor

扩展osd

目前osd都在node1上,所以ceph集群的健康状况为health_warn,在node2,node3上执行disk list 和diskzap,并在node2和node3上创建osd

#列出可用磁盘
ceph-deploy disk list node2 node3
#格式化node2上三个磁盘
[root@node1 ceph]# ceph-deploy disk zap node2:/dev/vdb node2:/dev/vdc node2:/dev/vdd
#格式化node3上三个磁盘
[root@node1 ceph]# ceph-deploy disk zap node3:/dev/vdb node3:/dev/vdc node3:/dev/vdd
#在node2创建osd
[root@node1 ceph]# ceph-deploy osd create node2:/dev/vdb node2:/dev/vdc node2:/dev/vdd
#在node3上创建osd
[root@node1 ceph]# ceph-deploy osd create node3:/dev/vdb node3:/dev/vdc node3:/dev/vdd

安装osd过程中出现如下错误:


[ceph_deploy.osd][ERROR ] Failed to execute command: ceph-disk -v prepare --cluster ceph --fs-type xfs -- /dev/vdc

解决方法参考这里

解决之后显示9个osd,之前是8个:

Paste_Image.png

上图中依然有一个问题: 9个osds只有3个可用,下面查这个问题
首先看哪三个节点不可用:执行如下命令

[root@node1 ceph]#  ceph --cluster ceph  osd tree
除了node1上的其他六个节点均不可用

相关文章

  • MySQL部署到k8s实例

    k8s && ceph 环境信息 ceph 部署以及配置 搭建ceph集群 ceph 集群配置 ceph 创建My...

  • ceph命令

    ceph集群的监控检查集群的健康情况 # ceph health # ceph health detail 得到集...

  • (一) Ceph集群环境准备

    Ceph集群环境准备 基于本机搭建ceph集群及cephfs、cephrgw、cephrbd服务。 集群规划 生产...

  • ceph 简介

    ceph:对象存储、块设备、文件系统... ceph存储集群的部署都始于一个个ceph节点,网络,ceph存储集群...

  • Ceph I / O

    介绍 Ceph客户端接口从Ceph存储集群读取数据并将数据写入Ceph存储集群。客户端需要以下数据才能与Ceph存...

  • ceph性能统计实现

    0. ceph是如何查看集群性能数据的 通过ceph -s显示本次查看的集群性能数据 通过ceph -w实时更新集...

  • ceph-ansible 部署

    利用ceph-ansible工程,快速部署ceph集群Centos 7ansible 2.7ceph lumino...

  • ceph分布式存储-集群容量评估

    1. 环境介绍 1.1 软件环境 ceph集群: mon:ceph-xxx-osd02.ys,ceph-xxx-o...

  • Ceph系列02-使用ceph-deploy部署ceph集群

    使用ceph-deploy部署ceph集群并配置ceph-dashboard。 1、准备工作 1.1 关闭seli...

  • 2021-08-30 ceph基础

    ceph 集群角色定义 Ceph osd 对象存储守护程序 (节点三个以上)Ceph Monitors 监视器 (...

网友评论

    本文标题:ceph集群

    本文链接:https://www.haomeiwen.com/subject/jlzzsttx.html