名前

vfs_aio_linux — Linux カーネルの AIO 呼び出しを用いて非同期 I/O を実装する

書式

vfs objects = aio_linux

説明

このVFSモジュールは samba(7)システムの一部である。

vfs_aio_linux VFS モジュールは、カーネル AIO 呼び 出しが有効な Linux カーネル上で、 POSIX AIO インターフェイスを使用せずに Samba の非同期 I/O を有効にするためのものである。 POSIX AIO は、致命的な制約に悩まされることが多い。たとえば、ある バージョンの Linux では、高負荷な環境でリアルタイムのシグナルを 使用すると、問題が発生する。別のシステムでは、 AIO の使用に際して 特殊なカーネルモジュールのロードが必要であったり、システム全体で スケジュールされている非同期リクエスト数に制約があったりする。 glibc ベースのシステム (大半の Linux システム) では、ファイル記述子 あたり、 1 つの処理待ちリクエストしか許可されない。

こうした制約を回避するために、 aio_linux モジュールが作られた。 このモジュールは、読み取りと書き込みの呼び出しを非同期に処理するため、 内蔵の POSIX AIO インターフェイスに代わって、Linux カーネルの AIO インターフェイスを使用する。 イベントのキューサイズは 128 がデフォルトである。この制限を変更する 際には、以下で説明する aio num events パラメーターを設定すること。

このモジュールを有効にする際には、 smb.conf パラメーターの aio read sizeaio write size も適切に設定する必要がある。

このモジュールは、 Samba VFS の pread と pwrite インターフェイスが スレッドセーフでないため、モジュールスタックの最後に配置すること。 このモジュールは、 pread と pwrite システムコールを直接呼び出し、 Samba VFS の pread と pwrite インターフェイスは使用しない。

使用例

簡単な使い方:

        [cooldata]
	path = /data/ice
	aio read size = 1024
	aio write size = 1024
	vfs objects = aio_linux

オプション

aio_linux:aio num events = INTEGER

処理待ちの I/O リクエストを制限するための、 イベントキューの 最大値を設定する。

デフォルトは 128 である。

バージョン

このマニュアルページは、バージョン 4.0 のSambaシステム用である。

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team に よって、Linuxカーネルの開発と同様のオープンソースプロジェクト として開発が行なわれている。

日本語訳

このマニュアルページは、Samba 4.0.6 - 4.6.6 対応のものである。

このドキュメントの翻訳は

  • 太田俊哉 (ribbon@samba.gr.jp)

  • たかはしもとのぶ (monyo@samba.gr.jp)

によって行なわれた。