見出し画像

Appendix VFSモジュール

VFS(Virtual File System)とは

Sambaを拡張するための機能。
拡張できる機能はモジュールとして提供される。
拡張モジュールを利用するにはsmb.confのなかで vfs objects = というパラメータで指定する。
拡張モジュールはスペース区切りで複数指定することができ、指定された順番に利用される。(=スタッカブルVFS)

Stackable VFS
 VFSモジュールとは、Sambaがクライアントから受け取ったファイル操作のリクエストに対する挙動を変えることが可能なモジュールのことだ。VFSモジュールを使うことで、ファイルの入出力時に決められた変換作業を行ったり、ファイルの検査、もしくはファイルシステム入出力動作を、SQLデータベースへのアクセスなどへ置き換えることなどが可能となる。
 この仕組みを利用することで、Sambaの共有上で「ごみ箱」機能を実現したり、ファイルアクセス時に自動でウイルスチェックを行ったり、あるいはデータベース上に仮想的なファイルシステムを構築することが可能になる。

エンタープライズ:オープンソース Update: Samba 3.0.0の全貌

Samba3

ソースからインストールしたSamba3のVFSモジュール

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls /usr/local/samba/lib/vfs/
acl_tdb.so        dirsort.so         netatalk.so     shadow_copy2.so
acl_xattr.so      expand_msdfs.so    preopen.so      smb_traffic_analyzer.so
audit.so          extd_audit.so      readahead.so    streams_depot.so
cap.so            fake_perms.so      readonly.so     streams_xattr.so
catia.so          fileid.so          recycle.so      syncops.so
crossrename.so    full_audit.so      scannedonly.so  time_audit.so
default_quota.so  linux_xfs_sgid.so  shadow_copy.so  xattr_tdb.so
[root@rocky9-samba31 ~]#
  • acl_tdb
    tdb ファイルに NTFS のアクセス許可を保存

  • acl_xattr
    拡張属性 (EA) に NTFS のアクセス許可を保存

  • audit
    特定の Samba の VFS 操作をシステムログに記録

  • cap
    ファイル名をCAPでエンコード

  • catia
    Catiaファイルシステムで無効な文字を変換する

  • crossrename
    ファイルシステムをまたがるファイルの改名をサーバーサイドで行う

  • default_quota
    Windowsクライアント用の容量制限(quota)レコードを保存する

  • dirsort
    ディレクトリの内容を整列する

  • expand_msdfs

  • extd_audit
    指定した Samba VFS の動作を記録する

  • fake_perms
    読み取り専用の移動プロファイルを有効にする

  • fileid
    クラスター構成時で使えるように、 ユニークなデバイス ID 値で file_id 構造体を生成する

  • full_audit
    Samba VFS の動作をシステムログに記録する

  • linux_xfs_sgid

  • netatalk
    CIFS クライアントから .AppleDouble ファイルを見えないようにする

  • preopen
    番号付けられたファイルを読むアプリケーションのために読み込み遅延を隠す

  • readahead
    カーネルバッファーキャッシュをプリロードする

  • readonly
    指定した時間帯に Samba の共有を読み取り専用にする

  • recycle
    Samba VFS ごみ箱

  • scannedonly
    ウイルス検査済みのファイルだけを エンドユーザーに表示・アクセスできるようにする

  • shadow_copy
    Windows ボリュームシャドウコピーと同等の機能を提供する

  • shadow_copy2
    Windows クライアントにスナップショットをシャドウコピーとして見せる

  • smb_traffic_analyzer

  • streams_depot
    代替データストリームを指定したディレクトリに格納する実験的モジュール

  • streams_xattr
    代替データストリームを POSIX の拡張属性に格納する

  • syncops

  • time_audit
    遅い VFS 操作を記録するための Samba VFS モジュール

  • xattr_tdb
    拡張属性 (EA) を tdb ファイルに保存する

Samba4

パッケージからインストールしたSamba4のVFSモジュール

[root@rocky9-samba41 ~]#
[root@rocky9-samba41 ~]# ls /usr/lib64/samba/vfs
acl_tdb.so      default_quota.so   linux_xfs_sgid.so  snapper.so
acl_xattr.so    dirsort.so         media_harmony.so   streams_depot.so
aio_fork.so     expand_msdfs.so    offline.so         streams_xattr.so
aio_pthread.so  extd_audit.so      preopen.so         syncops.so
audit.so        fake_perms.so      readahead.so       time_audit.so
btrfs.so        fileid.so          readonly.so        unityed_media.so
cap.so          fruit.so           recycle.so         virusfilter.so
catia.so        full_audit.so      shadow_copy.so     widelinks.so
commit.so       glusterfs_fuse.so  shadow_copy2.so    worm.so
crossrename.so  gpfs.so            shell_snap.so      xattr_tdb.so
[root@rocky9-samba41 ~]#
  • acl_tdb
    tdb ファイルに NTFS のアクセス許可を保存

  • acl_xattr
    拡張属性 (EA) に NTFS のアクセス許可を保存

  • aio_fork
    非同期 I/O を実装

  • aio_pthread
    pthread pool を使って 非同期のオープン処理を実装

  • audit
    特定の Samba の VFS 操作をシステムログに記録

  • btrfs
    Btrfs ファイルシステムで提供される機能の利用

  • cap
    ファイル名を CAP でエンコード

  • catia
    Catia ファイル名で無効な文字を変換

  • commit
    書き込み済データを特定の間隔でフラッシュ

  • crossrename
    ファイルシステム間のファイルのリネームをサーバー上で実行

  • default_quota
    Windows クライアントに対してデフォルトのクォータ情報を提供

  • dirsort
    ディレクトリのエントリを整列

  • expand_msdfs
    クライアントのIPに応じて、msdfsリンクを展開

  • extd_audit
    指定した Samba VFS の動作を記録

  • fake_perms
    読み取り専用の移動プロファイルを有効化

  • fileid
    クラスター構成時で使えるように、 ユニークなデバイス ID 値で file_id 構造体を生成

  • fruit
    OS X と Netatalk との相互運用性を強化

  • full_audit
    Samba VFS の動作をシステムログに記録

  • glusterfs_fuse
    GlusterFS によって提供される機能の利用

  • gpfs
    GPFS 特有の ACL 機能に対応するための Samba の拡張

  • linux_xfs_sgid

  • media_harmony
    複数の Avid クライアントがネットワークドライブを共有することを許可

  • offline
    すべてのファイルをオフラインにマーク

  • preopen
    番号付けられたファイルを読むアプリケーションのために読み込み遅延を隠す

  • readahead
    カーネルバッファーキャッシュをプリロード

  • readonly
    指定した時間帯に Samba の共有を読み取り専用に

  • recycle
    Samba VFS ごみ箱

  • shadow_copy
    Windows ボリュームシャドウコピーと同等の機能を提供

  • shadow_copy2
    Windows クライアントにスナップショットをシャドウコピーとして提供

  • shell_snap
    スナップショット作成と削除を行うシェルスクリプトの呼び出し

  • snapper
    シャドウコピーとして、snapperによって管理されるスナップショットの公開

  • streams_depot
    代替データストリームを指定したディレクトリに格納する実験的モジュール

  • streams_xattr
    代替データストリームを POSIX の拡張属性に格納

  • syncops
    メタデータ操作を同期実行

  • time_audit
    遅い VFS 操作を記録するための Samba VFS モジュール

  • unityed_media
    複数の Avid クライアントへのネットワークドライブを共有許可

  • virusfilter
    オンアクセスウィルススキャナ

  • widelinks
    共有内で、Sambaの共有がファイルシステムのシンボリックリンクを無視

  • worm
    古いファイルへの書き込みを禁止

  • xattr_tdb
    拡張属性 (EA) を tdb ファイルに保存

参考文献


この記事が気に入ったらサポートをしてみませんか?