vfs_gpfs — GPFS 特有の ACL や prealloc 機能に対応するための Samba の拡張
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用のクロスノード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のためのクロスノードリース(oplocks)を有効/無効にする。
oplocks
とkernel 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.
このFSがHSMを有効にしている場合、アナウンスを有効/無効にする。 Enable/Disable announcing if this FS has HSM enabled.
no(既定値)
- HSMアナウンスを通知しない
Do not announce HSM.
no
- HSMアナウンスを行う。
Announce HSM.
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の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 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は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上の特別なIDの置き換えを有効/無効にする。このパラメーターはどのような方法でも windowsのユーザーに影響を与えるべきでない。これは、Sambaに、GPFSに関連のある OWNER@とGROUP@(単純なuidへのマッピング)である特別なIDを設定することのみを 確実にする。
以下のモードがこのモジュールによって指定可能である:
simple(既定値)
- GPFSのACE中で特別なIDを使わない
special
- GPFSのACE中で特別なIDを使う
このパラメーターは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に統合する
このパラメーターはファイルシステムのレイヤによって サポートされる chown を有効または無効に設定する。 このパラメーターは、あなたのシステムのセキュリティを 低下させるかもしれない事に注意して有効にすべきである。
いくつかのファイルシステムでは、chown の a) 許可 b) 拒否 が可能である。 リスクについて考慮されたのが後者である。
以下はそれぞれの値に対するSambaの動作である:
yes
- ファイルシステム下でサポートするようなchownを有効にする。
no (既定値)
- chownを無効にする
このパラメーターは、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.