从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

Posted 极客Geeike Go

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!相关的知识,希望对你有一定的参考价值。

今天小编为大家分享一下,自己从零开始搭建ceph集群的过程,以及中间遇到的一些问题和解决方法,希望能对大家学习Ceph有所帮助,也欢迎各位小伙伴前来讨论,一起交流。

实验环境介绍:
首先我们需要在自己的VMworkStation或者ESXI服务器上创建三个虚拟机,然后三台虚拟机都需要安装相同的Centos 7 2003版本的系统(确保系统是纯净的没有安装任何软件避免后续安装依赖包会报错)。
三台虚拟机配置如下:
CPU:2个核心
内存:4Gb
硬盘:系统盘10Gb
          数据盘10Gb
系统版本:Centos 7 2003


1. 安装Centos 7 -2003 版本的系统

提前yum安装 vim 和 wget (yum install -y vim wget) 后面更换国内源的时候需要使用  关闭防火墙 systemctl disable firewalld sysytemctl stop firewalld  关闭selinux vim /etc/selinux/config 然后将配置SELinux=enforcing改为SELinux=disabled,如下所示。 SELINUX=disabled 然后,保存并退出文件,为了使配置生效,需要重新启动系统

2.更换Cent os7 默认的源  (三台ceph 需用改用同样的更新源确保所有安装的软件版本一致)

改为国内 阿里云的源 ——参考文章

     1. 备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

      2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo或者curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

  3. 运行  yum makecache 生成缓存   运行 yum update  进行更新源

3.添加 阿里云的 ceph源---参考文章(三台ceph 的 ceph 源也需要用同样的确保安装的ceph的版本一致)

vim /etc/yum.repos.d/ceph.repo 将以下内容粘贴进去 (三台都要操作添加ceph源)[ceph]name=cephbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/gpgcheck=0priority=1
[ceph-noarch]name=cephnoarchbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/gpgcheck=0priority=1
[ceph-source]name=Ceph source packagesbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMSgpgcheck=0priority=1:wq (保存 )

这样ceph的源就创建好了

修改主机名

hostnamectl set-hostname ceph1hostnamectl set-hostname ceph2hostnamectl set-hostname ceph3

修改hosts文件

vim /etc/hosts (将每个主机名对应的IP添加进去,三台都要进行操作添加)192.168.13.129 ceph1192.168.13.130 ceph2192.168.13.131 ceph3

修改完后 验证一下 是否生效  使用ping

ping ceph1ping ceph2ping ceph3

5.三台服务器做一下SSH 免密 (这一步只需要在主服务器(ceph1)上操作就可以

ssh-keygen (先生成SSHKEY文件)ssh-copy-id ceph1ssh-copy-id ceph2ssh-copy-id ceph3操作完成后 用ssh ceph2 ssh ceph3验证一下看是否能成功登陆到cpeh2 的服务器上

6.在ceph1 主服务器上安装ceph-deploy部署工具

注意:只在ceph1 上安装就可以了 因为它是部署节点,其它两个节点无需安装

yum install ceph-deploy -y

这一步安装完成后,我们查看一下ceph-deploy 的版本的时候  有可能会报错

这个错误是因为我们没有配置 python的 pip所导致的  我们重新安装一下就可以解决

yum -y install python2-pip-8.1.2-5.el7.noarch[root@chep1 ceph]# yum -y install python2-pip-8.1.2-5.el7.noarchLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comNo package python2-pip-8.1.2-5.el7.noarch available.这一步安装还是报错安装不上pip的话 建议接下来安装一下 epel 然后在安装pip yum -y install epel-releaseyum -y install python-pip

安装成功后 使用 ceph-deploy  就可以显示出目前我们所使用的 ceph 的版本

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

7.在ceph1 上开始创建集群

建立一个集群配置目录   /注意后面大部分操作都必须cd到此目录内进行操作

mkdir /etc/cephcd /etc/ceph (进入ceph 刚刚创建的目录进行集群配置)ceph-deploy new ceph1

创建成功后看一下 有没有报错的信息 参考下图,如果没有证明集群创建成功

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

查看  /etc/ceph 目录下是否有以下几个配置文件

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

vim ceph.cong

8.安装ceph软件

在所有集群服务器节点上安装 ceph 和ceph-radosgw 软件包

yum install ceph ceph-mon ceph-mgr ceph-radosgw ceph-mds -y 

 (三台服务器节点都需要安装)

如果安装提示以下错误信息 ,

Error: Package: 2:ceph-radosgw-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0()(64bit)Error: Package: 2:librbd1-14.2.11-0.el7.x86_64 (ceph) Requires: liblttng-ust.so.0()(64bit)Error: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0()(64bit)Error: Package: 2:librados2-14.2.11-0.el7.x86_64 (ceph) Requires: liblttng-ust.so.0()(64bit)Error: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0(LIBOATH_1.10.0)(64bit)Error: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: liblttng-ust.so.0()(64bit)Error: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0(LIBOATH_1.10.0)(64bit)Error: Package: 2:ceph-mon-14.2.11-0.el7.x86_64 (ceph) Requires: libleveldb.so.1()(64bit)Error: Package: 2:ceph-osd-14.2.11-0.el7.x86_64 (ceph) Requires: libleveldb.so.1()(64bit)Error: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0(LIBOATH_1.2.0)(64bit)Error: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: libleveldb.so.1()(64bit)Error: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: libbabeltrace.so.1()(64bit)Error: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: libbabeltrace-ctf.so.1()(64bit)Error: Package: 2:ceph-mgr-14.2.11-0.el7.x86_64 (ceph) Requires: python-bcryptError: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0(LIBOATH_1.2.0)(64bit)Error: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: libleveldb.so.1()(64bit)Error: Package: 2:librgw2-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0()(64bit)Error: Package: 2:ceph-mgr-14.2.11-0.el7.x86_64 (ceph) Requires: python-pecanError: Package: 2:ceph-base-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0(LIBOATH_1.12.0)(64bit)Error: Package: 2:librgw2-14.2.11-0.el7.x86_64 (ceph) Requires: liblttng-ust.so.0()(64bit)Error: Package: 2:ceph-common-14.2.11-0.el7.x86_64 (ceph) Requires: liboath.so.0()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

这时候需要更新安装一下 依赖包 ,就可以完美解决

yum install -y yum-utils && yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && yum install --nogpgcheck -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm -f /etc/yum.repos.d/dl.fedoraproject.org*

9 在ceph-deploy 节点上部署 mon (mon是整个ceph集群的控制中心)

ceph-deploy mon create-initial (初始化mon 组件)

初始化完成后 目录下会新增以下几个文件

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

接着我们使用 ceph-deploy admin 这条命令将配置文件同步至三台服务器

ceph-deploy admin ceph1 ceph2 ceph3 ( 将配置文件同步到 另外两台服务器上)

然后我们用 ceph -s 命令 查看一下 ceph 目前的状态  HEALTH_OK  里面有已经可以看到有一个 mon 的daemons

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

至此我们的 mon初始化已经完成

10.在ceph-deploy 节点上部署 mgr(mgr是用来监控各个节点的 )

ceph-deploy mgr creat ceph1 (在ceph1上创建 mgr )

无明显报错,就已经安装成功了

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

使用 ceph -s  检查一下  mgr的状态已经激活

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

11.添加OSD 硬盘

lsblk (查看目前空闲硬盘的名称sdb)

从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!

ceph-deploy osd create ceph1 --data /dev/sdb

添加完成后 ,可以用 ceph -s  看到ceph 集群的状态  已经有 10G 的空间可用

同样的命令 我们把其他两台节点服务器的硬盘也添加进来,这样的话 我们osd硬盘可用的空间 就有 30GB (每台10G)

ceph-deploy osd create ceph2 --data /dev/sdb ceph-deploy osd create ceph3 --data /dev/sdb

添加完成同样用 ceph -s 查看一下

此时我们ceph 的集群已经完成部署了 每个节点 10GB 加起来 就是30GB 可用的

下一节,我们来学习 如何把 ceph 挂载到前端的应用上 比如 Seafile / owncloud


以上是关于从零开始!搭建Ceph 分布式存储,Ceph搭建保姆教程!!!的主要内容,如果未能解决你的问题,请参考以下文章

ceph分布式存储搭建经历

ceph分布式存储-常见 PG 故障处理

Ceph部署集群搭建

CEPH环境搭建

虚拟化云计算-分布式存储ceph环境搭建

一文参透分布式存储系统Ceph的架构设计集群搭建(手把手)