| VFS_FILEID(8) | ابزارهای مدیریت سیستم | VFS_FILEID(8) |
نام (NAME)
vfs_fileid - ایجاد ساختارهای file_id با مقادیر یکتای شناسه دستگاه برای پیکربندیهای کلاستر؛ همچنین افزودن راههایی برای شکستن تعمدی یکپارچگی قفل برای inodeهای خاص
خلاصه دستور (SYNOPSIS)
vfs objects = fileid
توضیحات (DESCRIPTION)
این ماژول VFS بخشی از مجموعه samba(7) است.
سامبا از ساختارهای file_id برای شناسایی یکتای فایلها به منظور قفلگذاری استفاده میکند. بهطور پیشفرض، file_id شامل شماره دستگاه و شماره inode بازگردانده شده توسط فراخوان سیستمی stat() است. از آنجا که file_id یک شناسه یکتا برای فایل است، باید در تمام گرهها در یک پیکربندی کلاستر یکسان باشد. این ماژول عملیات SMB_VFS_FILE_ID_CREATE() را بازتعریف (overload) میکند و شماره دستگاه را بر اساس الگوریتم پیکربندیشده تولید مینماید (گزینه «fileid:algorithm» را ببینید).
هنگام استفاده از الگوریتم fsname یا fsid، فراخوانی stat() و statfs() برای تمامی سیستمفایلهای سوارشده جهت تولید file_id مورد نیاز است. اگر برای مثال یک سیستمفایل NFS پاسخگو نباشد، ممکن است چنین فراخوانی مسدود (block) شود و در نتیجه فرآیند smbd نیز غیرپاسخگو گردد. از گزینههای «fileid:fstype deny»، «fileid:fstype allow»، «fileid:mntdir deny» یا «fileid:mntdir allow» برای نادیده گرفتن سیستمفایلهای بالقوه غیرپاسخگو استفاده کنید.
گزینهها (OPTIONS)
fileid:algorithm = ALGORITHM
الگوریتم fsname شناسه دستگاه را از طریق هش کردن نام دستگاه کرنل تولید میکند.
الگوریتم fsid شناسه دستگاه را از f_fsid بازگرداندهشده از فراخوان سیستمی statfs() تولید میکند.
الگوریتم next_module اجازه میدهد ماژول vfs بعدی در زنجیره ماژولها این شناسه را تولید کند. این مورد عمدتاً در ترکیب با ویژگیهای مختلف «nolock» که ماژول fileid ارائه میدهد استفاده میشود.
الگوریتم قدیمی hostname یک devid یکتا را از طریق هش کردن hostname و شناسه دستگاه سطح پایین تولید میکند. این گزینه همچنین مستلزم fileid:nolock_all_inodes=yes است. از این مورد میتوان برای شکستن تعمدی یکپارچگی قفل در یک کلاستر استفاده کرد و همراه با fileid:nolock_max_slots حتی بین فرآیندهای محلی درون یک گره نیز قابل استفاده است. نکته: بدون آگاهی دقیق از کاری که انجام میدهید از این گزینه استفاده نکنید! این کار قواعد معنایی SMB را نقض کرده و میتواند منجر به خرابی دادهها شود! این امر مستلزم fileid:nolock_all_inodes=yes است.
الگوریتم قدیمی fsname_nodirs نام مستعاری برای استفاده از الگوریتم fsname به همراه fileid:nolock_all_dirs=yes است. نکته: بدون آگاهی از کاری که انجام میدهید از این گزینه استفاده نکنید! این کار قواعد معنایی SMB را نقض میکند! برای رویکردی دقیقتر گزینه fileid:nolock_paths را ببینید.
الگوریتم قدیمی fsname_norootdir نام مستعاری برای استفاده از الگوریتم fsname به همراه fileid:nolock_paths= “.” است. این بدان معناست که میتوان از آن برای شکستن تعمدی یکپارچگی قفل در یک کلاستر برای پوشه ریشه یک اشتراک استفاده کرد.
الگوریتم قدیمی fsname_norootdir_ext نام مستعاری برای استفاده از الگوریتم fsname به همراه fileid:nolock_paths= “.” و fileid:nolock_max_slots = 18446744073709551615 است. این بدان معناست که میتوان از آن برای شکستن کامل و تعمدی یکپارچگی قفل برای پوشه ریشه یک اشتراک استفاده کرد؛ به طوری که حتی فرآیندهای محلی نیز دیگر دارای یکپارچگی قفل نخواهند بود.
fileid:mapping = ALGORITHM
fileid:fstype deny = LIST
fileid:fstype allow = LIST
fileid:mntdir deny = LIST
fileid:mntdir allow = LIST
fileid:nolock_max_slots = NUMBER(1-18446744073709551615)
fileid:nolock_all_dirs = BOOL
fileid:nolock_all_inodes = BOOL
fileid:nolock_paths = LIST
fileid:nolockinode = NUMBER
مثالها (EXAMPLES)
نحوه استفاده از ماژول fileid با الگوریتم fsid:
[global] vfs objects = fileid fileid:algorithm = fsid
نحوه استفاده از ماژول fileid به منظور جلوگیری از بار اضافی روی inodeهای به شدت مورد رقابت (که به احتمال زیاد فقطخواندنی هستند):
[global] vfs objects = fileid fileid:algorithm = next_module fileid:nolock_paths = . ContendedFolder1 /path/to/contended.exe fileid:nolock_max_slots = 256
نسخه (VERSION)
این صفحه راهنما بخشی از نسخه 4.24.6 مجموعه سامبا است.
نویسنده (AUTHOR)
نرمافزار اصلی سامبا و ابزارهای مرتبط با آن توسط Andrew Tridgell ساخته شدهاند. سامبا اکنون توسط تیم سامبا به عنوان یک پروژه منبعباز، مشابه روش توسعه هسته لینوکس، توسعه مییابد.
| 08/16/2026 | Samba 4.24.6 |