Skip to main content
NetApp artificial intelligence solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Lustre HA 클러스터 및 클라이언트 배포

기여자 netapp-jsnyder

서버 운영 체제를 준비하고, NVIDIA DOCA-OFED를 설치하고, Lustre HA 클러스터를 배포하고, NetApp Ansible 플레이북을 사용하여 Lustre 클라이언트를 구성합니다.

시작하기 전에, "Lustre Ansible 인벤토리를 사용자 지정합니다"에 설명된 목록을 작성하고 안전하게 보관하십시오.

Lustre HA 클러스터 배포

단계
  1. 작업 복사본의 building_blocks/playbooks 디렉터리에서 Lustre 서버의 운영 체제를 준비합니다. `<inventory_path>`를 사용자 지정 인벤토리 디렉터리의 경로로 바꿉니다.

    ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml
  2. 각 Lustre 서버에 NVIDIA DOCA-OFED를 설치합니다. 이전 단계에서 설치한 커널을 기반으로 커널 모듈을 빌드합니다. 사용 중인 커널에 맞는 절차를 "NVIDIA DOCA-Host 설치 및 업그레이드"에서 따르십시오. 다음 예는 RHEL 또는 Rocky Linux에 DOCA-OFED를 설치하는 방법을 보여줍니다.

    1. DOCA 호스트 저장소 패키지를 설치하고 패키지 캐시를 새로 고칩니다. `<doca_host_package>`을 운영 체제 및 아키텍처에 맞는 DOCA 호스트 패키지로 교체합니다.

      dnf install -y wget tar
      wget https://www.mellanox.com/downloads/DOCA/<doca_host_package>.rpm
      rpm -i <doca_host_package>.rpm
      dnf clean all
      dnf makecache
    2. 실행 중인 커널용 DOCA 커널 모듈을 빌드합니다. 스크립트는 생성된 패키지의 경로를 출력합니다.

      dnf install -y doca-extra
      /opt/mellanox/doca/tools/doca-kernel-support
    3. 스크립트가 생성한 커널 모듈 저장소 패키지를 설치한 다음 패키지 캐시를 새로 고칩니다. `<doca_kernel_repo>`을 이전 단계의 경로로 바꾸십시오.

      rpm -Uvh <doca_kernel_repo>.rpm
      dnf makecache
    4. DOCA-OFED 사용자 공간, 커널 및 NVMe 패키지를 설치합니다. `<kernel_version>`을(를) 실행 중인 커널 버전으로 교체합니다.

      dnf install -y doca-ofed-userspace
      dnf install -y --disablerepo=doca doca-kernel-<kernel_version>
      dnf install -y kmod-mlnx-nvme
  3. 메인 배포 플레이북을 실행합니다.

    ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.yml
    참고 배포 규모에 따라 Ansible이 병렬로 구성할 호스트 수를 제어하려면 `--forks`을 조정합니다. 예를 들어, 더 큰 클러스터의 경우 `--forks 20`를 추가합니다.

플레이북은 E-Series 볼륨 그룹 또는 DDP 풀 및 볼륨을 프로비저닝하고, NVMe-oF 호스트 연결을 구성하고, Lustre 타겟을 포맷 및 마운트하고, LNet을 구성하고, 성능 튜닝을 적용하고, Pacemaker HA 리소스를 구성합니다.

참고 하나의 구성 요소로 이루어진 배포는 2노드 Pacemaker 클러스터를 구성합니다. 노드 A는 장애 조치 시 추가 투표권을 갖습니다. 2노드 클러스터에서 쿼럼을 달성하려면 qdevice 구성을 고려하십시오. 배포에 여러 구성 요소가 포함된 경우, 각 구성 요소는 문서에 명시된 클러스터 제한까지 더 큰 Pacemaker 클러스터에 2노드 서버 쌍을 제공합니다. "HA 관리 사용자 가이드"의 펜싱 및 쿼럼 구성을 검토하여 노드 장애 발생 시 클러스터가 안전하게 타겟을 복구할 수 있도록 하십시오.

Lustre 클라이언트 배포

클라이언트 배포 템플릿을 사용자 지정하고 클라이언트 플레이북을 실행하여 파일 시스템 액세스가 필요한 모든 시스템에 Lustre 클라이언트를 배포할 수 있습니다.

단계
  1. 호환되는 클라이언트 운영 체제와 커널을 "Lustre 지원 매트릭스"에서 선택하십시오. 해당 커널용 Lustre 클라이언트 패키지가 아직 설치되지 않은 경우 "netapp-lustre"에서 빌드 및 설치하십시오.

  2. 공유 passwords.yml 파일을 포함하여 clients 템플릿 디렉토리의 작업 복사본을 생성하고, 패브릭과 일치하는 템플릿을 선택합니다.

  3. 클라이언트에 맞게 lustre_client_inventory.yml, host_vars, 및 group_vars`를 사용자 지정하세요. 표의 줄 참조는 `ansible-lustre release/1.0.0 태그에 있는 RoCE 클라이언트 템플릿 파일을 가리킵니다. InfiniBand 클라이언트 템플릿은 별도로 명시된 경우를 제외하고 동일한 변수를 사용합니다.

    필드 Ansible 변수 템플릿 파일 (release/1.0.0) 범위 참고

    클라이언트 호스트

    lustre_clients

    "lustre_client_inventory.yml#L4"

    고객별

    각 클라이언트 호스트 이름을 나열합니다.

    클라이언트 SSH 사용자 및 비밀번호 되기

    ssh_client_user / ssh_client_become_pass

    "passwords.yml#L2"

    클러스터 전체

    SSH 사용자가 아닌 경우에만 become 비밀번호를 설정하십시오 root.

    LNet 인터페이스

    eseries_lustre_lnet

    "group_vars/all.yml#L7"

    클러스터 전체

    클라이언트 측 LNet 인터페이스 이름(L13의 값).

    마운트 MGS NID

    lustre_client_mounts.mgsnode

    "group_vars/all.yml#L17"

    클러스터 전체

    파일 시스템을 마운트하는 데 사용되는 MGS NID(L20의 값).

    파일 시스템 이름

    lustre_client_mounts.fsname

    "group_vars/all.yml#L21"

    클러스터 전체

    클러스터와 일치해야 합니다 fsname.

    마운트 포인트

    lustre_client_mounts.mount_point

    "group_vars/all.yml#L22"

    클러스터 전체

    클라이언트 마운트 디렉터리.

    클라이언트 관리 IP

    ansible_host

    "host_vars/client_01.yml#L4"

    고객별로 반복

    One host_vars/client_NN.yml 클라이언트당 파일 하나.

    스토리지 패브릭 인터페이스

    eseries_roce_interfaces

    "host_vars/client_01.yml#L10"

    고객별로 반복

    프런트엔드 인터페이스 주소(L15 값). InfiniBand 템플릿에서 `eseries_ipoib_interfaces`을(를) 사용합니다.

    각 클라이언트에 대해 설정을 반복합니다. 클라이언트별로 host_vars/client_NN.yml 파일을 하나씩 생성하고 해당 호스트를 lustre_client_inventory.yml`에 추가합니다. 공유 `clients/passwords.yml 파일에 데이터를 입력하고 클라이언트 플레이북을 실행하기 전에 Ansible Vault로 암호화합니다.

  4. 클라이언트 템플릿 디렉터리에서 클라이언트 플레이북을 실행합니다.

    ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml

클라이언트 플레이북은 클라이언트 네트워크 인터페이스와 LNet을 구성하고, Lustre 파일 시스템에 대한 영구적인 systemd 마운트 유닛을 생성할 수 있습니다.