23-06-2010, 11:23
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,776
|
|
נסה להוסיף ב smb.conf תחת כל share שיש לך איתו את הבעייה הזו:
level2 oplocks = yes
או אולי במקום זה:
kernel oplocks = yes
ותעשה restart לסרביס של samba
* האפשרות השנייה דורשת תמיכה בקרנל
הדרך האחרת היא להשתמש ב lock filename, שהשם שלו predicted על ידי האפליקציה מכל המחשבים - ואז לבדוק אם הוא קיים לפני שמנסים לפתוח קובץ במצב קריאה/כתיבה. אבל זה לא יעבוד על המע"ה אלא רק ברמה אפליקטיבית - כי כשפעולת ה lock לא מועברת על ידי המימוש של פרוטוקול שיתוף הקבצים - שום דבר לא יעזור לך...
נ.ב. רצ"ב התיעוד של שני הנ"ל, מ man smb.conf :
קוד:
level2 oplocks (S)
This parameter controls whether Samba supports level2 (read-only) oplocks on a
share.
Level2, or read-only oplocks allow Windows NT clients that have an oplock on a file
to downgrade from a read-write oplock to a read-only oplock once a second client
opens the file (instead of releasing all oplocks on a second open, as in tradi-
tional, exclusive oplocks). This allows all openers of the file that support level2
oplocks to cache the file for read-ahead only (ie. they may not cache writes or
lock requests) and increases performance for many accesses of files that are not
commonly written (such as application .EXE files).
Once one of the clients which have a read-only oplock writes to the file all
clients are notified (no reply is needed or waited for) and told to break their
oplocks to "none" and delete any read-ahead caches.
It is recommended that this parameter be turned on to speed access to shared exe-
cutables.
For more discussions on level2 oplocks see the CIFS spec.
Currently, if kernel oplocks are supported then level2 oplocks are not granted
(even if this parameter is set to yes). Note also, the oplocks parameter must be
set to yes on this share in order for this parameter to have any effect.
Default: level2 oplocks = yes
קוד:
kernel oplocks (G)
For UNIXes that support kernel based oplocks (currently only IRIX and the Linux 2.4
kernel), this parameter allows the use of them to be turned on or off.
Kernel oplocks support allows Samba oplocks to be broken whenever a local UNIX
process or NFS operation accesses a file that smbd(8) has oplocked. This allows
complete data consistency between SMB/CIFS, NFS and local file access (and is a
very cool feature :-).
This parameter defaults to on, but is translated to a no-op on systems that no not
have the necessary kernel support. You should never need to touch this parameter.
Default: kernel oplocks = yes
* מה שכן, נראה שמדובר בדיפולטים, לפחות בגירסה שלי יש (שהיא די מעודכנת). מה שאומר, שאם הקרנל שלך כן מוגדר עם תמיכה ב oplock-ים, יש מצב שה samba שלך פשוט מגירסה ישנה שבה זה עוד לא היה ברירת מחדל. עכ"פ לא יזיק להפעיל את זה במפורש ב smb.conf ...
|