Go to main content
Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.7.0

印刷ビューの終了

更新: 2017 年 3 月
 
 

SMB プロトコル

このセクションには、次のトピックが含まれています。

SMB プロトコルの詳細は、次のトピックを使用してください。

サポートされるほかのプロトコルについては、次のセクションを参照してください。

SMB プロトコルのプロパティー

各シェアにはプロトコル固有のプロパティーがあり、そのシェアに対してさまざまなプロトコルの動作を定義します。これらのプロパティーは、シェアごとに定義することも、シェアのプロジェクトから継承することもできます。次の表に、SMB プロトコルのプロパティーと指定可能な値を示します。

表 119  SMB プロトコルのプロパティー
プロパティー
CLI の値
プロパティータイプ
説明
シェアモード
off/on/rw/ro
継承
シェアが読み取り専用か、読み取り/書き込みに使用できるか、どちらにも使用できないかを決定します。SMB プロトコルのシェアモード例外を参照してください。
リソース名
resource_name/off/on
継承
SMB クライアントがこのシェアを参照するときに使用する名前を表示します。リソース名 off はどの SMB クライアントもこのシェアにアクセスできないことを示し、リソース名 on はこのシェアがファイルシステムの名前でエクスポートされることを示します。
アクセスベースの列挙を有効化
abe
継承
有効にすると、アクセスベースの列挙が実行されます。
ゲストアクセスを有効化
guestok
継承
有効にすると、ゲストアクセスを付与します。このプロパティーはデフォルトで無効になっています。
DFS 名前空間です
dfsroot
継承
このシェアをスタンドアロンの DFS 名前空間としてプロビジョニングするかどうかを指示します。
クライアント側のキャッシュポリシー
csc
継承
クライアント側キャッシュをサポートするために提供されるシェアごとの構成オプションを指示します。詳細は、クライアント側のキャッシュプロパティーを参照してください。
便宜的ロックポリシー
oplocks
継承
便宜的ロックをシェアレベルで有効または無効にします。詳細は、便宜的ロックプロパティーを参照してください
連続可用性を有効化
cont_avail
継承
有効になっている場合、SMB3 クライアントはシェアに永続ファイルハンドルを要求できます。これによりアプライアンスは、永続ファイルハンドルに関連付けられた状態を、安定した永続ストレージに格納できるようになります。この状態は、クラスタ化されたコントローラでのテイクオーバーやフェイルバック操作などのコントローラの障害の場合に、透過的に復元できます。連続可用 SMB シェアでは、NFS 上で共有することや、開く/閉じるの回数が非常に多いワークロード (ホームディレクトリなど) 上で使用することが許可されていません。連続可用 SMB シェアは、開く/閉じる回数が制限されているエンタープライズアプリケーションでのみ推奨されています。

クライアント側のキャッシュプロパティー

クライアント側のキャッシュプロパティー (csc) は、シェアからのファイルおよびプログラムが、アプライアンスから切断されたオフラインでの使用について、ローカルクライアント上でキャッシュされるかどうかを制御します。

BUI の値
CLI の値
説明
キャッシュなし
none
シェアについてのクライアント側のキャッシュを無効にします。シェアからのファイルまたはプログラムはオフラインで利用できません。このオプションは、クライアントコンピュータ上のオフラインファイルが共有フォルダにファイルおよびプログラムのコピーを作成することをブロックします。
手動キャッシュ
manual
指定されたファイルおよびプログラムのみがローカルクライアント上でキャッシュされ、オフラインで利用できます。これは、共有フォルダを設定するときのデフォルトのオプションです。このオプションを使用すると、デフォルトではファイルまたはプログラムをオフラインで使用できません。ネットワークに接続されていないときに、どのファイルおよびプログラムをアクセスするかを制御できます。
自動ドキュメントキャッシュ
documents
シェアからアクセスされたすべてのファイルがローカルクライアント上でキャッシュされ、オフラインで利用できます。ファイルはローカルクライアントがふたたびオンラインになったときに自動的に再統合されます。シェアからアクセスされたプログラムは、以前ローカルでキャッシュされた場合を除き、オフラインで利用できません。
自動プログラムキャッシュ
programs
シェアからアクセスされたすべてのプログラムがローカルクライアント上でキャッシュされ、オフラインで利用できます。オンラインのとき、プログラムはローカルクライアントから実行されます。さらに、シェアからアクセスされたすべてのファイルがローカルクライアント上でキャッシュされ、オフラインで利用できます。ファイルはローカルクライアントがふたたびオンラインになったときに自動的に再統合されます。

便宜的ロックプロパティー

便宜的ロックとは、ネットワークトラフィックを削減して、パフォーマンスを向上させるために、ローカルキャッシュを容易にするクライアントキャッシングメカニズムです。このプロパティー (oplocks) は、サーバーがシェアレベルで便宜的ロックを付与または拒否するかどうかを制御し、リース (SMB 2.1 以上) およびレガシー (SMB 2.0 以下) の便宜的ロックの両方に適用されます。

クライアントがシェア内のファイルに対して便宜的ロックを要求すると、その要求はサーバーの構成およびファイルの現在の状態に応じて付与または拒否されます。クライアントが、すでにファイルに対して付与されている便宜的ロックに矛盾する方法でファイルにアクセスしようとした場合、競合が発生します。このような場合、サーバーは、競合する操作を続行する前に、既存の便宜的ロックを解除するプロセスを開始します。

便宜的ロックを有効にすると、シェア内のファイルが 1 つのクライアントによってアクセスされる際にパフォーマンスが向上します。ただし、一部のシナリオでは、同じファイルが複数のクライアントに同時にアクセスされるときなどに、不要なオーバーヘッドが追加される可能性があります。そのため、便宜的ロックは、グローバルに制御する代わりに、ワークロードの予期されるパターンに基づいてシェアごとに有効または無効にできます。

便宜的ロックプロパティーがシェアレベルで定義されていない場合は、デフォルトはサービスレベルで設定されたグローバルな便宜的ロックプロパティーになります。詳細は、セクションSMB サービスのプロパティーの「oplocks を有効化」を参照してください。

BUI の値
CLI の値
説明
有効
enabled
シェアの便宜的ロックを有効にします
set sharesmb="myshare,oplocks=enabled,abe=off,dfsroot=false"
無効
disabled
シェアの便宜的ロックを無効にします
set sharesmb="myshare,oplocks=disabled,abe=off,dfsroot=false"
<empty>
--
便宜的ロックプロパティーは有効または無効のどちらでもありません。シェアレベルのプロパティーが設定されていないときには、グローバルな便宜的ロックプロパティーを使用します。
set sharesmb="myshare,abe=off,dfsroot=false"

SMB プロトコルのシェアモード例外

グローバルなシェアモードに対する例外は、クライアント固有のシェアモードまたは例外を設定することによって、クライアントごと、またはクライアントの集まりごとに定義できます。特定のクライアントへのアクセスを制限するために、グローバルなシェアモードをnone に設定して、アクセスを付与するグループを徐々に小さくしていくことをお勧めします。たとえば、グローバルなシェアモードが none に設定されたシェアを作成できます。これは、すべてのクライアントへのアクセスを拒否したあとで、クライアントのサブセットに読み取り専用アクセスを付与します。さらに、クライアントのより小さいサブセットに読み取り/書き込みアクセスを付与して、最後に信頼できるホストのみが読み取り/書き込みアクセスを持つようにできます。

表 120  クライアントタイプ
タイプ
CLI の接頭辞
説明
ホスト (FQDN) またはネットグループ
none
指定された完全修飾名に解決される IP アドレスを持つ単一のクライアント、または、クライアントの IP アドレスを解決した完全修飾名を含んでいるネットグループ。
caji.sf.example.com
DNS ドメイン
.
この接尾辞で終わる完全修飾名に解決される IP アドレスを持つすべてのクライアント。
sf.example.com
IPv4 サブネット
@
CIDR 表記で表現される、指定された IPv4 サブネットに含まれる IP アドレスを持つすべてのクライアント
192.0.2.254/22
IPv6 サブネット
@
CIDR 表記で表現される、指定された IPv6 サブネットに含まれる IP アドレスを持つすべてのクライアント
2001:db8:410:d43::/64

クライアントごとまたはクライアントの集まりごとに、クライアントがシェアに対して読み取り専用アクセス権を持つか、または読み取り/書き込みアクセス権を持つかを指定します。

ネットグループの管理 - ネットグループは、SMB エクスポートのアクセスを制御するために使用できます。ただし、ネットグループの管理は複雑になることがあります。代わりに IP サブネット規則または DNS ドメイン規則を使用することを検討してください。

ネットグループを使用する場合、有効になっているサービスに応じて、ネットグループが NIS または LDAP から解決されます。LDAP を使用する場合、それぞれのネットグループがデフォルトの場所 ou=Netgroup,(Base DN) に存在し、標準スキーマを使用している必要があります。

通常、ネットグループエントリのユーザー名コンポーネントは SMB に影響を与えず、ホスト名だけが意味を持ちます。ネットグループに含まれるホスト名は正規名であること、また、DNS で解決される場合は完全修飾名であることが必要です。つまり、SMB サブシステムは、要求しているクライアントの IP アドレスを解決すると、指定された FQDN、または指定されたネットグループのいずれかのメンバーに一致する正規ホスト名になることを検証しようとします。ドメインのコンポーネントも含めて正確に一致する必要があります。それ以外の場合、その例外には一致せず、次の例外が調べられます。ホスト名の解決の詳細は、DNS を参照してください。

2013.1.0 ソフトウェアリリースでは、UNIX クライアントユーザーはパフォーマンスを低下させることなく、最大 1024 グループに所属することが可能です。それ以前のリリースでは、UNIX クライアントユーザーにつき最大 16 グループをサポートしていました。

SMB シェアモードおよび例外オプション

CLI では、すべての SMB シェアモードと例外を、sharesmb プロパティーの 1 つのオプション文字列で指定します。この文字列は、値をコンマで区切ったリストです。これは、BUI に関して説明したグローバルなシェアモードに相当する、rorwon、または off のいずれかで始める必要があります。

表 121  SMB シェアモード値 (BUI および CLI)
BUI シェアモード値
CLI シェアモード値
説明
なし
off
シェアモードは無効化されています。
sharesmb=off
on
シェア名はデータセット名で、rw または ro の SMB 例外が定義されている場合にかぎりシェアを読み取り/書き込みまたは読み取り専用に利用できます。ほかのすべてのクライアントについてはシェアモードが無効です。
sharesmb="on,ro=sf.example.com"
<resource name>
シェア名はリソースセット名で、rw または ro の SMB 例外が定義されている場合にかぎりシェア名を読み取り/書き込みまたは読み取り専用に利用できます。ほかのすべてのクライアントについてはシェアモードが無効です。
sharesmb="myshare,ro=sf.example.com"
読み取り/書き込み
on
シェア名はデータセット名で、SMB 例外がない場合はシェア名をすべてのクライアント用の読み取り/書き込みに利用できます。
sharesmb=on
rw
シェア名はデータセット名で、ro 例外が定義されているクライアントを除くすべてのクライアント用の読み取り/書き込みに利用できます。
sharesmb=rw または sharesmb="rw,ro=sf.example.com"
<resource name>
シェア名はリソース名で、SMB 例外がない場合はシェア名をすべてのクライアント用の読み取り/書き込みに利用できます。
sharesmb=myshare
<resource name>,rw
シェア名はリソース名で、ro 例外が定義されているクライアントを除くすべてのクライアント用の読み取り/書き込みに利用できます。SMB 例外は定義される場合もされない場合もあります。
sharesmb="myshare,rw" または sharesmb="myshare,rw,ro=sf.example.com"
読み取り専用
ro
シェア名はデータセット名で、rw 例外が定義されているホストを除くすべてのホスト用の読み取り専用に利用できます。
sharesmb="ro,rw=sf.example.com"
<resource name>,ro
シェア名はリソース名で、rw 例外が定義されているクライアントを除くすべてのクライアント用の読み取り専用に利用できます。SMB 例外は定義される場合もされない場合もあります。
sharesmb="myshare,ro" または sharesmb="myshare,ro,rw=sf.example.com"

次の例では、すべてのクライアントのシェアモードが読み取り専用に設定されます。

set sharesmb=ro

追加の SMB 例外は、「option=collection」という形式のテキストを追加することで指定できます。ここで、「option」は、ro または rw のいずれかです。SMB 例外には root アクセス権を付与できません。collection の指定には、表 114 の接頭辞文字と、DNS ホスト名/ドメイン名または CIDR ネットワーク番号を使用します。

たとえば、sf.example.com ドメイン内のすべてのホストに読み取り/書き込みアクセス権を付与するには:

set sharesmb="ro,rw=.sf.example.com"

この例では IP アドレス 2001:db8:410:d43::/64 および 192.0.2.254/22 を持つクライアントに読み取り専用アクセスを付与します。

set sharesmb="on,ro=@[2001:db8:410:d43::/64]:@192.0.2.254/22"

ネットグループ名は、個別の完全修飾ホスト名を使用できる場所であればどこでも使用できます。たとえば、「engineering」ネットグループに読み取り/書き込みアクセス権を付与するには、次のように指定します。

set sharesmb="ro,rw=engineering"

シェアレベル ACL

シェアレベルアクセス制御リスト (ACL) は、シェア内のファイルまたはディレクトリの ACL と組み合わせた場合に、そのファイルの実質的なアクセス権を決定します。デフォルトでは、この ACL はすべてのユーザーに完全な制御を許可します。この ACL は、ファイルの ACL の上にもう 1 段のアクセス制御を提供して、より詳細なアクセス制御構成を可能にします。このプロパティーは、SMB リソース名を構成することによってファイルシステムがエクスポートされたあとでのみ構成できます。ファイルシステムが SMB プロトコルでエクスポートされない場合は、シェアレベルの ACL を設定しても何も効果はありません。

アクセスベースの列挙を有効にすると、クライアントが開くことができないファイルがディレクトリエントリとしてクライアントに表示されることがあります。ディレクトリエントリがフィルタリングされるのは、クライアントがそのファイルに対して何もアクセス権を持っていない場合だけです。たとえば、ACL で読み取りアクセス権だけが付与されている場合に、クライアントが読み取り/書き込みアクセスのためにファイルを開こうとすると、その要求は失敗しますが、ファイルはエントリのリストに含まれたままです。

ACL の詳細は、ファイルシステムのアクセス制御リストを参照してください。