BeeGFS 클라이언트를 구축합니다
선택적으로 Ansible을 사용하여 BeeGFS 클라이언트를 구성하고 파일 시스템을 마운트할 수 있습니다.
개요
BeeGFS 파일 시스템을 액세스하려면 파일 시스템을 마운트해야 하는 각 노드에서 BeeGFS 클라이언트를 설치 및 구성해야 합니다. 이 섹션에서는 사용 가능한 를 사용하여 이러한 작업을 수행하는 방법을 설명합니다 "Ansible 역할".
단계
클라이언트 인벤토리 파일을 생성합니다
-
필요한 경우, Ansible 제어 노드에서 BeeGFS 클라이언트로 구성하려는 각 호스트에 대해 암호 없는 SSH를 설정합니다.
ssh-copy-id <user>@<HOSTNAME_OR_IP>
-
아래에서
host_vars/`에서 각 BeeGFS 클라이언트에 대한 파일을 생성합니다 `<HOSTNAME>.yml
다음 콘텐츠를 사용하여 환경에 맞는 올바른 정보로 자리 표시자 텍스트를 입력합니다.# BeeGFS Client ansible_host: <MANAGEMENT_IP>
-
선택적으로 NetApp E-Series 호스트 컬렉션의 역할을 사용하여 클라이언트가 BeeGFS 파일 노드에 연결할 수 있도록 InfiniBand 또는 이더넷 인터페이스를 구성하려면 다음 중 하나를 포함합니다.
-
네트워크 유형이 인 경우 "InfiniBand(IPoIB 사용)":
eseries_ipoib_interfaces: - name: <INTERFACE> # Example: ib0 or i1b address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
네트워크 유형이 인 경우 "RoCE(RDMA over Converged Ethernet)":
eseries_roce_interfaces: - name: <INTERFACE> # Example: eth0. address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
네트워크 유형이 인 경우 "이더넷(TCP 전용, RDMA 없음)":
eseries_ip_interfaces: - name: <INTERFACE> # Example: eth0. address: <IP/SUBNET> # Example: 100.127.100.1/16 - name: <INTERFACE> # Additional interfaces as needed. address: <IP/SUBNET>
-
-
새 파일을 만듭니다
client_inventory.yml
그리고 Ansible이 각 클라이언트에 연결하는 데 사용해야 하는 사용자 지정과 Ansible이 권한 에스컬레이션을 위해 사용해야 하는 암호(이 경우 필요)를 지정합니다ansible_ssh_user
루트 또는 sudo 권한 보유):# BeeGFS client inventory. all: vars: ansible_ssh_user: <USER> ansible_become_password: <PASSWORD>
암호를 일반 텍스트로 저장하지 마십시오. 대신 Ansible Vault를 사용하십시오(참조 "Ansible 설명서" Ansible Vault로 콘텐츠 암호화)를 사용하거나 을 사용합니다 --ask-become-pass
옵션을 클릭합니다. -
에 있습니다
client_inventory.yml
File(파일): 에 BeeGFS 클라이언트로 구성해야 하는 모든 호스트를 나열합니다beegfs_clients
그룹화한 다음 인라인 주석을 참조하여 시스템에서 BeeGFS 클라이언트 커널 모듈을 구축하는 데 필요한 추가 구성을 제거합니다.children: # Ansible group representing all BeeGFS clients: beegfs_clients: hosts: <CLIENT HOSTNAME>: # Additional clients as needed. vars: # OPTION 1: If you’re using the NVIDIA OFED drivers and they are already installed: #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role. #beegfs_client_ofed_enable: True #beegfs_client_ofed_include_path: "/usr/src/ofa_kernel/default/include" # OPTION 2: If you’re using inbox IB/RDMA drivers and they are already installed: #eseries_ib_skip: True # Skip installing inbox drivers when using the IPoIB role. # OPTION 3: If you want to use inbox IB/RDMA drivers and need them installed/configured. #eseries_ib_skip: False # Default value. #beegfs_client_ofed_enable: False # Default value.
NVIDIA OFED 드라이버를 사용하는 경우 beegfs_client_OFED_include_path가 Linux 설치에 대한 올바른 "헤더 포함 경로"를 가리키는지 확인하십시오. 자세한 내용은 의 BeeGFS 설명서를 "RDMA 지원"참조하십시오. -
에 있습니다
client_inventory.yml
파일, 이전에 정의한 모든 파일 아래에 마운트할 BeeGFS 파일 시스템을 나열합니다vars
:beegfs_client_mounts: - sysMgmtdHost: <IP ADDRESS> # Primary IP of the BeeGFS management service. mount_point: /mnt/beegfs # Path to mount BeeGFS on the client. connInterfaces: - <INTERFACE> # Example: ibs4f1 - <INTERFACE> beegfs_client_config: # Maximum number of simultaneous connections to the same node. connMaxInternodeNum: 128 # BeeGFS Client Default: 12 # Allocates the number of buffers for transferring IO. connRDMABufNum: 36 # BeeGFS Client Default: 70 # Size of each allocated RDMA buffer connRDMABufSize: 65536 # BeeGFS Client Default: 8192 # Required when using the BeeGFS client with the shared-disk HA solution. # This does require BeeGFS targets be mounted in the default “sync” mode. # See the documentation included with the BeeGFS client role for full details. sysSessionChecksEnabled: false # Specify additional file system mounts for this or other file systems.
-
BeeGFS 7.2.7 및 7.3.1부터 "연결 인증"구성하거나 명시적으로 사용하지 않도록 설정해야 합니다. 를 지정할 때 연결 기반 인증을 구성하는 방법에 따라 "공통 파일 노드 구성"클라이언트 구성을 조정해야 할 수도 있습니다.
-
기본적으로 HA 클러스터 배포는 연결 인증을 자동으로 구성하고 를 생성합니다
connauthfile
이 정보는 에서 Ansible 제어 노드에 배치/유지됩니다<INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile
. 기본적으로 BeeGFS 클라이언트 역할은 에 정의된 클라이언트에 이 파일을 읽고 배포하도록 설정되어 있습니다 `client_inventory.yml`추가 조치가 필요하지 않습니다.-
고급 옵션은 에 포함된 기본값 전체 목록을 참조하십시오 "BeeGFS 클라이언트 역할입니다".
-
-
을 사용하여 사용자 지정 암호를 지정하도록 선택한 경우
beegfs_ha_conn_auth_secret
에서 지정합니다client_inventory.yml
파일 또한:beegfs_ha_conn_auth_secret: <SECRET>
-
을 사용하여 연결 기반 인증을 완전히 사용하지 않도록 선택하는 경우
beegfs_ha_conn_auth_enabled`에서 를 지정합니다 `client_inventory.yml
파일 또한:beegfs_ha_conn_auth_enabled: false
-
지원되는 매개 변수의 전체 목록과 추가 세부 정보는 를 참조하십시오 "전체 BeeGFS 클라이언트 문서". 클라이언트 인벤토리의 전체 예제를 보려면 을 클릭합니다 "여기".
BeeGFS Client Playbook File을 생성합니다
-
새 파일을 만듭니다
client_playbook.yml
# BeeGFS client playbook. - hosts: beegfs_clients any_errors_fatal: true gather_facts: true collections: - netapp_eseries.beegfs - netapp_eseries.host tasks:
-
선택 사항: NetApp E-Series Host Collection의 역할을 사용하여 클라이언트가 BeeGFS 파일 시스템에 연결할 수 있도록 인터페이스를 구성하려면 구성 중인 인터페이스 유형에 해당하는 역할을 가져옵니다.
-
InfiniBand(IPoIB)를 사용하는 경우:
- name: Ensure IPoIB is configured import_role: name: ipoib
-
RoCE(RDMA over Converged Ethernet)를 사용 중인 경우:
- name: Ensure IPoIB is configured import_role: name: roce
-
를 사용 중인 경우 이더넷(TCP 전용, RDMA 없음)을 사용합니다.
- name: Ensure IPoIB is configured import_role: name: ip
-
-
마지막으로 BeeGFS 클라이언트 역할을 가져와 클라이언트 소프트웨어를 설치하고 파일 시스템 마운트를 설정합니다.
# REQUIRED: Install the BeeGFS client and mount the BeeGFS file system. - name: Verify the BeeGFS clients are configured. import_role: name: beegfs_client
클라이언트 플레이북의 전체 예제를 보려면 을 클릭합니다 "여기".
BeeGFS Client Playbook을 실행합니다
클라이언트를 설치/구축하고 BeeGFS를 마운트하려면 다음 명령을 실행합니다.
ansible-playbook -i client_inventory.yml client_playbook.yml