BeeGFS

提供: ArchWiki
ナビゲーションに移動 検索に移動
この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: Some general style violations, sections do not use sentence case, duplicating of content (議論: トーク:BeeGFS#)

関連記事

BeeGFS は、分散型、耐障害性、高度に設定可能で、良好なパフォーマンスと高い信頼性を持つことに焦点を当てたスケーラブルなネットワーク・ストレージプラットフォームです。BeeGFS は非常に設定可能であり、管理者はシステムのほぼすべての側面を制御できます。コマンドラインインターフェイスがクラスタの監視と制御に使用されます。

Wikipedia より:

BeeGFS(以前は FhGFS)は、高性能コンピューティングのために開発および最適化された並列ファイルシステムです。BeeGFS には、スケーラビリティと柔軟性のための分散メタデータアーキテクチャが含まれています。最も重要な側面はデータスループットです。BeeGFS は、Sven Breuner を中心としたチームによって、元々ドイツの Fraunhofer Center for High Performance Computing で開発されました。その後、彼は 2014 年に設立された BeeGFS を維持し、プロフェッショナルサービスを提供するスピンオフ企業である ThinkParQ の CEO になりました。

BeeGFS.io より:

BeeGFS は、パフォーマンスに強い焦点を当てて開発され、非常に簡単なインストールと管理を目指して設計された、業界をリードする並列クラスタファイルシステムです。I/O に集中したワークロードが問題である場合、BeeGFS が解決策です。

用語

ヒント: 公式ドキュメント に完全な用語集が用意されています。
ノードタイプと説明 パッケージ
管理サーバー (1ノード)
  • 設定とグループメンバーシップを管理
  • サービス開始時に他のノードによってホスト名または IP アドレスが知られている必要がある
beegfs-mgmtdAUR
メタデータサーバー (少なくとも1ノード)
  • ディレクトリ情報を保存し、ストレージサーバー上のファイルスペースを割り当てる
beegfs-metaAUR
ストレージサーバー (少なくとも1ノード)
  • 生ファイルの内容を保存
beegfs-storageAUR
InfluxDB / Grafana ベースのモニタリングサーバー (オプション)
  • サーバーの継続的な監視
  • ライブ統計
  • beegfs-admon (Java ベースの管理および監視 GUI) は、同じサーバーにインストールしてはならない
beegfs-monAUR
管理者用 BeeGFS ユーティリティ
  • beegfs-ctl コマンドライン管理ツール
  • beegfs-fsck ファイルシステムチェックツール
  • ロギングおよび DNS ルックアップ機能などのいくつかの小さなヘルパースクリプト
beegfs-utilsAUR
BeeGFS Common
  • すべてのパッケージに共通のファイル
  • libbeegfs-ib を通じて、OpenFabrics IBVerbs API に基づく rdma-core のリモートダイレクトメモリアクセスサポートを有効にする。
beegfs-commonAUR
クライアント
  • ファイルシステムをマウントするカーネルモジュール
  • ロギングと ホストネーム解決のためのユーザースペースヘルパーデーモンが必要
beegfs-clientAUR

ここで説明されている無料でオープンソースなパッケージに加えて、BeeGFS は、エンタープライズ向け機能とプロフェッショナルサポート も提供しており、以下が含まれます。

  • 高可用性
  • クォータの適用
  • アクセス制御リスト (ACL)
  • ストレージプール
  • BeeOND によるバーストバッファ機能
警告: BeeGFS のサーバーコンポーネントはユーザースペースデーモンですが、クライアントはネイティブカーネルモジュールです。BeeGFS v7.1.3 の最新バージョンは、カーネル 4.19.x までのサポートがあります。 そのため、beegfs-clientAUR PKGBUILD には、クライアントソースビルドファイルに対する多数のアドホックパッチが含まれています。 これにより、クライアントのカーネルモジュールの不安定性が生じる可能性があります。

Installation

Example cluster deployment

The following hardware configuration will be used in this example:

Hostname IP Address Description
node01 192.168.0.1 Management Server and Monitoring (optional) Server
node02 192.168.0.2 Metadata Server
node03 192.168.0.3 Storage Server
node04 192.168.0.4 Client
ヒント: One if free to choose the option of using dedicated hosts for all BeeGFS services. BeeGFS allows running any combination of services (including client and storage/metadata service) on the same machine. Especially the management and mon daemons are not performance-critical and thus are typically not running on dedicated machines.

NTP client

Install and run a time synchronization client on all the nodes. See Time synchronization for details.

ノート: It is strongly recommended to synchronize the clocks on all cluster nodes to prevent clock drift (see System time#Time skew for details), which can degrade the performance of your cluster or stop it from functioning altogether. The official documentation recommends that nodes run some form of clock synchronization.

Management server

Install it with the package beegfs-mgmtdAUR on the management node 192.168.0.1.

The management service needs to know where it can store its data. It will only store some node information like connectivity data, so it will not require much storage space and its data access is not performance critical. Thus, this service is typically not running on a dedicated machine.

/etc/beegfs/beegfs-mgmtd
storeMgmtdDirectory = /mnt/beegfs/beegfs-mgmtd

Start/enable the beegfs-mgmtd@node01.service on the management node.

Monitoring server

Install the package beegfs-monAUR on the management/monitoring node 192.168.0.1, which collects statistics from the system and provides them to the user using a time series database InfluxDB. For visualization of the data beegfs-mon provides predefined Grafana panels that can be used out of the box.

Before running beegfs-mon, you need to edit the configuration file /etc/beegfs/beegfs-mon.conf. If you have everything installed on the same host, you only need to specify the management host:

/etc/beegfs/beegfs-mon.conf
sysMgmtHost = localhost
ヒント: If your InfluxDB is installed on another host, say the client for example or you need to use a different database port or name, you also need to modify the corresponding entries:
/etc/beegfs/beegfs-mon.conf
dbHostName = node04
dbHostPort = 9096
dbHostName = beegfs_mon_client

Start/enable the beegfs-mon@node01.service on the management/monitoring node.

Configuration of default Grafana panels

You can use the provided installation script for default InfluxDB and Grafana deployments on the same host.

# cd /etc/beegfs/grafana
# ./import-dashboards default

Accessing Grafana panels

Access the application on localhost, e.g.: http://127.0.0.1:3000 . Refer to Custom Grafana Panel Configuration for non-default installations and for the Reference to All Metrics monitored.

ノート: Different services on the same machine cannot share the same storage directory, so different directories have to be used, i.e. /mnt/beegfs/beegfs-mgmtd for management servers and /mnt/beegfs/beegfs-mon for monitoring servers.

Metadata server

Install the package beegfs-metaAUR on the metadata server(s), i.e. 192.168.0.2.

The metadata service needs to know where it can store its data and where the management service is running. Typically, one will have multiple metadata services running on different machines.

/etc/beegfs/beegfs-meta.conf
sysMgmtdHost = node01
storeMetaDirectory = /mnt/beegfs/beegfs-meta

Start/enable the beegfs-meta@node02.service on the metadata node.

Storage server

Install the package beegfs-storageAUR on the storage server(s), i.e. 192.168.0.3.

The storage service needs to know where it can store its data and how to reach the management server. Typically, one will have multiple storage services running on different machines and/or multiple storage targets (e.g. multiple RAID volumes) per storage service.

/etc/beegfs/beegfs-storage.conf
sysMgmtdHost = node01
storeStorageDirectory = /mnt/beegfs/beegfs-storage

Start/enable the beegfs-storage@node03.service on the storage node.

Client

Install the package beegfs-clientAUR on the client node, which will build the client Kernel module.

The client service needs to know where it can reach the management server.

/etc/beegfs/beegfs-client.conf
sysMgmtdHost = node01

The client service needs to know where it can mount the cluster storage, as well as the location of the client configuration file.

/etc/beegfs/beegfs-mount.conf
/mnt/beegfs/beegfs-mount /etc/beegfs/beegfs-client.conf

Load the Kernel module and its dependencies.

# modprobe beegfs

Start/enable the beegfs-helperd@node04.service on the client node.

Start/enable the beegfs-client.service on the client node.

Utilities

Install the package beegfs-utilsAUR.

ヒント: Best to install on either the management server or client node, or both. For the purposes of this example the client node is used.

Check connectivity

Check the detected network interfaces and transport protocols from a client node with the following commands:

# beegfs-ctl --listnodes --nodetype=mgmt --nicdetails 
  node01 [ID: 1]
    Ports: UDP: 8008; TCP: 8008
    Interfaces: 
    + enp0s31f6[ip addr: 192.168.0.1; type: TCP]
# beegfs-ctl --listnodes --nodetype=meta --nicdetails 
  node02 [ID: 2]
    Ports: UDP: 8005; TCP: 8005
    Interfaces: 
    + eno1[ip addr: 192.168.0.2; type: TCP]
# beegfs-ctl --listnodes --nodetype=storage --nicdetails 
  node03 [ID: 3]
    Ports: UDP: 8003; TCP: 8003
    Interfaces: 
    + eno1[ip addr: 192.168.0.3; type: TCP]
# beegfs-ctl --listnodes --nodetype=client --nicdetails 
  4E451-5DAEDCBF-node04 [ID: 4]
    Ports: UDP: 8004; TCP: 0
    Interfaces: 
    + wlo1[ip addr: 192.168.0.4; type: TCP]

Server tuning and advanced features

この記事またはセクションは加筆を必要としています。
理由: Empty sections (議論: トーク:BeeGFS#)

InfiniBand Support

ACLs

Storage Pools

Quota Enforcement

High Availability

See also