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 よりも下位の ファイルシステム側の責任となる。

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

Samba 4.0以降、すべてのオプションは共有単位のオプションである。

オプション

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を有効にしている場合、アナウンスを有効/無効にする。

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

  • yes - 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:acl = [ yes | no ]

このオプションはSambaにGPFS ACLを無視させるようにする。

  • yes(既定値) - GPFS ACLを使う。

  • no - GPFS ACLを使わず、次の SMB VFSモジュールにすべてを渡す。

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.

gpfs:dfreequota = [ yes | no ]

quotaによる共有の残量と使用量の報告を調整する。これを"yes"に 設定すると、使用量と残量の要求は、ユーザーが要求したデータの ユーザークォータ、ユーザーのプライマリグループのグループクォータと 共有の最上位ディレクトリが持っているファイルセットに対する ファイルセットクォータも評価される。

Adjust reporting of the size and free space of a share according to quotas. If this setting is "yes", a request for size and free space will also evaluate the user quota of the user requesting the data, the group quota of the primary group of the user and the fileset quota for the fileset containing the top level directory of the share.

もしも、何らかの、ソフトあるいはハードクォータ制限に達した 場合、残量は0と報告される。もしもクォータが動作しているが、 制限に達していない場合、残量はクォータの残り量に従って 報告される。もしも1つ以上のクォータが残量に引っかかって いる場合、それらのクォータの、最も小さい量のものが報告される。 共有のサイズはクォータの使用量にそって報告される。もしも 1つ以上のクォータが適用される場合、共有のサイズは、それらの クォータの中の最も小さいものに従って報告される。

If any of the soft or hard quota limits has been reached, the free space will be reported as 0. If a quota is in place, but the limits have not been reached, the free space will be reported according to the space left in the quota. If more than one quota applies the free space will be reported as the smallest space left in those quotas. The size of the share will be reported according to the quota usage. If more than one quota applies, the smallest size will be reported for the share size according to these quotas.

  • yes - 共有の使用量と残量を報告するときにクォータを含める

  • no(既定値) - クォータを含めず、単に ファイルシステムの大きさと残量を報告する。

gpfs:prealloc = [ yes | no ]

もしもyesに設定された場合、gpfs_prealloc 機能は、適切なときに fallocate コールバック中で使われる。もしも no に設定された場合、 gpfs_prealloc は使われない。両方の場合において、システムとライブラリ コールは回避される。

If set to yes the gpfs_prealloc function will be used in the fallocate callback when appropriate. If set to no gpfs_prealloc will not be used. In both cases the system and libc calls are avoided.

  • yes (既定値) - fallocate コールバックのために gpfs_prealloc を使う。

  • no - fallocate コールバックのために gpfs_prealloc を使わない。

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用(訳注:4.0?)である。

著者

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

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

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

日本語訳

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

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

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

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

によって行なわれた。