.\" ---------------------------------------------------------------------------- .\" Update the date below if you make any significant change. .\" ---------------------------------------------------------------------------- . .TH MULTIPATH.CONF 5 2026-06-13 Linux . . .\" ---------------------------------------------------------------------------- .SH "نام (NAME)" .\" ---------------------------------------------------------------------------- . multipath.conf \- فایل پیکربندی دیمن چندمسیری (multipathd) . . .\" ---------------------------------------------------------------------------- .SH "توضیحات (DESCRIPTION)" .\" ---------------------------------------------------------------------------- . .B "/etc/multipath.conf" فایل پیکربندی دیمن چندمسیری است. این فایل برای بازنویسی جدول پیکربندی توکار \fBmultipathd\fP به کار می‌رود. هر خطی که نخستین نویسه غیرفاصله‌ای آن '#' باشد، یک خط توضیح (کامنت) در نظر گرفته می‌شود. خطوط خالی نادیده گرفته می‌شوند. .PP پیکربندی فعلی مورد استفاده multipathd را می‌توان با دستور \fBmultipath -t\fR یا \fBmultipathd show config\fR مشاهده کرد. . .PP پیکربندی‌های تکمیلی را می‌توان در فایل‌های قطره‌ای (drop-in) زیر مسیر .BR /etc/multipath/conf.d/ انجام داد. فایل‌هایی که در این پوشه نام آن‌ها به \fI.conf\fR ختم می‌شود، پس از خواندن \fI/etc/multipath.conf\fR به ترتیب الفبایی خوانده می‌شوند. آن‌ها از همان سینتکس \fI/etc/multipath.conf\fR استفاده می‌کنند و از تمام بخش‌ها و کلیدواژه‌ها پشتیبانی می‌نمایند. اگر کلیدواژه‌ای در یک بخش یکسان در چندین فایل تکرار شود، آخرین مورد بر تمام موارد پیشین اولویت خواهد داشت. . . .\" ---------------------------------------------------------------------------- .SH "سینتکس (SYNTAX)" .\" ---------------------------------------------------------------------------- . فایل پیکربندی شامل ورودی‌هایی به شکل زیر است: .RS .nf .ft B .sp
{ .RS .ft B .I "..." .ft B { .RS .ft B .I "..." .RE .ft B } .RE .ft B } .ft R .fi .RE .LP هر \fIبخش (section)\fP شامل یک یا چند صفت (attribute) یا زیربخش (subsection) است. کلیدواژه‌های شناخته‌شده برای صفت‌ها یا زیربخش‌ها بستگی به بخشی دارد که در آن قرار گرفته‌اند. .LP . \fB\fR و \fB\fR باید در یک خط منفرد قرار گیرند. \fB\fR یکی از کلیدواژه‌های فهرست‌شده در این صفحه راهنما است. \fB\fR یا یک کلمه ساده است (فاقد فضای خالی و بدون هیچ‌یک از نویسه‌های '\(dq'، '#' و '!') یا \fIیک\fR رشته محصور در نقل‌قول دوتایی ("..."). در خارج از رشته نقل‌قول‌شده، متنی که با '#' یا '!' شروع شود به عنوان کامنت در نظر گرفته شده و تا انتهای خط نادیده گرفته می‌شود. در داخل یک رشته نقل‌قول‌شده، نویسه‌های '#' و '!' معمولی هستند و فاصله‌ها حفظ می‌شوند. برای نمایش نویسه نقل‌قول دوتایی در داخل یک رشته نقل‌قول‌شده، از دو نقل‌قول دوتایی متوالی ('""') استفاده کنید. بنابراین '2.5\(dq SSD' را می‌توان به صورت "2.5"" SSD" نوشت. .LP . کروشه باز ('{') باید در همان خط پس از نام بخش یا زیربخش بیاید. کروشه بسته ('}') که انتهای بخش یا زیربخش را مشخص می‌کند باید تنها نویسه غیرفاصله‌ای در آن خط باشد. فاصله‌های خالی به جز در داخل نقل‌قول دوتایی نادیده گرفته می‌شوند، بنابراین فاصله‌گذاری و دندانه‌گذاری نشان‌داده‌شده در مثال بالا برای خوانندگان انسانی مفید است اما الزامی نیست. .LP . .B نکته‌ای در مورد عبارات باقاعده (Regular Expressions): سینتکس \fI/etc/multipath.conf\fR اجازه می‌دهد مقادیر بسیاری از صفت‌ها به صورت عبارات باقاعده گسترش‌یافته پوزیکس (POSIX Extended Regular Expressions، به \fBregex\fR(7) مراجعه کنید) مشخص شوند. این عبارات باقاعده \fBبه بزرگی و کوچکی حروف حساس هستند\fR و \fBمهارنشده (unanchored)\fR می‌باشند؛ بنابراین عبارت "bar" با "barbie"، "rhabarber" و "wunderbar" مطابقت دارد، اما با "Barbie" مطابقت ندارد. برای جلوگیری از تطبیق‌های ناخواسته زیررشته‌ها، می‌توان از سینتکس استاندارد عبارات باقاعده با استفاده از نویسه‌های ویژه "^" و "$" استفاده کرد. . .LP . کلیدواژه‌های \fIبخش (section)\fP زیر شناخته شده‌اند: .TP .B defaults این بخش مقادیر پیش‌فرض را برای صفت‌هایی تعریف می‌کند که هرگاه هیچ مقداری در بخش‌های مناسب device یا multipath داده نشده باشد، استفاده می‌شوند. .TP .B blacklist این بخش مشخص می‌کند کدام دستگاه‌ها باید از کشف توپولوژی چندمسیری مستثنی شوند. .TP .B blacklist_exceptions این بخش مشخص می‌کند کدام دستگاه‌ها با وجود قرار داشتن در بخش \fIblacklist\fR، باید در کشف توپولوژی چندمسیری گنجانده شوند. .TP .B multipaths این بخش توپولوژی‌های چندمسیری را تعریف می‌کند. این توپولوژی‌ها توسط یک \fIشناسه جهانی (WWID)\fR نمایه‌سازی می‌شوند. برای جزئیات در مورد تولید WWID به بخش \fIتولید WWID (WWID generation)\fR در ادامه مراجعه کنید. صفت‌های تنظیم‌شده در این بخش بر تمام موارد دیگر اولویت دارند. .TP .B devices این بخش تنظیمات خاص هر دستگاه را تعریف می‌کند. دستگاه‌ها بر اساس سازنده (vendor)، محصول (product) و نسخه بازنگری (revision) شناسایی می‌شوند. .TP .B overrides این بخش مقادیری را برای صفت‌هایی تعریف می‌کند که باید تنظیمات خاص دستگاه را برای تمام دستگاه‌ها بازنویسی (override) کنند. . . .\" ---------------------------------------------------------------------------- .SH "بخش defaults (defaults section)" .\" ---------------------------------------------------------------------------- . بخش \fIdefaults\fR کلیدواژه‌های زیر را می‌شناسد: . . .TP .B verbosity میزان پرگویی پیش‌فرض. مقادیر بالاتر سطح پرگویی را افزایش می‌دهند. سطوح معتبر بین 0 و 6 هستند. .RS .TP مقدار پیش‌فرض: \fB2\fR .RE . . .TP .B polling_interval فاصله زمانی بین دو بررسی مسیر بر حسب ثانیه. برای مسیرهایی که به درستی کار می‌کنند، فاصله زمانی بین بررسی‌ها به تدریج تا \fImax_polling_interval\fR افزایش می‌یابد. در صورت استفاده از systemd، این مقدار توسط تنظیم \fIWatchdogSec\fR در تعریف multipathd.service بازنویسی خواهد شد. .RS .TP مقدار پیش‌فرض: \fB5\fR .RE . . .TP .B max_polling_interval حداکثر فاصله زمانی بین دو بررسی مسیر بر حسب ثانیه. .RS .TP مقدار پیش‌فرض: \fB4 * polling_interval\fR .RE . . .TP .B reassign_maps فعال‌سازی تخصیص مجدد نگاشت‌های device-mapper. با این گزینه، multipathd نگاشت‌های موجود device-mapper را مجدداً نگاشت می‌کند تا همیشه به دستگاه چندمسیری اشاره کنند، نه دستگاه‌های بلوکی زیرین. مقادیر ممکن عبارتند از \fIyes\fR و \fIno\fR. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B multipath_dir (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B path_selector الگوریتم پیش‌فرض انتخاب مسیر برای استفاده؛ این الگوریتم‌ها توسط تارگت چندمسیری هسته ارائه می‌شوند: .RS .TP .I "round-robin 0" انتخاب مسیر برای درخواست ورودی/خروجی بعدی از طریق \fBچرخش نوبتی در گروه مسیر\fR. .TP .I "queue-length 0" (از هسته 2.6.31 به بعد) انتخاب مسیر برای درخواست ورودی/خروجی بعدی بر اساس \fBکمترین تعداد درخواست‌های ورودی/خروجی معلق و در حال پردازش\fR در مسیر. .TP .I "service-time 0" (از هسته 2.6.31 به بعد) انتخاب مسیر برای درخواست ورودی/خروجی بعدی بر اساس \fBکمترین اندازه کل (بر حسب بایت) درخواست‌های ورودی/خروجی معلق و در حال پردازش\fR در مسیر. .TP .I "historical-service-time 0" (از هسته 5.8 به بعد) انتخاب مسیر برای درخواست ورودی/خروجی بعدی با استفاده از \fBیک الگوریتم پویا بر پایه زمان سرویس‌دهی پیشین و تعداد درخواست‌های ورودی/خروجی معلق و در حال پردازش\fR در مسیر. .TP مقدار پیش‌فرض: \fBservice-time 0\fR .RE . . .TP .B path_grouping_policy (وابسته به سخت‌افزار) خط‌مشی پیش‌فرض گروه‌بندی مسیر برای اعمال روی چندمسیری‌های نامشخص. مقادیر ممکن عبارتند از: .RS .TP .I failover یک مسیر به ازای هر گروه اولویت. .TP .I multibus تمام مسیرها در یک گروه اولویت منفرد. .TP .I group_by_serial یک گروه اولویت به ازای هر شماره سریال. .TP .I group_by_prio یک گروه اولویت به ازای هر مقدار اولویت. اولویت‌ها توسط برنامه‌های فراخوانی‌شده (callout) مشخص‌شده به عنوان یک گزینه سراسری، به ازای کنترلر یا به ازای هر چندمسیری در فایل پیکربندی تعیین می‌شوند. .TP .I group_by_node_name یک گروه اولویت به ازای هر نام گره هدف. نام‌های گره هدف در \fI/sys/class/fc_transport/target*/node_name\fR واکشی می‌شوند. .TP .I group_by_tpg یک گروه اولویت به ازای هر گروه پورت هدف ALUA. برای استفاده از این خط‌مشی، باید مقدار \fIprio\fR برای تمامی مسیرها در دستگاه چندمسیری روی \fBalua\fR تنظیم شده باشد. .TP مقدار پیش‌فرض: \fBfailover\fR .RE . . .TP .B detect_pgpolicy اگر روی \fIyes\fR تنظیم شود و تمام دستگاه‌های مسیر با یکی از اولویت‌بندی‌کننده‌های \fIalua\fR یا \fIsysfs\fR پیکربندی شده باشند، دستگاه چندمسیری به طور خودکار از خط‌مشی گروه‌بندی مسیر \fIgroup_by_prio\fR استفاده خواهد کرد. اگر روی \fIno\fR تنظیم شود، خط‌مشی path_grouping_policy طبق روال عادی انتخاب می‌شود. .RS .TP مقدار پیش‌فرض: \fByes\fR .RE . . .TP .B detect_pgpolicy_use_tpg اگر هم این گزینه و هم \fIdetect_pgpolicy\fR روی \fIyes\fR تنظیم شوند و تمام دستگاه‌های مسیر با اولویت‌بندی‌کننده \fIalua\fR یا \fIsysfs\fR پیکربندی شده باشند، دستگاه چندمسیری به طور خودکار از خط‌مشی گروه‌بندی مسیر \fIgroup_by_tpg\fR استفاده خواهد کرد. اگر روی \fIno\fR تنظیم شود، خط‌مشی path_grouping_policy بر اساس روش شرح داده‌شده برای \fIdetect_pgpolicy\fR در بالا انتخاب خواهد شد. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B pg_timeout (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B uid_attrs . تنظیم این گزینه \fBادغام رخدادهای uevent\fR را بر اساس WWID فعال می‌کند که ممکن است کارایی پردازش uevent را بهبود بخشد. علاوه بر این، روشی جایگزین برای پیکربندی ویژگی‌های udev جهت استفاده در تعیین شناسه‌های یکتای مسیر (WWIDها) است. .RS .PP مقدار این گزینه فهرستی از رکوردها است که با فاصله از هم جدا شده‌اند، مانند \(dq\fItype:ATTR\fR\(dq، که در آن \fItype\fR با ابتدای نام گره دستگاه تطبیق داده می‌شود (برای نمونه \fIsd:ATTR\fR با \fIsda\fR مطابقت دارد)، و \fIATTR\fR نام ویژگی udev است که برای دستگاه‌های منطبق استفاده می‌شود. .PP اگر این گزینه پیکربندی شده باشد و با نام گره دستگاه یک دستگاه مطابقت داشته باشد، بر هر روش پیکربندی‌شده دیگری برای تعیین WWID آن دستگاه اولویت می‌یابد. .PP این گزینه را نمی‌توان در زمان اجرا با دستور \fBreconfigure\fR دیمن multipathd تغییر داد. .PP مقدار پیش‌فرض: \fB\fR. برای فعال‌سازی ادغام uevent، آن را برای نمونه روی \(dqsd:ID_SERIAL dasd:ID_UID nvme:ID_WWN\(dq تنظیم کنید. .RE . . .TP .B uid_attribute صفت udev که شناسه یکتای مسیر (WWID) را ارائه می‌دهد. اگر \fIuid_attribute\fR روی یک رشته خالی تنظیم شود، تعیین WWID با استفاده از روش \fIsysfs\fR به جای استفاده از udev انجام می‌شود (در محیط عملیاتی توصیه نمی‌شود؛ بخش \fIتولید WWID (WWID generation)\fR در ادامه را ببینید). .RS .TP مقدار پیش‌فرض: \fBID_SERIAL\fR، برای دستگاه‌های SCSI .TP مقدار پیش‌فرض: \fBID_UID\fR، برای دستگاه‌های DASD .TP مقدار پیش‌فرض: \fBID_WWN\fR، برای دستگاه‌های NVMe .RE . . .TP .B getuid_callout (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B prio نام روال اولویت مسیر. روال مشخص‌شده باید یک مقدار عددی بازگرداند که اولویت نسبی این مسیر را مشخص کند. اعداد بزرگتر اولویت بالاتری دارند. \fI"none"\fR یک مقدار معتبر است. در حال حاضر روال‌های اولویت مسیر زیر پیاده‌سازی شده‌اند: .RS .TP .I const یک اولویت ثابت \fI1\fR را برمی‌گرداند. .TP .I sysfs از صفت‌های sysfs به نام‌های \fIaccess_state\fR و \fIpreferred_path\fR برای تولید اولویت مسیر استفاده می‌کند. این اولویت‌بندی‌کننده آرگومان اختیاری prio_arg به نام \fIexclusive_pref_bit\fR را می‌پذیرد. .TP .I emc (وابسته به سخت‌افزار) تولید اولویت مسیر برای آرایه‌های کلاس DGC مانند خانواده‌های CLARiiON CX/AX و EMC VNX با حالت Failover Mode 1 (حالت غیرفعال ناآماده یا Passive Not Ready - PNR). .TP .I alua (وابسته به سخت‌افزار) تولید اولویت مسیر بر اساس تنظیمات ALUA در SCSI-3. این اولویت‌بندی‌کننده آرگومان اختیاری prio_arg به نام \fIexclusive_pref_bit\fR را می‌پذیرد. .TP .I ontap (وابسته به سخت‌افزار) تولید اولویت مسیر برای سری‌های NetApp ONTAP FAS/AFF و آرایه‌های تغییرنام‌یافته (rebranded)، با حالت بومی ONTAP (غیر از ALUA). .TP .I rdac (وابسته به سخت‌افزار) تولید اولویت مسیر برای کلاس LSI/Engenio/NetApp RDAC مانند NetApp SANtricity سری E/EF و آرایه‌های تغییرنام‌یافته، با گزینه "Linux DM-MP (Kernel 3.9 or earlier)". .TP .I hp_sw (وابسته به سخت‌افزار) تولید اولویت مسیر برای آرایه‌های HP/COMPAQ/DEC HSG80 و MSA/HSV منحصراً با حالت Active/Standby. .TP .I hds (وابسته به سخت‌افزار) تولید اولویت مسیر برای خانواده آرایه‌های Hitachi AMS به جز AMS 2000. .TP .I random تولید یک اولویت تصادفی بین 1 و 10. .TP .I weightedpath تولید اولویت مسیر بر اساس عبارت باقاعده و اولویت ارائه‌شده به عنوان آرگومان. نیازمند کلیدواژه prio_args است. .TP .I path_latency تولید اولویت مسیر بر اساس یک الگوریتم تاخیر (latency). نیازمند کلیدواژه prio_args است. .TP .I ana (وابسته به سخت‌افزار) تولید اولویت مسیر بر اساس تنظیمات ANA در NVMe. .TP .I datacore (وابسته به سخت‌افزار) تولید اولویت مسیر برای برخی آرایه‌های ذخیره‌سازی DataCore. نیازمند کلیدواژه prio_args است. .TP .I iet (فقط iSCSI) تولید اولویت مسیر برای اهداف iSCSI بر پایه آدرس IP. نیازمند کلیدواژه prio_args است. .PP پیش‌فرض به تنظیم \fBdetect_prio\fR بستگی دارد: اگر \fBdetect_prio\fR برابر \fByes\fR (پیش‌فرض) باشد، الگوریتم پیش‌فرض اولویت \fBsysfs\fR است (به استثنای سری NetAPP E/EF که در آن \fBalua\fR است). اگر \fBdetect_prio\fR برابر \fBno\fR باشد، الگوریتم پیش‌فرض اولویت \fBconst\fR خواهد بود. .RE . . .TP .B prio_args آرگومان‌هایی که به تابع prio ارسال می‌شوند. این گزینه فقط برای اولویت‌بندی‌کننده‌های خاصی کاربرد دارد: .RS .TP .I weighted نیازمند مقداری به شکل زیر است: \fI" ..."\fR .RS .TP .I hbtl عبارت باقاعده می‌تواند در قالب H:B:T:L اسکازی باشد. برای نمونه: 1:0:.:. ، *:0:0:. .TP .I devname عبارت باقاعده می‌تواند در قالب نام دستگاه باشد. برای نمونه: sda ، sd.e .TP .I serial عبارت باقاعده می‌تواند در قالب شماره سریال باشد. برای نمونه: .*J1FR.*324 . شماره سریال را می‌توان از طریق sysfs یا با اجرای دستور multipathd show paths format "%z" پیدا کرد. برای نمونه: 0395J1FR904324 .TP .I wwn عبارت باقاعده می‌تواند به شکل \fI"host_wwnn:host_wwpn:target_wwnn:target_wwpn"\fR باشد؛ این مقادیر را می‌توان از طریق sysfs یا با اجرای دستور \fImultipathd show paths format "%N:%R:%n:%r"\fR مشاهده کرد. برای نمونه: 0x200100e08ba0aea0:0x210100e08ba0aea0:.*:.* ، .*:.*:iqn.2009-10.com.redhat.msp.lab.ask-06:.* .RE .TP .I path_latency نیازمند مقداری به شکل "io_num=\fI<20>\fR base_num=\fI<10>\fR" است .RS .TP .I io_num تعداد درخواست‌های ورودی/خروجی خواندن که به طور مداوم به مسیر فعلی ارسال می‌شوند و برای محاسبه میانگین تاخیر مسیر به کار می‌روند. مقادیر معتبر: عدد صحیح، [20, 200]. .TP .I base_num مقدار پایه برای مقیاس لگاریتمی که برای تقسیم‌بندی رتبه‌های مختلف اولویت استفاده می‌شود. مقادیر معتبر: عدد اعشاری ممیز شناور با دقت مضاعف، [1.1, 10]. و حداکثر مقدار میانگین تاخیر 100s و حداقل آن 1us است. برای نمونه: اگر base_num=10 باشد، مسیرها در گروه‌های اولویتی با تاخیر مسیر <=1us، (1us, 10us]، (10us, 100us]، (100us, 1ms]، (1ms, 10ms]، (10ms, 100ms]، (100ms, 1s]، (1s, 10s]، (10s, 100s] و >100s گروه‌بندی می‌شوند. .RE .TP .I alua اگر \fIexclusive_pref_bit\fR تنظیم شده باشد، مسیرهایی که بیت \fIpreferred path\fR آن‌ها فعال است همیشه در گروه مسیر مختص به خود قرار خواهند گرفت. .TP .I sysfs اگر \fIexclusive_pref_bit\fR تنظیم شده باشد، مسیرهایی که بیت \fIpreferred path\fR آن‌ها فعال است همیشه در گروه مسیر مختص به خود قرار خواهند گرفت. .TP .I datacore .RS .TP .I preferredsds (اجباری) نام SDS ترجیح‌داده‌شده ("SDS name"). .TP .I timeout (اختیاری) مهلت زمانی برای INQUIRY، بر حسب میلی‌ثانیه. .RE .TP .I iet .RS .TP .I preferredip=... (اجباری) آدرس IPv4 ترجیح‌داده‌شده با نماد ده‌دهی نقطه‌دار برای اهداف iSCSI. اولویت 20 (بالا) به آن اختصاص می‌یابد، در حالی که بقیه اولویت 0 (پایین) دریافت خواهند کرد. این مقدار همچنین می‌تواند دنباله‌ای از عبارت‌های CIDR (آدرس/پیشوند IPv4) جداشده با کاما باشد که پس از هر کدام یک دونقطه و یک اولویت قرار می‌گیرد. عبارت‌های CIDR می‌توانند از قالب استاندارد \fIn.n.n.n/p\fR یا هر فرم خلاصه معتبر دیگر استفاده کنند، مثلاً \fI192.168/16\fR به عنوان فرم خلاصه \fI192.168.0.0/16\fR. آدرس‌های IP اهداف iSCSI با هر یک از این عبارت‌ها تطبیق داده می‌شوند. خاص‌ترین تطابق (بزرگ‌ترین پیشوند) برای تعیین اولویت استفاده خواهد شد. به آدرس‌های IP که با هیچ عبارتی مطابقت ندارند، اولویت 0 اختصاص داده می‌شود. مثال: \fI10/8:20,10.0.10/24:40,192.168/16:10,0/0:5\fR. .RE .TP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .RE . . .TP .B features ویژگی‌های device-mapper مورد استفاده را مشخص می‌کند. سینتکس آن به صورت \fInum list\fR است که در آن \fInum\fR تعداد ویژگی‌ها (بین 0 تا 8) در \fIlist\fR می‌باشد. مقادیر ممکن برای فهرست ویژگی‌ها عبارتند از: .RS .TP .I queue_if_no_path (منسوخ‌شده، \fIno_path_retry\fR جایگزین آن شده است) صف‌بندی ورودی/خروجی در صورتی که هیچ مسیری فعال نباشد. مشابه مقدار \fIqueue\fR در \fIno_path_retry\fR است. اگر هم این ویژگی و هم \fIno_path_retry\fR تنظیم شوند، مقدار دومی اولویت دارد. بخش مشکلات شناخته‌شده (KNOWN ISSUES) را ببینید. .TP .I pg_init_retries (از هسته 2.6.24 به بعد) تعداد دفعات تلاش مجدد برای pg_init؛ باید بین 1 تا 50 باشد. .TP .I pg_init_delay_msecs (از هسته 2.6.38 به بعد) مدت زمان بر حسب میلی‌ثانیه قبل از تلاش مجدد pg_init؛ باید بین 0 تا 60000 باشد. .TP .I queue_mode (از هسته 4.8 به بعد) انتخاب حالت صف‌بندی به ازای هر دستگاه چندمسیری. می‌تواند \fIbio\fR، \fIrq\fR یا \fImq\fR باشد که به ترتیب متناظر با مبتنی بر bio، مبتنی بر درخواست و مبتنی بر درخواست چندصفی بلوکی (blk-mq) است. قبل از هسته 4.20، پیش‌فرض به پارامتر هسته \fBdm_mod.use_blk_mq\fR بستگی دارد؛ اگر این پارامتر تنظیم شده باشد \fImq\fR و در غیر این صورت \fIrq\fR است. از هسته 4.20 به بعد، هر دو حالت \fIrq\fR و \fImq\fR متناظر با چندصفی بلوکی (block-multiqueue) هستند. پس از ایجاد یک دستگاه چندمسیری، حالت queue_mode آن قابل تغییر نیست. مسیرهای \fInvme:tcp\fR فقط در دستگاه‌های چندمسیری با queue_mode تنظیم‌شده روی \fIbio\fR پشتیبانی می‌شوند. چندمسیری هنگام ایجاد دستگاه با مسیرهای \fInvme:tcp\fR این مقدار را به طور خودکار تنظیم می‌کند. .TP مقدار پیش‌فرض: \fB0\fR .RE . . .TP .B path_checker روش پیش‌فرض مورد استفاده برای تعیین وضعیت مسیر. از نسخه 0.15.0 ابزارهای multipath-tools، تمامی بررسی‌کننده‌های مسیر به طور پیش‌فرض در حالت غیرهمگام (asynchronous) اجرا می‌شوند تا دستگاه‌های پاسخ‌نادهنده موجب توقف multipathd نشوند. از پارامتر \fIforce_sync\fR برای اجبار به بررسی همگام استفاده کنید. مقادیر ممکن عبارتند از: .RS .TP .I readsector0 (منسوخ‌شده) خواندن بخش اول (سکتور صفر) دستگاه. این بررسی‌کننده منسوخ شده است، لطفاً به جای آن از \fItur\fR یا \fIdirectio\fR استفاده کنید. .TP .I tur (وابسته به سخت‌افزار) ارسال یک دستور \fITEST UNIT READY\fR به دستگاه SCSI. .TP .I emc_clariion (وابسته به سخت‌افزار) پرس‌وجو از صفحه اختصاصی DGC/EMC به نام EVPD page 0xC0 برای تعیین وضعیت مسیر در آرایه‌های خانواده CLARiiON CX/AX و EMC VNX و Unity. .TP .I hp_sw (وابسته به سخت‌افزار) بررسی وضعیت مسیر برای آرایه‌های HP/COMPAQ/DEC HSG80 و MSA/HSV منحصراً با حالت Active/Standby. .TP .I rdac (وابسته به سخت‌افزار) بررسی وضعیت مسیر برای کلاس LSI/Engenio/NetApp RDAC مانند NetApp SANtricity سری E/EF و آرایه‌های تغییرنام‌یافته. .TP .I directio خواندن سکتور اول با ورودی/خروجی مستقیم (Direct I/O). این بررسی‌کننده ممکن است زیر بار کاری سنگین باعث خطاهای کاذب در تشخیص خرابی مسیر شود. افزایش مقدار \fIchecker_timeout\fR می‌تواند به رفع این مشکل کمک کند. .TP .I cciss_tur (وابسته به سخت‌افزار) بررسی وضعیت مسیر برای کنترلرهای HP/COMPAQ Smart Array(CCISS). .TP .I none دستگاه را بررسی نکن و از مقادیر بازیابی‌شده از sysfs استفاده کن. .TP مقدار پیش‌فرض: \fBtur\fR .RE . . .TP .B alias_prefix پیشوند برای \fIuser_friendly_names\fR. .RS .TP مقدار پیش‌فرض: \fBmpath\fR .RE . . .TP .B failback نحوه مدیریت بازگشت به مسیر اولیه (failback) گروه مسیر را به multipathd مشخص می‌کند. برای انتخاب \fIimmediate\fR یا یک مقدار عددی، الزامی است که دستگاه از یک اولویت‌بندی‌کننده فعال پشتیبانی کند. .RS .TP .I immediate بازگشت فوری به بالاترین گروه مسیر دارای اولویت که شامل مسیرهای فعال است. .TP .I manual عدم انجام failback به صورت خودکار. .TP .I followover برای مقابله با دسترسی همزمان چندین رایانه به دستگاه‌های ذخیره‌سازی Active/Passive یکسان به کار می‌رود. تنها زمانی failback خودکار انجام می‌شود که اولین مسیر از یک گروه مسیر فعال گردد. این کار از failback خودکار یک گره کلاستر هنگامی که گره دیگری درخواست failover داده باشد، جلوگیری می‌کند. .TP .I values > 0 بازگشت تاخیری (مدت زمان تاخیر بر حسب ثانیه). .TP مقدار پیش‌فرض: \fBmanual\fR .RE . . .TP .B rr_min_io (منسوخ‌شده از هسته 4.6) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B rr_min_io_rq (منسوخ‌شده از هسته 4.6) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B max_fds حداکثر تعداد توصیف‌کننده‌های فایل را که می‌توانند توسط multipath و multipathd باز شوند مشخص می‌کند. این معادل با ulimit \-n است. مقدار \fImax\fR این گزینه را روی حد مجاز سیستم از \fI/proc/sys/fs/nr_open\fR تنظیم می‌کند. در صورت عدم تنظیم، حداکثر تعداد توصیف‌کننده‌های فایل باز از فرایند فراخواننده گرفته می‌شود که معمولاً 1024 است. برای ایمنی، اگر تعداد کل مسیرها به علاوه 32 بیشتر از 1024 باشد، این مقدار باید روی آن تنظیم شود. .RS .TP مقدار پیش‌فرض: \fBmax\fR .RE . . .TP .B rr_weight (منسوخ‌شده از هسته 4.6) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B no_path_retry مشخص می‌کند هنگامی که تمام مسیرها قطع هستند چه اقدامی انجام شود. مقادیر ممکن عبارتند از: .RS .TP .I value > 0 تعداد دفعات تلاش مجدد تا غیرفعال‌سازی صف‌بندی ورودی/خروجی. .TP .I fail برای شکست فوری (بدون صف‌بندی ورودی/خروجی). .TP .I queue برای عدم توقف صف‌بندی ورودی/خروجی، مشابه با \fIqueue_if_no_path\fR. بخش مشکلات شناخته‌شده (KNOWN ISSUES) را ببینید. .TP مقدار پیش‌فرض: \fBfail\fR .RE . . .TP .B queue_without_daemon اگر روی .I no تنظیم شود، هنگامی که multipathd متوقف می‌شود، صف‌بندی برای تمام دستگاه‌ها خاموش خواهد شد. این گزینه برای دستگاه‌هایی که no_path_retry را تنظیم کرده‌اند مفید است. اگر ماشینی خاموش شود در حالی که تمام مسیرهای یک دستگاه قطع هستند، این احتمال وجود دارد که سیستم پس از متوقف شدن multipathd در انتظار بازگشت I/O از دستگاه قفل کند. بدون اجرای multipathd، دسترسی به مسیرها بازیابی نمی‌شود و به هسته نیز نمی‌توان دستور داد صف‌بندی I/O را متوقف کند. تنظیم queue_without_daemon روی .I no از این مشکل جلوگیری می‌نماید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B checker_timeout مهلت زمانی مورد استفاده برای بررسی‌کننده‌های مسیر و اولویت‌بندی‌کننده‌ها بر حسب ثانیه. تنها اولویت‌بندی‌کننده‌هایی که دستورات scsi صادر می‌کنند از checker_timeout استفاده می‌نمایند. اگر یک مسیر پس از گذشت \fIchecker_timeout\fR ثانیه به دستور بررسی پاسخ ندهد، قطع (down) در نظر گرفته می‌شود. .RS .TP مقدار پیش‌فرض: در \fB/sys/block//device/timeout\fR .RE . . .TP .B allow_usb_devices اگر روی .I no تنظیم شود، تمام دستگاه‌های USB در طول فرآیند کشف مسیر نادیده گرفته می‌شوند. اگر قصد دارید از چندمسیری روی دستگاه‌های متصل به USB استفاده کنید، این گزینه را روی \fIyes\fR تنظیم کنید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B flush_on_last_del اگر روی .I always تنظیم شود، multipathd هنگام حذف آخرین مسیر به یک دستگاه، صف‌بندی را غیرفعال خواهد کرد. اگر روی .I never تنظیم شود، multipathd هنگام حذف آخرین مسیر به یک دستگاه، صف‌بندی را غیرفعال نمی‌کند. از آنجا که multipath نمی‌تواند با خیال راحت دستگاهی را که صف‌بندی آن فعال است حذف کند، تنظیم این گزینه روی \fInever\fR به این معنی است که اگر دستگاهی در حال حاضر روی queue_if_no_path تنظیم شده باشد، multipathd دستگاه چندمسیری استفاده‌نشده‌ای را که تمام مسیرهایش حذف شده‌اند به طور خودکار حذف نخواهد کرد. اگر روی .I unused تنظیم شود، multipathd تنها زمانی صف‌بندی را در هنگام حذف آخرین مسیر غیرفعال می‌کند که در حال حاضر هیچ فرایندی دستگاه چندمسیری یا هیچ‌یک از دستگاه‌های پارتیشن kpartx روی آن را باز نکرده باشد. .RS .TP مقدار پیش‌فرض: \fBunused\fR .RE . . .TP .B user_friendly_names اگر روی .I yes تنظیم شود، از فایل پیوندها \fI/etc/multipath/bindings\fR برای اختصاص یک نام مستعار پایدار و یکتا به دستگاه چندمسیری به شکل \fIprefix\fR (که در آن \fIprefix\fR توسط \fIalias_prefix\fR تعریف می‌شود؛ پیش‌فرض \fImpath\fR) استفاده خواهد شد. اگر روی .I no تنظیم شود، از WWID به عنوان نام مستعار استفاده می‌شود. در هر دو صورت، این مورد توسط هر نام مستعار مشخصی که در بخش \fImultipaths\fR تعریف شده باشد بازنویسی خواهد شد. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B fast_io_fail_tmo تعداد ثانیه‌هایی را مشخص می‌کند که لایه SCSI پس از تشخیص بروز مشکل در یک پورت ریموت FC، قبل از اعلام شکست در درخواست‌های ورودی/خروجی به دستگاه‌های روی آن پورت ریموت، منتظر می‌ماند. این مقدار باید کوچکتر از dev_loss_tmo باشد. تنظیم آن روی .I off مهلت زمانی را غیرفعال می‌کند. .RS .TP مقدار پیش‌فرض: \fB5\fR .RE . . .TP .B dev_loss_tmo تعداد ثانیه‌هایی را مشخص می‌کند که لایه SCSI پس از تشخیص قطع ارتباط در یک پورت ریموت، قبل از حذف آن از سیستم منتظر می‌ماند. این مقدار را می‌توان روی "infinity" تنظیم کرد که عملاً به معنای 136 سال (2^32-1 ثانیه) است. این پارامتر فقط برای دستگاه‌های Fibre Channel و SAS اعمال می‌شود. .RS .LP مقدار \fIdev_loss_tmo\fR توسط سایر تنظیمات محدود می‌شود. اگر \fIfast_io_fail_tmo\fR روی یک مقدار مثبت تنظیم شده باشد، \fBmultipathd\fR اطمینان حاصل می‌کند که مقدار \fIdev_loss_tmo\fR بزرگتر از \fIno_path_retry\fR * \fIpolling_interval\fR باشد. اگر \fIfast_io_fail_tmo\fR تنظیم نشده باشد، هسته مقدار \fIdev_loss_tmo\fR را به 600 ثانیه محدود می‌کند. در این حالت، کاربر باید اطمینان حاصل کند که \fIno_path_retry\fR کوچکتر از \fIdev_loss_tmo / polling_interval\fR باشد. به ویژه، \fIno_path_retry\fR نباید روی \(dq\fIqueue\fR\(dq تنظیم شود. بخش مشکلات شناخته‌شده (KNOWN ISSUES) را ببینید. .LP هنگامی که دستگاه‌های مسیر پس از قطع اتصال دوباره ظاهر می‌شوند، برای هسته بسیار آسان‌تر است که به سادگی یک دستگاه غیرفعال را مجدداً فعال کند تا اینکه بخواهد دستگاهی را که قبلاً حذف شده بود دوباره اضافه کند. بنابراین توصیه می‌شود که \fIdev_loss_tmo\fR در چارچوب محدودیت‌های ذکرشده در بالا، روی مقدار بزرگی تنظیم شود. .LP دستگاه‌های Fibre Channel و SAS دارای مقادیر پیش‌فرض وابسته به سخت‌افزار هستند که در صورت عدم تعیین \fIdev_loss_tmo\fR بدون تغییر باقی می‌مانند. برای تعداد کمی از آرایه‌های ذخیره‌سازی، تنظیمات توکار multipath-tools مقدار پیش‌فرض را بازنویسی می‌کنند. دستور \fImultipath -T\fR را اجرا کنید تا تنظیمات دستگاه خود را مشاهده نمایید. .TP مقدار پیش‌فرض: \fB<وابسته به سخت‌افزار>\fR .RE . . .TP .B eh_deadline حداکثر مدت زمانی (بر حسب ثانیه) را که لایه SCSI هنگام خرابی دستگاه‌های scsi صرف رسیدگی به خطا می‌کند، مشخص می‌نماید. پس از پایان این مهلت، لایه scsi یک بازنشانی کامل HBA انجام می‌دهد. تنظیم این گزینه ممکن است در مواردی ضروری باشد که پورت ریموت هرگز قطع نمی‌شود، بنابراین \fIfast_io_fail_tmo\fR و \fIdev_loss_tmo\fR هرگز فعال نخواهند شد، اما دستورات scsi (معمولاً به دلیل بار کاری بالا) همچنان قفل می‌کنند. \fBتوجه:\fR هنگامی که گرداننده خطای scsi عمل بازنشانی HBA را انجام می‌دهد، تمام مسیرهای هدف روی آن HBA تحت تاثیر قرار خواهند گرفت. eh_deadline تنها باید در مواردی تنظیم شود که تمام اهداف روی HBAهای مربوطه چندمسیری شده باشند. .RS .TP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .RE . . .TP .B max_retries حداکثر دفعاتی را که لایه SCSI دستورات ورودی/خروجی را برای برخی از انواع خطاهای SCSI پیش از اعلام شکست مجدداً تلاش می‌کند، مشخص می‌نماید. تنظیم این گزینه برای مواردی که دستورات ورودی/خروجی قفل کرده و دچار انقضای زمان می‌شوند مفید است. به طور پیش‌فرض، لایه SCSI تلاش مجدد را 5 بار انجام می‌دهد. کاهش این مقدار به multipath اجازه می‌دهد درخواست ورودی/خروجی را سریع‌تر از طریق مسیر دیگری مجدداً تلاش کند. مقادیر معتبر از \fB0\fR تا \fB5\fR هستند. .RS .TP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .RE . . .TP .B bindings_file (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B wwids_file (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B prkeys_file (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B log_checker_err اگر روی .I once تنظیم شود، multipathd نخستین خطای بررسی‌کننده مسیر را در سطح لاگ‌گیری 2 ثبت می‌کند. خطاهای بعدی تا زمان بازیابی دستگاه در سطح 3 ثبت می‌شوند. اگر روی .I always تنظیم شود، multipathd خطای بررسی‌کننده مسیر را همواره در سطح لاگ‌گیری 2 ثبت خواهد کرد. .RS .TP مقدار پیش‌فرض: \fBalways\fR .RE . . .TP .B reservation_key این کلید رزرو کنش سرویس است که توسط mpathpersist استفاده می‌شود. این گزینه باید برای تمام دستگاه‌های چندمسیری که از رزروهای پایدار استفاده می‌کنند تنظیم شود، و باید با فیلد RESERVATION KEY در فهرست پارامترهای PERSISTENT RESERVE OUT یکسان باشد که حاوی یک مقدار 8 بایتی ارائه‌شده توسط کلاینت برنامه به سرور دستگاه برای شناسایی nexus I_T است. اگر هنگام ثبت کلید با mpathpersist از گزینه \fI--param-aptpl\fR استفاده شده باشد، باید \fB:aptpl\fR به انتهای کلید رزرو پیوست شود. .RS .PP به عنوان روش دیگر، می‌توان این گزینه را روی \fBfile\fR تنظیم کرد که RESERVATION KEY ثبت‌شده توسط mpathpersist را در فایل \fI/etc/multipath/prkeys\fR ذخیره می‌کند. آن‌گاه multipathd از این کلید برای ثبت مسیرهای اضافی به محض ظاهر شدن آن‌ها استفاده خواهد کرد. هنگامی که ثبت کلید برداشته شود، RESERVATION KEY از فایل \fI/etc/multipath/prkeys\fR حذف خواهد شد. فایل prkeys به طور خودکار ثبت کلید با \fI--param-aptpl\fR را دنبال می‌کند. .TP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .RE . . .TP .B all_tg_pt پرچم «تمام پورت‌های هدف» (all targets ports) را هنگام ثبت کلیدها با mpathpersist تنظیم می‌کند. برخی از آرایه‌ها به جای ثبت به ازای هر پورت هدف به ازای هر هاست، به طور خودکار کلیدهای ثبت‌نام را روی تمام پورت‌های هدف از یک هاست تنظیم و پاک می‌کنند. پرچم ALL_TG_PT باید تنظیم شود تا بتوان با موفقیت از mpathpersist روی این آرایه‌ها استفاده کرد. تنظیم این گزینه همانند فراخوانی mpathpersist با \fI--param-alltgpt\fR است. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B retain_attached_hw_handler (منسوخ‌شده برای هسته‌های >= 4.3) اگر روی .I yes تنظیم شود و لایه SCSI از قبل یک hardware_handler را به دستگاه متصل کرده باشد، multipath دستگاه را مجبور به استفاده از hardware_handler مشخص‌شده در /etc/multipath.conf نخواهد کرد. اگر لایه SCSI گرداننده سخت‌افزاری متصل نکرده باشد، multipath به استفاده از گرداننده سخت‌افزاری پیکربندی‌شده خود ادامه می‌دهد. .RS .PP مقدار پیش‌فرض: \fByes\fR .PP \fBنکته مهم:\fR هسته لینوکس 4.3 یا جدیدتر همیشه طوری رفتار می‌کند که گویی \fB"retain_attached_hw_handler yes"\fR تنظیم شده است. .RE . . .TP .B detect_prio اگر روی .I yes تنظیم شود، multipath تلاش خواهد کرد تشخیص دهد که آیا دستگاه از SCSI-3 ALUA پشتیبانی می‌کند یا خیر. در این صورت، اگر صفت‌های sysfs مورد نیاز یعنی \fIaccess_state\fR و \fIpreferred_path\fR پشتیبانی شوند، دستگاه به طور خودکار از اولویت‌بندی‌کننده \fIsysfs\fR استفاده می‌کند، و در غیر این صورت از اولویت‌بندی‌کننده \fIalua\fR استفاده خواهد کرد. اگر روی .I no تنظیم شود، اولویت‌بندی‌کننده طبق معمول انتخاب خواهد شد. .RS .TP مقدار پیش‌فرض: \fByes\fR .RE . . .TP .B detect_checker اگر روی .I yes تنظیم شود، multipath تلاش خواهد کرد تشخیص دهد که آیا دستگاه از SCSI-3 ALUA پشتیبانی می‌کند یا خیر. در این صورت، دستگاه به طور خودکار از بررسی‌کننده \fItur\fR استفاده خواهد کرد. اگر روی .I no تنظیم شود، بررسی‌کننده طبق روال عادی انتخاب خواهد شد. .RS .TP مقدار پیش‌فرض: \fByes\fR .RE . . .TP .B force_sync اگر روی .I yes تنظیم شود، multipathd بررسی‌کننده‌های مسیر را تنها در حالت همگام فراخوانی می‌کند. این بدان معنی است که در هر زمان تنها یک بررسی‌کننده اجرا می‌شود و ممکن است multipathd هنگام انتظار برای پاسخ دستگاه، عملیات خود را متوقف کند. این گزینه در حالتی مفید است که اجرای موازی بررسی‌کننده‌های زیاد multipathd فشار قابل توجهی روی CPU وارد می‌کند. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B strict_timing اگر روی .I yes تنظیم شود، multipathd یک حلقه بررسی مسیر جدید را دقیقاً پس از گذشت یک ثانیه آغاز می‌کند، به طوری که هر بررسی مسیر دقیقاً در فواصل \fIpolling_interval\fR ثانیه رخ دهد. در سیستم‌های شلوغ ممکن است بررسی مسیرها بیش از یک ثانیه طول بکشد؛ در اینجا تیک‌های از دست‌رفته در دور بعدی به حساب خواهند آمد. اگر بررسی‌های مسیر بیشتر از \fIpolling_interval\fR ثانیه طول بکشد، یک هشدار چاپ خواهد شد. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B deferred_remove اگر روی .I yes تنظیم شود، multipathd هنگام حذف آخرین دستگاه مسیر، به جای حذف عادی یک حذف به تعویق افتاده انجام می‌دهد. این بدان معنی است که اگر دستگاه چندمسیری هنوز در حال استفاده باشد، زمانی که آخرین کاربر آن را ببندد آزاد خواهد شد. اگر پیش از بسته شدن آن توسط آخرین کاربر مسیری به دستگاه چندمسیری اضافه شود، حذف به تعویق افتاده لغو خواهد شد. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B partition_delimiter این پارامتر نحوه انتخاب نام دستگاه‌های پارتیشن نگاشت‌های چندمسیری را در صورت تغییر نام نگاشت چندمسیری (مثلاً در صورت اضافه یا تغییر نام مستعار نگاشت) کنترل می‌کند. اگر این پارامتر روی رشته‌ای غیر از "/UNSET/" تنظیم شود (حتی رشته خالی)، multipath آن رشته را بین نام دستگاه و شماره پارتیشن درج می‌کند تا نام دستگاه پارتیشن را بسازد. در غیر این صورت (یعنی اگر این پارامتر تنظیم نشده باشد یا مقدار "/UNSET/" داشته باشد)، رفتار به نام نگاشت بستگی دارد: اگر نام به یک رقم ختم شود، یک \fI"p"\fR بین نام و شماره پارتیشن درج می‌شود؛ در غیر این صورت، شماره پارتیشن به سادگی به انتهای آن اضافه خواهد شد. توزیع‌ها ممکن است از یک مقدار پیش‌فرض غیرتهی برای این گزینه استفاده کنند؛ در این صورت، کاربر باید آن را روی "/UNSET/" قرار دهد تا رفتار اصلی \fB<تنظیم‌نشده>\fR را به دست آورد. برای بررسی تنظیمات فعلی از \fImultipath -T\fR استفاده کنید. .RS .TP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .RE . . .TP .B config_dir (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B san_path_err_threshold اگر روی مقداری بزرگتر از 0 تنظیم شود، multipathd مسیرها را زیر نظر گرفته و تعداد دفعات شکست یک مسیر به دلیل خطا را بررسی می‌کند. اگر تعداد خرابی‌ها در یک مسیر خاص بیشتر از san_path_err_threshold باشد، آن مسیر تا پایان زمان san_path_err_recovery_time به مدار بازگردانده نخواهد شد. این خرابی‌های مسیر باید در طول بازه بررسی‌های san_path_err_forget_rate رخ دهند، در غیر این صورت مسیر به اندازه کافی خوب تلقی شده و مجدداً برقرار می‌گردد. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B san_path_err_forget_rate اگر روی مقداری بزرگتر از 0 تنظیم شود، multipathd بررسی می‌کند که آیا خرابی‌های مسیر در طول این تعداد بررسی (یعنی san_path_err_forget_rate) از حد san_path_err_threshold فراتر رفته است یا خیر. اگر چنین باشد، مسیر تا پایان زمان san_path_err_recovery_time احیا نخواهد شد. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B san_path_err_recovery_time اگر روی مقداری بزرگتر از 0 تنظیم شود، multipathd اطمینان حاصل می‌کند که هرگاه خرابی‌های مسیر در طول san_path_err_forget_rate از حد san_path_err_threshold فراتر رفت، مسیر به مدت زمان san_path_err_recovery_time در وضعیت شکست‌خورده قرار گیرد. پس از پایان مهلت san_path_err_recovery_time، مسیر شکست‌خورده دوباره به کار گرفته می‌شود. مقدار san_path_err_recovery_time باید بر حسب ثانیه باشد. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B marginal_path_double_failed_time یکی از چهار پارامتر پشتیبانی از بررسی مسیر بر اساس شمارش خطای I/O مانند خطاهای متناوب. هنگامی که یک رخداد خرابی مسیر دو بار در طول \fImarginal_path_double_failed_time\fR ثانیه به دلیل خطای I/O رخ دهد و هر سه پارامتر دیگر تنظیم شده باشند، multipathd مسیر را شکست‌خورده اعلام کرده و آن را در صفی قرار می‌دهد که اعضای آن چندین درخواست خواندن مستقیم غیرهمگام با نرخ نمونه‌برداری ثابت 10 هرتز دریافت می‌کنند تا فرآیند شمارش خطای I/O آغاز شود. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B marginal_path_err_sample_time یکی از چهار پارامتر پشتیبانی از بررسی مسیر بر پایه شمارش خطای I/O مانند خطاهای متناوب. اگر روی مقداری کمتر از 120 تنظیم نشده باشد، هنگامی که یک رخداد شکست مسیر دو بار در طول \fImarginal_path_double_failed_time\fR ثانیه به دلیل خطای I/O رخ دهد، multipathd مسیر را شکست‌خورده اعلام کرده و آن را در صفی قرار می‌دهد که اعضای آن چندین درخواست مستقیم ناهمگام با نرخ نمونه‌برداری ثابت 10 هرتز دریافت می‌کنند تا فرآیند ارزیابی خطای I/O آغاز شود که به مدت \fImarginal_path_err_sample_time\fR ادامه خواهد داشت. اگر نرخ خطای I/O در یک مسیر خاص بیشتر از \fImarginal_path_err_rate_threshold\fR باشد، آن‌گاه مسیر به مدت \fImarginal_path_err_recheck_gap_time\fR ثانیه به مدار بازگردانده نخواهد شد مگر اینکه تنها یک مسیر فعال وجود داشته باشد. پس از انقضای \fImarginal_path_err_recheck_gap_time\fR، مسیر برای بررسی مجدد در صف قرار می‌گیرد. اگر نتیجه بررسی به اندازه کافی خوب باشد، مسیر احیا خواهد شد. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B marginal_path_err_rate_threshold آستانه نرخ خطا به صورت در هزار (پرمیل یا 1/1000). یکی از چهار پارامتر پشتیبانی از بررسی مسیر بر پایه شمارش خطای I/O مانند خطاهای متناوب. به \fImarginal_path_err_sample_time\fR مراجعه کنید. اگر نرخ خطاهای I/O در یک مسیر خاص بیشتر از این پارامتر باشد، مسیر به مدت \fImarginal_path_err_recheck_gap_time\fR ثانیه احیا نخواهد شد مگر اینکه تنها یک مسیر فعال وجود داشته باشد. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B marginal_path_err_recheck_gap_time یکی از چهار پارامتر پشتیبانی از بررسی مسیر بر پایه شمارش خطای I/O مانند خطاهای متناوب. به \fImarginal_path_err_sample_time\fR مراجعه کنید. اگر این پارامتر روی یک مقدار مثبت تنظیم شود، مسیر شکست‌خورده‌ای که نرخ خطای I/O آن بزرگتر از \fImarginal_path_err_rate_threshold\fR باشد، به مدت \fImarginal_path_err_recheck_gap_time\fR ثانیه در وضعیت شکست‌خورده نگه داشته می‌شود. هنگامی که \fImarginal_path_err_recheck_gap_time\fR ثانیه سپری شد، مسیر مجدداً برای بررسی در صف قرار می‌گیرد. اگر نتیجه بررسی به اندازه کافی خوب باشد، مسیر احیا خواهد شد وگرنه در وضعیت شکست‌خورده باقی می‌ماند. بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B delay_watch_checks (منسوخ‌شده) این گزینه \fBمنسوخ شده\fR و به \fIsan_path_err_forget_rate\fR نگاشت می‌شود. اگر این گزینه روی مقداری بزرگتر از 0 تنظیم شود و هیچ گزینه‌ای از گزینه‌های \fIsan_path_err\fR تنظیم نشده باشد، \fIsan_path_err_forget_rate\fR روی مقدار \fIdelay_watch_checks\fR تنظیم خواهد شد و \fIsan_path_err_threshold\fR روی 1 قرار می‌گیرد. برای اطلاعات بیشتر، گزینه‌های \fIsan_path_err_forget_rate\fR و \fIsan_path_err_threshold\fR و بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B delay_wait_checks (منسوخ‌شده) این گزینه \fBمنسوخ شده\fR و به \fIsan_path_err_recovery_time\fR نگاشت می‌شود. اگر این گزینه روی مقداری بزرگتر از 0 تنظیم شود و هیچ گزینه‌ای از گزینه‌های \fIsan_path_err\fR تنظیم نشده باشد، \fIsan_path_err_recovery_time\fR روی حاصل‌ضرب مقدار \fIdelay_wait_checks\fR در \fImax_polling_interval\fR تنظیم خواهد شد. این کار تقریباً همان مدت زمان انتظاری را فراهم می‌کند که پیش‌تر delay_wait_checks ایجاد می‌کرد. همچنین، \fIsan_path_err_threshold\fR روی 1 تنظیم می‌شود. برای اطلاعات بیشتر گزینه‌های \fIsan_path_err_recovery_time\fR و \fIsan_path_err_threshold\fR و بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B marginal_pathgroups اگر روی \fIoff\fR تنظیم شود، گزینه‌های \fIdelay_*_checks\fR، \fImarginal_path_*\fR و \fIsan_path_err_*\fR از بازگرداندن مسیرهای لب‌مرزی یا \(dqناپایدار (shaky)\(dq به مدار جلوگیری می‌کنند تا زمانی که برای مدتی پایش شوند. این امر می‌تواند وضعیتی ایجاد کند که در آن تمام مسیرهای غیرلب‌مرزی قطع شوند و هیچ مسیری تا زمانی که multipathd متوجه نشده و یک مسیر لب‌مرزی را احیا نکند قابل استفاده نباشد. اگر دستگاه چندمسیری به گونه‌ای پیکربندی نشده باشد که در این حالت I/O را صف‌بندی کند، با وجود در دسترس بودن مسیرهای لب‌مرزی می‌تواند باعث بروز خطاهای I/O شود. با این حال، اگر این گزینه روی \fIon\fR تنظیم شود، هرگاه یکی از روش‌های تشخیص مسیر لب‌مرزی تعیین کند که یک مسیر لب‌مرزی است، آن مسیر احیا شده و در یک گروه مسیر مجزا قرار می‌گیرد که تنها پس از امتحان تمام گروه‌های مسیر غیرلب‌مرزی استفاده خواهد شد. این کار از احتمال وقوع خطاهای I/O در زمانی که مسیرهای لب‌مرزی همچنان قابل استفاده هستند جلوگیری می‌کند. پس از پایش مسیر به مدت زمان پیکربندی‌شده و اعلام سلامت آن، مسیر به گروه مسیر عادی خود بازگردانده می‌شود. اگر این گزینه روی \fIfpin\fR تنظیم شود، multipathd اعلان‌های fpin را دریافت کرده، وضعیت مسیرها را بر همان اساس روی "marginal" تنظیم می‌کند و مسیرها را مطابق آنچه برای \fIon\fR شرح داده شد بازگروه‌بندی می‌نماید. این گزینه را نمی‌توان در ترکیب با سایر گزینه‌های "تشخیص مسیرهای ناپایدار" (در ادامه) استفاده کرد. \fBنکته:\fR اگر این گزینه روی \fIfpin\fR تنظیم شود، گزینه‌های \fImarginal_path_*\fR و \fIsan_path_err_*\fR به طور ضمنی روی \fIno\fP قرار می‌گیرند. همچنین، این گزینه در بازپیکربندی دیمن multipathd نمی‌تواند به یا از \fIfpin\fR تغییر یابد؛ برای اعمال این تغییر باید multipathd را مجدداً راه‌اندازی کرد. برای اطلاعات بیشتر بخش "تشخیص مسیرهای ناپایدار (Shaky paths detection)" در ادامه را ببینید. .RS .TP مقدار پیش‌فرض: \fBoff\fR .RE . . .TP .B find_multipaths این گزینه کنترل می‌کند که آیا multipath و multipathd تلاش کنند روی دستگاه‌های غیر مسدود که با آن‌ها مواجه می‌شوند نگاشت‌های چندمسیری ایجاد کنند یا خیر. این موضوع در دو حالت اهمیت دارد: الف) هنگامی که در طول پردازش قواعد udev، یک دستگاه توسط \fBmultipath -u\fR شناسایی می‌شود (تنها و تنها در صورتی از پردازش بیشتر دستگاه توسط لایه‌های بالاتر - مانند LVM - جلوگیری می‌شود که به عنوان یک مسیر معتبر دستگاه چندمسیری تلقی گردد)، و ب) هنگامی که multipathd دستگاه جدیدی را شناسایی می‌کند. مقادیر ممکن عبارتند از: .RS .TP .I strict هر دو ابزار multipath و multipathd تنها دستگاه‌هایی را به عنوان دستگاه چندمسیری در نظر می‌گیرند که پیش از این بخشی از یک نگاشت چندمسیری بوده باشند و بنابراین در فایل \fI/etc/multipath/wwids\fR فهرست شده باشند. کاربران می‌توانند با استفاده از دستور \fBmultipathd add map\fR به صورت دستی نگاشت‌های چندمسیری را تنظیم کنند. پس از تنظیم دستی، نگاشت در فایل WWIDs به خاطر سپرده شده و در آینده به صورت خودکار برپا خواهد شد. .TP .I off ابزار Multipath مانند \fBstrict\fR رفتار می‌کند. ابزار Multipathd مانند \fBgreedy\fR رفتار می‌کند. \fIno\fR یا \fI0\fR به عنوان نام مستعار برای \fIoff\fR پذیرفته می‌شود. .TP .I on هر دو ابزار multipathd و multipath در صورتی یک دستگاه را به عنوان دستگاه چندمسیری در نظر می‌گیرند که شرایط \fBstrict\fR برقرار باشد، یا دست‌کم دو مسیر غیر مسدود با WWID یکسان شناسایی شده باشند. \fIyes\fR یا \fI1\fR به عنوان نام مستعار برای \fIon\fR پذیرفته می‌شود. .TP .I greedy هر دو ابزار multipathd و multipath هر دستگاه غیر مسدود را به عنوان مسیر دستگاه چندمسیری تلقی می‌کنند. .TP .I smart این گزینه با \fIfind_multipaths on\fR فقط در نحوه برخورد با دستگاه‌های جدیدی تفاوت دارد که تاکنون فقط یک مسیر برای آن‌ها شناسایی شده است. هنگامی که چنین دستگاهی برای نخستین بار در قواعد udev مشاهده می‌شود، به عنوان یک دستگاه چندمسیری تلقی می‌گردد. multipathd منتظر می‌ماند تا ببیند آیا مسیرهای اضافی با همان WWID ظاهر می‌شوند یا خیر. اگر چنین شود، یک نگاشت چندمسیری برپا می‌کند. اگر تا زمان پایان مهلت زمانی این اتفاق نیفتد یا اگر برپایی نگاشت شکست بخورد، یک uevent جدید برای دستگاه ارسال می‌شود؛ در مواجهه دوم در قواعد udev، با دستگاه به عنوان یک دستگاه غیرچندمسیری رفتار شده و به لایه‌های بالاتر تحویل داده می‌شود. \fBنکته:\fR این ممکن است باعث ایجاد تاخیر در حین شناسایی دستگاه‌ها شود اگر دستگاه‌های تک‌مسیری وجود داشته باشند که در لیست سیاه قرار نگرفته باشند. .TP مقدار پیش‌فرض: \fBstrict\fR .RE . . .TP .B find_multipaths_timeout مهلت زمانی بر حسب ثانیه برای انتظار جهت کشف مسیرهای اضافی پس از شناسایی نخستین مسیر، در صورتی که گزینه \fIfind_multipaths "smart"\fR (بالا را ببینید) تنظیم شده باشد. اگر مقدار \fBمثبت\fR باشد، این مهلت برای تمام دستگاه‌های ناشناخته و غیرمسدود مشاهده‌شده استفاده می‌شود. اگر مقدار \fBمنفی\fR باشد (توصیه می‌شود)، تنها برای دستگاه‌های "شناخته‌شده" که دارای یک ورودی در جدول سخت‌افزاری multipath هستند (خواه در جدول توکار یا در یک بخش \fIdevice\fR) اعمال می‌شود؛ سایر دستگاه‌ها ("ناشناخته") برای جلوگیری از تاخیر در بوت تنها از مهلت زمانی 1 ثانیه استفاده خواهند کرد. مقدار 0 به معنای "استفاده از پیش‌فرض توکار" است. اگر \fIfind_multipaths\fR مقداری غیر از \fIsmart\fR داشته باشد، این گزینه هیچ تاثیری ندارد. .RS .TP مقدار پیش‌فرض: \fB-10\fR (10 ثانیه برای سخت‌افزار شناخته‌شده و 1 ثانیه برای سخت‌افزار ناشناخته) .RE . . .TP .B uxsock_timeout مهلت زمانی دریافت CLI بر حسب میلی‌ثانیه. برای سیستم‌های بزرگتر، دستورات CLI ممکن است پیش از آزاد شدن قفل multipathd و امکان پردازش دستور CLI، دچار انقضای زمان شوند. این امر منجر به بازگرداندن خطاهایی مانند "timeout receiving packet" از دستورات CLI می‌شود. در این موارد توصیه می‌شود مهلت زمانی CLI افزایش یابد تا از بروز این مشکلات جلوگیری شود. .RS .TP مقدار پیش‌فرض: \fB4000\fR .RE . . .TP .B retrigger_tries تعداد دفعاتی را تعیین می‌کند که multipathd برای به دست آوردن WWID تلاش می‌کند یک uevent را مجدداً ارسال کند. .RS .TP مقدار پیش‌فرض: \fB3\fR .RE . . .TP .B retrigger_delay مدت زمان انتظار بر حسب ثانیه بین تلاش‌های مجدد را تعیین می‌کند. .RS .TP مقدار پیش‌فرض: \fB10\fR .RE . . .TP .B missing_uev_wait_timeout کنترل می‌کند که multipathd پس از ایجاد یک دستگاه چندمسیری جدید، چند ثانیه برای دریافت رخداد تغییر از udev برای آن دستگاه منتظر بماند، پیش از آنکه بارگذاری‌های مجدد دستگاه را به طور خودکار فعال کند. معمولاً multipathd بارگذاری‌های مجدد روی یک دستگاه را به تعویق می‌اندازد تا زمانی که یک change uevent از بارگذاری جدول اولیه دریافت نماید. .RS .TP مقدار پیش‌فرض: \fB30\fR .RE . . .TP .B skip_kpartx اگر روی .I yes تنظیم شود، kpartx به طور خودکار روی دستگاه پارتیشن ایجاد نخواهد کرد. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B purge_disconnected اگر روی .I yes تنظیم شود، multipathd دستگاه‌هایی را که در وضعیت قطع‌شده هستند به طور خودکار حذف می‌کند. یک مسیر زمانی قطع‌شده تلقی می‌شود که بررسی‌کننده مسیر TUR (تست آمادگی واحد) کد حسگری اسکازی "LOGICAL UNIT NOT SUPPORTED" (کلید حسگر 0x5، ASC/ASCQ 0x25/0x00) را دریافت کند. این حالت معمولاً نشان می‌دهد که LUN از نگاشت خارج شده یا دیگر توسط آرایه ذخیره‌سازی ارائه نمی‌شود. این گزینه به پاکسازی ورودی‌های کهنه دستگاه که در غیر این صورت در سیستم باقی می‌مانند کمک می‌کند. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B disable_changed_wwids (منسوخ‌شده) این گزینه دیگر پشتیبانی نمی‌شود و نادیده گرفته خواهد شد. . . .TP .B remove_retries تعداد دفعاتی را تعیین می‌کند که multipath تلاش می‌کند دستگاهی را که در حال استفاده است حذف کند. بین هر تلاش، multipath به مدت 1 ثانیه به خواب می‌رود. .RS .TP مقدار پیش‌فرض: \fB0\fR .RE . . .TP .B max_sectors_kb پارامتر دستگاه \fImax_sectors_kb\fR را روی برخی از دستگاه‌های مسیر و دستگاه چندمسیری به مقدار مشخص‌شده تنظیم می‌کند. \fImax_sectors_kb\fR بزرگترین اندازه ورودی/خروجی، بر حسب واحدهای 1024 بایتی است که هسته برای یک درخواست ورودی/خروجی مجاز می‌داند. برای دستگاه‌های سخت‌افزاری مانند دیسک‌های SCSI، این مقدار توسط قابلیت‌های سخت‌افزار محدود می‌شود. بسیار حیاتی است که مقدار یک نگاشت چندمسیری هرگز بیشتر از حداقل مقدار تمام دستگاه‌های مسیر آن نباشد. این موضوع در زمان بارگذاری نگاشت چندمسیری توسط هسته تضمین می‌شود، اما دستکاری مقادیر یک نگاشت یا هر یک از مسیرهای آن در حالی که نگاشت فعال است می‌تواند باعث بروز شرایط رقابتی و خطاهای ورودی/خروجی شود. بنابراین این مقدار تنها زمانی توسط multipathd اعمال می‌شود که یک نگاشت چندمسیری برای نخستین بار ایجاد شود، یا زمانی که یک دستگاه مسیر به یک نگاشت اضافه گردد. در هر دو حالت، هسته از بروز شرایط رقابتی جلوگیری می‌کند. .RS .PP تنظیم \fImax_sectors_kb\fR تضمین نمی‌کند که تمام دستگاه‌های مسیر این مقدار را تنظیم کنند. اگر مقدار یک دستگاه مسیر بیشتر از نگاشت چندمسیری دربرگیرنده آن باشد، این یک خطا نیست. همچنین اگر حد واقعی یک نگاشت کمتر از مقدار موجود در \fI/etc/multipath.conf\fR باشد نیز خطا تلقی نمی‌شود. این اتفاق زمانی می‌تواند رخ دهد که محدودیت‌های سخت‌افزاری یک یا چند دستگاه مسیر کمتر از مقدار پیکربندی‌شده باشد. .PP به طور معمول هسته و درایورهای دستگاه آن حداکثر اندازه ورودی/خروجی را مدیریت می‌کنند و نیازی نیست مدیران سیستم نگران \fImax_sectors_kb\fR باشند. اما برخی از دستگاه‌های سخت‌افزاری ممکن است محدودیت‌های اندازه ورودی/خروجی نادرستی را گزارش دهند، یا سایر اجزای محیط (مانند فابریک) ممکن است محدودیت‌هایی تحمیل کنند که هسته نتواند آن‌ها را تشخیص دهد. در چنین مواردی تنظیم \fImax_sectors_kb\fR منطقی است. این مقدار باید هنگام ایجاد اولیه نگاشت‌ها تنظیم شود و پس از آن تغییر نیابد. اگر این تنظیم \fBحتماً\fR باید برای یک نگاشت فعال تغییر کند، مقدار را در \fI/etc/multipath.conf\fR تنظیم کنید، دستور \fBmultipathd reconfigure\fR را اجرا نمایید، و از \fBmultipathd del path \fR و \fBmultipathd add path \fR برای حذف و اضافه مجدد همان دستگاه مسیر استفاده کنید. .LP مقدار پیش‌فرض: \fB<تعریف‌نشده>\fR .RE . . .TP .B ghost_delay تعداد ثانیه‌هایی را تعیین می‌کند که multipath پس از ایجاد دستگاهی که تنها دارای مسیرهای شبه (ghost) است، قبل از آماده علامت‌گذاری آن برای استفاده در systemd منتظر می‌ماند. این کار به مسیرهای فعال فرصت می‌دهد تا پیش از آنکه multipath گرداننده سخت‌افزاری را برای تغییر مسیرهای شبه به مسیرهای فعال اجرا کند، ظاهر شوند. تنظیم این گزینه روی \fI0\fR یا \fIno\fR باعث می‌شود multipath فوراً دستگاهی را که تنها مسیرهای شبه دارد به عنوان آماده علامت‌گذاری کند. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .TP .B auto_resize کنترل می‌کند چه زمانی multipathd به طور خودکار اندازه دستگاه چندمسیری را تغییر دهد. اگر روی \fInever\fR تنظیم شود، دستگاه‌های چندمسیری همیشه باید به صورت دستی با اجرای دستور \fBmultipathd resize map \fR تغییر اندازه داده شوند. اگر روی \fIgrow_only\fR تنظیم شود، هنگامی که multipathd تشخیص دهد تمام مسیرهای یک دستگاه چندمسیری افزایش اندازه داشته‌اند، دستگاه چندمسیری را به طور خودکار به اندازه جدید گسترش می‌دهد. اگر روی \fIgrow_shrink\fR تنظیم شود، multipathd همچنین پس از تشخیص کاهش اندازه تمامی مسیرهای آن، دستگاه را به طور خودکار کوچک خواهد کرد. .RS .TP مقدار پیش‌فرض: \fBnever\fR .RE . . .TP .B enable_foreign کتابخانه‌های خارجی را فعال یا غیرفعال می‌کند (بخش .I پشتیبانی از چندمسیری خارجی (FOREIGN MULTIPATH SUPPORT) در ادامه را ببینید). مقدار آن یک عبارت باقاعده است؛ کتابخانه‌های خارجی در صورتی بارگذاری می‌شوند که نام آن‌ها (مثلاً \(dqnvme\(dq) با عبارت مطابقت داشته باشد. به طور پیش‌فرض، هیچ کتابخانه خارجی فعالی وجود ندارد. این گزینه را روی \(dqnvme\(dq تنظیم کنید تا پشتیبانی از چندمسیری بومی NVMe فعال شود، یا \(dq.*\(dq برای فعال‌سازی تمامی کتابخانه‌های خارجی. .RS .TP مقدار پیش‌فرض: \fB\(dqNONE\(dq\fR .RE . . .TP .B recheck_wwid اگر روی \fIyes\fR تنظیم شود، هنگامی که یک مسیر شکست‌خورده بازیابی می‌شود، wwid آن دوباره بررسی خواهد شد. اگر wwid تغییر کرده باشد، مسیر از دستگاه چندمسیری فعلی حذف شده و به عنوان یک مسیر جدید اضافه می‌گردد. همچنین اگر یک مسیر به صورت دستی مجدداً اضافه شود، Multipathd شناسه wwid آن را دوباره بررسی خواهد کرد. این گزینه تنها برای دستگاه‌های SCSI کار می‌کند که برای استفاده از صفت پیش‌فرض uid_attribute یعنی \fIID_SERIAL\fR، یا sysfs جهت دریافت wwid خود پیکربندی شده‌اند. .RS .TP مقدار پیش‌فرض: \fBno\fR .RE . . .\" ---------------------------------------------------------------------------- .SH "بخش‌های blacklist و blacklist_exceptions (blacklist and blacklist_exceptions sections)" .\" ---------------------------------------------------------------------------- . بخش \fIblacklist\fR برای مستثنی کردن دستگاه‌های خاص از توپولوژی چندمسیری به کار می‌رود. این بخش عمدتاً برای جلوگیری از مدیریت دیسک‌های محلی یا دستگاه‌های غیردیسکی (مانند LUNهای کنترلر آرایه ذخیره‌سازی) توسط ابزارهای multipath-tools استفاده می‌شود. .LP . . در بخش‌های \fIblacklist\fR و \fIblacklist_exceptions\fR، شروع یک مقدار نقل‌قول‌شده با علامت تعجب \fB"!"\fR تطابق بقیه عبارت باقاعده را معکوس می‌کند. برای نمونه، \fB"!^sd[a-z]"\fR با تمام مقادیری که با \fB"sd[a-z]"\fR شروع نمی‌شوند تطبیق می‌یابد. علامت تعجب را می‌توان اسکیپ کرد (\fB"\\!"\fR) تا با یک علامت \fB!\fR واقعی در ابتدای یک عبارت باقاعده مطابقت داده شود. \fBتوجه:\fR علامت تعجب باید حتماً در داخل نقل‌قول‌ها باشد، در غیر این صورت به عنوان شروع کامنت تلقی خواهد شد. .LP . . بخش \fIblacklist_exceptions\fR برای برگرداندن اقدامات بخش \fIblacklist\fR به کار می‌رود. این کار امکان گنجاندن انتخابی ("لیست سفید") دستگاه‌هایی را فراهم می‌سازد که به طور معمول از طریق بخش \fIblacklist\fR مستثنی می‌شدند. یک کاربرد رایج، قرار دادن "همه‌چیز" در لیست سیاه با استفاده از یک عبارت باقاعده فراگیر و ایجاد ورودی‌های مشخص در blacklist_exceptions برای دستگاه‌هایی است که باید توسط multipath-tools مدیریت شوند. .LP . . کلیدواژه‌های زیر در هر دو بخش شناخته شده‌اند. پیش‌فرض‌ها خالی هستند مگر اینکه صراحتاً بیان شده باشد. .TP .B devnode عبارت باقاعده منطبق بر گره‌های دستگاه جهت استثنا/گنجاندن. .RS .PP بخش \fIblacklist\fR پیش‌فرض شامل عبارت باقاعده \fB"!^(sd[a-z]|dasd[a-z]|nvme[0-9])"\fR است. این امر باعث می‌شود تمام انواع دستگاه‌ها به جز scsi، dasd و nvme به طور پیش‌فرض از مدیریت چندمسیری مستثنی شوند. .RE .TP .B wwid عبارت باقاعده برای \fIشناسه جهانی (WWID)\fR دستگاه جهت استثنا/گنجاندن. . .TP .B device زیربخش برای توضیحات دستگاه. این زیربخش کلیدواژه‌های .B vendor و .B product را می‌شناسد. هر دو عبارت باقاعده هستند. برای توضیحات کامل این کلیدواژه‌ها لطفاً توضیحات بخش \fIdevices\fR را ببینید. .TP .B property عبارت باقاعده برای یک ویژگی udev. تمام دستگاه‌هایی که ویژگی‌های udev منطبق دارند مستثنی/گنجانده خواهند شد. نحوه مدیریت کلیدواژه \fIproperty\fR ویژه است، زیرا دستگاه‌ها \fBباید\fR دست‌کم یک ویژگی udev در لیست سفید داشته باشند؛ در غیر این صورت با آن‌ها به عنوان لیست سیاه رفتار شده و پیام "\fIblacklisted, udev property missing\fR" در گزارش‌ها نمایش داده می‌شود. . .RS .PP .B نکته: رفتار این گزینه در \fBmultipath-tools\fR نسخه 0.8.2 در مقایسه با نسخه‌های پیشین تغییر کرده است. قرار گرفتن در لیست سیاه به دلیل نبود ویژگی‌ها، تنها برای دستگاه‌هایی اعمال می‌شود که ویژگی مشخص‌شده توسط \fIuid_attribute\fR (مثلاً \fIID_SERIAL\fR) را تنظیم کرده باشند. پیش‌تر، این مورد روی هر دستگاهی اعمال می‌شد که احتمالاً باعث می‌شد دستگاه‌ها به دلیل شرایط خطای موقت I/O در لیست سیاه قرار گیرند. .PP استثنای پیش‌فرض لیست سیاه (\fIblacklist exception\fR) عبارت است از: \fB(SCSI_IDENT_|ID_WWN)\fR، که باعث می‌شود دستگاه‌های SCSI خوش‌رفتار و دستگاه‌هایی که WWN (شماره جهانی) ارائه می‌دهند گنجانده شوند و تمام موارد دیگر مستثنی گردند. .RE .TP .B protocol عبارت باقاعده برای پروتکل یک دستگاه جهت استثنا/گنجاندن. .RS .PP رشته‌های پروتکلی که multipath می‌شناسد عبارتند از: \fIscsi:fcp\fR، \fIscsi:spi\fR، \fIscsi:ssa\fR، \fIscsi:sbp\fR، \fIscsi:srp\fR، \fIscsi:iscsi\fR، \fIscsi:sas\fR، \fIscsi:adt\fR، \fIscsi:ata\fR، \fIscsi:unspec\fR، \fInvme:pcie\fR، \fInvme:rdma\fR، \fInvme:fc\fR، \fInvme:tcp\fR، \fInvme:loop\fR، \fInvme:apple-nvme\fR، \fInvme:unspec\fR، \fIccw\fR، \fIcciss\fR و \fIundef\fR. پروتکلی که یک مسیر استفاده می‌کند را می‌توان با اجرای دستور زیر مشاهده کرد: \fBmultipathd show paths format "%d %P"\fR .RE .LP برای هر دستگاه، این ۵ معیار لیست سیاه به ترتیب "property, dev\%node, device, protocol, wwid" ارزیابی می‌شوند. اگر دستگاهی با هر یک از معیارها در لیست سیاه قرار گیرد، از مدیریت توسط multipathd مستثنی شده و معیارهای بعدی دیگر ارزیابی نمی‌شوند. برای هر معیار، اگر دستگاهی با هر دو مطابقت داشته باشد، لیست سفید بر لیست سیاه اولویت دارد. .LP .B نکته: علاوه بر لیست سیاه و لیست سفید، سایر گزینه‌های پیکربندی مانند \fIfind_multipaths\fR نیز بر این امر تاثیر می‌گذارند که آیا یک دستگاه معین توسط multipath-tools مدیریت شود یا خیر. . . .\" ---------------------------------------------------------------------------- .SH "بخش multipaths (multipaths section)" .\" ---------------------------------------------------------------------------- . بخش \fImultipaths\fR امکان تنظیم صفت‌های نگاشت‌های چندمسیری را فراهم می‌کند. صفت‌هایی که از طریق بخش multipaths تنظیم می‌شوند (فهرست زیر را ببینید) بر تمام تنظیمات پیکربندی دیگر، از جمله تنظیمات بخش \fIoverrides\fR، اولویت دارند. .LP تنها صفت شناخته‌شده برای بخش \fImultipaths\fR، زیربخش \fImultipath\fR است. اگر چندین زیربخش \fImultipath\fR منطبق با یک WWID معین وجود داشته باشد، محتوای این بخش‌ها ادغام شده و تنظیمات ورودی‌های بعدی اولویت خواهند داشت. .LP . . زیربخش \fImultipath\fR صفت‌های زیر را می‌شناسد: .TP .B wwid (اجباری) شناسه جهانی (World Wide Identifier). نگاشت‌های چندمسیری شناسایی‌شده با این صفت تطبیق داده می‌شوند. توجه داشته باشید که برخلاف صفت \fIwwid\fR در بخش \fIblacklist\fR، این صفت یک عبارت باقاعده یا زیررشته \fBنیست\fR؛ شناسه‌های WWID در داخل بخش multipaths باید دقیقاً مطابقت داشته باشند. .TP .B alias نام نمادین برای نگاشت چندمسیری. این گزینه بر ورودی مربوط به همان WWID در فایل \fI/etc/multipath/bindings\fR اولویت دارد. .LP . . صفت‌های زیر اختیاری هستند؛ در صورت عدم تنظیم، مقادیر پیش‌فرض از بخش‌های \fIoverrides\fR، \fIdevices\fR یا \fIdefaults\fR گرفته می‌شوند: .sp .PD .1v .RS .TP .B path_grouping_policy .TP .B path_selector .TP .B prio .TP .B prio_args .TP .B failback .TP .B no_path_retry .TP .B flush_on_last_del .TP .B features .TP .B reservation_key .TP .B user_friendly_names .TP .B deferred_remove .TP .B san_path_err_threshold .TP .B san_path_err_forget_rate .TP .B san_path_err_recovery_time .TP .B marginal_path_err_sample_time .TP .B marginal_path_err_rate_threshold .TP .B marginal_path_err_recheck_gap_time .TP .B marginal_path_double_failed_time .TP .B delay_watch_checks .TP .B delay_wait_checks .TP .B skip_kpartx .TP .B purge_disconnected .TP .B max_sectors_kb .TP .B ghost_delay .RE .PD . . .\" ---------------------------------------------------------------------------- .SH "بخش devices (devices section)" .\" ---------------------------------------------------------------------------- . .TP .B مهم: جدول توکار دستگاه‌های سخت‌افزاری .I multipath-tools توسط اعضای جامعه لینوکس به این امید که مفید واقع شود ایجاد شده است. وجود یک ورودی برای یک محصول ذخیره‌سازی معین در جدول سخت‌افزاری .B به هیچ وجه به این معنی نیست که سازنده محصول، آن را به همراه .I multipath-tools به هر شکلی پشتیبانی کرده یا مورد آزمایش قرار داده است. .B همیشه برای اطلاعات مربوط به پشتیبانی به مستندات رسمی سازنده مراجعه کنید. .PP ابزارهای \fImultipath-tools\fR دارای یک جدول دستگاه‌های توکار با مقادیر پیش‌فرض معقول برای بیش از ۱۰۰ دستگاه ذخیره‌سازی شناخته‌شده با قابلیت چندمسیری هستند. بخش devices می‌تواند برای بازنویسی این تنظیمات استفاده شود. اگر چندین تطابق برای یک دستگاه معین وجود داشته باشد، صفت‌های تمام ورودی‌های منطبق روی آن اعمال می‌شوند. اگر یک صفت در چندین زیربخش دستگاه منطبق مشخص شده باشد، ورودی‌های بعدی اولویت خواهند داشت. بنابراین، ورودی‌های موجود در فایل‌های زیر پوشه \fI/etc/multipath/conf.d/\fR (به ترتیب معکوس الفبایی) بالاترین اولویت را دارند و پس از آن ورودی‌های \fI/etc/multipath.conf\fR قرار می‌گیرند؛ جدول سخت‌افزاری توکار کمترین اولویت را دارد. در داخل یک فایل پیکربندی، ورودی‌های بعدی نسبت به ورودی‌های قبلی اولویت بالاتری دارند. .LP تنها صفت شناخته‌شده برای بخش \fIdevices\fR، زیربخش \fIdevice\fR است. دستگاه‌های شناسایی‌شده در سیستم بر اساس فیلدهای \fBvendor\fR، \fBproduct\fR و \fBrevision\fR که همگی عبارات باقاعده گسترش‌یافته پوزیکس هستند (به \fBregex\fR(7) مراجعه کنید) با ورودی‌های دستگاه تطبیق داده می‌شوند. .LP فیلدهای vendor، product و revision که multipath یا multipathd برای دستگاه‌های موجود در سیستم تشخیص می‌دهند به نوع دستگاه بستگی دارد. برای دستگاه‌های SCSI، این مقادیر متناظر با فیلدهای مربوطه در صفحه SCSI INQUIRY هستند. به طور کلی، دستور '\fImultipathd show paths format "%d %s"\fR' می‌تواند برای مشاهده ویژگی‌های تشخیص‌داده‌شده تمام دستگاه‌ها در سیستم استفاده شود. .LP . زیربخش \fIdevice\fR صفت‌های زیر را می‌شناسد: .TP .B vendor (اجباری) عبارت باقاعده برای تطبیق نام سازنده. .RS .TP برای دستگاه‌های DASD، برچسب ثابت: \fBIBM\fR .TP برای دستگاه‌های NVMe، برچسب ثابت: \fBNVME\fR .RE .TP .B product (اجباری) عبارت باقاعده برای تطبیق نام محصول. .RS .TP برای دستگاه‌های DASD، برچسب ثابت: \fBS/390 DASD ECKD\fR .RE .TP .B revision عبارت باقاعده برای تطبیق نسخه بازنگری محصول. در صورت عدم تعیین، با هر نسخه بازنگری تطبیق می‌یابد. .TP .B product_blacklist محصولات مربوط به \fBvendor\fR داده‌شده که با این رشته مطابقت دارند در لیست سیاه قرار می‌گیرند. این معادل یک ورودی \fBdevice\fR در بخش \fIblacklist\fR است که صفت \fIvendor\fR آن روی \fIvendor\fR این ورودی، و صفت \fIproduct\fR آن روی مقدار \fIproduct_blacklist\fR تنظیم شده باشد. .TP .B alias_prefix پیشوند user_friendly_names برای استفاده در این نوع دستگاه، به جای مقدار پیش‌فرض "mpath". .TP .B vpd_vendor اطلاعات صفحه vpd اختصاصی سازنده، با استفاده از نام اختصاری صفحه vpd. نام اختصاری صفحه vpd را می‌توان با اجرای \fIsg_vpd -e\fR پیدا کرد. دیمن multipathd از این اطلاعات برای جمع‌آوری اطلاعات خاص دستگاه استفاده می‌کند که می‌توان آن را با نویسه عام \fI%g\fR برای دستورات \fImultipathd show maps format\fR و \fImultipathd show paths format\fR نمایش داد. در حال حاضر تنها صفحه vpd مربوط به \fBhp3par\fR پشتیبانی می‌شود. .TP .B hardware_handler گرداننده سخت‌افزاری مورد استفاده برای این نوع دستگاه. گرداننده‌های سخت‌افزاری زیر پیاده‌سازی شده‌اند: .RS .TP .I 1 emc (وابسته به سخت‌افزار) گرداننده سخت‌افزاری برای آرایه‌های کلاس DGC مانند خانواده‌های CLARiiON CX/AX و EMC VNX با حالت Failover Mode 1 (Passive Not Ready - PNR). .TP .I 1 rdac (وابسته به سخت‌افزار) گرداننده سخت‌افزاری برای کلاس LSI/Engenio/NetApp RDAC مانند NetApp SANtricity سری E/EF و آرایه‌های تغییرنام‌یافته، با گزینه "Linux DM-MP (Kernel 3.9 or earlier)". .TP .I 1 hp_sw (وابسته به سخت‌افزار) گرداننده سخت‌افزاری برای آرایه‌های HP/COMPAQ/DEC HSG80 و MSA/HSV منحصراً با حالت Active/Standby. .TP .I 1 alua (وابسته به سخت‌افزار) گرداننده سخت‌افزاری برای آرایه‌های سازگار با SCSI-3 ALUA. .TP .I 1 ana (وابسته به سخت‌افزار) گرداننده سخت‌افزاری برای آرایه‌های سازگار با NVMe ANA. .PP مقدار پیش‌فرض: \fB<تنظیم‌نشده>\fR .PP \fBنکته مهم:\fR هسته‌های لینوکس 4.3 و جدیدتر به طور خودکار یک گرداننده دستگاه را به دستگاه‌های شناخته‌شده (شامل تمام دستگاه‌های پشتیبانی‌کننده از SCSI-3 ALUA) متصل می‌کنند و تغییر دادن گرداننده پس از آن را مجاز نمی‌دانند. تنظیم \fBhardware_handler\fR برای چنین دستگاه‌هایی در این هسته‌ها هیچ تاثیری ندارد. .RE . . .LP صفت‌های زیر اختیاری هستند؛ در صورت عدم تنظیم، مقادیر پیش‌فرض از بخش \fIdefaults\fR گرفته می‌شوند: .sp .PD .1v .RS .TP .B path_grouping_policy .TP .B uid_attribute .TP .B path_selector .TP .B path_checker .TP .B prio .TP .B prio_args .TP .B features .TP .B failback .TP .B no_path_retry .TP .B fast_io_fail_tmo .TP .B dev_loss_tmo .TP .B eh_deadline .TP .B flush_on_last_del .TP .B user_friendly_names .TP .B retain_attached_hw_handler .TP .B detect_prio .TP .B detect_checker .TP .B deferred_remove .TP .B san_path_err_threshold .TP .B san_path_err_forget_rate .TP .B san_path_err_recovery_time .TP .B marginal_path_err_sample_time .TP .B marginal_path_err_rate_threshold .TP .B marginal_path_err_recheck_gap_time .TP .B marginal_path_double_failed_time .TP .B delay_watch_checks .TP .B delay_wait_checks .TP .B skip_kpartx .TP .B purge_disconnected .TP .B max_sectors_kb .TP .B ghost_delay .TP .B all_tg_pt .RE .PD . . .\" ---------------------------------------------------------------------------- .SH "بخش overrides (overrides section)" .\" ---------------------------------------------------------------------------- . بخش overrides صفت‌های اختیاری زیر را می‌شناسد؛ در صورت عدم تنظیم، مقادیر از بخش‌های \fIdevices\fR یا \fIdefaults\fR گرفته می‌شوند: .sp .PD .1v .RS .TP .B path_grouping_policy .TP .B uid_attribute .TP .B path_selector .TP .B path_checker .TP .B alias_prefix .TP .B features .TP .B prio .TP .B prio_args .TP .B failback .TP .B no_path_retry .TP .B flush_on_last_del .TP .B fast_io_fail_tmo .TP .B dev_loss_tmo .TP .B eh_deadline .TP .B user_friendly_names .TP .B retain_attached_hw_handler .TP .B detect_prio .TP .B detect_checker .TP .B deferred_remove .TP .B san_path_err_threshold .TP .B san_path_err_forget_rate .TP .B san_path_err_recovery_time .TP .B marginal_path_err_sample_time .TP .B marginal_path_err_rate_threshold .TP .B marginal_path_err_recheck_gap_time .TP .B marginal_path_double_failed_time .TP .B delay_watch_checks .TP .B delay_wait_checks .TP .B skip_kpartx .TP .B purge_disconnected .TP .B max_sectors_kb .TP .B ghost_delay .TP .B all_tg_pt .RE .PD .LP بخش overrides همچنین زیربخش اختیاری \fIprotocol\fR را می‌شناسد و می‌تواند شامل چندین زیربخش protocol باشد. دستگاه‌های مسیر با استفاده از صفت اجباری \fItype\fR با زیربخش protocol تطبیق داده می‌شوند. صفت‌های موجود در یک زیربخش protocol منطبق، بر صفت‌های بقیه بخش overrides اولویت دارند. اگر چندین زیربخش protocol منطبق وجود داشته باشد، ورودی‌های بعدی اولویت خواهند داشت. .TP .B protocol subsection زیربخش protocol صفت اجباری زیر را می‌شناسد: .RS .TP .B type رشته پروتکل دستگاه مسیر. مقادیر ممکن عبارتند از \fIscsi:fcp\fR، \fIscsi:spi\fR، \fIscsi:ssa\fR، \fIscsi:sbp\fR، \fIscsi:srp\fR، \fIscsi:iscsi\fR، \fIscsi:sas\fR، \fIscsi:adt\fR، \fIscsi:ata\fR، \fIscsi:unspec\fR، \fInvme:pcie\fR، \fInvme:rdma\fR، \fInvme:fc\fR، \fInvme:tcp\fR، \fInvme:loop\fR، \fInvme:apple-nvme\fR، \fInvme:unspec\fR، \fIccw\fR، \fIcciss\fR و \fIundef\fR. این یک عبارت باقاعده \fBنیست\fR؛ رشته پروتکل دستگاه مسیر باید دقیقاً مطابقت داشته باشد. پروتکلی را که یک مسیر استفاده می‌کند می‌توان با اجرای دستور زیر مشاهده کرد: \fBmultipathd show paths format "%d %P"\fR .LP صفت‌های زیر اختیاری هستند؛ در صورت عدم تنظیم، مقادیر پیش‌فرض از بخش‌های \fIoverrides\fR، \fIdevices\fR یا \fIdefaults\fR گرفته می‌شوند: .sp .PD .1v .RS .TP .B fast_io_fail_tmo .TP .B dev_loss_tmo .TP .B eh_deadline .PD . . .\" ---------------------------------------------------------------------------- .SH "تولید WWID (WWID generation)" .\" ---------------------------------------------------------------------------- . ابزار Multipath از یک \fIشناسه جهانی\fR (WWID) برای تعیین اینکه کدام مسیرها به یک دستگاه یکسان تعلق دارند استفاده می‌کند. فرض بر این است که هر مسیری که WWID یکسانی ارائه می‌دهد، به دستگاه یکسانی اشاره دارد. .LP شناسه WWID با چهار روش تولید می‌شود (به ترتیب اولویت): .TP .B uid_attrs شناسه WWID با تطبیق نام گره دستگاه از صفت‌های udev مشتق می‌شود؛ به \fIuid_attrs\fR در بالا مراجعه کنید. .TP .B uid_attribute استفاده از مقدار صفت udev مشخص‌شده؛ به \fIuid_attribute\fR در بالا مراجعه کنید. .TP .B sysfs تلاش برای تعیین WWID از روی صفت‌های sysfs. برای دستگاه‌های SCSI، این کار به معنی خواندن صفحه داده‌های حیاتی محصول (VPD) به نام \(dqDevice Identification\(dq (0x83) است. .PP تنظیمات پیش‌فرض (استفاده از udev و \fBuid_attribute\fR پیکربندی‌شده از روی جدول سخت‌افزاری توکار) باید در بیشتر سناریوها به خوبی کار کند. کاربرانی که مایل به فعال‌سازی ادغام uevent هستند باید \fBuid_attrs\fR را تنظیم نمایند. . . .\" ---------------------------------------------------------------------------- .SH "تشخیص مسیرهای ناپایدار (Shaky paths detection)" .\" ---------------------------------------------------------------------------- . یک مشکل رایج در پیکربندی‌های SAN، وقوع خطاهای متناوب است: یک مسیر غیرقابل‌دسترس می‌شود، سپس برای مدت کوتاهی دوباره در دسترس قرار می‌گیرد، دوباره ناپدید می‌شود و به همین ترتیب. این اتفاق معمولاً در اتصالات ناپایدار رخ می‌دهد. در چنین رخدادهای متوالی و غیرقابل‌اطمینانی، سوئیچ کردن غیرضروری بین گروه‌های مسیر نامطلوب است. دیمن \fImultipathd\fR از سه روش مختلف برای تشخیص این وضعیت و مدیریت آن پشتیبانی می‌کند. همه این روش‌ها در یک شیوه عملیاتی پایه مشترک هستند: اگر مسیری "ناپایدار (shaky)" یا "در حال تغییر مداوم (flipping)" تشخیص داده شود، و به ظاهر در وضعیت سالم باشد، بلافاصله به مدار بازگردانده (احیا) نمی‌شود. در عوض، در وضعیت "با تاخیر (delayed)" قرار گرفته و برای مدتی تحت پایش قرار می‌گیرد و تنها زمانی احیا می‌شود که وضعیت سالم پایدار به نظر برسد. اگر گزینه \fImarginal_pathgroups\fR تنظیم شده باشد، مسیر بلافاصله احیا می‌شود اما در یک گروه مسیر ویژه برای مسیرهای لب‌مرزی (marginal) قرار می‌گیرد. گروه‌های مسیر لب‌مرزی تا زمانی که تمام گروه‌های مسیر دیگر امتحان نشده باشند، استفاده نخواهند شد. در زمانی که مسیر به طور عادی احیا می‌شد، به گروه مسیر عادی خود بازگردانده خواهد شد. منطق تعیین وضعیت "ناپایدار"، و همچنین منطق زمان احیا، در میان این سه روش متفاوت است. .TP .B ردیابی خرابی \(dqdelay_checks\(dq (منسوخ‌شده) این روش \fBمنسوخ شده\fR و به روش \(dqsan_path_err\(dq نگاشت شده است. برای اطلاعات بیشتر، گزینه‌های \fIdelay_watch_checks\fR و \fIdelay_wait_checks\fR در بالا را ببینید. . .TP .B ردیابی خرابی \(dqmarginal_path\(dq اگر یک رخداد خرابی دوم (گذار از خوب به بد) در طول \fImarginal_path_double_failed_time\fR ثانیه پس از یک خرابی رخ دهد، پایش با فرکانس بالا برای مسیر آسیب‌دیده آغاز می‌شود: ورودی/خروجی با نرخ ۱۰ درخواست در ثانیه ارسال می‌گردد. این کار به مدت \fImarginal_path_err_sample_time\fR ثانیه انجام می‌شود. در طول این دوره، مسیر به مدار بازگردانده نمی‌شود. اگر در طول دوره پایش نرخ خطاها کمتر از \fImarginal_path_err_rate_threshold\fR باقی بماند، مسیر احیا خواهد شد. در غیر این صورت، برای مدت \fImarginal_path_err_recheck_gap_time\fR در وضعیت شکست‌خورده نگه داشته می‌شود و پس از آن، دوباره پایش خواهد شد. برای این روش، بازه‌های زمانی بر حسب ثانیه اندازه‌گیری می‌شوند. .TP .B ردیابی خرابی \(dqsan_path_err\(dq دیمن multipathd خرابی‌های مسیر را برای هر مسیر می‌شمارد. هنگامی که تعداد خرابی‌ها از مقدار ارائه‌شده توسط \fIsan_path_err_threshold\fR فراتر رود، مسیر به مدت \fIsan_path_err_recovery_time\fR ثانیه احیا نخواهد شد. در حین شمارش خرابی‌ها، multipathd به ازای هر \(dqsan_path_err_forget_rate\(dq تیک، یک خرابی گذشته را "فراموش می‌کند"؛ بنابراین اگر خطاها بیشتر از یک بار در بازه نرخ فراموشی رخ ندهند، شمارش خرابی‌ها افزایش نمی‌یابد و آستانه هرگز برآورده نمی‌شود. تیک‌ها مدت زمان بین بررسی‌های مسیر توسط multipathd هستند که متغیر بوده و توسط پارامترهای \fIpolling_interval\fR و \fImax_polling_interval\fR کنترل می‌شوند. . .RS .LP این الگوریتم جای خود را به ردیابی خرابی \(dqmarginal_path\(dq داده است، اما برای سازگاری با گذشته همچنان پشتیبانی می‌شود. . .RE .TP .B ردیابی خرابی \(dqFPIN\(dq فابریک‌های فایبر چنل می‌توانند هاست‌ها را از مشکلات سطح فابریک مانند نقص‌های یکپارچگی یا ازدحام، با اعلان‌های موسوم به اعلان‌های تاثیر عملکرد فابریک (Fabric Performance Impact Notifications یا FPINs) مطلع سازند. با دریافت اعلان‌های fpin از طریق ELS، دیمن multipathd وضعیت مسیر و پورت مربوطه را به marginal تغییر خواهد داد. . .LP برای جزئیات بیشتر به مستندات گزینه‌های مربوطه در بالا مراجعه کنید. استفاده از بیش از یکی از این روش‌ها برای هر نگاشت چندمسیری معین \fBاکیداً توصیه نمی‌شود\fR، زیرا دو روش همزمان ممکن است به روش‌های غیرقابل پیش‌بینی با یکدیگر تداخل داشته باشند. اگر روش \(dqmarginal_path\(dq فعال باشد، پارامترهای \(dqsan_path_err\(dq به طور ضمنی روی 0 تنظیم می‌شوند. . . .\" ---------------------------------------------------------------------------- .SH "پشتیبانی از چندمسیری خارجی (FOREIGN MULTIPATH SUPPORT)" .\" ---------------------------------------------------------------------------- . ابزارهای multipath و multipathd می‌توانند کتابخانه‌های "خارجی (foreign)" را برای افزودن پشتیبانی از سایر فناوری‌های چندمسیری به جز دیوایس‌مپر (device mapper) لینوکس بارگذاری کنند. در حال حاضر این پشتیبانی محدود به چاپ اطلاعات شناسایی‌شده درباره پیکربندی چندمسیری است. در خروجی توپولوژی، نام نگاشت‌های خارجی با نام کتابخانه خارجی در داخل براکت‌ها پیشوند می‌گیرد، مانند این مثال: . .P .EX # multipath -ll uuid.fedcba98-3579-4567-8765-123456789abc [nvme]:nvme4n9 NVME,Some NVMe controller,FFFFFFFF size=167772160 features='n/a' hwhandler='ANA' wp=rw |-+- policy='n/a' prio=50 status=optimized | `- 4:38:1 nvme4c38n1 0:0 n/a optimized live `-+- policy='n/a' prio=50 status=optimized `- 4:39:1 nvme4c39n1 0:0 n/a optimized live .EE . .P کتابخانه خارجی \(dqnvme\(dq پشتیبانی از چندمسیری بومی NVMe در هسته را فراهم می‌کند. این کتابخانه بخشی از بسته استاندارد multipath است. . . .\" ---------------------------------------------------------------------------- .SH "مشکلات شناخته‌شده (KNOWN ISSUES)" .\" ---------------------------------------------------------------------------- . استفاده از گزینه \fIqueue_if_no_path\fR می‌تواند در شرایطی که تمام مسیرهای یک LUN آفلاین می‌شوند، منجر به قفل شدن فرآیندها در وضعیت \fID state\fR (خواب غیرقابل‌وقفه) و غیرقابل‌کشتن شدن آن‌ها گردد. توصیه می‌شود به جای آن از گزینه \fIno_path_retry\fR استفاده شود. .P استفاده از \fIqueue_if_no_path\fR یا \fIno_path_retry\fR ممکن است در صورتی که تنظیم \fIdev_loss_tmo\fR منجر به حذف دستگاه در حین صف‌بندی I/O شود، به بن‌بست (deadlock) ختم گردد. دیمن چندمسیری تنظیم \fIdev_loss_tmo\fR را بر این اساس به‌روزرسانی می‌کند تا از این بن‌بست جلوگیری نماید. از این رو اگر هر دو مقدار مشخص شوند، ترتیب اولویت عبارت است از: \fIno_path_retry, queue_if_no_path, dev_loss_tmo\fR. . . .\" ---------------------------------------------------------------------------- .SH "فایل‌ها (FILES)" .\" ---------------------------------------------------------------------------- . مسیرهای پیش‌فرض برای فایل‌ها و دایرکتوری‌های پیکربندی: .TP .I /etc/multipath.conf فایل پیکربندی اصلی. .TP .I /etc/multipath/conf.d/ دایرکتوری فایل‌های قطره‌ای (drop-in) پیکربندی. .TP .I /etc/multipath/bindings فایل پیوندها (bindings)؛ زمانی استفاده می‌شود که گزینه \fBuser_friendly_names\fR روی \fByes\fR تنظیم شده باشد تا به هر دستگاه چندمسیری یک نام مستعار پایدار و یکتا اختصاص دهد. .TP .I /etc/multipath/prkeys فایل کلیدهای رزرو پایدار؛ توسط multipathd برای پیگیری کلید رزرو استفاده‌شده برای یک WWID خاص هنگامی که \fBreservation_key\fR روی \fBfile\fR تنظیم شده است، استفاده می‌شود. .TP .I /etc/multipath/wwids فایل شناسه‌های جهانی (WWIDs)؛ توسط multipath برای پیگیری شناسه‌های WWID مربوط به LUNهایی که در گذشته برای آن‌ها دستگاه‌های چندمسیری ایجاد شده است به کار می‌رود. .TP .I /run/multipathd.pid فایل شناسه فرآیند (PID). . . .\" ---------------------------------------------------------------------------- .SH "همچنین ببینید (SEE ALSO)" .\" ---------------------------------------------------------------------------- . .BR udev (8), .BR dmsetup (8), .BR multipath (8), .BR multipathc (8), .BR multipathd (8). . . .\" ---------------------------------------------------------------------------- .SH "نویسندگان (AUTHORS)" .\" ---------------------------------------------------------------------------- . مجموعه \fImultipath-tools\fR توسط کریستوف واروکی (Christophe Varoqui) و دیگران توسعه یافته است. .\" EOF