| MULTIPATHD(8) | System Manager's Manual | MULTIPATHD(8) |
نام (NAME)
multipathd - دیمن مدیریت چندمسیره دیسکها
خلاصه دستور (SYNOPSIS)
multipathd [-d] [-s] [-v verbosity] [-B] [-w]
multipathd [-v verbosity] -kcommand
multipathd [-v verbosity] -k
توضیحات (DESCRIPTION)
دیمن multipathd وظیفه بررسی و نظارت بر مسیرهای معیوب را بر عهده دارد. هنگامی که مسیری از کار میافتد، نگاشت چندمسیرهای (multipath map) را که آن مسیر به آن تعلق دارد بازپیکربندی میکند تا این نگاشت حداکثر کارایی و افزونگی (redundancy) خود را بازیابد.
با گزینه -k، برنامه multipathd به عنوان ابزار کلاینت عمل کرده و دستوراتی را به نمونه در حال اجرای دیمن multipathd ارسال میکند (به بخش دستورات (COMMANDS) در ادامه مراجعه کنید).
گزینهها (OPTIONS)
- -d
- حالت پیشزمینه (Foreground). برنامه دیمن نمیشود و تمامی پیامها را در خروجی استاندارد و خطای استاندارد چاپ میکند.
- -s
- حذف برچسبهای زمانی. از درج برچسب زمانی در ابتدای پیامهای وقایعنگاری جلوگیری میکند.
- -v level
- سطح پرحرفی (verbosity). اطلاعات اضافی را در حین اجرای multipathd چاپ میکند. سطح ۰ به معنای چاپ تنها خطاها است. سطح ۳ یا بالاتر اطلاعات اشکالزدایی را نیز چاپ میکند.
- -B
- فایل اتصالات فقطخواندنی. دیمن multipathd در فایل اتصالات user_friendly_names نخواهد نوشت. اگر نام کاربرپسندی (user_friendly_name) برای دستگاهی وجود نداشته باشد، از WWID آن به عنوان نام مستعار استفاده میشود.
- -kcommand
- دیمن multipathd
دستور
ارائهشده
را اجرا
میکند (به
بخش
دستورات (COMMANDS)
مراجعه
کنید). اگر
دستور حاوی
فاصله یا
نویسههای
ویژه شل
باشد، باید
مانند multipathd -k'show
topology' درون
نقلقول
قرار گیرد.
فاصلهای
بین -k و
رشته دستور
مجاز نیست.
دستورات را میتوان بدون استفاده از -k نیز صادر کرد. در این حالت رشته دستور نباید درون نقلقول قرار گیرد. آرگومانهای دستور که شامل فاصله یا نویسههای خاص هستند همچنان باید درون نقلقول باشند، مانند multipathd show paths format "%n %w".
- -k
- اجرای پوسته تعاملی multipathc برای ورود دستورات (به بخش دستورات (COMMANDS) در ادامه مراجعه کنید).
- -n
- نادیدهگرفتهشده (IGNORED). از گزینه find_multipaths برای کنترل نحوه برخورد با دستگاههای تازه شناساییشده توسط multipathd استفاده کنید. به multipath.conf(5) مراجعه کنید.
- -w
- از زمان کرنل 4.14 از یک رابط جدید نظرسنجی رویداد device-mapper برای بهروزرسانی دستگاههای چندمسیره بر اساس dmevents استفاده میشود. با این فلگ میتوانید سیستم را وادار به استفاده از روش قدیمی انتظار رویداد، مبتنی بر ایجاد یک ریسه جداگانه برای هر دستگاه کنید.
ارتباط با MULTIPATHD (COMMUNICATING WITH MULTIPATHD)
علاوه بر واسط خط فرمان multipathd، میتوان از کتابخانه libmpathcmd برای ارسال دستورات (به بخش دستورات (COMMANDS) در ادامه مراجعه کنید) از سایر برنامهها به دیمن multipathd استفاده کرد. به طور پیشفرض، multipathd هم روی سوکت فضانام انتزاعی @/org/kernel/linux/storage/multipathd و هم روی فایل سوکت /run/multipathd.socket گوش میدهد. کتابخانه libmpathcmd از هر یک از این سوکتها برای اتصال به multipathd استفاده خواهد کرد. فایل سوکت میتواند برای برقراری ارتباط با multipathd از فضانامهای مختلف مفید باشد زیرا برخلاف سوکت فضانام انتزاعی، میتوان آن را در آنها به صورت bind سوار کرد. دیمن multipathd دستورات list|show را از هر کاربری میپذیرد. سایر دستورات باید توسط کاربر ارشد (root) صادر شوند.
امکان تغییر سوکتهایی که multipathd به آنها گوش میدهد وجود دارد. اگر multipathd.socket در حال اجرا باشد، multipathd از سوکتهایی که آن گوش میدهد استفاده خواهد کرد. حداکثر دو سوکت را میتوان توسط multipathd.socket تعریف کرد و به طور پیشفرض روی @/org/kernel/linux/storage/multipathd و /run/multipathd.socket گوش میدهد. اگر multipathd.socket در حال اجرا نباشد، میتوان با تنظیم متغیر محیطی MULTIPATH_SOCKET_NAME در هنگام راهاندازی multipathd، یک سوکت واحد را برای گوش دادن پیکربندی کرد. این متغیر محیطی همچنین باید تنظیم شود تا دستورات CLI multipathd (یا هر برنامه دیگری که از libmpathcmd استفاده میکند) با استفاده از یک سوکت غیرپیشفرض به دیمن متصل شوند.
دستورات (COMMANDS)
دستورات زیر را میتوان در حالت تعاملی استفاده کرد:
- list|show paths
- نمایش مسیرهایی که multipathd در حال پایش آنهاست و وضعیت آنها.
- list|show paths [raw] format $format
- نمایش مسیرهایی که multipathd در حال پایش آنهاست، با استفاده از یک رشته قالب حاوی نویسههای جانشین قالب مسیر. افزودن raw سرصفحهها و فاصلهگذاریهای تراز را از خروجی حذف میکند.
- list|show path $path
- نمایش آنلاین یا آفلاین بودن مسیر $path.
- list|show maps|multipaths
- نمایش دستگاههای چندمسیرهای که multipathd در حال پایش آنهاست.
- list|show maps|multipaths [raw] format $format
- نمایش وضعیت تمام دستگاههای چندمسیره تحت پایش با استفاده از رشته قالب. افزودن raw سرصفحهها و فاصلهگذاریها را حذف میکند.
- list|show maps|multipaths status
- نمایش وضعیت تمام دستگاههای چندمسیرهای که multipathd در حال پایش آنهاست.
- list|show maps|multipaths stats
- نمایش آمارهای مربوط به تمام دستگاههای چندمسیره تحت نظارت.
- list|show maps|multipaths topology
- نمایش توپولوژی جاری دستگاههای چندمسیره. معادل 'multipath -ll'.
- list|show maps|multipaths json
- نمایش اطلاعات تمامی دستگاههای چندمسیره در قالب JSON.
- list|show topology
- نمایش توپولوژی جاری چندمسیره. معادل 'multipath -ll'.
- list|show map|multipath $map topology
- نمایش توپولوژی یک دستگاه چندمسیره خاص مشخصشده با $map (برای نمونه 36005076303ffc56200000000000010aa). این شناسه را میتوان از 'list maps' به دست آورد.
- list|show map|multipath $map [raw] format $format.
- نمایش وضعیت دستگاه چندمسیره $map با استفاده از رشته قالب.
- list|show map|multipath $map json
- نمایش اطلاعات دستگاه چندمسیره $map در قالب JSON.
- list|show wildcards
- نمایش نویسههای جانشین قالب مورد استفاده در دستورات تعاملی که $format دریافت میکنند.
- list|show config
- نمایش پیکربندی جاری مورد استفاده، برگرفته از مقادیر پیشفرض و مقادیر مشخصشده در فایل پیکربندی /etc/multipath.conf.
- list|show config local
- نمایش پیکربندی جاری مشابه show config، اما با محدود کردن بخش دستگاهها به دستگاههایی که واقعاً در سیستم وجود دارند.
- list|show blacklist
- نمایش قوانین فهرست سیاه (blacklist) جاری، برگرفته از مقادیر پیشفرض و مقادیر مشخصشده در /etc/multipath.conf.
- list|show devices
- نمایش تمام دستگاههای بلاک موجود بر اساس نام به همراه اطلاعات مربوط به حضور یا عدم حضور آنها در فهرست سیاه.
- list|show status
- نمایش تعداد بررسیکنندههای مسیر در هر وضعیت ممکن، تعداد مسیرهای تحت نظارت، و اینکه آیا multipathd در حال حاضر مشغول پردازش رویداد uevent است یا خیر.
- list|show daemon
- نمایش وضعیت جاری دیمن multipathd.
- reset maps|multipaths stats
- بازنشانی آمارهای تمامی دستگاههای چندمسیره.
- reset map|multipath $map stats
- بازنشانی آمارهای دستگاه چندمسیره $map.
- add path $path
- افزودن یک مسیر به فهرست مسیرهای تحت نظارت. مقدار $path همان نام فهرستشده در /sys/block است (مانند sda).
- remove|del path $path
- توقف نظارت بر یک مسیر. مقدار $path همان نام فهرستشده در /sys/block است (مانند sda).
- add map|multipath $map
- افزودن یک دستگاه چندمسیره به فهرست دستگاههای تحت نظارت. مقدار $map میتواند یک دستگاه device-mapper فهرستشده در /sys/block باشد (مانند dm-0) یا نام مستعار دستگاه (مانند mpath1) یا uid دستگاه چندمسیره.
- remove|del maps|multipaths
- حذف تمام دستگاههای چندمسیره.
- remove|del map|multipath $map
- حذف دستگاه چندمسیره $map.
- resize map|multipath $map
- تغییر اندازه نگاشت $map به اندازه دادهشده.
- switch|switchgroup map|multipath $map group $group
- وادار کردن دستگاه چندمسیره به تغییر به یک گروه مسیر خاص. مقدار $group اندیس گروه مسیر است که از ۱ شروع میشود.
- reconfigure
- بازخوانی پیکربندی و بارگذاری مجدد تمامی دستگاههای چندمسیره تغییریافته. این کار هنگام شروع به کار، هنگام بازخوانی سرویس یا دریافت سیگنال SIGHUP نیز رخ میدهد.
- reconfigure all
- بازخوانی پیکربندی و بارگذاری مجدد تمامی دستگاههای چندمسیره صرفنظر از تغییر یافتن یا نیافتن آنها. این کار هنگام اجرای multipath -r نیز رخ میدهد.
- suspend map|multipath $map
- قرار دادن نگاشت $map در حالت تعلیق (suspend).
- resume map|multipath $map
- از سرگیری فعالیت نگاشت $map از حالت تعلیق.
- reset map|multipath $map
- تخصیص مجدد جدول(های) موجود device-mapper برای استفاده از دستگاه چندمسیره به جای دستگاههای مسیر آن.
- reload map|multipath $map
- بارگذاری مجدد یک دستگاه چندمسیره.
- fail path $path
- قرار دادن مسیر $path در وضعیت شکستخورده (failed).
- reinstate path $path
- بازگرداندن مسیر $path از وضعیت شکستخورده.
- disablequeueing maps|multipaths
- غیرفعال کردن صفبندی روی تمامی دستگاههای چندمسیره.
- restorequeueing maps|multipaths
- بازیابی صفبندی به تنظیم پیکربندیشده no_path_retry روی تمامی دستگاههای چندمسیرهای که صفبندی آنها قبلاً توسط دستور disablequeueing غیرفعال شده بود.
- disablequeueing map|multipath $map
- غیرفعال کردن صفبندی روی نگاشت چندمسیره $map.
- restorequeueing map|multipath $map
- بازیابی صفبندی به تنظیم پیکربندیشده no_path_retry روی نگاشت چندمسیره $map.
- forcequeueing daemon
- وادار کردن multipathd به حالت queue_without_daemon، به طوری که صفبندی no_path_retry هنگام توقف دیمن غیرفعال نشود.
- restorequeueing daemon
- بازیابی حالت پیکربندیشده queue_without_daemon.
- setprstatus map|multipath $map
- فعالسازی مدیریت رزرو پایدار (persistent reservation) روی $map.
- setprstatus map|multipath $map pathlist $pathlist
- فعالسازی مدیریت رزرو پایدار روی $map و اطلاع به multipathd درباره مسیرهای ثبتشده، تا تلاشی برای ثبت مجدد آنها انجام ندهد.
- unsetprstatus map|multipath $map
- غیرفعال کردن مدیریت رزرو پایدار روی $map.
- getprstatus map|multipath $map
- دریافت وضعیت جاری مدیریت رزرو پایدار در $map.
- getprkey map|multipath $map
- دریافت کلید رزرو پایدار جاری مرتبط با $map.
- setprkey map|multipath $map key $key
- تنظیم کلید رزرو پایدار مرتبط با $map روی $key در prkeys_file.
- unsetprkey map|multipath $map
- حذف کلید رزرو پایدار مرتبط با $map از prkeys_file.
- setmarginal path $path
- انتقال $path به یک گروه مسیر حاشیهای (marginal). مسیر در گروه مسیر حاشیهای باقی میماند تا زمانی که unsetmarginal فراخوانی شود.
- unsetmarginal path $path
- بازگرداندن مسیر حاشیهای $path به گروه مسیر عادی خود.
- unsetmarginal map $map
- بازگرداندن تمامی مسیرهای حاشیهای در $map به گروههای مسیر عادی آنها.
- quit|exit
- پایان دادن به نشست تعاملی.
- shutdown
- متوقف کردن multipathd.
نویسههای جانشین قالببندی (Format Wildcards)
دستورات multipathd که گزینه $format را دریافت میکنند نیازمند یک رشته قالب هستند. این رشته نحوه چاپ دستگاه را کنترل میکند و باید شامل نویسههای جانشین قالب باشد. هنگام چاپ دستگاهها، این نویسههای جانشین با اطلاعات مناسب دستگاه جایگزین میشوند. موارد زیر پشتیبانی میشوند:
- نویسههای جانشین قالب چندمسیره (Multipath format wildcards)
- %n
- نام دستگاه.
- %w
- شناسه جهانی دستگاه WWID (یا uuid).
- %d
- نام sysfs دستگاه (dm-<minor_nr>).
- %F
- تنظیم failback دستگاه.
- %Q
- تنظیم no_path_retry دستگاه.
- %N
- تعداد مسیرهای فعال دستگاه.
- %r
- تنظیم حفاظت در برابر نوشتن دستگاه (ro یا rw).
- %t
- وضعیت دستگاه در device-mapper (suspend یا active).
- %S
- اندازه دستگاه، با پسوندهای K، M، G، T و P.
- %f
- رشته ویژگیهای ("features") جدول device-mapper در هسته.
- %x
- تعداد دفعاتی که دستگاه وارد وضعیتی شده که در آن ورودی/خروجی با شکست مواجه میشود (نام مستعار برای %4).
- %h
- رشته مدیریتکننده سختافزار در جدول دستگاه.
- %A
- آخرین اقدامی که multipathd روی دستگاه انجام داده است (برای اشکالزدایی).
- %0
- تعداد دفعاتی که یک مسیر در دستگاه دچار شکست شده است.
- %1
- تعداد دفعاتی که multipathd تغییر گروه مسیر را برای دستگاه آغاز کرده است.
- %2
- تعداد دفعاتی که multipathd یک جدول جدید برای دستگاه بارگذاری کرده است.
- %3
- تعداد تقریبی ثانیههایی که multipathd بدون مسیر قابل استفاده به صفبندی پرداخته است.
- %4
- تعداد دفعاتی که دستگاه وارد وضعیت شکست ورودی/خروجی شده است (نام مستعار برای %x).
- %s
- رشته سازنده/محصول برای دستگاه.
- %v
- رشته سازنده آرایه ذخیرهسازی برای دستگاه.
- %p
- رشته محصول آرایه ذخیرهسازی برای دستگاه.
- %e
- رشته ویرایش سفتافزار آرایه برای دستگاه.
- %G
- کتابخانه خارجی استفادهشده برای دستگاه، یا -- برای دستگاههای بومی device-mapper.
- %g
- دادههای صفحات vpd اختصاصی سازنده برای دستگاه (مانند صفحه 0xc0 برای آرایههای HPE 3PAR / Primera / Alletra).
- %k
- مقدار واقعی max_sectors_kb برای دستگاه.
- نویسههای جانشین قالب مسیر (Path format wildcards)
- %w
- شناسه جهانی مسیر WWID (یا uuid).
- %i
- مشخصات Host:Channel:Id:Lun برای دستگاههای SCSI یا مشخصات کنترلر/فضانام برای دستگاههای NVMe.
- %d
- نام sysfs مسیر.
- %D
- شماره major:minor دستگاه.
- %t
- وضعیت دستگاه در device-mapper (active یا failed).
- %o
- وضعیت آفلاین دستگاه ("offline" یا "running").
- %T
- وضعیت بررسیکننده مسیر multipathd برای دستگاه. حالات ممکن عبارتند از:
- ready
- دستگاه آماده انجام ورودی/خروجی است.
- faulty
- دستگاه غیرقابل استفاده است.
- shaky
- دستگاه قادر به انجام ورودی/خروجی نیست اما برای بررسی اولویت همچنان در دسترس است.
- ghost
- دستگاه در حالت آمادهباش (stand-by) قرار دارد.
- i/o pending
- بررسیکننده در حال تعیین وضعیت دستگاه است.
- i/o timeout
- مهلت زمانی بررسیکننده مسیر به پایان رسیده و دستگاه ناموفق اعلام شده است.
- delayed
- دستگاه قابل استفاده به نظر میرسد، اما برای بررسی مسیر حاشیهای به تأخیر افتاده است.
- undef
- دستگاه عضو هیچ دستگاه چندمسیرهای نیست یا بررسیکننده آن هنوز اجرا نشده است.
- %s
- رشته سازنده/محصول/ویرایش برای دستگاه.
- %c
- نام الگوریتم بررسی مسیر دستگاه.
- %C
- میزان پیشرفت تا اجرای بعدی بررسیکننده مسیر به ثانیه.
- %p
- اولویت دستگاه.
- %S
- اندازه دستگاه، با پسوندهای K، M، G، T و P.
- %z
- شماره سریال دستگاه.
- %M
- وضعیت حاشیهای دستگاه (marginal یا normal).
- %m
- دستگاه چندمسیرهای که این دستگاه مسیری از آن است، یا [offline] یا [orphan].
- %N
- نام جهانی گره میزبان (WWNN) دستگاه در صورت وجود.
- %n
- نام جهانی گره هدف (WWNN) دستگاه در صورت وجود.
- %R
- نام جهانی پورت میزبان (WWPN) دستگاه در صورت وجود.
- %r
- نام جهانی پورت هدف (WWPN) دستگاه در صورت وجود.
- %a
- نام آداپتور میزبان برای دستگاه (فقط دستگاههای SCSI).
- %G
- کتابخانه خارجی استفادهشده برای دستگاه، یا -- برای دستگاههای بومی.
- %g
- دادههای صفحات vpd اختصاصی سازنده برای دستگاه.
- %0
- تعداد دفعاتی که این دستگاه دچار شکست شده است.
- %P
- پروتکل دستگاه. به /etc/multipath.conf(5) مراجعه کنید.
- %I
- وضعیت مقداردهی اولیه دستگاه (دستگاههای کاملاً مقداردهیشده به صورت ok نشان داده میشوند).
- %L
- شناسه SCSI LUN دستگاه در قالب هگزادسیمال.
- %A
- شناسه گروه پورت هدف ALUA برای دستگاه.
- %k
- تنظیم واقعی max_sectors_kb برای دستگاه.
یکپارچهسازی با SYSTEMD (SYSTEMD INTEGRATION)
هنگامی که با پشتیبانی از systemd کامپایل شود، دو فایل سرویس systemd نصب میشوند: multipathd.service و multipathd.socket. در صورت فعال بودن، سرویس multipathd.socket به systemd دستور میدهد که سوکت دستور CLI را رهگیری کند تا در صورت لزوم هرگونه فراخوانی رابط CLI باعث شروع به کار دیمن شود. فایل multipathd.service تعاریف کنترل دیمن چندمسیره را در بر دارد. خود دیمن از رابط sd_notify(3) برای ارتباط با systemd استفاده میکند. کلیدواژههای واحد زیر شناسایی میشوند:
- WatchdogSec=
- واچداگ داخلی systemd را فعال میکند. دیمن multipath از طریق sd_notify(3) اعلانی برای بازنشانی واچداگ به systemd ارسال میکند.
- OOMScoreAdjust=
- سازوکار داخلی تنظیم OOM را بازنویسی میکند.
- LimitNOFILE=
- تنظیم پیکربندی max_fds را بازنویسی میکند.
همچنین ببینید (SEE ALSO)
multipathc(8), multipath(8), kpartx(8), sd_notify(3), systemd.service(5).
نویسندگان (AUTHORS)
مجموعه multipath-tools توسط Christophe Varoqui <christophe.varoqui@opensvc.com> و دیگران توسعه یافته است.
| 2024-05-29 | Linux |