Name

vfs_gpfs — GPFS 特有の ACL や prealloc 機能に対応するための Samba の拡張

Synopsis

vfs objects = gpfs

説明

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

gpfs VFS モジュールは、Samba が GPFS と適切に連携する上で必要となる様々な GPFS エクステンションの モジュールのベースである。 このモジュールはGPFSによって提供されるGPLライブラリインタフェースを使う。

現在のところ、gpfs VFS モジュールは以下のエクステンションのみを提供している:

  • GPFSのために設定可能なNFSv4 ACL インタフェース

  • GPFS 上でのカーネル oplock のサポート

  • GPFS 上での lease サポート

注意:このモジュールは POSIX ACL の挙動を模しているため、chown によるパーミッションの変更が可能である。 しかし、 Samba は現在のところ、この動作をサポートしていない。 このモジュールによる chown を禁止するには、Samba よりも下位の ファイルシステム側の責任となる。

このモジュールはスタック可能である。

オプション

gpfs:sharemodes = [ yes | no ]

GPFS用のクロスノードsharemodeハンドリングを有効/無効にする。 Enable/Disable cross node sharemode handling for GPFS.

  • yes(既定値) - すべてのGPFSノードにまたがってsharemodeを伝搬する。 propagate sharemodes across all GPFS nodes.

  • no - すべてのGPFSノードにまたがってsharemodesを伝搬しない。 これはもしもGPFSファイルシステムがSambaによって排他的にエクスポート される場合にのみ使うべきである。ローカルのUNIXアプリケーションか NFSエクスポートによるアクセスはファイルの破壊を引き起こすことに繋がる。 do not propagate sharemodes across all GPFS nodes. This should only be used if the GPFS file system is exclusively exported by Samba. Access by local unix application or NFS exports could lead to corrupted files.

gpfs:leases = [ yes | no ]

GPFSのためのクロスノードリース(oplocks)を有効/無効にする。 oplockskernel oplocks オプションを同じ値に設定すべきである。 Enable/Disable cross node leases (oplocks) for GPFS. You should also set the oplocks and kernel oplocks options to the same value.

  • yes(既定値) - すべてのGPFSノードのリースを伝搬する。 propagate leases across all GPFS nodes.

  • no - すべてのGPFSノードのリースを伝搬しない。 これはもしもGPFSファイルシステムがSambaによって排他的にエクスポート される場合にのみ使うべきである。ローカルのUNIXアプリケーションか NFSエクスポートによるアクセスはファイルの破壊を引き起こすことに繋がる。 do not propagate leases across all GPFS nodes. This should only be used if the GPFS file system is exclusively exported by Samba. Access by local unix application or NFS exports could lead to corrupted files.

gpfs:hsm = [ yes | no ]

このFSがHSMを有効にしている場合、アナウンスを有効/無効にする。 Enable/Disable announcing if this FS has HSM enabled.

  • no(既定値) - HSMアナウンスを通知しない Do not announce HSM.

  • no - HSMアナウンスを行う。 Announce HSM.

gpfs:getrealfilename = [ yes | no ]

gpfs_get_realfilename_path()機能の使用を 有効/無効にする。 これは大文字小文字を認識するワイルドカードファイル名アクセスを 改善する。 Enable/Disable usage of the gpfs_get_realfilename_path() function. This improves the casesensitive wildcard file name access.

  • yes(既定値) - gpfs_get_realfilename_path()を使用する。 use gpfs_get_realfilename_path().

  • no - gpfs_get_realfilename_path()を使わない。 AIXではgpfs_get_realfilename_path()が動かないように見える。 do not use gpfs_get_realfilename_path(). It seems that gpfs_get_realfilename_path() doesn't work on AIX.

gpfs:winattr = [ yes | no ]

GPFSのwindow属性の使用を有効/無効にする。 GPFSは、たとえば、HIDDEN、READONLY、SYSTEMやその他のような window属性を個別に格納することが出来る。これは、Sambaが パーミッションビットや拡張属性にマップする必要がないことを 意味する。

Enable/Disable usage of the windows attributes in GPFS. GPFS is able to store windows file attributes e.g. HIDDEN, READONLY, SYSTEM and others natively. That means Samba doesn't need to map them to permission bits or extended attributes.

  • no(既定値) - GPFS windows属性を使用しない。 do not use GPFS windows attributes.

  • yes - GFPS windows属性を使用する。 use GPFS windows attributes.

gpfs:merge_writeappend = [ yes | no ]

GPFS ACLは 'APPEND'権限を認識しない。 このオプションはSambaに'APPEND'権限をを'WRITE'権限に マップさせる。 GPFS ACLs doesn't know about the 'APPEND' right. This optionen lets Samba map the 'APPEND' right to 'WRITE'.

  • yes(既定値) - 'APPEND'を'WRITE'にマップする。 map 'APPEND' to 'WRITE'.

  • no - 'APPEND'を'WRITE'にマップしない。 do not map 'APPEND' to 'WRITE'.

gpfs:refuse_dacl_protected = [ yes | no ]

GPFSはACE4_FLAG_NO_PROPAGATE NFSv4フラグ(DESC_DACL_PROTECTEDフラグへの マッピングであろう)をサポートしないため、このフラグのステータスは 現在Sambaによってあっさり無視される。これは、もしも、Windowsの ダイアログボックスで、"..継承を有効にする.."チェックボックスを 選択しないでACLを適用した場合、フラグが即座に戻ることを意味する。

As GPFS does not support the ACE4_FLAG_NO_PROPAGATE NFSv4 flag (which would be the mapping for the DESC_DACL_PROTECTED flag), the status of this flag is currently silently ignored by Samba. That means that if you deselect the "Allow inheritable permissions..." checkbox in Windows' ACL dialog and then apply the ACL, the flag will be back immediately.

たとえば、robocopyのような、自動マイグレーションが知らないうちに (意図しないで)変更することがないようにするため、このフラグを明示的 チェックして、明示的に有効にするために、 gpfs:refuse_dacl_protected = yesを設定でき、 もしも設定した場合、Windows側にNT_STATUS_NOT_SUPPORTEDが戻り、 そのためエラーが表示され、Administratorは意図したようにACLが設定 可能でないことを認識する。

To make sure that automatic migration with e.g. robocopy does not lead to ACLs silently (and unintentionally) changed, you can set gpfs:refuse_dacl_protected = yes to enable an explicit check for this flag and if set, it will return NT_STATUS_NOT_SUPPORTED so errors are shown up on the Windows side and the Administrator is aware of the ACLs not being settable like intended

  • no(既定値) - DESC_DACL_PROTECTEDフラグを無視する。 ignore the DESC_DACL_PROTECTED flags.

  • yes - DESC_DACL_PROTECTEDでACLを拒否する。 reject ACLs with DESC_DACL_PROTECTED.

nfs4:mode = [ simple | special ]

GPFS上の特別なIDの置き換えを有効/無効にする。このパラメーターはどのような方法でも windowsのユーザーに影響を与えるべきでない。これは、Sambaに、GPFSに関連のある OWNER@とGROUP@(単純なuidへのマッピング)である特別なIDを設定することのみを 確実にする。

以下のモードがこのモジュールによって指定可能である:

  • simple(既定値) - GPFSのACE中で特別なIDを使わない

  • special - GPFSのACE中で特別なIDを使う

nfs4:acedup = [dontcare|reject|ignore|merge]

このパラメーターはGPFSのACL中で遭遇した、重複したACEをSambaがどのように取り扱うかを設定する。 GPFSは同じIDに対して異なったbitを持つ重複したACEを許容し作成する。

以下はそれぞれの値におけるSambaの動作である:

  • dontcare (既定値) - 重複したACEをそのまま利用する

  • reject - ACLの設定処理で、処理を中断し、エラーとして終了する

  • ignore - 2番目にマッチしたACEを無視する

  • merge - 2つのace.flagフィールド、及び2つのace.maskフィールドをビット演算でORを取り、2つの重複したACEを1つのACEに統合する

nfs4:chown = [yes|no]

このパラメーターはファイルシステムのレイヤによって サポートされる chown を有効または無効に設定する。 このパラメーターは、あなたのシステムのセキュリティを 低下させるかもしれない事に注意して有効にすべきである。

いくつかのファイルシステムでは、chown の a) 許可 b) 拒否 が可能である。 リスクについて考慮されたのが後者である。

以下はそれぞれの値に対するSambaの動作である:

  • yes - ファイルシステム下でサポートするようなchownを有効にする。

  • no (既定値) - chownを無効にする

gpfs:syncio = [yes|no]

このパラメーターは、SambaにすべてのファイルをO_SYNCで オープンするようにさせる。これは、高負荷でファイルを共用 するワークロードのためのGPFS中での最適化をトリガする。

This parameter makes Samba open all files with O_SYNC. This triggers optimizations in GPFS for workloads that heavily share files.

以下は、異なった値におけるSambaの動作である。: Following is the behaviour of Samba for different values:

  • yesファイルをO_SYNCで開く

  • no (既定値)通常Sambaが行うように ファイルをオープンする

使用例

GPFS mount は以下のように、Samba経由でエクスポートできる:

        [samba_gpfs_share]
	vfs objects = gpfs
	path = /test/gpfs_mount
	nfs4: mode = special
	nfs4: acedup = merge

警告

gpfsのバージョンに依存するので、libgpfs_gpl ライブラリまたはlibgpfsライブラリは gpfs VFSモジュールによって実行時に必要とされる: gpfs 3.2.1 PTF8の公開時には、完全なlibgpfs がオープンソースとして公開されていて、libgpfs_gpl はもはや存在しない。それより前のgpfsバージョンでは、 libgpfs_gplのみがオープンソースで、ランタイムとして 使える。

Depending on the version of gpfs, the libgpfs_gpl library or the libgpfs library is needed at runtime by the gpfs VFS module: Starting with gpfs 3.2.1 PTF8, the complete libgpfs is available as open source and libgpfs_gpl does no longer exist. With earlier versions of gpfs, only the libgpfs_gpl library was open source and could be used at run time.

コンパイル時には、gpfs_gpl.hヘッダーファイルのみが必要で、 これは3.2.1 PTF8よりも新しいgpfsバージョン中のgpfs.h へのシンボリックリンクである。

At build time, only the header file gpfs_gpl.h is required , which is a symlink to gpfs.h in gpfs versions newer than 3.2.1 PTF8.

バージョン

このマニュアルページは Samba バージョン 3.0.25用(訳注:3.3?)である。

著者

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

GPFS VFSモジュールはVolker LendeckeとIBMの開発者によって寄贈され、作成された。

このマニュアルページは、IBM FSCCチームによって作成された。

日本語訳

このマニュアルページは Samba 3.6.0 - 3.6.25 に対応する。

このドキュメントの Samba 3.2.4 - 3.6.25 対応の翻訳は

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

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

によって行なわれた。