• ceph-ansible安装指南-centos8安装ceph- pacific


    前言:最近玩ceph ,发现关于ceph的安装配置文档还是太少,且不同版的坑也是不一样。经常参照的文档无法进行下一步安装操作,并有各种各样的坑。介于开源精神,分享下centos8.5环境下的ceph-P版的安装步骤。

    一、环境准备:

    操作系统:

    hostnamectl

         Operating System: CentOS Stream 8

           CPE OS Name: cpe:/o:centos:centos:8

                Kernel: Linux 4.18.0-408.el8.x86_64

     ansible --version

    ansible [core 2.13.5]

      python version = 3.9.13 (main, Jun 24 2022, 15:32:51) [GCC 8.5.0 20210514 (Red Hat 8.5.0-13)]

      jinja version = 3.1.2

    ceph --version

    ceph version 16.2.10 (45fa1a083152e41a408d15505f594ec5f1b4fe17) pacific (stable)

     python3 --version

    Python 3.6.8

    网络环境

    主机名

    public_ip

    cluster_ip

    角色

    备注

    ceph-admin

    10.255.208.1

    -

    ceph-ansible

    ceph-mon01

    10.255.208.2

    -

    mon

    ceph-mon02

    10.255.208.4

    -

    mon

    ceph-mon03

    10.255.208.9

    -

    mon

    ceph-osd01

    10.255.208.11

    192.168.2.1

    osd

    双网卡,3*100GB

    ceph-osd02

    10.255.208.12

    192.168.2.2

    osd

    双网卡,3*100GB

    ceph-osd03

    10.255.208.14

    192.168.2.3

    osd

    双网卡,3*100GB

    ceph-osd04

    10.255.208.16

    192.168.2.4

    osd

    双网卡,3*100GB

    ceph-client01

    10.255.208.17

    -

    client

    ceph-client02

    10.255.208.18

    -

    client

    二、初始化系统

    注:如未另行注明,下面配置到所有主机上

    1、设置主机名

       hostnamectl set-hostname ceph-admin

         

      2、配置IP地址

     nmcli connection modify System\ ens192 ipv4.method manual ipv4.addresses 10.255.208.11/24 ipv4.gateway 10.255.208.254 ipv4.dns 10.0.1.1 connection.autoconnect yes

      OSD节点配置cluster_IP地址

        修改网卡的连接名称(con-name)

     nmcli connection modify Wired\ connection\ 1 con-name  ens224

      nmcli connection show

      nmcli connection modify ens224  ipv4.method manual ipv4.addresses 192.168.2.1/24 connection.autoconnect yes

    3、关闭防火墙,selinux

      systemctl stop firewalld && systemctl disable firewalld

      setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && getenforce

     

    4、修改 /etc/hosts文件,进行本地解析。

    注: 解析的IP是public_IP

    cp /etc/hosts /etc/hosts.back

    cat > /etc/hosts <

        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

        ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

        

        10.255.208.1      ceph-admin

        10.255.208.2      ceph-mon01

        10.255.208.4      ceph-mon02

        10.255.208.9      ceph-mon03

        10.255.208.11     ceph-osd01

        10.255.208.12      ceph-osd02

        10.255.208.14      ceph-osd03

        10.255.208.16      ceph-osd04

        10.255.208.17      ceph-client01

        10.255.208.18      ceph-client02

    EOF

    5、修改DNS文件

    echo "nameserver  10.0.1.1" >> /etc/resolv.conf

    systemctl restart network

    ping -c 3 www.baidu.com

    6、配置主机时间同步

    配置ntp服务,保证集群服务器时间统一

    统一时间非常重要,必须要做

    大前提:chrony服务端客户端配置完后,重启chronyd服务即可快速完成时间同步,在这之后就不要再手动去修改时间了,一切让时间服务器自己去同步

    chrony服务端ceph-admin节点

    # 1、安装

    yum -y install chrony

    # 2、修改配置文件

    mv /etc/chrony.conf /etc/chrony.conf.bak

    cat > /etc/chrony.conf << EOF

    server ntp1.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp2.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp3.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp4.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp5.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp6.aliyun.com iburst minpoll 4 maxpoll 10

    server ntp7.aliyun.com iburst minpoll 4 maxpoll 10

    driftfile /var/lib/chrony/drift

    makestep 10 3

    rtcsync

    allow 0.0.0.0/0

    local stratum 10

    keyfile /etc/chrony.keys

    logdir /var/log/chrony

    stratumweight 0.05

    noclientlog

    logchange 0.5        ​

    EOF

    # 4、启动chronyd服务

      # 最好重启,这样无论原来是否启动都可以重新加载配置

    systemctl restart chronyd.service && systemctl enable chronyd.service &&        systemctl status chronyd.service

    chrony客户端:其他节点,完全一样的配置与操作

    chrony客户端:除ceph-admin节点的其他节点

     

      # 下述步骤一次性粘贴到每个客户端执行即可

    # 1、安装chrony

    yum -y install chrony

    # 2、需改客户端配置文件

    mv /etc/chrony.conf /etc/chrony.conf.bak

    cat > /etc/chrony.conf << EOF

    server ceph-admin iburst

    driftfile /var/lib/chrony/drift

    makestep 10 3

    rtcsync

    local stratum 10

    keyfile /etc/chrony.key

    logdir /var/log/chrony

    stratumweight 0.05

    noclientlog

    logchange 0.5

    EOF

    # 3、启动chronyd

    systemctl restart chronyd.service && systemctl enable chronyd.service &&systemctl status chronyd.service

    7、添加节点信任关系,免密连接

        ssh-keygen -t rsa

        for i in {1..3}; do  ssh-copy-id ceph-client0$i; done

    三、 安装ceph-ansible

    1、ceph-admin节点安装 pip和ansible、git

    注:ceph版本与ansible版本对应关系

    ceph-ansible — ceph-ansible documentation

    Releases

    stable-6.0 Supports Ceph version pacific. This branch requires Ansible version 2.10.

    stable-7.0 Supports Ceph version quincy. This branch requires Ansible version 2.12.

    main Supports the main (devel) branch of Ceph. This branch requires Ansible version 2.12.

    ansible官网安装文档

    Installing Ansible on specific operating systems — Ansible Documentation

    yum install -y git epel-release

    yum install -y ansible

    ansible --version

    2、部署ceph集群

    这里我选择安装的是ceph quincy版本

    git clone https://github.com/ceph/ceph-ansible.git

    cd ceph-ansible/

    git checkout stable-6.0

    pip install -r requirements.txt

    ###if you see an error like No module named pip, you’ll need to install pip under your chosen Python interpreter before proceeding. This may mean installing an additional OS package (for example, python3-pip), or installing the latest pip directly from the Python Packaging Authority by running the following:

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

    python3 get-pip.py --user

    python3 -m pip install -r requirements.txt

    ###Successfully installed ansible-2.10.7 ansible-base-2.10.17 importlib-resources-5.4.0 netaddr-0.8.0 packaging-21.3 pyparsing-3.0.9 zipp-3.6.0

    4、备份修改/etc/ansible/hosts文件,

    cd /etc/ansible/

    cp hosts  hosts.back

    cat >> /etc/ansible/hosts <

    [mons]

    ceph-mon0[1:3]

    [osds]

    ceph-osd0[1:4]

    [mgrs]

    ceph-mon0[1:3]

    [mdss]

    ceph-mon0[1:3]

    [clients]

    ceph-client0[1:2]

    [rgws]

    ceph-mon0[1:3]

    [grafana-server]

    ceph-mon01

    EOF

    5、检查ansible连接服务器

    ansible -m ping all

    6、备份group_vars下的yml文件

    cd ceph-ansible/group_vars

    for file in *;do cp $file ${file%.*};done

    7、修改group_vars/all.yml配置

    cat > all.yml <

    ---

    dummy:

    mon_group_name: mons

    osd_group_name: osds

    rgw_group_name: rgws

    mds_group_name: mdss

    client_group_name: clients

    mgr_group_name: mgrs

    grafana_server_group_name: grafana-server

    configure_firewall: False

    ceph_origin: repository

    ceph_repository: community

    ceph_mirror: ceph安装包下载_开源镜像站-阿里云

    ceph_stable_key: http://mirrors.aliyun.com/ceph/keys/release.asc

    ceph_stable_release: pacific

    ceph_stable_repo: "{{ ceph_mirror }}/rpm-{{ ceph_stable_release }}"

    public_network: "10.255.208.0/24"

    cluster_network: "192.168.2.0/24"

    monitor_interface: ens192

    monitor_address_block: 10.255.208.0/24

    ip_version: ipv4

    osd_auto_discovery: true

    osd_objectstore: bluestroe

    radosgw_interface: ens192

    dashboard_admin_password: asd123456

    grafana_admin_password: admin

    pg_autoscale_mode: True

    dashboard_enabled: false

     EOF

    8、修改group_vars/osdo.yml配置

    devices:

      - /dev/sdb

      - /dev/sdc

      - /dev/sdd

    9、修改site.yml配置

    [root@ceph-admin ceph-ansible]# pwd

    /root/ceph-ansible

     cp site.yml.sample site.yml

    [root@ceph-admin ceph-ansible]# cat site.yml

    - hosts:

      - mons

      - osds

      - mdss

      - rgws

        #  - nfss

        #- rbdmirrors

      - clients

      - mgrs

        #- iscsigws

      - monitoring

        #- rgwloadbalancers

    10、开始进行安装

    ansible-playbook -i /etc/ansible/hosts site.yml

    11、检查ceph状态

    root@ceph-mon01 ~]# ceph -s

      cluster:

        id:     74cd55a1-69c2-4114-b73b-a90cf504eda9

        health: HEALTH_OK

      services:

        mon: 3 daemons, quorum ceph-mon01,ceph-mon02,ceph-mon03 (age 4h)

        mgr: ceph-mon01(active, since 2d), standbys: ceph-mon03, ceph-mon02

        mds: 1/1 daemons up, 2 standby

        osd: 12 osds: 12 up (since 99m), 12 in (since 2d)

        rgw: 3 daemons active (3 hosts, 1 zones)

      data:

        volumes: 1/1 healthy

        pools:   7 pools, 169 pgs

        objects: 247 objects, 9.6 KiB

        usage:   2.0 GiB used, 1.2 TiB / 1.2 TiB avail

        pgs:     169 active+clean

      io:

        client:   95 KiB/s rd, 0 B/s wr, 95 op/s rd, 63 op/s wr

      progress:

        Global Recovery Event (10s)

          [===========================.]

  • 相关阅读:
    2022年史上最全Java面试题:数据结构+算法+JVM+线程+finalize+GC
    PostgreSQL数据库缓冲区管理器——本地缓冲区管理
    JS中this的绑定规则
    Redis的集群方案
    动态规划习题——
    大数据技术之HBase+Redis详解
    《SpringBoot 手册》:国际化组件 MessageSource
    【网络】网络编程套接字(一)
    建木×GitLink,解锁高效开发新体验
    【PG】PostgreSQL 模式(Schema)
  • 原文地址:https://blog.csdn.net/fq3758/article/details/128149583