3.4. 节点部署前的要求


在安装 Red Hat Ceph Storage 集群前,请执行以下步骤来满足所有需要的要求。

  1. 将所有节点注册到 Red Hat Network 或 Red Hat Satellite 中,并订阅到有效的池:

    subscription-manager register
    subscription-manager subscribe --pool=8a8XXXXXX9e0
  2. 为以下软件仓库启用 Ceph 集群中的所有节点的访问权限:

    • rhel-8-for-x86_64-baseos-rpms
    • rhel-8-for-x86_64-appstream-rpms

      subscription-manager repos --disable="*" --enable="rhel-8-for-x86_64-baseos-rpms" --enable="rhel-8-for-x86_64-appstream-rpms"
  3. 如果需要,将操作系统 RPM 更新至最新版本并重新引导:

    dnf update -y
    reboot
  4. 从集群中选择节点作为 bootstrap 节点。ceph1 是本例中的 bootstrap 节点。

    仅在 bootstrap 节点 ceph1 上,启用 ansible-2.9-for-rhel-8-x86_64-rpmsrhceph-5-tools-for-rhel-8-x86_64-rpms 存储库:

    subscription-manager repos --enable="ansible-2.9-for-rhel-8-x86_64-rpms" --enable="rhceph-5-tools-for-rhel-8-x86_64-rpms"
  5. 在所有主机中使用裸机/短主机名配置主机名

    hostnamectl set-hostname <short_name>
  6. 使用 cephadm 验证用于部署红帽 Ceph 存储的主机名配置。

    $ hostname

    输出示例:

    ceph1
  7. 使用 DNS 域名设置 DOMAIN 变量,修改 /etc/hosts 文件并将 fqdn 条目添加到 127.0.0.1 IP。

    DOMAIN="example.domain.com"
    
    cat <<EOF >/etc/hosts
    127.0.0.1 $(hostname).${DOMAIN} $(hostname) localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1       $(hostname).${DOMAIN} $(hostname) localhost6 localhost6.localdomain6
    EOF
  8. 使用 hostname -f 选项通过 fqdn 检查长主机名。

    $ hostname -f

    输出示例:

    ceph1.example.domain.com

    注: 要了解更多有关需要这些更改的信息,请参阅完全限定域名和裸机主机名

  9. 在 bootstrap 节点上执行以下步骤。在我们的示例中,bootstrap 节点为 ceph1

    1. 安装 cephadm-ansible RPM 软件包:

      $ sudo dnf install -y cephadm-ansible
      重要

      要运行 ansible playbook,您必须有 ssh 免密码访问配置 Red Hat Ceph Storage 集群的所有节点。确保配置的用户(如 deployment-user)具有可调用 sudo 命令的 root 特权,而无需输入密码。

    2. 要使用自定义密钥,请配置所选用户(如 deployment-user)ssh 配置文件以指定将用于通过 ssh 连接到节点的 id/key:

      cat <<EOF > ~/.ssh/config
      Host ceph*
         User deployment-user
         IdentityFile ~/.ssh/ceph.pem
      EOF
    3. 构建 ansible 清单

      cat <<EOF > /usr/share/cephadm-ansible/inventory
      ceph1
      ceph2
      ceph3
      ceph4
      ceph5
      ceph6
      ceph7
      [admin]
      ceph1
      EOF
      注意

      作为清单文件的 [admin] 组配置的主机将 cephadm 将标记为 _admin,因此它们会在 bootstrap 过程中收到 admin ceph 密钥环。

    4. 在运行 pre-flight playbook 前,验证 ansible 是否可以使用 ping 模块访问所有节点。

      $ ansible -i /usr/share/cephadm-ansible/inventory -m ping all -b

      输出示例:

      ceph6 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph4 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph3 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph2 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph5 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph1 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
      ceph7 | SUCCESS => {
          "ansible_facts": {
              "discovered_interpreter_python": "/usr/libexec/platform-python"
          },
          "changed": false,
          "ping": "pong"
      }
    5. 运行以下 ansible playbook。

      $ ansible-playbook -i /usr/share/cephadm-ansible/inventory /usr/share/cephadm-ansible/cephadm-preflight.yml --extra-vars "ceph_origin=rhcs"

      preflight playbook Ansible playbook 配置 Red Hat Ceph Storage dnf 存储库,并准备存储集群以进行引导。它还安装 podman、lvm2、chronyd 和 cephadm。cephadm-ansiblecephadm-preflight.yml 的默认位置为 /usr/share/cephadm-ansible

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.