VFS_GPFS(8) System Administration tools VFS_GPFS(8)

vfs_gpfs - افزونه‌های ویژه سامبا برای gpfs مانند فهرست‌های کنترل دسترسی (acls)

vfs objects = gpfs

این ماژول VFS بخشی از مجموعه samba(7) است.

ماژول VFS با نام gpfs محل قرارگیری تمام افزونه‌های gpfs است که سامبا برای یکپارچه‌سازی مناسب با GPFS به آن‌ها نیاز دارد. این ماژول از رابط‌های کتابخانه GPL ارائه‌شده توسط GPFS استفاده می‌کند.

در حال حاضر ماژول gpfs vfs افزونه‌هایی را در زمینه‌های زیر ارائه می‌دهد:

•رابط‌های NFSv4 ACL با گزینه‌های قابل پیکربندی برای GPFS
•پشتیبانی از oplock هسته در GPFS
•پشتیبانی از Lease در GPFS

نکته: این ماژول از رفتار posix-acl پیروی می‌کند و بنابراین امکان سرقت مجوزها از طریق chown را فراهم می‌سازد. سامبا ممکن است در آینده اجازه دهد chown از طریق این ماژول محدود شود، زیرا اعمال چنین محدودیت‌هایی بیش از آنکه بر عهده سامبا باشد، بر عهده سیستم‌فایل زیرین است.

این ماژول از پارامتر smb.conf با نام acl map full control استفاده می‌کند. هنگامی که روی yes (پیش‌فرض) تنظیم شود، این پارامتر بیت FILE_DELETE_CHILD را به یک مدخل ACE بازگردانده‌شده برای یک فایل (نه یک دایرکتوری) که از قبل شامل تمام مجوزهای فایل به جز FILE_DELETE و FILE_DELETE_CHILD است اضافه می‌کند. این کار می‌تواند از دریافت خطای ACCESS_DENIED توسط برنامه‌های ویندوزی که درخواست دسترسی GENERIC_ALL دارند، در هنگام اجرا روی سیستم‌فایلی با ACLهای سازگار با NFSv4 جلوگیری کند.

این ماژول پشته‌پذیر (stackable) است.

از نسخه 4.0 سامبا به بعد، تمام گزینه‌ها به ازای هر اشتراک (per share) هستند.

nfs4:mode = [ simple | special ]

جایگزینی شناسه‌های ویژه (OWNER@ و GROUP@) را در NFS4 ACLها کنترل می‌کند. استفاده از حالت simple توصیه می‌شود. در این حالت فقط مدخل‌های ACL غیروراثتی برای مالک و گروه فایل به شناسه‌های ویژه نگاشت می‌شوند.

حالت‌های (MODEs) زیر توسط این ماژول پشتیبانی می‌شوند:

•simple(default) - شناسه‌های ویژه OWNER@ و GROUP@ را فقط برای ACEهای غیروراثتی استفاده می‌کند.
•special(deprecated) - شناسه‌های ویژه OWNER@ و GROUP@ را در ACEها برای تمام ACEهای مالک و گروه فایل استفاده می‌کند.

nfs4:acedup = [dontcare|reject|ignore|merge]

این پارامتر نحوه مدیریت ACEهای تکراری مشاهده‌شده در NFS4 ACLها توسط سامبا را پیکربندی می‌کند. آن‌ها ایجاد ACEهای تکراری با بیت‌های متفاوت برای یک شناسه یکسان را ممکن می‌سازند که ممکن است کلاینت‌های ویندوز را سردرگم کند.

رفتار سامبا برای مقادیر مختلف به شرح زیر است:

•dontcare - رونوشت گرفتن از ACEها به همان صورتی که دریافت می‌شوند
•reject (deprecated) - متوقف کردن عملیات و خروج با خطا در هنگام عملیات تنظیم ACL
•ignore (deprecated) - شامل نکردن دومین ACE منطبق
•merge (default) - اعمال OR بیتی روی ۲ فیلد ace.flag و ۲ فیلد ace.mask از ۲ مدخل ACE تکراری در قالب ۱ مدخل ACE

nfs4:chown = [yes|no]

این پارامتر امکان فعال یا غیرفعال کردن chown پشتیبانی‌شده توسط سیستم‌فایل زیرین را فراهم می‌کند. این پارامتر باید با احتیاط فعال شود زیرا ممکن است سیستم شما را ناامن کند.

برخی از سیستم‌فایل‌ها chown را به صورت الف) واگذاری (giving) و ب) سرقت (stealing) مجاز می‌دانند. این مورد دوم است که به عنوان یک ریسک در نظر گرفته می‌شود.

رفتار سامبا برای مقادیر مختلف به شرح زیر است:

•yes - فعال کردن chown در صورتی که توسط سیستم‌فایل زیرین پشتیبانی شود
•no (default) - غیرفعال کردن chown

gpfs:sharemodes = [ yes | no ]

فعال/غیرفعال کردن مدیریت حالت‌های اشتراک (sharemode) بین گره‌ها برای GPFS.
•yes(default) - انتشار sharemodeها در میان تمام گره‌های GPFS.
•no - عدم انتشار sharemodeها در میان تمام گره‌های GPFS. این مورد تنها باید در صورتی استفاده شود که سیستم‌فایل GPFS منحصراً توسط سامبا صادر شده باشد. دسترسی برنامه‌های محلی یونیکس یا صادرات‌های NFS می‌تواند منجر به خرابی فایل‌ها شود.

gpfs:leases = [ yes | no ]

فعال/غیرفعال کردن اجاره‌ها (leases / oplocks) بین گره‌ها برای GPFS. همچنین باید گزینه‌های oplocks و kernel oplocks را نیز روی مقداری یکسان تنظیم کنید.
•yes(default) - انتشار leaseها در میان تمام گره‌های GPFS.
•no - عدم انتشار leaseها در میان تمام گره‌های GPFS. این مورد تنها زمانی باید استفاده شود که سیستم‌فایل GPFS منحصراً توسط سامبا صادر شده باشد. دسترسی توسط برنامه‌های محلی یونیکس یا صادرات‌های NFS می‌تواند به خراب شدن فایل‌ها منجر شود.

gpfs:hsm = [ yes | no ]

فعال/غیرفعال کردن اعلام فعال بودن HSM در این سیستم‌فایل.
•no(default) - اعلام نکردن HSM.
•yes - اعلام کردن HSM.

gpfs:recalls = [ yes | no ]

هنگامی که این گزینه روی no تنظیم شود، تلاش برای باز کردن یک فایل آفلاین با خطای عدم دسترسی (access denied) رد خواهد شد. این امر به جلوگیری از طوفان‌های فراخوانی مجدد (recall storms) ایجادشده توسط برنامه‌های بی‌ملاحظه‌ای مانند Finder و Explorer کمک می‌کند.
•yes(default) - باز کردن فایل‌هایی که آفلاین هستند. این کار فایل‌ها را از HSM فراخوانی می‌کند.
•no - رد دسترسی به فایل‌های آفلاین با خطای access denied. این کار از فراخوانی فایل‌ها از HSM جلوگیری می‌کند. استفاده از این تنظیم همچنین نیازمند تنظیم gpfs:hsm روی yes است.

gpfs:getrealfilename = [ yes | no ]

فعال/غیرفعال کردن استفاده از تابع gpfs_get_realfilename_path(). این گزینه دسترسی حساس به حروف بزرگ و کوچک برای نام‌های حاوی نویسه‌های عمومی (wildcard) را بهبود می‌بخشد.
•yes(default) - استفاده از gpfs_get_realfilename_path().
•no - عدم استفاده از gpfs_get_realfilename_path(). به نظر می‌رسد که gpfs_get_realfilename_path() روی AIX کار نمی‌کند.

gpfs:winattr = [ yes | no ]

فعال/غیرفعال کردن استفاده از مشخصه‌های ویندوز در GPFS. سیستم‌فایل GPFS قادر است مشخصه‌های فایل ویندوز مانند HIDDEN، READONLY، SYSTEM و سایر موارد را به صورت بومی ذخیره کند. این بدان معناست که سامبا نیازی به نگاشت آن‌ها به بیت‌های مجوز یا مشخصه‌های گسترش‌یافته (extended attributes) ندارد.
•no(default) - عدم استفاده از مشخصه‌های ویندوز GPFS.
•yes - استفاده از مشخصه‌های ویندوز GPFS.

gpfs:acl = [ yes | no ]

این گزینه به سامبا امکان می‌دهد از GPFS ACLها استفاده کند یا آن‌ها را نادیده بگیرد.
•yes(default) - استفاده از GPFS ACLها.
•no - عدم استفاده از GPFS ACLها و ارجاع همه‌چیز به ماژول SMB_VFS بعدی.

gpfs:check_fstype = [ yes | no ]

بررسی مانت بودن سیستم‌فایل GPFS در زمان دسترسی به یک اشتراک SMB.
•yes(default) - بررسی اینکه مسیر اشتراک SMB روی سیستم‌فایل GPFS قرار داشته باشد. در صورت یافتن سیستم‌فایلی دیگر، دسترسی به اشتراک رد خواهد شد.
•no - صرف‌نظر کردن از بررسی سیستم‌فایل GPFS در مسیر اشتراک SMB.

gpfs:dfreequota = [ yes | no ]

تنظیم گزارش اندازه و فضای آزاد یک اشتراک بر اساس سهمیه‌ها (quotas). اگر این تنظیم روی "yes" باشد، درخواستی برای اندازه و فضای آزاد همچنین سهمیه کاربریِ کاربر درخواست‌کننده داده و سهمیه گروهیِ گروه اصلی کاربر را ارزیابی خواهد کرد. سهمیه‌های Fileset استعلام نمی‌شوند، زیرا GPFS از قبل گزینه --dfreequota را برای اعمال سهمیه fileset در پرس‌وجوی فضای آزاد فراهم کرده است. لطفاً برای گنجاندن سهمیه‌های fileset در فضای دیسک گزارش‌شده از آن گزینه استفاده کنید.

اگر هر یک از محدودیت‌های نرم یا سخت سهمیه (soft یا hard quota) پر شده باشد، فضای آزاد 0 گزارش خواهد شد. اگر سهمیه‌ای برقرار باشد، اما محدودیت‌ها پر نشده باشند، فضای آزاد بر اساس فضای باقی‌مانده در سهمیه گزارش می‌شود. در صورتی که بیش از یک سهمیه اعمال شود، فضای آزاد به عنوان کمترین فضای باقی‌مانده در آن سهمیه‌ها گزارش خواهد شد. اندازه اشتراک بر اساس میزان استفاده از سهمیه گزارش خواهد شد. اگر بیش از یک سهمیه اعمال شود، کوچک‌ترین اندازه برای اندازه اشتراک بر اساس این سهمیه‌ها گزارش می‌شود.

•yes - گنجاندن سهمیه‌ها در هنگام گزارش اندازه و فضای آزاد اشتراک
•no(default) - سهمیه‌ها گنجانده نشوند، فقط اندازه و فضای آزاد سیستم‌فایل گزارش شود

gpfs:settimes = [ yes | no ]

استفاده از رابط برنامه‌نویسی gpfs_set_times هنگام تغییر برچسب‌های زمانی (timestamps) یک فایل یا دایرکتوری. اگر API مربوط به GPFS در دسترس نباشد، روش قدیمی استفاده از utime و فراخوانی GPFS winattr به عنوان جایگزین استفاده خواهد شد.
•yes(default) - استفاده از gpfs_set_times؛ در صورت عدم دسترسی، بازگشت به utime و winattr.
•no - عدم استفاده از gpfs_set_times.

gpfs:clamp_invalid_times = [ yes | no ]

سیستم‌فایل GPFS برچسب‌های زمانی را با استفاده از اعداد صحیح بدون علامت ۳۲ بیتی برای بخش ثانیه ذخیره می‌کند. در هنگام استفاده از gpfs:settimes = yes، این ماژول بررسی می‌کند که زمان‌هایی که کلاینت‌ها قصد تنظیم آن‌ها را دارند، در محدوده پشتیبانی‌شده GPFS بین 0 و UINT32_MAX قرار داشته باشند. اگر یک برچسب زمانی خارج از این محدوده باشد، درخواست کلاینت رد می‌شود. برای مدیریت کلاینت‌هایی که مثلاً برچسب‌های زمانی موقت خارج از محدوده مجاز تنظیم می‌کنند، این پارامتر می‌تواند برای محدود کردن برچسب زمانی کلاینت به محدوده مجاز استفاده شود. در این حالت زمان‌های قبل از Thu Jan 1 12:00:00 AM UTC 1970 (مبدأ زمان یونیکس) روی Thu Jan 1 12:00:00 AM UTC 1970 تنظیم می‌شوند و زمان‌های پس از Sun Feb 7 06:28:15 AM UTC 2106 روی Sun Feb 7 06:28:15 AM UTC 2106 قرار می‌گیرند.
•no(default) - رد درخواست در صورت نامعتبر بودن زمان.
•yes - محدود کردن زمان‌های نامعتبر به 0 یا UINT32_MAX.

gpfs:syncio = [yes|no]

این پارامتر باعث می‌شود سامبا تمام فایل‌ها را با فلگ O_SYNC باز کند. این کار بهینه‌سازی‌هایی را در GPFS برای بارهای کاری که اشتراک‌گذاری شدید فایل دارند فعال می‌نماید.

رفتار سامبا برای مقادیر مختلف به شرح زیر است:

•yes - باز کردن فایل‌ها با O_SYNC
•no (default) - باز کردن فایل‌ها طبق روال معمول سامبا

یک نقطه مانت GPFS می‌تواند از طریق سامبا به صورت زیر صادر شود:

        [samba_gpfs_share]
		vfs objects = gpfs
		path = /test/gpfs_mount
		nfs4: mode = special
		nfs4: acedup = merge

بسته به نسخه gpfs، در زمان اجرا کتابخانه libgpfs_gpl یا کتابخانه libgpfs توسط ماژول VFS با نام gpfs مورد نیاز است: با شروع از gpfs نسخه 3.2.1 PTF8، کل کتابخانه libgpfs به صورت منبع‌باز در دسترس است و libgpfs_gpl دیگر وجود ندارد. در نسخه‌های قبلی gpfs، تنها کتابخانه libgpfs_gpl منبع‌باز بود و می‌توانست در زمان اجرا مورد استفاده قرار گیرد.

در زمان ساخت (build)، تنها فایل سرایند (header) با نام gpfs_gpl.h مورد نیاز است، که در نسخه‌های gpfs جدیدتر از 3.2.1 PTF8 یک پیوند نمادین (symlink) به gpfs.h می‌باشد.

این صفحه راهنما بخشی از نسخه 4.24.6 مجموعه سامبا است.

نرم‌افزار اصلی سامبا و ابزارهای مرتبط توسط اندرو تریدجل (Andrew Tridgell) ایجاد شده‌اند. سامبا اکنون توسط تیم سامبا به عنوان یک پروژه منبع‌باز، مشابه روش توسعه هسته لینوکس، توسعه می‌یابد.

ماژول GPFS VFS با مشارکت فولکر لندکه (Volker Lendecke) و توسعه‌دهندگان IBM ایجاد شده است.

این صفحه راهنما توسط تیم IBM FSCC تهیه شده است.

08/16/2026 Samba 4.24.6