美文网首页存储
centos7 ceph 安装部署

centos7 ceph 安装部署

作者: 码二哥 | 来源:发表于2018-09-01 17:36 被阅读0次

经验:

在安装部署ceph集群前,可以先去网上看看其他网友是如何安装的,找找其中的共同点,
说明这些是必须的安装的,
做到心里有数后,才进行安装自己的ceph集群

主要参考的文献如下:

http://docs.ceph.org.cn/start/
https://blog.csdn.net/styshoo/article/details/55471132
https://blog.csdn.net/Notzuonotdied/article/details/69668519
https://www.cnblogs.com/netmouser/p/6876846.html
https://www.cnblogs.com/ytc6/p/7388654.html

当前系统环境

IP地址 主机名 角色 网络模式 系统 内核版本 cpu memory
172.16.91.165 master admin,mon bridge centos7 3.10.0-693.el7.x86_64 2 40G
172.16.91.166 slave1 osd bridge centos7 3.10.0-693.el7.x86_64 2 40G
172.16.91.167 slave2 osd bridge centos7 3.10.0-693.el7.x86_64 2 40G

环境配置

注意:可以先将CentOS-Base.repo文件进行备份,如果后面利用yum进行安装包时,失败的话,可以将阿里云的CentOS-Base.repo删除,还原成备份的CentOS-Base.repo即可。

更新yum源(master节点)

  • 删除默认的yum源码(国外的yum源太慢了)

    yum clean all
    rm -rf /etc/yum.repos.d/*.repo

  • 使用阿里云作为base源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  • 下载阿里云的epel源

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

  • 修改里面的系统版本为7.3.1611,当前用的centos的版本的的yum源可能已经清空了

    sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
    sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
    sed -i 's/$releasever/7.3.1611/g' /etc/yum.repos.d/CentOS-Base.repo

  • 添加ceph的yum源 vim /etc/yum.repos.d/ceph.repo

    [ceph]
    
    name=ceph
    
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
    
    gpgcheck=0
    
    priority =1
    
    [ceph-noarch]
    
    name=cephnoarch
    
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
    
    gpgcheck=0
    
    priority =1
    
    [ceph-source]
    
    name=Ceph source packages
    
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
    
    gpgcheck=0
    
    priority=1
    

禁用selinux(所有节点)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

防火墙 (所有节点)

  • 方案一: 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld

安装NTP 服务(所有节点)

yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service

更新/etc/hosts文件(master节点)

172.16.91.165   master
172.16.91.166   slave1
172.16.91.167   slave2   

创建新的用户guxin(所有节点)

  • 创建新的用户guxin

    useradd -d /home/guxin -m guxin
    passwd guxin

  • 确保所有节点上新创建的用户guxin都有sudo权限

    echo "guxin ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/guxin
    sudo chmod 0440 /etc/sudoers.d/guxin
    sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

接下来改成普通用户guxin操作 (master节点)

su - guxin

设置master节点上可以无密码访问其他node,设置ssh

  • ssh-keygen
  • ssh-copy-id guxin@slave1
  • ssh-copy-id guxin@slave2

创建~/.ssh/config文件(master节点上)

  • 创建config文件
    Host    master
        Hostname master
        User guxin
    Host    slave1
        Hostname slave1
        User guxin
    Host    slave2
        Hostname slave2
        User guxin
    

优先级/首选项 (所有节点)

在centos系统中,要确保你的包管理器安装了优先级/首选项包且已经启动了

sudo yum install -y yum-plugin-priorities  

部署ceph

安装ceph-deploy软件包

  • 执行下面的命令(在master节点)

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

  • 更新软件库并安装 ceph-deploy(master节点)

    sudo yum update && sudo yum install -y ceph-deploy

创建目录 (在master节点)

用于保存ceph-deploy生成的配置文件和密钥对

mkdir my-cluster && cd my-cluster

创建集群

  1. 创建集群(在管理节点master上)

    1. ceph-deploy new master
    2. ls
      ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
  2. 把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:

    vim /home/guxin/my-cluster/ceph.conf 添加如下内容:
    osd pool default size = 2

  3. 如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段

    public network = {ip-address}/{netmask}

  4. 安装 Ceph

    ceph-deploy install master slave1 slave2

  5. 查看版本号
    sudo ceph --version

    ceph version 10.2.11 (e4b061b47f07f583c92a050d9e84b1813a35671e)

  6. 配置初始 monitor(s)、并收集所有密钥:
    ceph-deploy mon create-initial
    完成上述操作后,当前目录里应该会出现这些密钥环:

    • {cluster-name}.client.admin.keyring
    • {cluster-name}.bootstrap-osd.keyring
    • {cluster-name}.bootstrap-mds.keyring
    • {cluster-name}.bootstrap-rgw.keyring

添加OSD进程

  1. 添加两个 OSD 。为了快速地安装,这篇快速入门把目录而非整个硬盘用于 OSD 守护进程。登录到 Ceph 节点、并给 OSD 守护进程创建一个目录。
    创建osd0的工作目录   (在slave1节点上)
    sudo mkdir /var/local/osd0
    创建osd1的工作目录   (在slave2节点上)
    sudo mkdir /var/local/osd1
    准备OSD      (在master节点上)
    ceph-deploy osd prepare slave1:/var/local/osd0 slave2:/var/local/osd1
    激活OSD      (master节点)
    ceph-deploy osd activate slave1:/var/local/osd0 slave2:/var/local/osd1

  2. 用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了  (master节点执行)
    ceph-deploy admin master slave1 slave2

  3. 确保你对 ceph.client.admin.keyring 有正确的操作权限  (master节点执行)
    sudo chmod +r /etc/ceph/ceph.client.admin.keyring

  4. 检查集群的监控状态
    ceph health

     HEALTH_OK   
    
  5. 查看集群的实时状态
    ceph -w

cluster 19751c70-5213-4f33-8189-dd0557054cce
   health HEALTH_OK
   monmap e1: 1 mons at {master=172.16.91.165:6789/0}
          election epoch 3, quorum 0 master
   osdmap e10: 2 osds: 2 up, 2 in
          flags sortbitwise,require_jewel_osds
    pgmap v24: 64 pgs, 1 pools, 0 bytes data, 0 objects
          14153 MB used, 61569 MB / 75723 MB avail
                64 active+clean

2018-09-01 04:45:38.680144 mon.0 [INF] pgmap v24: 64 pgs: 64 active+clean; 0 bytes data, 14153 MB used, 61569 MB / 75723 MB avail

安装中出现的问题

1. Bad owner or permissions on /home/guxin/.ssh/config [ceph_deploy][ERROR ] RuntimeError: connecting to host: slave1 resulted in errors: HostNotFound slave1

ls /home/guxin/.ssh/

-rw-rw-r-- 1 guxin guxin  168 Aug 31 05:30 config

说明该config文件的权限是664, 因此需要将文件的权限改成600
sudo chmod 600 /home/guxin/.ssh/config

2. ** ERROR: error creating empty object store in /var/local/osd0: (13) Permission denied

ls /var/local
drwxr-xr-x 2 root root 85 Sep 1 04:16 osd0
很明显,创建osd0时,用的是guxin用户,但是,osd0的用户确是root,因此需要修改osd0文件的所有者以及组
在slave1节点上  用root身份运行
chown -R ceph:ceph /var/local/osd0
在slave2节点上  用root身份运行
chown -R ceph:ceph /var/local/osd1
注意
用户组就是ceph, 不是上面自己创建的用户guxin, 已经定死了,就是ceph

相关文章

网友评论

    本文标题:centos7 ceph 安装部署

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