Multipath تکنیکی است که به شما امکان می دهد چندین اتصال فیزیکی بین یک سرور و آرایه های ذخیره سازی آن تعریف کنید.
Multipath یک تکنیک تحمل خطا است که به طور کلی هدف آن تهیه نسخه پشتیبان از اتصال سرورهای فیزیکی با ذخیره سازی است. هنگامی که کابل های فیبر آسیب می بینند، مهم است که سرور دسترسی به حافظه را از دست ندهد و دسترسی را حفظ کند. به همین دلیل است که سیستم هایی مانند بانک ها و سایت های تجارت الکترونیک جهانی از چند مسیری استفاده می کنند.
در اینجا همه چیزهایی است که باید در مورد چند مسیری در لینوکس بدانید.
شناسههای دستگاههای چند مسیره روی سرورها
برای چند مسیری، جستجو برای دستگاه های چند مسیری نیز ضروری است. اگر قبلاً مفهوم WWID (شناسه جهانی) را شنیده اید، برای شما خیلی غریبه به نظر نمی رسد.
به طور پیشفرض، نام دستگاههای چند مسیره روی WWID آنها تنظیم میشود. این سیستمی است که تضمین می کند که دستگاه چند مسیری در سطح جهانی منحصر به فرد و تغییرناپذیر است. با تغییر تنظیمات user_friendly_names میتوانید نامگذاری پیشفرض را در اینجا با برخی دستکاریها در فایل پیکربندی چند مسیری تنظیم کنید.
به عنوان مثال، می توانید آن را اینگونه در نظر بگیرید. تصور کنید دستگاه های ذخیره سازی متصل به سرور خود دارید مانند:
- /dev/sda
- /dev/sdb
- /dev/sdc
- /dev/sdd
اگر در این مرحله گزینه user_friendly_names روی “بله” تنظیم شود، نام دستگاه ها تغییر می کند.
cat /etc/multipath.conf
# Output
defaults {
user_friendly_names yes
}
اگر سرور اوبونتو دارید که از فناوری های مجازی سازی استفاده می کند، ممکن است نتیجه زیر را دریافت کنید. آنچه در اینجا باید به خاطر داشته باشید این است که دستگاهی که می خواهید کنترل کنید باید یک دستگاه فیزیکی باشد.
پس از اینکه در فایل پیکربندی گزینه user_friendly_names را روی yes قرار دادید، می توانید نام دستگاه را به صورت زیر بررسی کنید:
sudo fdisk -l
رویه نامهای دستگاههای چند مسیره ثابت
نام تخصیص داده شده به دستگاه های چند مسیره توسط این روش منحصر به یک گره خواهد بود. نمی توان بیان کرد که برای همه گره ها اعمال می شود. اگر میخواهید دستگاههای چند مسیره ثابت در همه گرهها باشند، گزینه user_friendly_names را روی «نه» تنظیم کنید. به این ترتیب هر گونه مشکلی را کاهش خواهید داد زیرا دستگاه ها دیگر یک نام منحصر به فرد ندارند و در عوض از WWID استفاده می کنند.
با این حال، در شرایط دیگر، ممکن است بخواهید گره هایی را طراحی کنید که هم سازگار باشند و هم دسترسی و استفاده آسان تر.
برای چنین حالتی، ابتدا باید تمام دستگاه های چند مسیره را روی یک دستگاه نصب کنید. همچنین پس از این مرحله باید تمام دستگاه های چند مسیره را در سایر ماشین ها غیرفعال کنید. برای این کار می توانید دستورات زیر را اجرا کنید:
sudo systemctl stop multipath-tools.service
sudo multipath -F
با این دستورات به ترتیب سرویس چند مسیری را متوقف کرده و تمام نقشه های دستگاه چندمسیره را پاک می کنید. اکنون کاربر اصلی شوید و فایل bindings واقع در پوشه /etc/multipath را در ماشین های دیگر کپی کنید.
در این مرحله، شما از فرآیندهای دیمون لینوکس استفاده خواهید کرد. پس از تمام این مراحل، باید دیمون چند مسیری را دوباره اجرا کنید:
sudo systemctl start multipath-tools.service
مروری بر ویژگی های عمومی دستگاه های چند مسیره
ویژگیها و تنظیمات پیکربندی دستگاههای چند مسیره به user_friendly_names محدود نمیشود. در زیر اطلاعاتی در مورد سایر تنظیماتی که می توانید در فایل /etc/mutipath.conf انجام دهید را خواهید یافت:
- لیست سیاه { }: اگر میخواهید مشخص کنید کدام دستگاهها را از چند مسیر حذف کنید، میتوانید نام آنها را بین دو پرانتز فرفری بنویسید.blacklist { devnode “^sda” }
- دستگاهها { }: بین این دو براکت فرفری، میتوانید جزئیاتی را برای دستگاههای خاص قرار دهید.
- multipath { }: در این قسمت میتوانید ویژگیهای دستگاههای چند مسیره خاصی را تنظیم کنید. مانند سایر ویژگیها، چند مسیری نیز دارای زیرمجموعههای مختلفی است.
- blacklist_exceptions { }: این فیلد برای دستگاه هایی است که در لیست سیاه هستند اما می خواهید چند مسیری برای آنها فعال باشد. بهجای اینکه همه دستگاهها را یکی یکی در لیست سیاه قرار دهید، میتوانید همه آنها را در لیست سیاه قرار دهید و دستگاههایی را که میخواهید بعداً استفاده کنید در این فیلد مشخص کنید.blacklist_exceptions { wwid “3500405b170164c3911244b325426400b” }
blacklist {
devnode "^sda"
}
devices {
vendor "DELL"
product "MD32xx"
}
multipath {
wwid 3500405b170164c3911244b325426400b
alias yellow
failback manual
}
blacklist_exceptions {
wwid "3500405b170164c3911244b325426400b"
}
البته همه صفات به اینها محدود نمی شوند و هر صفت زیرکیفیات خاص خود را دارد. علاوه بر این، شما می توانید آنها را در پشت سر هم با یکدیگر استفاده کنید. در زیر یک نمونه فایل پیکربندی را برای شما آورده شده است تا آن را مرور کنید:
defaults {
user_friendly_names no
}
blacklist {
devnode "^sda"
}
blacklist_exceptions {
devnode "sda|sdb"
device {
vendor "DELL"
product "MD32xx"
}
}
devices {
device {
vendor "HP"
product "A6189A"
}
}
multipaths {
multipath {
wwid 3500405b170164c3911244b325426400b
alias red
}
}
منطق در دستگاه های چند مسیره
می توانید دستگاه های چند مسیره را به عنوان واحدهای فیزیکی در نظر بگیرید. به عنوان مثال، اجازه دهید /dev/mapper/mpatha نام یک دستگاه چند مسیری باشد. این دستگاه به عنوان یک واحد فیزیکی عمل خواهد کرد. هنگامی که یک LVM (مدیریت حجم منطقی) ایجاد می کنید، همچنین باید فایل /etc/lvm.conf را ویرایش کنید.
با تنظیماتی که در اینجا ایجاد می کنید، باید دیسک های زیر دستگاه های چند مسیری را فیلتر کنید. اگر این کار را نکنید، LVM مسیر غیرفعال را اسکن می کند و چند مسیر دوباره شروع به کار می کند، زیرا مسیر فعال می تواند به طور خودکار به مسیر غیرفعال تغییر کند.
برای جلوگیری از این امر، می توانید دستکاری زیر را در فایل /etc/lvm.conf انجام دهید:
filter = [ "a/loop.*/", "r/.*/" ]
این دستور حلقه ها را اضافه می کند و همه دستگاه ها را حذف می کند. با این حال، این روند به همین جا ختم نمی شود. پس از انجام این تغییر در /etc/lvm.conf، فایل را ذخیره کنید و initrd را نیز آپدیت کنید. initrd به شما اجازه می دهد تا برخی از دستکاری ها را روی دیسک RAM انجام دهید. دلیل ایجاد تغییرات در اینجا این است که آنها را در زمان بوت کپی کنید.
update-initramfs -u -k all
هر بار که فایل های lvm.conf و multipath.conf آپدیت می شوند، لازم است این آپدیت در initramfs انجام شود. به این ترتیب یک سرور پایدار و پایدار بدست می آورید. همچنین نباید به روز رسانی initramfs را فراموش کنید، به خصوص اگر تغییراتی در لیست سیاه و ویژگی های فیلتر ایجاد کرده باشید.
اهمیت سیستم چند مسیره
در محیطهای چند مسیره، سرورها میتوانند به دیسکها دسترسی داشته باشند، حتی اگر یکی از مؤلفههای (HBA، SAN، کنترلکننده ذخیرهسازی) که استفاده میکنند دچار مشکل شود. این موضوع مورد توجه ویژه مدیران سیستم و سرور است.
برای سرورهای پرترافیک که حاوی اطلاعات مهم هستند، که پروتکل های امنیتی باید بالا باشند، بسیار مهم است. زیرا اگر سرور یک وب سایت با هزاران اطلاعات کارت اعتباری یا صدها هزار مشتری ثبت نام شده به دلیل خرابی تنها یک جزء غیرقابل دسترسی باشد، مشکل بزرگی خواهد بود.
لازم است به جزئیات تمام این عملیات و ویژگی های فرعی ویژگی های موجود در فایل پیکربندی تسلط داشته باشید. این به این دلیل است که ایجاد تنظیمات سرور همیشه شامل یک خطر است. برای این نوع عملیات، تهیه نسخه پشتیبان از همه چیز یا اجرای تست ها بر روی یک سرور آزمایشی منطقی است.
اگر سروری ندارید که همه این موارد را روی آن آزمایش کنید، نصب سرور اوبونتو بهترین انتخاب است و همچنین بسیار ساده است.