Bosh sahifa Wiki Multipathing

Multipathing

Multipathing — host bilan saqlash qurilmasi orasida bir xil mantiqiy diskka olib boradigan bir nechta mustaqil I/O yo‘lini boshqarish usulidir. Yo‘l HBA yoki NIC, kabel, switch, target port va storage controllerdan tashkil topadi. Maqsad bitta komponent nosozligida xizmatni davom ettirish, ayrim tizimlarda esa trafikni taqsimlashdir.

Yo‘llarni birlashtirish

Operatsion tizim har target port orqali topilgan qurilmani dastlab alohida diskdek ko‘rishi mumkin. Multipath dasturi ularning WWID yoki SCSI identifieri bir xil ekanini aniqlab, bitta mantiqiy device yaratadi. Filesystem va ilova aynan shu multipath device’dan foydalanadi.

Barqaror identifier muhim: /dev/sdX kabi nomlar boot yoki rescan paytida o‘zgarishi mumkin. Noto‘g‘ri qurilmalarni birlashtirish data corruption, bir xil LUNni alohida ishlatish esa takroriy yozuv va mount xatosiga olib keladi.

Active-active va active-passive

Active-active array bir nechta controller yoki port orqali I/Oni bir vaqtda qayta ishlashi mumkin. Active-passive modelda ayrim yo‘llar standby bo‘lib, owner controller almashtirilganda faollashadi. ALUA protokoli target portlarning optimized, non-optimized yoki unavailable holatini hostga bildiradi.

Path selection round-robin, least queue length yoki vendor tavsiya qilgan siyosat bo‘lishi mumkin. Load balancing barcha yo‘l bir xil tezlikda degani emas; uzoqroq yoki non-optimized path ortiqcha latency keltirishi mumkin.

Failure domain

Ikki kabel bir switchga, ikki port bir HBAga ulangan bo‘lsa to‘liq redundancy yo‘q. Haqiqiy dizayn host adapter, switch fabric, target controller va quvvat manbasini ajratadi. Fibre Channel’da odatda A va B fabric, iSCSI’da esa mustaqil NIC hamda switch yo‘llari yaratiladi.

Path ishdan chiqishi link loss, timeout yoki SCSI error orqali aniqlanadi. Juda uzun timeout ilovani uzoq kutdiradi, juda qisqa timeout vaqtinchalik congestionni nosozlik deb talqin qiladi. Queue-if-no-path siyosati barcha yo‘l yo‘qolganda so‘rovlarni cheksiz yig‘ib, processlarni osiltirib qo‘yishi mumkin.

Failover jarayoni

I/O xatosidan keyin multipath sog‘lom yo‘lni tanlab, qayta yuborish siyosatini qo‘llaydi. Yozuvning targetga yetgan-yetmagani noaniq bo‘lsa, upper layer idempotency va storage protokoli semantikasi muhim. Path qaytgach avtomatik rejoin qilinadi, biroq flapping yo‘l tizimni beqaror qilmasligi uchun tekshiruv oralig‘i va threshold sozlanadi.

Planned maintenance oldidan bitta fabric o‘chirilib, barcha LUNlar qolgan yo‘ldan ishlayotgani tekshiriladi. Keyin birinchi tomon tiklanib, ikkinchisi sinovdan o‘tadi. Bu usul yashirin noto‘g‘ri ulanishni real incidentdan oldin topadi.

Kuzatuv

Monitoring har LUN uchun active path soni, state, failover, I/O error va latency’ni ko‘rsatadi. Umumiy disk “online” bo‘lsa ham redundancy yarmi yo‘qolgan bo‘lishi mumkin. Alert kamida kutilgan yo‘l soni va optimized yo‘llar mavjudligini tekshiradi.

Firmware, HBA driver, multipath konfiguratsiyasi va array modeli interoperability ro‘yxatiga mos bo‘ladi. O‘zgarishdan so‘ng rescan, path map, queue policy va workload latency qayta tekshiriladi.

Operatsion xatolar

Administrator filesystemni individual path qurilmasiga tasodifan mount qilsa, boshqa path alohida diskdek ko‘rinib data xavfi tug‘diradi. Device mapper blacklist va allowlist faqat kerakli storage’ni multipathga oladi. Root yoki boot LUN uchun initramfs ichida ayni konfiguratsiya mavjud bo‘lishi kerak, aks holda boot paytida boshqa device nomi tanlanadi. LUN unmap qilinishidan oldin barcha I/O flush, mount va multipath map olib tashlanadi. Keyin target access bekor qilinadi; teskari tartibdagi o‘chirish hostda uzoq timeout yaratadi.

Bog‘liq tushunchalar

MPIO, ALUA, LUN, Fibre Channel, iSCSI, Failover