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. 부트스트랩 노드가 될 클러스터에서 노드를 선택합니다. 이 예에서 ceph1 은 부트스트랩 노드입니다.

    부트스트랩 노드 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. 모든 호스트의 베어/short 호스트 이름을 사용하여 호스트 이름을 구성합니다.

    hostnamectl set-hostname <short_name>
  6. cephadm을 사용하여 Red Hat Ceph Storage를 배포하기 위한 호스트 이름 구성을 확인합니다.

    $ hostname

    출력 예:

    ceph1
  7. /etc/hosts 파일을 수정하고 DNS 도메인 이름으로 DOMAIN 변수를 설정하여 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. 부트스트랩 노드에서 다음 단계를 실행합니다. 이 예제에서 부트스트랩 노드는 ceph1 입니다.

    1. cephadm-ansible RPM 패키지를 설치합니다.

      $ sudo dnf install -y cephadm-ansible
      중요

      Ansible 플레이북을 실행하려면 Red Hat Ceph Storage 클러스터에 구성된 모든 노드에 ssh 암호 없이 액세스할 수 있어야 합니다. 구성된 사용자(예: deployment-user)에 암호 없이 sudo 명령을 호출할 수 있는 루트 권한이 있는지 확인합니다.

    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 으로 태그가 지정되어 부트스트랩 프로세스 중에 관리자 ceph 인증 키를 수신합니다.

    4. ansible 이 pre-flight 플레이북을 실행하기 전에 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 플레이북을 실행합니다.

      $ 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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.