[samba-jp:22178] Re: xlsxを開く場合の挙動とkernel oplocksについて

Kazuhiro Nishimura kazssym @ gmail.com
2013年 11月 15日 (金) 10:15:42 JST


当てずっぽうですが kernel oplocks 有効時は level2 oplocks
が機能しないという制約があるようなので、直前に書き込んだクライアントが排他的 oplock を握っている状態で、サーバーから level2
oplock への変更要求が来ないので、排他的 oplock を握ったままになっているという推量はありですかね。

サーバーが level2 oplock をサポートしていなければ、ないなりに動いてくれるのを期待したいところなのですが。


2013年11月12日 11:14 森川武 <t.morikawa137 @ gmail.com>:

> お世話になっております。
> 森川です。
>
> 先月は多大なる無礼な投稿をしてしまい申し訳ありませんでした。
> 今後はそういったことがないように十分に調査・検証をした上で質問をするように心がけます。
>
> 現在、共有フォルダ上のxlsxを開く場合の挙動について調査をしています。
> その挙動というのは、誰も開いていないのに、「ほかのユーザ〜」というメッセージが表示されてしまい
> 読み取り専用となってしまう挙動です。
>
> 【環境】
> samba:3.6.5
> OS:CentOS6.2
>
> ---smb.conf---
> kernel oplocks = yes
> oplocks = yes
>
> この挙動は何もsambaに限った話ではなく、WindowsServerや、またはローカルでも発生することは
> 分かっております。そして、ネットワーク、PCスペック、Windowsエクスプローラの設定等でも
> 頻度が変わってくることも調査済みです。
> 検証では、ネットワーク、PCスペックに問題はなく、エクスプローラではプレビューウィンドウをオフにして
> 行っております。
> そういったことを把握した上である条件の場合に読み取り専用になる現象が発生する
> 頻度が高いということが分かりました。
>
> まず、xlsxファイルのオーナとそのファイルを開くユーザが異なる場合に発生頻度が高いということが
> 分かりました。そのため、発生頻度の高いファイルをコピーして使用すると頻度が低くなります。
> (コピーすると、オーナがコピーを行ったユーザになるため)
>
> 当方の環境では、ファイルのオーナによるアクセス権限は持たせず、全てaclによるアクセス制限としています。
> そのため、ファイル作成者=アクセスできる
> ということにはならず、あくまでaclで許可されている場合のみとしています。
> (aclのアクセスチェックアルゴリズムを元に、ACL_GROUPエントリと一致した場合のみ許可)
> そういったことから、オーナとファイルを開くユーザを一致させるために
> smb.confの設定でforce userやfouce groupなどを使用することはできません。
>
> 簡単な回避方法としては、上記のようにコピーしてから編集ですとか、xlsxをxlsにする方法があるのですが
> やはり、使い勝手が悪いです。sambaの設定でどうにかならないかと調査し、試したこととしては
> ・xlsxファイルをoplockさせない(veto oplock filesに指定)
> ・SMB2をやめる。
>
> などを試しましたが、改善されず。
> 念のためにWeb検索で多数出てくる、レジストリの設定、Windows Updateなども試しましたが改善されずでした。
>
> しかし、smb.confのあるオプションを無効にすると改善することが分かりました。
> それは、kernel oplocksです。
>
> このオプションはカーネルが対応していれば自動的に有効になるため、さわる必要がないとsmb.confのマニュアルには
> 記載されているため無効にするのが非常に怖いところなのですが、どう影響が出るのかがいまいち理解ができません。
>
> smb.confの記載を抜粋
> カーネル oplocks のサポートにより、 smbd(8) が oplock を行ったファイルに対して、 ローカルな UNIX プロセスや
> NFS 経由でのアクセスがあった際に、 Sambaが oplocks を破棄することが可能となる。
>  これにより、 SMB/CIFS と NFS やローカルファイルアクセスとの間の完全な一貫性が
> 確保される (これは非常に素晴らしいことである :-)。
>
> この記載を見ると、
> smbdがoplockを行ったファイルをviなどで開く場合もしくはNFS経由でアクセスされる場合にoplockを破棄することで
> 多重に開かれても問題ないようにするというように私は読み取りました。
>
> 私の環境では、共有フォルダ上のファイルにはWindowsもしくはMacからSMBにてアクセスする以外はファイルを開くようなことは
> ありません。ほかのやることとすれば、cp、mv、rm、chownをするぐらいです。NFSも使用していません。
>
> 過去の質問の中に、kernel oplocksを無効にした場合の影響について質問している方がいらっしゃいましたが
> その回答としては、やはりNFSを含めた言い方となっていました。
>
> 単純にエクスプローラやfinderからファイルを開くだけの使用方法であれば、kernel oplocksを無効にしても
> 問題はないのでしょうか?
>
> ご教授お願い致します。
>


samba-jp メーリングリストの案内