暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

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

极客Geeike Go 2020-12-08
3756
今天小编为大家分享一下,自己从零开始搭建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=ceph
          baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
          gpgcheck=0
          priority=1


          [ceph-noarch]
          name=cephnoarch
          baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
          gpgcheck=0
          priority=1


          [ceph-source]
          name=Ceph source packages
          baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
          gpgcheck=0
          priority=1
          :wq (保存 )
          复制

          这样ceph的源就创建好了

          4.更改三台服务器的主机名  以及修改hosts文件 对应的主机名和IP地址

          修改主机名

            hostnamectl set-hostname ceph1
            hostnamectl set-hostname ceph2
            hostnamectl set-hostname ceph3
            复制

            修改hosts文件

              vim /etc/hosts (将每个主机名对应的IP添加进去,三台都要进行操作添加)
              192.168.13.129 ceph1
              192.168.13.130 ceph2
              192.168.13.131 ceph3
              复制

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

                ping  ceph1
                ping ceph2
                ping ceph3
                复制

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

                  ssh-keygen  (先生成SSHKEY文件)
                  ssh-copy-id ceph1
                  ssh-copy-id ceph2
                  ssh-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.noarch
                      Loaded plugins: fastestmirror
                      Loading mirror speeds from cached hostfile
                      * base: mirrors.aliyun.com
                      * extras: mirrors.aliyun.com
                      * updates: mirrors.aliyun.com
                      No package python2-pip-8.1.2-5.el7.noarch available.
                      这一步安装还是报错安装不上pip的话 建议接下来安装一下 epel 然后在安装pip
                      yum -y install epel-release
                      yum -y install python-pip
                      复制

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

                      7.在ceph1 上开始创建集群

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

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

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

                        查看  /etc/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-bcrypt
                            Error: 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-pecan
                            Error: 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-deploy admin 这条命令将配置文件同步至三台服务器

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

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

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

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

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

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

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

                                    11.添加OSD 硬盘

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

                                        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


                                          文章转载自极客Geeike Go,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                          评论