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シリーズホストコレクションのロールを使用して、クライアントが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>
-
ネットワークタイプがの場合 "RDMA over Converged Ethernet(RoCE)":
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
rootにするか、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
ファイルに、の下で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
に配置/管理されます<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ファイルを作成します
-
新しいファイルを作成します
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シリーズホストコレクションのロールを使用して、クライアントがBeeGFSファイルシステムに接続するためのインターフェイスを設定する場合は、設定するインターフェイスタイプに対応するロールをインポートします。
-
InfiniBand(IPoIB)を使用している場合は、次の手順を実行します。
- name: Ensure IPoIB is configured import_role: name: ipoib
-
を使用している環境でRDMA over Converged Ethernet(RoCE)を使用している場合:
- 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