این ماژول
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) - باز
کردن
فایلها
طبق روال
معمول
سامبا