鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

安装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”中的设备:

  • devices表示系统中的数据盘,可以与osds_per_device选项结合,设置每个磁盘上创建的OSD数量。
  • dedicated_devices即block.db。
  • bluestore_wal_devices即block.wal。
  • dedicated_devices和bluestore_wal_devices的磁盘不能为相同磁盘。
  • dedicated_devices和bluestore_wal_devices可以包含一个或多个磁盘。
  • 系统会根据devices中的磁盘数量,以及osds_per_device,将dedicated_devices和bluestore_wal_devices下的磁盘进行均分。

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

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

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

  • 只指定数据盘。
  • 指定数据盘+WAL。
  • 指定数据盘+WAL+DB。
  • 指定数据盘+DB。

    使用此模式时需要事先在所有集群节点上创建对应的逻辑卷:

    1. 创建对应的vg。
      1
      /usr/sbin/vgcreate --yes -s 1G ceph-data  /dev/sdd
      

      创建名称为ceph-data的vg,-s指定创建逻辑卷的基本单位。

    2. 基于vg创建lv。
      1
      /usr/sbin/lvcreate -l 300 -n osd-data2 ceph-data
      

      在ceph-data上创建名称为osd-data2的大小为300G的lv。

    3. 确认lv创建情况。
      1
      lvs
      
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      [root@ceph1 ceph-ansible-stable-4.0.bak]# lvs
      LV        VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home      centos    -wi-ao---- 839.05g
      root      centos    -wi-ao----  50.00g
      swap      centos    -wi-a-----   4.00g
      osd-data1 ceph-data -wi-ao---- 300.00g
      osd-data2 ceph-data -wi-ao---- 300.00g
      osd-db1   ceph-db   -wi-ao---- 100.00g
      osd-db2   ceph-db   -wi-ao---- 100.00g
      osd-wal1  ceph-wal  -wi-ao----  50.00g
      osd-wal2  ceph-wal  -wi-ao----  50.00g
      

以下为创建两个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相关内容。