使用方法: dfuse [OPTIONS] [mountpoint [pool container]]
選択肢:
-m --mountpoint=<path> Mount point to use (deprecated, use positional argument)
--pool=name pool UUID/label
--container=name container UUID/label
--path=<path> Path to load UNS pool/container data
--sys-name=STR DAOS system name context for servers
-S --singlethread Single threaded
-t --thread-count=count Total number of threads to use
-e --eq-count=count Number of event queues to use
-f --foreground Run in foreground
--enable-caching Enable all caching (default)
--enable-wb-cache Use write-back cache rather than write-through (default)
--disable-caching Disable all caching
--disable-wb-cache Use write-through rather than write-back cache
-o options mount style options string
--multi-user Run dfuse in multi user mode
-h --help Show this help
-v --version Show version
dfuse は、最初の位置引数として指定されたマウントポイント ディレクトリに DAOS POSIX コンテナのユーザー空間マウントを実行します。このディレクトリは存在し、ユーザーがアクセスできる必要があります。存在しない場合、マウントは失敗します。また、マウントポイント ディレクトリは -m
オプションまたは --mountpoint=
オプションで指定することもできますが、この使用方法は非推奨です。
DAOS プールとコンテナは、いくつかの方法で指定できます。プールとコンテナを指定する方法は 1 つだけ使用してください。
- DAOS プールとコンテナは、UUID またはラベルを使用して、コマンドラインで位置引数として明示的に指定できます。これは、dfuse を使用して POSIX コンテナをマウントする最も一般的な方法です。
- DAOS プールとコンテナは、
--pool
オプションと--container
オプションを使用して、UUID またはラベルでコマンドラインで明示的に指定できます。この使用方法は非推奨となり、位置引数の使用が推奨されています。 --path
オプションを使用すると、DAOS 名前空間属性(DAOS プールとコンテナ情報を含む)がそのファイル システム パスから読み込まれます。--path
オプションが使用されていない場合、マウントポイント ディレクトリもチェックされ、DAOS Namespace 属性が存在する場合はそこから読み込まれます。-o
マウント オプション文字列を使用する場合、マウント オプション文字列のpool=
キーとcontainer=
キーは DAOS プールとコンテナを識別します。これらの方法でプールとコンテナが指定されていない場合、dfuse は、dfuse を実行しているユーザーがパス名コンポーネントとしてアクセスできるすべてのプールと POSIX コンテナのプールとコンテナの UUID(ラベルではない)を使用して、マウントポイントの下にファイル システムのパス名を作成します。
- この方法でマウントされた POSIX コンテナのパスは、ディレクトリを
/mountpoint/pool_uuid/cont_uuid/
に変更するなどして、そのコンテナのルートにアクセスするために移動できます。 - ただし、/mountpoint/ ディレクトリの一覧表示はサポートされておらず、そこにマウントされているプールの UUID は表示されません。
- 同様に、ユーザーはディレクトリを
/mountpoint/pool_uuid/
ディレクトリに変更できますが、そのディレクトリを一覧表示することはできません。また、そこにマウントされているコンテナ UUID も表示されません。 fusermount3 -u /mountpoint
を実行すると、この方法でマウントされたすべての POSIX コンテナと/mountpoint/pool_uuid/
ディレクトリがマウント解除されます。
- この方法でマウントされた POSIX コンテナのパスは、ディレクトリを
スレッド処理とリソースの使用量:
dfuse には、カーネルからのリクエストを受け取って処理する fuse スレッドと、非同期の読み取り/書き込みオペレーションを完了する進行状況スレッドの 2 種類のスレッドがあります。
各非同期進行状況スレッドは、1 つの DAOS イベントキューを使用して追加のネットワーク リソースを使用します。すべてのメタデータ オペレーションがブロックするため、dfuse の同時実行レベルは、融合スレッドの数によって制限されます。
デフォルトでは、最大スループットを実現するために、使用可能なコアごとに 1 つのスレッドが作成されます。ハイパースレッディングが有効になっている場合、ハイパースレッド コアごとに 1 つのスレッドが使用されます。これは、numactl
などのツールを使用して cpuset で dfuse を実行するか、--thread-count
、--eq-count
、または --singlethread
オプションを使用して、使用可能なコア数を減らすという 2 つの方法で変更できます。
--thread-count
オプションは、スレッドの合計数を制御します。- 固定の
--thread-count
で--eq-count
オプションを増やすと、それに応じてヒューズ スレッドの数は減ります。--eq-count
のデフォルト値は1
です。 --singlethread
モードでは、1 つのスレッドがヒューズ リクエストの処理に使用され、2 つ目のスレッドが単一のイベントキューに使用されます。合計 2 つのスレッドが使用されます。
dfuse がバックグラウンド モードで実行されている場合(mpirun で起動しない限りデフォルト)、マウントがカーネルに登録されて適切なエラー レポートが可能になるまでフォアグラウンドに留まります。
-o
オプションは、fstab などを介して dfuse を実行するために使用でき、標準のマウント オプションを受け入れます。これは Key-Value ペアのカンマ区切りのリストとして扱われ、dfuse はこの文字列の pool=
キーと container=
キーを使用します。
キャッシングはデフォルトでオンになっています。dfuse マウントのキャッシュ動作は、コマンドライン オプションで制御できます。コンテナ属性を使用して、コンテナ単位でキャッシュ保存の詳細を制御できます。
--disable-caching
オプションを使用すると、キャッシュは実行されず、コンテナ属性は使用されません。デフォルトは--enable-caching
です。--disable-wb-cache
を使用する場合、マウント全体の書き込みオペレーションはライトスルー モードで実行され、コンテナ属性は引き続き使用されます。デフォルトは--enable-wb-cache
です。--disable-caching
と--enable-wb-cache
の両方が指定されている場合、--enable-wb-cache
オプションは無視され、キャッシュは保存されません。