mfsmaster.cfg(5) این بخشی از MooseFS است mfsmaster.cfg(5)

mfsmaster.cfg - فایل پیکربندی اصلی برای mfsmaster

فایل mfsmaster.cfg شامل پیکربندی پردازهٔ مستر MooseFS است.

نحو به صورت زیر است:

خطوطی که با نویسهٔ # آغاز می‌شوند به عنوان توضیح نادیده گرفته می‌شوند.

تغییرات در این بخش نیازمند راه‌اندازی مجدد پردازه است.

کاربری که دیمن با آن اجرا می‌شود.
گروهی که دیمن با آن اجرا می‌شود؛ مقدار اختیاری - در صورت خالی بودن، گروه پیش‌فرض کاربر استفاده خواهد شد.
نام پردازه برای قرارگیری در پیام‌های syslog؛ پیش‌فرض mfsmaster است.
آیا برای جلوگیری از مبادله (swap) پردازهٔ mfsmaster از ()mlockall استفاده شود یا خیر؛ پیش‌فرض 0 است، یعنی خیر.
غیرفعال کردن کشنده کمبود حافظه (OOM Killer) (فقط لینوکس، پیش‌فرض 1 است).
سطح nice برای اجرای دیمن؛ پیش‌فرض -19 است؛ نکته: پردازه برای افزایش اولویت باید با کاربر root راه‌اندازی شود، در صورت ناموفق بودن تنظیم اولویت، پردازه همان سطح nice را که با آن شروع شده بود حفظ می‌کند.
تنظیم umask پیش‌فرض برای گروه و دیگران (کاربر مالک همواره 0 دارد)؛ پیش‌فرض 027 است - مسدود کردن نوشتن برای گروه و مسدود کردن همه دسترسی‌ها برای دیگران.
محل ذخیره‌سازی فایل‌های فراداده (متادیتا) و فایل قفل.

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

(تنها نسخه Pro) مکان یا نام جایگزین برای فایل mfslicence.bin.
مکان یا نام جایگزین برای فایل mfsexports.cfg.
مکان یا نام جایگزین برای فایل mfstopology.cfg.
نام اختیاری نمونهٔ MooseFS (کلاستر) که در رابط کاربری گرافیکی (GUI) نمایش داده خواهد شد (پیش‌فرض رشتهٔ خالی است).
تعداد فایل‌های گزارش تغییرات متادیتا (پیش‌فرض 50 است).
آفست مورد استفاده برای گزینه‌های: METADATA_SAVE_FREQ، (تنها نسخه Pro) METADATA_DOWNLOAD_FREQ، (تنها نسخه Pro) METADATA_CRCCHECK_FREQ (به دقیقه - پیش‌فرض 0 است)؛ قالب X:Y نیز پذیرفته می‌شود و به معنای X ساعت و Y دقیقه است، پسوند "L" را می‌توان برای اشاره به منطقهٔ زمانی محلی (سرور) به جای UTC اضافه کرد؛ در صورت ارائهٔ ساعت، مقدار باقیمانده به پیمانه (modulo) متغیرهای METADATA_SAVE_FREQ، METADATA_DOWNLOAD_FREQ و METADATA_CRCCHECK_FREQ محاسبه و استفاده خواهد شد، بخش NOTES را ببینید.
هر چند وقت یک‌بار (به ساعت) مستر (تک یا پیرو) متادیتا را ذخیره می‌کند (پیش‌فرض 1 است).
(تنها نسخه Pro) هر چند وقت یک‌بار (به ساعت) رهبر متادیتا را از پیروان بارگیری می‌کند (پیش‌فرض 0 است - یعنی هرگز).
(تنها نسخه Pro) هر چند وقت یک‌بار (به ساعت) رهبر سازگاری متادیتا با پیروان را بررسی می‌کند (همچنین متادیتا را ذخیره می‌کند؛ پیش‌فرض 24 است).
(تنها نسخه Pro) محدودیت بارگیری متادیتا بر حسب مبی‌بایت بر ثانیه (0 یعنی بدون محدودیت، پیش‌فرض 50 است - 50MiB/s = ~52.4MB/s).
(تنها نسخه Pro) چند ثانیه طول می‌کشد تا مستر منتخب (master-elect) در صورت عدم اتصال تعداد کافی چانک‌سرور برای تبدیل شدن به مستر رهبر، به مستر معاون (master-deputy یا مستر فقط‌خواندنی) تبدیل شود (پیش‌فرض 0 است - یعنی هرگز).
(تنها نسخه Pro) اگر این گزینه روی 1 تنظیم شود، این مستر پس از از دست دادن نقش رهبری به دلیل راه‌اندازی مجدد یا قطع اتصال، تلاش خواهد کرد دوباره رهبری را به دست گیرد؛ اگر کاربری عمداً رهبری را تغییر داده باشد چنین تلاشی نخواهد کرد؛ برای توضیحات تفصیلی بخش NOTES را ببینید (پیش‌فرض 0 است - تلاشی برای به دست گرفتن رهبری نکن).
تعداد فایل‌های متادیتای قبلی که باید نگهداری شوند (پیش‌فرض 1 است).
چند ثانیه از گزارش‌های تغییرات باید در حافظه نگهداری شوند (پیش‌فرض 5000 است؛ این مقدار حداقل را تعیین می‌کند، مقدار واقعی به دلیل نگهداری لاگ‌ها در بلوک‌های 5k ممکن است اندکی بیشتر باشد؛ مقدار صفر ذخیره‌سازی لاگ‌های اضافی را غیرفعال می‌کند).
چه مقدار از RAM بر حسب مگابایت می‌تواند برای حفظ گزارش‌های تغییرات در حافظه استفاده شود (پیش‌فرض 500 است؛ این مقدار حداقل را مشخص می‌کند، مقدار واقعی به دلیل نگهداری لاگ‌ها در بلوک‌های 5k ممکن است کمی بیشتر باشد؛ صفر ذخیره لاگ‌های اضافی را غیرفعال می‌کند)؛ مستر همواره تعداد کمتری از بلوک‌های 5k تعیین‌شده توسط CHANGELOG_PRESERVE_SECONDS و CHANGELOG_PRESERVE_MB را حفظ خواهد کرد، بنابراین اطمینان حاصل کنید که هر دو را به درستی تنظیم کرده‌اید.
حالت ذخیره‌سازی changelog (پیش‌فرض 0 است)
0 - نوشتن در پس‌زمینه توسط پردازه‌ای دیگر (امنیت کمتر، اما در هنگام بار سنگین هارد دیسک مانع متوقف شدن مستر می‌شود)
1 - نوشتن در پیش‌زمینه بدون همگام‌سازی داده‌ها (مستر منتظر ذخیره شدن هر لاگ تغییرات روی هارد دیسک می‌ماند، اما بدون همگام‌سازی - اندکی امن‌تر از گزینهٔ پس‌زمینه، اما ممکن است باعث توقف مستر و انتظار برای تخلیه بافرهای هارد دیسک شود)
2 - نوشتن در پیش‌زمینه همراه با fsync پس از هر بار نوشتن (بسیار امن، اما ممکن است مستر شما را بسیار کند کند مگر اینکه سخت‌افزار بسیار پیشرفته‌ای داشته باشید)
چه تعداد چانک مفقود در مستر ذخیره خواهد شد (حداکثر تا 100*MISSING_LOG_CAPACITY بایت حافظه تخصیص داده می‌شود؛ مقدار پیش‌فرض 100000 است).
(تنها نسخه Pro) هر چند وقت یک‌بار (به ساعت) مستر رهبر باید آزمونی را اجرا کند که بررسی می‌کند آیا گزینه‌های پیکربندی بین ماژول‌ها سازگار هستند یا خیر (پیش‌فرض 24 است، حداکثر مقدار ممکن 168 است، مقدار 0 به معنای عدم اجرای آزمون است).
حداقل سطح پیام‌هایی که توسط مستر گزارش می‌شود؛ سطوح به ترتیب اهمیت: ERROR، WARNING، NOTICE، INFO، DEBUG (پیش‌فرض INFO است).
پیام‌های گزارش‌شده با سطحی پایین‌تر از مقدار تعیین‌شده توسط این گزینه، به این سطح ارتقا خواهند یافت (یعنی اگر SYSLOG_MIN_LEVEL روی DEBUG تنظیم شده باشد و SYSLOG_ELEVATE_TO روی NOTICE تنظیم گردد، تمام پیام‌های INFO و DEBUG با سطح NOTICE به syslog ارسال خواهند شد؛ پیش‌فرض NOTICE است).

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

نشانی IP برای شنود اتصالات متالاگر، مسترها (تنها نسخه Pro) و سرپرست‌ها (* به معنای هر نشانی است).
درگاه برای شنود اتصالات متالاگر، مسترها (تنها نسخه Pro) و سرپرست‌ها.
مهلت زمانی پیش‌فرض به ثانیه برای اتصال مستر-متالاگر (پیش‌فرض 10 است).
مهلت زمانی اجباری به ثانیه برای اتصال مستر-متالاگر (پیش‌فرض 0 است - تحمیل نکردن مهلت زمانی).

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

(تنها نسخه Pro) میزبان مستر MooseFS (پیش‌فرض mfsmaster است).
(تنها نسخه Pro) تاخیر به ثانیه قبل از تلاش بعدی برای اتصال مجدد به مستر رهبر در صورت عدم اتصال (پیش‌فرض 5 است).
(تنها نسخه Pro) مهلت زمانی به ثانیه برای اتصالات مستر-رهبر (پیش‌فرض 10 است).
(تنها نسخه Pro) نشانی محلی مورد استفاده برای اتصال به مستر رهبر (پیش‌فرض * است، یعنی نشانی محلی پیش‌فرض).

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

نشانی IP برای شنود اتصالات چانک‌سرور (* به معنای هر نشانی است).
درگاه برای شنود اتصالات چانک‌سرور.
مهلت زمانی پیش‌فرض به ثانیه برای اتصال مستر-چانک‌سرور (پیش‌فرض 10 است).
مهلت زمانی اجباری به ثانیه برای اتصال مستر-چانک‌سرور (پیش‌فرض 0 است - تحمیل نکردن مهلت زمانی).
رشتهٔ احراز هویت اختیاری. در صورت تعریف شدن - تنها چانک‌سرورهایی با همان AUTH_CODE مجاز به اتصال به این مستر هستند. در صورت تعریف نشدن (پیش‌فرض) - تمام چانک‌سرورها مجاز به اتصال خواهند بود. اگر مایل به فعال‌سازی احراز هویت چانک‌سرور هستید، ابتدا AUTH_CODE را در تمامی چانک‌سرورهای خود تعریف کرده (و آن‌ها را بازخوانی/راه‌اندازی مجدد کنید)، سپس این گزینه را در مستر تعریف نموده و آن را بازخوانی/راه‌اندازی مجدد کنید. به یاد داشته باشید که پس از بازخوانی، چانک‌سرورهای متصل فعلی قطع نمی‌شوند. مقدار جدید AUTH_CODE تنها زمانی اعمال خواهد شد که چانک‌سرورها اتصال جدیدی برقرار کنند.
بازنگاشت اختیاری کلاس IP. بازنگاشت نشانی‌های IP چانک‌سرور با تطابق REMAP_BITS بیت اول IP با REMAP_BITS بیت اول REMAP_SOURCE_IP_CLASS انجام می‌شود. در طول بازنگاشت، سیستم REMAP_BITS بیت اول نشانی IP را برابر با REMAP_BITS بیت اول REMAP_DESTINATION_IP_CLASS قرار می‌دهد. برای عملکرد این قابلیت، هر سه گزینه باید تعریف شوند.
بازنگاشت اختیاری کلاس IP شبکه محلی (LAN). بازنگاشت نشانی‌های IP چانک‌سرورها بر اساس MULTILAN_BITS بیت اول IP کلاینت برای تمامی IPهای کلاینت که با یکی از کلاس‌های MULTILAN_CLASSES مطابقت دارند (کلاس‌ها باید با کاما از هم جدا شوند). تمامی مسترها و چانک‌سرورها باید دارای IPهای معتبر از هر یک از کلاس‌های MULTILAN_CLASSES باشند. هر دو گزینه برای عملکرد بازنگاشت باید تعریف شده باشند.
مکان یا نام جایگزین برای فایل mfsipmap.cfg. این فایل نگاشت سفارشی اختیاری IP را تعریف می‌کند.

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

تاخیر اولیه به ثانیه پیش از آغاز همانندسازی‌ها (پیش‌فرض 60 است).
آیا همانندسازی‌های زیرهدف (undergoal) توپولوژی را رعایت کنند یا خیر (پیش‌فرض 0 است)
0 - توپولوژی را رعایت نکن
1 - یک سرور مقصد را به صورت تصادفی انتخاب کن، اما سپس بهترین سرور مبدا را برگزین
2 - تلاش کن تا یک سرور مقصد در همان رک (rack) یکی از نسخه‌های موجود پیدا کرده و سپس چانک را به صورت محلی (در همان رک) همانندسازی کن
آیا چانک‌های جدید با رعایت توپولوژی ثبت شوند یا خیر (پیش‌فرض 0 است)
0 - توپولوژی را رعایت نکن
N (N>0) - ابتدا سعی کن چانک‌های جدید را روی سرورهایی ایجاد کنی که فاصلهٔ توپولوژیکی آن‌ها از کلاینت کمتر از N باشد؛ در صورت عدم امکان، برای نمونه به دلیل کلاس ذخیره‌سازی، مشغول بودن چانک‌سرورها یا کمبود فضا، سرورهایی با فاصله بیشتر یا مساوی N را امتحان کن
جلوگیری از استفاده از یک IP یا رک برای نسخه‌های مختلف چانک (پیش‌فرض 0 است)
0 - نادیده گرفتن IP و شناسهٔ رک (رفتار استاندارد)
1 - جلوگیری از ذخیرهٔ بیش از یک نسخه روی چانک‌سرورهایی با نشانی IP یکسان
2 - جلوگیری از ذخیرهٔ بیش از یک نسخه روی چانک‌سرورهایی با IP متعلق به همان شناسهٔ رک (rack id)
توجه! این پارامتر برای سازگاری با نسخه‌های پیشین در نظر گرفته شده است و نباید روی مقداری جز 0 تنظیم شود. در عوض باید از ویژگی تمایز (distinguish) در کلاس‌های ذخیره‌سازی استفاده شود. با این حال، در صورت تنظیم روی مقداری غیر از 0، هرگونه تعریف تمایز در کلاس‌های ذخیره‌سازی را بازنویسی خواهد کرد. برای اطلاعات بیشتر درباره کلاس‌های ذخیره‌سازی و قابلیت تمایز به راهنمای mfsscadmin(1) مراجعه کنید.
حلقهٔ چانک‌ها نباید در هر ثانیه چانک‌های بیشتری از عدد داده‌شده را بررسی کند (پیش‌فرض 100000 است).
حلقهٔ چانک‌ها نباید در ثانیه‌هایی کمتر از عدد داده‌شده به پایان برسد (پیش‌فرض 300 است).
حداکثر حد نرم (soft) تعداد چانک‌ها برای حذف روی یک چانک‌سرور (پیش‌فرض 10 است).
حداکثر حد سخت (hard) تعداد چانک‌ها برای حذف روی یک چانک‌سرور (پیش‌فرض 25 است).
حداکثر تعداد چانک‌ها برای همانندسازی روی یک چانک‌سرور (پیش‌فرض 2,1,1,4,4 است - بخش NOTES را ببینید).
حداکثر تعداد چانک‌ها برای همانندسازی از یک چانک‌سرور (پیش‌فرض 10,5,2,5,10 است - بخش NOTES را ببینید).
آستانهٔ بار چانک‌سرور (پیش‌فرض 150 است - بخش NOTES را ببینید).
نسبت آستانه برای بار چانک‌سرور (پیش‌فرض 3.0 است - بخش NOTES را ببینید).
تعیین می‌کند چانک‌سرورها چه مدت در حالت مهلت (grace) باقی خواهند ماند (پیش‌فرض 900 است - بخش NOTES را ببینید).
حداکثر اختلاف درصدی بین مصرف فضای چانک‌سرورها (پیش‌فرض 1 = 1% است).
طول صف‌های اولویت‌دار (برای چانک‌های در معرض خطر، زیرهدف و غیره - چانک‌هایی که باید ابتدا پردازش شوند - پیش‌فرض 1000000 است).
حداکثر زمانی که سرور می‌تواند در حالت تعمیر و نگهداری (maintenance mode) باشد (مقدار پیش‌فرض 0 است - یعنی 'برای همیشه')؛ برای قالب‌بندی مقدار، بخش TIME را ببینید.
حداکثر زمانی که سرور می‌تواند در حالت تعمیر و نگهداری «موقت» باشد (هر زمان که سرور به‌طور ملایم و ایمن متوقف شود به این حالت تغییر می‌یابد، پس از اتصال مجدد، سرور به طور خودکار به حالت عادی بازمی‌گردد؛ مقدار پیش‌فرض: 30m)؛ برای قالب‌بندی مقدار، بخش TIME را ببینید.
چند روز یک چانک‌سرور استفاده‌نشده (قطع‌شده) باید در ساختارهای دادهٔ مستر نگهداری شود (مقادیر مجاز: 0 تا 365؛ 0 به معنای نامحدود است؛ مقدار پیش‌فرض: 7).

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

نشانی IP برای شنود اتصالات کلاینت (mount) (* به معنای هر نشانی است).
درگاه برای شنود اتصالات کلاینت (mount).
مهلت زمانی پیش‌فرض به ثانیه برای اتصال مستر-کلاینت (پیش‌فرض 10 است).
مهلت زمانی اجباری به ثانیه برای اتصال مستر-کلاینت (پیش‌فرض 0 است - تحمیل نکردن مهلت زمانی).
آیا MooseFS باید از اتصال کلاینت‌هایی که قادر به خواندن تمام داده‌ها نیستند (به‌ویژه داده‌های کدگذاری افزونگی/erasure encoded) جلوگیری کند یا خیر. پیش‌فرض 1 است - جلوگیری از اتصالات. اگر این گزینه روی 0 تنظیم شود، کلاینت‌هایی که سعی در خواندن داده‌ها با قالبی که متوجه نمی‌شوند دارند، خطای خواندن برمی‌گردانند. با احتیاط استفاده شود.

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

چه مدت نشست یک کلاینت قطع‌شده حفظ شود (پیش‌فرض 1 روز است)؛ برای قالب‌بندی مقدار، بخش TIME را ببینید.

تغییرات در این بخش تنها نیازمند بازخوانی (reload) پردازه است.

مهلت پیش‌فرض برای سهمیه نرم (soft quota) (پیش‌فرض 7 روز است)؛ برای قالب‌بندی مقدار، بخش TIME را ببینید.
تنظیم حالت تغییر atime (پیش‌فرض 2 است: شبیه به 'relatime' - بخش NOTES را ببینید).
انتقال فایل‌های خالی به سطل بازیافت (trash) پس از unlink؟ (پیش‌فرض 0 است - حذف فوری فایل‌های خالی صرف‌نظر از تنظیمات نگهداری سطل زباله).
تنظیم میزان فضای رزروشده برای کاربر ارشد (superuser) (پیش‌فرض 0 است = عدم رزرو فضا برای کاربر ارشد - بخش NOTES را ببینید).
تعیین محدودیت برای تعداد پیوندهای سخت (hardlinks) مجاز برای یک شیء (پیش‌فرض 32767 است؛ مقادیر ممکن از 8 تا 65000 هستند).
زمان تاخیری که پس از آن اینودهای (inodes) اشیاء حذف‌شده مجدداً استفاده خواهند شد. توجه داشته باشید اگر این مقدار را به کمتر از 1 روز کاهش دهید، باید اطمینان حاصل کنید که این مقدار بیشتر از هر یک از مهلت‌های زمانی زیر در تمامی کلاینت‌ها باشد: mfsattrcacheto، mfsxattrcacheto، mfsentrycacheto، mfsdirentrycacheto، mfsnegentrycacheto، mfssymlinkcacheto. (پیش‌فرض 1d است؛ مقادیر مجاز از 300 تا 3000000 ثانیه هستند)؛ برای قالب‌بندی مقدار، بخش TIME را ببینید.
سیستم هنگام استفاده از تعریف سبک قدیمی EC چند بخش داده باید استفاده کند (@n به جای @8+n یا @4+n؛ پیش‌فرض 8 است؛ مقادیر مجاز 4 یا 8 هستند).

برای متغیرهای پیکربندی که زمان را بدون الزام به یک واحد منفرد و مشخص تعیین می‌کنند، زمان می‌تواند به صورت تعداد ثانیه‌ها (عدد صحیح) یا یک بازهٔ زمانی در یکی از دو قالب ممکن تعریف شود:

قالب نخست: #.#T که در آن T یکی از موارد زیر است: s (ثانیه‌ها)، m (دقیقه‌ها)، h (ساعت‌ها)، d (روزها) یا w (هفته‌ها)؛ کسرهای ثانیه به ثانیه‌های کامل گرد خواهند شد.

قالب دوم: #w#d#h#m#s، هر تعدادی از تعاریف می‌تواند حذف شود، اما تعاریف باقیمانده باید دارای ترتیب باشند (بنابراین #d#m همچنان تعریفی معتبر است، اما #m#d معتبر نیست)؛ محدوده‌ها: s و m از 0 تا 59، h از 0 تا 23، d از 0 تا 6، مقدار w نامحدود است و اولین تعریف نیز همواره نامحدود است (یعنی برای #d#h#m مقدار d نامحدود خواهد بود).

مثال‌ها:

1.5h معادل 1h30m، معادل 90m، معادل 5400s، و معادل 5400 است.

2.5d معادل 2d12h و معادل 60h است؛ 1d36h یک بازه زمانی معتبر نیست (h اولین تعریف نیست، بنابراین به محدوده 0 تا 23 محدود است).

1.03m معادل 62s است (61.8 ثانیه به 62 گرد می‌شود).

چانک‌ها در مستر درون یک حلقه آزمایش می‌شوند. سرعت (یا بسامد) توسط دو گزینه تنظیم می‌شود: CHUNKS_LOOP_MIN_TIME و CHUNKS_LOOP_MAX_CPS. گزینه نخست حداقل زمان بین تکرارهای حلقه را تعریف می‌کند و گزینه دوم حداکثر تعداد آزمایش‌های چانک در هر ثانیه را مشخص می‌سازد. معمولاً در ابتدا، هنگامی که تعداد چانک‌ها اندک است، زمان ثابت بوده و توسط CHUNKS_LOOP_MIN_TIME تنظیم می‌شود، اما با افزایش تعداد چانک‌ها، زمان حلقه می‌تواند طبق CHUNKS_LOOP_MAX_CPS افزایش یابد.

مثال: CHUNKS_LOOP_MIN_TIME روی 300 تنظیم شده است، CHUNKS_LOOP_MAX_CPS روی 100000 تنظیم شده و 1000000 (یک میلیون) چانک در سیستم وجود دارد. 10 = 1000000/100000، که کمتر از 300 است، بنابراین یک تکرار حلقه 300 ثانیه طول خواهد کشید. با 1000000000 (یک میلیارد) چانک، سیستم برای یک تکرار حلقه به 10000 ثانیه نیاز دارد.

محدودیت‌های حذف به عنوان محدودیت‌های «نرم» (soft) و «سخت» (hard) تعریف می‌شوند. هنگامی که تعداد چانک‌های آماده برای حذف از یک حلقه به حلقه دیگر افزایش می‌یابد، محدودیت فعلی می‌تواند موقتاً بالاتر از حد نرم افزایش یابد، اما هرگز فراتر از حد سخت نخواهد رفت.

محدودیت‌های همانندسازی به پنج دسته تقسیم می‌شوند:

•
محدودیت نخست برای چانک‌های در معرض خطر است (چانک‌هایی که فقط یک نسخه دارند)
•
محدودیت دوم برای چانک‌های زیرهدف است (چانک‌هایی با تعداد نسخه‌های کمتر از هدف تعیین‌شده)
•
محدودیت سوم برای توازن مجدد میان سرورهایی است که مصرف فضای آن‌ها نزدیک به میانگین حسابی است
•
محدودیت چهارم برای توازن مجدد میان سایر سرورهاست (مصرف فضای بسیار کم یا بسیار زیاد)
•
محدودیت پنجم برای همانندسازی‌های بازیابی ناشی از عملیات ورودی/خروجی (خواندن/نوشتن) است

معمولاً عدد اول باید بزرگتر یا مساوی با دومی باشد، دومی بزرگتر یا مساوی سومی، و چهارمی بزرگتر یا مساوی سومی ( 1st >= 2nd >= 3rd <= 4th ). محدودیت پنجم باید برابر یا بزرگتر از هر یک از محدودیت‌های دیگر باشد. اگر تنها یک عدد مشخص شود، تمام محدودیت‌ها روی این عدد تنظیم می‌شوند (برای سازگاری با گذشته). اگر فقط چهار عدد داده شود، عدد پنجم برابر با بیشینهٔ آن چهار عدد تعیین خواهد شد (همچنین برای سازگاری با گذشته).

هر زمان که بار چانک‌سرور بالاتر از CS_HEAVY_LOAD_THRESHOLD و به اندازهٔ CS_HEAVY_LOAD_RATIO_THRESHOLD برابر بیشتر از میانگین بار باشد، چانک‌سرور به حالت مهلت (grace) تغییر وضعیت می‌دهد. چانک‌سرور برای مدت CS_HEAVY_LOAD_GRACE_PERIOD ثانیه در حالت مهلت باقی می‌ماند.

پنج مقدار ممکن برای ATIME_MODE وجود دارد (سایر مقادیر به عنوان 0 در نظر گرفته می‌شوند):

•
0 = همواره atime را برای فایل‌ها، پوشه‌ها و پیوندهای نمادین تغییر بده.
•
1 = همواره atime را تغییر بده اما تنها برای فایل‌ها (در مورد پوشه‌ها و پیوندهای نمادین atime را تغییر نده).
•
2 = مقدار atime را تنها زمانی تغییر بده که کمتر از ctime یا mtime باشد و زمان فعلی به ترتیب بیشتر از ctime یا mtime باشد، همچنین هنگامی که atime فعلی قدیمی‌تر از 24 ساعت باشد آن را تغییر بده. این کار را برای تمام اشیاء هنگام دسترسی انجام بده (مانند گزینه "relatime" در لینوکس).
•
3 = مانند مورد بالا اما تنها برای فایل‌ها. در مورد پوشه‌ها و پیوندهای نمادین atime را تغییر نده.
•
4 = هرگز atime را در هنگام دسترسی تغییر نده (مانند گزینه "noatime").

می‌توانید با استفاده از گزینهٔ RESERVE_SPACE فضایی را برای کاربر ارشد رزرو کنید. می‌توانید آن را بر حسب تعداد بایت‌ها، درصد کل فضا، ظرفیت بزرگ‌ترین چانک‌سرور و غیره تعریف کنید.

•
# یا #B = تعداد بایت‌های رزروشده برای کاربر ارشد. پیشوندهای استاندارد متریک قابل استفاده هستند - SI و IEC (مانند k، K، M، Mi، G، Gi و غیره).
•
#% یا #.#% = درصد کل ظرفیت نمونهٔ MooseFS.
•
#U یا #.#U = مضاربی از مقدار "U"؛ مقدار U به عنوان حداکثر تعداد بایت‌های مصرف‌شدهٔ فعلی توسط یک چانک‌سرور واحد تعریف می‌شود.
•
#C یا #.#C = مضاربی از مقدار "C"؛ مقدار C به عنوان حداکثر ظرفیت کل یک چانک‌سرور واحد تعریف می‌شود.

هنگامی که شبکهٔ شما دارای دو (یا چند) کلاس IP باشد، ممکن است بخواهید از یک شبکه برای ارتباطات استاندارد میان ماژول‌های MFS و از یک شبکهٔ مجزا فقط برای ورودی/خروجی (I/O) استفاده کنید. این کار با تنظیم REMAP_BITS، REMAP_SOURCE_IP_CLASS و REMAP_DESTINATION_IP_CLASS امکان‌پذیر است. هنگامی که این گزینه‌ها را تنظیم کنید، مستر نشانی‌های IP چانک‌سرورها را در داخل تغییر داده و آن‌ها را به عنوان مکان‌های چانک ارسال می‌کند، بنابراین کلاینت‌ها برای تمامی عملیات ورودی/خروجی با استفاده از IP جدید (مقصد) به چانک‌سرورها متصل می‌شوند، اما همچنان با استفاده از IP اصلی (مبدا) با مستر ارتباط برقرار می‌کنند. همچنین چانک‌سرورها از IP اصلی برای ارتباط با مستر استفاده می‌کنند، اما در حین همانندسازی از IPهای جدید برای ارتباط میان خود بهره می‌برند. توجه داشته باشید که تمام کلاینت‌ها و چانک‌سرورها باید به هر دو شبکه دسترسی داشته باشند، اما مسترها، متالاگرها و غیره تنها نیاز به دسترسی به شبکهٔ مبدا دارند.

هنگامی که کلاینت‌های شما در دو یا چند شبکهٔ LAN یا VLAN مجزا قرار دارند، ممکن است بخواهید آن‌ها با استفاده از IPهای شبکهٔ خود به مسترها و چانک‌سرورها متصل شوند. این کار را می‌توان با تنظیم MULTILAN_BITS و MULTILAN_CLASSES انجام داد. هر بار که کلاینتی متصل می‌شود، مستر بررسی می‌کند که آیا اتصال از یکی از کلاس‌های LAN تعریف‌شده آمده است یا خیر، و در صورت مثبت بودن، پیش از ارسال IP چانک‌سرور به کلاینت، MULTILAN_BITS بیت اول هر IP چانک‌سرور را بازنگاشت می‌کند. اتصالات دریافتی از سایر نشانی‌های IP طبق معمول رفتار خواهند شد (یعنی IPهای اصلی چانک‌سرور در پاسخ ارسال می‌شوند). تمامی مسترها و چانک‌سرورها باید یک IP از هر یک از کلاس‌های تعریف‌شده در MULTILAN_CLASSES داشته باشند و یک ماژول (چانک‌سرور یا مستر) باید پسوند IP یکسانی در هر کلاس داشته باشد. پیکربندی مناسب DNS نیز الزامی است: کلاینت‌ها در هر LAN باید در هنگام پرس‌وجو از DNS درباره میزبان مستر، یا IP متفاوتی دریافت کنند یا از نام‌های میزبان مستر متفاوتی استفاده کنند که به IPهای کلاس خودشان ترجمه می‌شوند. برای اطلاعات بیشتر درباره نام میزبان مستر به mfsmount(8) و mfsbdev(8) مراجعه فرمایید.

دو مجموعه گزینهٔ بالا را می‌توان به همراه یکدیگر استفاده کرد. یک هدف می‌تواند ایجاد یک شبکهٔ مجزا برای همانندسازی داده‌ها میان چانک‌سرورها و در عین حال حفظ چندین شبکهٔ مجزا (LANها) برای مجموعه‌های مجزای کلاینت‌ها باشد. برای مثال، با پیکربندی زیر:

REMAP_BITS = 24
REMAP_SOURCE_IP_CLASS = 10.0.0.0
REMAP_DESTINATION_IP_CLASS = 10.0.1.0
MULTILAN_BITS = 24
MULTILAN_CLASSES = 192.168.1.0, 192.168.2.0, 192.168.3.0, 10.0.1.0

تمام ترافیک شبکه از کلاینت‌های منطبق با یکی از کلاس‌های LAN در همان شبکه مدیریت خواهد شد (بنابراین کلاینتی با IP معادل 192.168.1.17 با استفاده از IPهایی با پیشوند 192.168.1 به مستر و چانک‌سرورها متصل می‌شود و کلاینتی با IP معادل 192.168.2.13 با استفاده از IPهایی با پیشوند 192.168.2 به مستر و چانک‌سرورها وصل خواهد شد)، تمام ترافیک متادیتا میان مستر و چانک‌سرورها در شبکه‌ای با پیشوند 10.0.0 اداره می‌شود و تمام ارتباطات مستقیم میان چانک‌سرورها (یعنی همانندسازی‌های چانک) در شبکه‌ای با پیشوند 10.0.1 مدیریت خواهد شد. توجه داشته باشید که هر کلاینتی از خارج کلاس‌های LAN تعریف‌شده، از طریق IPهای تعریف‌شده توسط REMAP_DESTINATION_IP_CLASS به چانک‌سرورها متصل خواهد شد. این همچنین پیکربندی صحیح DNS را مفروض می‌داند؛ به این معنی که اگر سرور مستر از پسوند IP معادل 1 استفاده می‌کند، کلاینتی با IP معادل 192.168.1.17 باید نام میزبان مستر را به 192.168.1.1 ترجمه کند و کلاینتی با IP معادل 192.168.2.13 باید نام میزبان مستر را به 192.168.2.1 ترجمه نماید. کلاینتی خارج از کلاس‌های LAN تعریف‌شده می‌تواند از هر یک از IPهای سرور مستر استفاده کند، اگرچه ترجیحاً 10.0.0.1 خواهد بود.

مسترها متادیتا را در فایلی روی دیسک محلی ذخیره می‌کنند. زمان‌های دقیق این عملیات توسط چهار متغیر تنظیم می‌شود: METADATA_SAVE_OFFSET، METADATA_SAVE_FREQ، (تنها نسخه Pro) METADATA_DOWNLOAD_FREQ، و (تنها نسخه Pro) METADATA_CRCCHECK_FREQ.

یک مستر منفرد، متادیتا را هر METADATA_SAVE_FREQ ساعت یک‌بار ذخیره می‌کند. نخستین ذخیره‌سازی روز در نیمه‌شب رخ می‌دهد و هر ذخیره‌سازی بعدی به اندازهٔ METADATA_SAVE_FREQ پس از مورد قبلی انجام می‌گیرد. این زمان‌بندی را می‌توان با METADATA_SAVE_OFFSET تغییر داد. تنظیم METADATA_SAVE_OFFSET با یک مقدار منفرد به معنای دقیقه خواهد بود. بنابراین تنظیمی مانند این:

METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 15

به معنای ذخیره‌سازی در ساعت‌های 00:15، 02:15، 04:15 و غیره تا 22:15 خواهد بود. اگر ساعت نیز ارائه شود، در محاسبات در نظر گرفته می‌شود، اما تنها به صورت باقیمانده به پیمانه (modulo)، بنابراین:

METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15

دقیقاً مشابه این رفتار خواهد کرد:

METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 5:15

و متادیتا را در ساعت‌های 01:15، 03:15، 05:15 و غیره ذخیره خواهد کرد.

تمام زمان‌های ذکرشده در بالا بر حسب UTC محاسبه می‌شوند، مگر آن‌که پسوند "L" استفاده شود. بنابراین اگر سرورهای شما در منطقه زمانی CET (برابر UTC-1) باشند، این تنظیم:

METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15

به این معنا خواهد بود که مستر متادیتا را در ساعت‌های 01:15، 03:15 و غیره به وقت UTC ذخیره می‌کند، که به معنای 00:15، 02:15 و غیره به وقت محلی (CET) است. برای ذخیره‌سازی در ساعت 01:15 (و هر 2 ساعت پس از آن) به وقت محلی، باید بنویسید:

METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15L

(تنها نسخه Pro) با چند مستر، رهبر متادیتا را بر اساس تنظیم METADATA_CRCCHECK_FREQ ذخیره خواهد کرد، اما آفست را نیز در نظر می‌گیرد. بنابراین تنظیمی مانند:

METADATA_CRCCHECK_FREQ = 12
METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15

به این معنا خواهد بود که رهبر در ساعت‌های 01:15 و 13:15 متادیتا را ذخیره (و با پیروان مقایسه) می‌کند، در حالی که پیروان در ساعت‌های 01:15، 03:15، 05:15 و غیره ذخیره می‌کنند.

گزینهٔ METADATA_DOWNLOAD_FREQ بدین معناست که رهبر متادیتا را از یک پیرو بارگیری خواهد کرد و این مورد نیز METADATA_SAVE_OFFSET را دقیقاً همانند METADATA_CRCCHECK_FREQ لحاظ خواهد کرد.

زمان‌های اشاره‌شده در بالا بر حسب UTC محاسبه می‌شوند. بنابراین اگر سرورهای شما در منطقهٔ زمانی PST (برابر UTC-8) باشند، این تنظیم:

METADATA_CRCCHECK_FREQ = 12
METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15

به این معنا خواهد بود که رهبر متادیتا را در ساعت‌های 01:15 و 13:15 به وقت UTC ذخیره می‌کند، که معادل 17:15 و 05:15 (ساعت ۵:۱۵ بعدازظهر و ۵:۱۵ صبح) به وقت محلی (PST) است. برای ذخیره در ساعت‌های 01:15 و 13:15 (ساعت ۱:۱۵ صبح و ۱:۱۵ بعدازظهر) به وقت محلی، باید بنویسید:

METADATA_CRCCHECK_FREQ = 12
METADATA_SAVE_FREQ = 2
METADATA_SAVE_OFFSET = 1:15L

تنظیم:

METADATA_SAVE_OFFSET = 0L

می‌تواند برای تنظیم زمان‌های ذخیره‌سازی با منطقهٔ زمانی محلی بدون تغییر برنامهٔ پیش‌فرض ذخیرهٔ متادیتا استفاده شود.

گزینهٔ KEEP_LEADERSHIP را می‌توان برای انتخاب یک مستر در نصب نسخهٔ Pro به کار برد که هر زمان ممکن باشد نقش رهبر (LEADER) را به عهده می‌گیرد. اگر این مستر رهبری را بنا به دلایل مربوط به برخی اختلالات (قطع اتصال بیش از حد چانک‌سرورها از کلاستر، قطع اتصال این مستر از کلاستر - ناشی از انقضای مهلت زمانی یا سایر مشکلات سخت‌افزاری) یا به دلیل راه‌اندازی مجدد پردازه (عمدی یا غیرعمدی) از دست بدهد، در سریع‌ترین زمان ممکن (به محض رسیدن به وضعیت همگام‌شدهٔ FOLLOWER) تلاش خواهد کرد نقش LEADER را بازپس گیرد. اگر کاربری با استفاده از ابزار mfssupervisor رهبری را تغییر داده باشد، این مستر تا زمانی که مجدداً به عنوان LEADER انتخاب شود (این امر می‌تواند به یکی از دو دلیل رخ دهد: تغییر عمدی رهبری توسط کاربر، یا شکست رهبر فعلی و انتخاب اتفاقی این سرور به عنوان رهبر جدید) یا مجدداً راه‌اندازی شود، تلاشی برای پس گرفتن رهبری نخواهد کرد.

تنظیم گزینهٔ KEEP_LEADERSHIP روی 1 برای بیش از یک سرور مستر در یک کلاستر توصیه نمی‌شود و ممکن است منجر به رفتارهای پیش‌بینی‌نشده گردد.

حق نشر (C) 2026 Jakub Kruszona-Zawadzki, Saglabs SA

این فایل بخشی از MooseFS است.

نرم‌افزار MooseFS یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، نسخه ۲ (تنها همین نسخه)، بازتوزیع کرده یا تغییر دهید.

نرم‌افزار MooseFS با این امید توزیع شده است که مفید باشد، اما بدون هیچ‌گونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

شما باید به همراه این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، ببینید: https://www.gnu.org/licenses

mfsmaster(8), mfsexports.cfg(5), mfstopology.cfg(5), mfsipmap.cfg(5)

مه 2026 MooseFS 4.59.2-1