Lustre HA 클러스터 및 클라이언트 배포
서버 운영 체제를 준비하고, NVIDIA DOCA-OFED를 설치하고, Lustre HA 클러스터를 배포하고, NetApp Ansible 플레이북을 사용하여 Lustre 클라이언트를 구성합니다.
시작하기 전에, "Lustre Ansible 인벤토리를 사용자 지정합니다"에 설명된 목록을 작성하고 안전하게 보관하십시오.
Lustre HA 클러스터 배포
-
작업 복사본의
building_blocks/playbooks디렉터리에서 Lustre 서버의 운영 체제를 준비합니다. `<inventory_path>`를 사용자 지정 인벤토리 디렉터리의 경로로 바꿉니다.ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml -
각 Lustre 서버에 NVIDIA DOCA-OFED를 설치합니다. 이전 단계에서 설치한 커널을 기반으로 커널 모듈을 빌드합니다. 사용 중인 커널에 맞는 절차를 "NVIDIA DOCA-Host 설치 및 업그레이드"에서 따르십시오. 다음 예는 RHEL 또는 Rocky Linux에 DOCA-OFED를 설치하는 방법을 보여줍니다.
-
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 -
실행 중인 커널용 DOCA 커널 모듈을 빌드합니다. 스크립트는 생성된 패키지의 경로를 출력합니다.
dnf install -y doca-extra /opt/mellanox/doca/tools/doca-kernel-support -
스크립트가 생성한 커널 모듈 저장소 패키지를 설치한 다음 패키지 캐시를 새로 고칩니다. `<doca_kernel_repo>`을 이전 단계의 경로로 바꾸십시오.
rpm -Uvh <doca_kernel_repo>.rpm dnf makecache -
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
-
-
메인 배포 플레이북을 실행합니다.
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 클라이언트를 배포할 수 있습니다.
-
호환되는 클라이언트 운영 체제와 커널을 "Lustre 지원 매트릭스"에서 선택하십시오. 해당 커널용 Lustre 클라이언트 패키지가 아직 설치되지 않은 경우 "netapp-lustre"에서 빌드 및 설치하십시오.
-
공유
passwords.yml파일을 포함하여clients템플릿 디렉토리의 작업 복사본을 생성하고, 패브릭과 일치하는 템플릿을 선택합니다.-
InfiniBand: "IB_lustre_cluster_clients"
-
-
클라이언트에 맞게
lustre_client_inventory.yml,host_vars, 및group_vars`를 사용자 지정하세요. 표의 줄 참조는 `ansible-lustrerelease/1.0.0태그에 있는 RoCE 클라이언트 템플릿 파일을 가리킵니다. InfiniBand 클라이언트 템플릿은 별도로 명시된 경우를 제외하고 동일한 변수를 사용합니다.필드 Ansible 변수 템플릿 파일 ( release/1.0.0)범위 참고 클라이언트 호스트
lustre_clients고객별
각 클라이언트 호스트 이름을 나열합니다.
클라이언트 SSH 사용자 및 비밀번호 되기
ssh_client_user/ssh_client_become_pass클러스터 전체
SSH 사용자가 아닌 경우에만 become 비밀번호를 설정하십시오
root.LNet 인터페이스
eseries_lustre_lnet클러스터 전체
클라이언트 측 LNet 인터페이스 이름(L13의 값).
마운트 MGS NID
lustre_client_mounts.mgsnode클러스터 전체
파일 시스템을 마운트하는 데 사용되는 MGS NID(L20의 값).
파일 시스템 이름
lustre_client_mounts.fsname클러스터 전체
클러스터와 일치해야 합니다
fsname.마운트 포인트
lustre_client_mounts.mount_point클러스터 전체
클라이언트 마운트 디렉터리.
클라이언트 관리 IP
ansible_host고객별로 반복
One
host_vars/client_NN.yml클라이언트당 파일 하나.스토리지 패브릭 인터페이스
eseries_roce_interfaces고객별로 반복
프런트엔드 인터페이스 주소(L15 값). InfiniBand 템플릿에서 `eseries_ipoib_interfaces`을(를) 사용합니다.
각 클라이언트에 대해 설정을 반복합니다. 클라이언트별로
host_vars/client_NN.yml파일을 하나씩 생성하고 해당 호스트를lustre_client_inventory.yml`에 추가합니다. 공유 `clients/passwords.yml파일에 데이터를 입력하고 클라이언트 플레이북을 실행하기 전에 Ansible Vault로 암호화합니다. -
클라이언트 템플릿 디렉터리에서 클라이언트 플레이북을 실행합니다.
ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml
클라이언트 플레이북은 클라이언트 네트워크 인터페이스와 LNet을 구성하고, Lustre 파일 시스템에 대한 영구적인 systemd 마운트 유닛을 생성할 수 있습니다.