ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

三台服务器搭建ceph集群,有无公网都可搭建(centos系统)

2021-02-23 17:33:32  阅读:245  来源: 互联网

标签:centos deploy ceph1 dev ceph cluster 公网 root 搭建


使用ceph-deploy工具搭建ceph集群

一、环境前准备(重要,缺一不可)

  1. 以ceph1(或者node1 这里看大家自定义自己的服务器主机名)为例,先通过ceph1实现三台服务器免密登陆,主机修改/etc/hosts文件同步至所有服务器,然后防火墙关闭、selinux设置宽松模式

实现免密登陆

[root@node1 ~]# ssh-keygen   -f /root/.ssh/id_rsa    -N ''
[root@ceph1 ~]# for i in 11 12 13; do ssh-copy-id 192.168.22.$i; done

修改主机文件,同步所有服务器

[root@ceph1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.22.11 ceph1
192.168.22.12 ceph2
192.168.22.13 ceph3
[root@ceph1 ~]# for i in ceph1 ceph2 ceph3; do scp /etc/hosts $i:/etc; done

三台服务器关闭防火墙、selinux调至宽松模式(这里SElinux为临时调整,永久需修改/etc/selinux/config文件)

[root@ceph1 ~]# for i in ceph1 ceph2 ceph3; do ssh $i "systemctl stop firewalld.service"; ssh $i "getenforce 0"; done
  1. 所有配置yum源(部署时根据服务器有无公网选择以下方案)

有公网(服务器本身要有centos7),直接配置yum源

[root@ceph1 ~]# cat > /etc/yum.repos.d/ceph.repo << EOF
> [ceph]
> name=ceph
> baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
> gpgcheck=0
> priority=1
> 
> [ceph-noarch]
> name=cephnoarch
> baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
> gpgcheck=0
> priority=1
> 
> [ceph-source]
> name=Ceph source packages
> baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
> enabled=0
> gpgcheck=1
> type=rpm-md
> gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
> priority=1
> EOF
[root@ceph1 ~]# yum repolist

无公网(通过下载好所需包传入服务器搭yum源即可,这里我为大家已经准备好了包)
需要包括centos7源以及ceph源的压缩包请通过百度网盘https://pan.baidu.com/s/1TEU4V0LICD9GloUMxlVoVg
密码:6688
单纯包括ceph源的压缩包请通过百度网盘https://pan.baidu.com/s/1ernkzdWCqZ7Bn2uxfhp87Q
密码:8866
下载好软件包服务器解压,yum源指定目录即可使用

[root@ceph1 ~]# cat > /etc/yum.repos.d/ceph.repo << EOF
>[ceph]
>name=ceph
>baseurl=file:///root/centos-ceph
>enabled=1
>gpgcheck=0
[root@ceph1 ~]# yum repolist

3.三台服务器做好时间同步,这里大家可以去网上找,有几种方法,我这里使用chronyd,时间偏差在30秒以内都可以,后面搭建ceph集群时这个可以通过配置文件允许误差30秒

二、开始部署

  1. 安装部署软件ceph-deploy 检查是否可用,不可用可能需装python-pip
[root@ceph1 ~]# yum -y install ceph-deploy
[root@ceph1 ~]# ceph-deploy --help #检查是否可用,不可用安装pip包,如下
[root@ceph1 ~]# yum -y install python2-pip #只有ceph-deploy不可用才下载
[root@ceph1 ~]#  ceph-deploy mon --help #检查是否可用,正常上述操作完后是没有问题的
  1. 创建部署目录并进入目录
[root@ceph1 ~]# mkdir ceph-cluster && cd ceph-cluster
  1. 部署Ceph集群

给所有节点安装ceph相关软件包

[root@ceph1 ceph-cluster]# for i in ceph1 ceph2 ceph3 
do
    ssh  $i "yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw ceph-mgr"
done 

创建Ceph集群配置,在ceph-cluster目录下生成Ceph配置文件(ceph.conf

[root@ceph1 ceph-cluster]# ceph-deploy new ceph1 ceph2 ceph3

初始化所有节点的mon服务,启动mon服务。在每个ceph主机查看自己的服务

[root@cephe1 ceph-cluster]# ceph-deploy mon create-initial
[root@ceph1 ceph-cluster]# systemctl status ceph-mon@ceph1
[root@ceph2 ~]# systemctl status ceph-mon@ceph2
[root@ceph3 ~]# systemctl status ceph-mon@ceph3

查看ceph集群状态(现在状态应该是health HEALTH_ERR)

[root@ceph1 ceph-cluster]# ceph -s 若报错,正常来说是密钥未传送,执行如下命令
[root@ceph1 ceph-cluster]# ceph-deploy admin ceph1 ceph2 ceph3
[root@ceph1 ceph-cluster]# ceph -s 这里就能出现ceph集群的信息了

查看ceph集群状态(时钟偏移可以以下操作,修改完配置文件后同步其他服务器)

[root@ceph1 ceph]# cat ceph.conf
[global]
fsid = 892095c2-3379-43b1-939a-3a4491d3244d
mon_initial_members = ceph1 ceph2 ceph3
mon_host = 192.168.22.11,192.168.22.12,192.168.22.13
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 192.168.22.0/24
mon_allow_pool_delete = true
mon clock drift allowed = 2   #添加
mon clock drift warn backoff = 30    #添加
[root@ceph1 ceph-cluster]# ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3 #同步
[root@ceph1 ceph-cluster]# ceph -s #这时候集群应该是OK了
  1. 添加OSD

初始化清空磁盘数据(仅ceph1操作即可,如果磁盘是新的可以忽略,当然最好是操作一下,大家要根据自己的磁盘初始化,我是每台服务器有两个块新的磁盘做存储,所以会有以下操作)

[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph1 /dev/sdc 
[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph1 /dev/sdd  
[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph2 /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph2 /dev/sdd
[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph3 /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy disk  zap  ceph3 /dev/sdd

创建OSD存储空间(这里分两种情况,一种是创建出来OSD直接使用本身存储空间分出journal盘,即日志盘,会占用OSD存储空间。另一种是指定新的一块磁盘当journal盘,不占用OSD空间,我这里是第二种,大家可以根据自己需求选择)

第一种 不指定journal盘
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph1 --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph1 --data /dev/sdd
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph2 --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph2 --data /dev/sdd
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph3 --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph3 --data /dev/sdd
第二种 指定journal盘,我这里新的盘是sdb,如果你sdb分出其他盘也可以指定sdb1或者sdb2或者其他,这看个人去配置
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph1 --journal /dev/sdb  --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph1 --journal /dev/sdb  --data /dev/sdd 
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph2 --journal /dev/sdb  --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph2 --journal /dev/sdb  --data /dev/sdd 
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph3 --journal /dev/sdb  --data /dev/sdc
[root@ceph1 ceph-cluster]# ceph-deploy osd create ceph3 --journal /dev/sdb  --data /dev/sdd 

在三台不同的主机查看OSD服务状态,可以开启、关闭、重启服务。(这里要通过ceph osd tree命令查看OSD对应的主机,然后去对应主机查看对应OSD服务)

[root@ceph1 ~]# ceph osd tree
[root@ceph1 ~]# systemctl status ceph-osd@0
[root@ceph1 ~]# systemctl status ceph-osd@1
[root@ceph2 ~]# systemctl status ceph-osd@2
[root@ceph1 ~]# systemctl status ceph-osd@3
[root@ceph3 ~]# systemctl status ceph-osd@4
[root@ceph1 ~]# systemctl status ceph-osd@5

三、验证

  1. 查看集群状态
[root@node1 ~]# ceph -s 
[root@node1 ~]# ceph osd tree #检查是否有宕机OSD
  1. 常见错误
[root@ceph1 ceph-cluster]# ceph -s 
  cluster:
    id:     fafffa56-cbaf-4ad6-a1ad-927df7b98eba
    health: HEALTH_WARN
            no active mgr
            ...
            ...
没有活动管理器,直接启用三台主机的管理器
           
[root@ceph1 ceph-cluster]# ceph-deploy mgr create ceph1 ceph2 ceph3

注:出现报错时,我们的排错思路首先要想到环境前的准备,所有都准备好了吗?我们也可以通过ceph -s查看集群的状态,通过状态寻找出问题所在。

下期我会出ceph集群的三种存储方式使用方法,敬请期待哈~~~

标签:centos,deploy,ceph1,dev,ceph,cluster,公网,root,搭建
来源: https://blog.csdn.net/yeshaozhuanshu/article/details/113988045

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有