vfs_aio_linux — Linux kernel aio コールを利用するSamba vfs中での非同期I/Oの実装
vfs objects = aio_linux
このVFSモジュールは samba(7)システムの一部である。
aio_linux
VFS モジュールは、POSIX AIOインタフェースを
使わない、kernel AIO コールが有効なLinuxカーネル上でSamba用の非同期I/Oを有効に
する。Posix AIO はきつい制限がある。たとえば、あるLinuxバージョン上では
それが使うリアルタイムシグナルは、高負荷の時には動作しない。glibc(ほとんどの
Linuxシステム)ベースのシステムは、glibc実装を使うシステム上でPosix AIOが本質的に
無効になってしまう、ファイル記述子あたり単一の未処理要求のみ許可される。
これらすべての制限を回避するために、aio_linux モジュールが書かれた。 これは、非同期に、読み出しと書き込み呼び出しを許可するため、内部の POSIX AIO インタフェースの代わりに Linux kernel AIO インタフェースを使う。 128イベントのキューサイズは既定値として使われる。この制限を変更するためには、 以下で述べる"aio num events"を設定する。
smb.conf パラメーターaio read size
と
aio 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