安装ceph-ansible

本文档中,ceph-ansible的安装路径在“/home”路径下。

安装ceph-ansible

支持在线和离线两种安装方式,都仅需在ceph1上进行操作。

方法一:在线方式安装

  1. 安装Ansible。

    • CentOS 7.6
      1
      yum -y install ansible
      
    • openEuler 20.03
      1
      pip3 install ansible==2.9
      

  2. 安装ceph-ansible。

    1. 确保环境上安装了git,可通过以下方式安装。
      1
      yum -y install git
      

    2. 配置“http.sslVerify”参数为“false”,跳过系统证书。
      1
      git config --global http.sslVerify false
      
    3. 下载ceph-ansible。
      1
      git clone -b stable-4.0 https://github.com/ceph/ceph-ansible.git --recursive
      

方法二:离线方式安装

  1. 安装Ansible。

    • CentOS 7.6
      1
      yum -y install ansible
      
    • openEuler 20.03
      1
      pip3 install ansible
      

  2. 解压ceph-ansible。

    1
    unzip /home/ceph-ansible-stable-4.0.zip
    

安装ceph-ansible依赖

支持在线和离线两种安装方式,都仅需在ceph1上进行操作。

方法一:在线方式安装

  1. 安装python3-pip。

    1
    yum install -y python3-pip
    

  2. 创建并进入“ceph-ansible”目录。

    1
    2
    mkdir /home/ceph-ansible/
    cd /home/ceph-ansible/
    

  3. 检查并安装需要的软件版本。

    1
    pip3 install -r requirements.txt
    

方法二:离线方式安装

  1. 安装python3-pip。

    1
    yum install -y python3-pip
    

  2. 创建并进入“ceph-ansibl”e目录。

    1
    2
    mkdir /home/ceph-ansible/
    cd /home/ceph-ansible/
    

  3. 安装需要的依赖包。

    1
    yum install -y python-netaddr
    

  4. 检查并安装需要的软件版本。

    1
    pip3 install -r requirements.txt
    

解决环境依赖问题

  1. 解决rpm_key依赖问题。

    1. 进入redhat_community_repository.yml。
      1
      vim /home/ceph-ansible/roles/ceph-common/tasks/installs/redhat_community_repository.yml
      
    2. 注释如下代码。

  1. 解决grafana依赖问题。

    1. 进入configure_grafana.yml。
      1
      vim /home/ceph-ansible/roles/ceph-grafana/tasks/configure_grafana.yml
      
    2. 注释如下代码。

创建服务节点配置列表

在ceph-ansible目录内新建hosts文件。

1
vi /home/ceph-ansible/hosts

并添加如下内容:

该操作用于定义集群中的主机,以及每个主机在Ceph集群中扮演的角色。可根据整个集群的需要在集群节点上部署相应的应用。

各参数意义如表1所示。

表1 参数列表

参数

说明

[mons]

作为Monitor节点

[mgrs]

作为MGR节点

[osds]

作为OSD节点,具体OSD配置在osds.yml文件中配置

[mdss]

作为MDS节点,文件存储中需要指定

[rgws]

作为RGW节点,对象存储中需要指定

[clients]

作为客户端节点

[grafana-server]

一般需要保留该参数,不然会报缺少的错误

修改ceph-ansible配置文件

在Ansible部署时,必须传递相应的playbook给ansible-playbook命令。需要修改相应的playbook名称,然后修改对应的内容,使之满足集群部署的要求。

使用ceph-ansible提供的Ansible变量用来设置Ceph集群的配置。

所有选项及默认配置放在“group_vars”目录下,每种Ceph进程对应相关的配置文件。

1
2
3
4
5
6
7
8
cd /home/ceph-ansible/group_vars/
cp mons.yml.sample mons.yml
cp mgrs.yml.sample mgrs.yml
cp mdss.yml.sample mdss.yml
cp rgws.yml.sample rgws.yml
cp osds.yml.sample osds.yml
cp clients.yml.sample clients.yml
cp all.yml.sample all.yml

all.yml.sample是应用于集群所有主机的特殊配置文件。

添加ceph.conf配置参数

“all.yml”文件中,“ceph_conf_overrides”变量可用于覆盖ceph.conf中已配置的选项,或是增加新选项。

进入“all.yml”文件,修改“ceph_conf_overrides”这个参数。

1
vim all.yml
添加如下内容:
1
2
3
4
5
6
7
8
ceph_conf_overrides: 
  global:
    osd_pool_default_pg_num: 64
    osd_pool_default_pgp_num: 64
    osd_pool_default_size: 2
mon_max_pg_per_osd: 3000
mon:
  mon_allow_pool_create: true

定义OSD

osds.yml支持两种方式设置OSD(object storage device)盘、WAL(write ahead log)盘和DB(data base)盘。

方法一:ceph-volume lvm batch方式

修改groups_vars路径下的osds.yml文件,根据需要指定“devices”“dedicated_devices”“bluestore_wal_devices”中的设备:

单个OSD的block.db大于等于50GB,否则可能会以为block.db过小而安装报错。

方法二:ceph-volume,从逻辑卷中创建osd

修改groups_vars路径下的osds.yml文件,根据需要指定lvm_volumes属性下的所有OSD设备,包含几种不同的组合场景:

以下为创建两个OSD,每个OSD都包含DB和WAL盘的场景:

关闭chrony

关闭chrony的操作仅需在openEuler操作系统下进行,CentOS操作系统请跳过此部分内容。

  1. 进入“roles/ceph-infra/tasks/setup_ntp.yml”。

    1
    vim /home/ceph-ansible/roles/ceph-infra/tasks/setup_ntp.yml
    

  2. 注释chrony相关内容。