Multipath puust ja punaseks
Ilmselt on allpool toodud skeemi alusel ühendamine kõige lollikindlam. Nii võib meil rikneda nii üks switch, storage kontroller kui ka võrgukaart ilma, et kaotaksime ühenduse storagega.
Tekitame storagesse ühe 20 terabaidi suuruse ketta nimega disk1 ja haagime selle kaks korda üle erinevate võrgukaartide, switchide ja kummagi storage kontrolleri arvutile külge. Teoreetiliselt saaks ühte storage jaotist ülaloleva skeemi alusel isegi neli korda sama arvuti külge ühendada aga praktikas pole sellel enam erilist mõtet. Oleme juba isegi välistanud kõigi ahelas paikevate füüsiliste seadmete rikked.
Ühendame ketta üle esimese võrgukaardi
# iscsiadm -m node -T katsetaja.eenet.ee:storage.disk1 -p 192.168.1.20:3260 -l
Ja üle teise võrgukaardi
# iscsiadm -m node -T katsetaja.eenet.ee:storage.disk1 -p 192.168.2.21:3260 -l
Selleks, et teenuse käivitamisel ja/või arvuti taaskäivitamisel kettad uuesti automaatselt külge võetaks, tuleb pärast ühendust kirjutada. Loomulikult vastavalt kõigi ühendatud ketaste jaoks.
# iscsiadm -m node -T katsetaja.eenet.ee:storage.disk1 -p 192.168.2.20:3260 --op update -n node.startup -v automatic
Dmesg kinnitab, et oleme võtnud tõepoolest kahelt IP aadressilt ühe ja sama iSCSI jaotise kaks korda arvutile külge
[ 7141.803287] sd 29:0:0:10: [sdab] 42949672960 512-byte logical blocks: (21.9 TB/20.0 TiB) [11607.430171] sd 31:0:0:10: [sdac] 42949672960 512-byte logical blocks: (21.9 TB/20.0 TiB)
Nüüd läheb meil vaja multipath-tools nimelist paketti. Selle instaliks Debianis:
# apt-get install multipath-tools
Gentoos
# emerge multipath-tools
multipath -ll käsk annab meile infot kõigi ketaste kohta
3600143801259c4710000800002b20000 dm-26 HP,HSV360 size=20T features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active |`- 29:0:0:10 sdab 65:176 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 31:0:0:10 sdac 65:192 active ready running
Lisaks muule infole võib näha, et multipath on meie äsja lisatud kaks ketast sarnase WWID (The World Wide Identifier) numbri tõttu paariks 3600143801259c4710000800002b20000 kokku liigitanud. WWID numbrit saab üldiselt vaadata käsurealt ka spetsiaalse utiliidiga näiteks:
/lib/udev/scsi_id -g -u -d /dev/sdab 3600143801259c4710000800002b20000
Selle mõlemale kettale ühise WWID numbri kirjutame järgnevalt blacklist expectionisse kui multipathi ülaloleva ID. Ülejäänud masinas leiduda võivad wwid ehk kettad keelame igaksjuhuks ära.
# mõned vaikeseadistused, neid pole vaja üldiselt muuta. defaults { polling_interval 2 path_selector "round-robin 0" path_grouping_policy multibus uid_attribute "ID_SERIAL" rr_min_io 100 failback immediate no_path_retry queue } # paneme absoluutselt kõik WWIDd musta nimekirja blacklist { wwid "^[*]" } # Teeme ühele WWIDle mida kasutama hakkame erandi blacklist_exceptions { wwid "3600143801259c4710000800002b20000" } # defineerime WWID millega olevad kettad tuleb kokku üheks seadmeks liita (seesama millele enne erandi tegime). Aliase real määratu saab seadme nimeks. multipaths { multipath { wwid "3600143801259c4710000800002b20000" alias multi0 } }
Teeme multipathi deemonile restardi
# /etc/init.d/multipath-tools restart Stopping multipath daemon: multipathd. Starting multipath daemon: multipathd.
Nüüd ei tohiks multipth -ll enam näidata muid kettaid, peale eranditesse lisatud ketaste. PS! Väljund on ka teistsugusel kujul
# multipath -ll multi0 (3600143801259c4710000800002b20000) dm-26 HP,HSV360 size=20T features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=0 status=active | 29:0:0:10 sdab 65:176 active ready running | 31:0:0:10 sdac 65:192 active ready running
Lisaks nagu näha on nimeks kenasti konfifailis defineeritud multi0
Anname käsu
# multipath -v3 Oct 15 15:10:47 | sdx: (IET:VIRTUAL-DISK) wwid blacklisted Oct 15 15:10:47 | directio checker refcount 6 Oct 15 15:10:47 | sdy: (IET:VIRTUAL-DISK) wwid blacklisted Oct 15 15:10:47 | directio checker refcount 5 Oct 15 15:10:47 | sdz: (IET:VIRTUAL-DISK) wwid blacklisted Oct 15 15:10:47 | directio checker refcount 4 Oct 15 15:10:47 | sdaa: (IET:VIRTUAL-DISK) wwid blacklisted Oct 15 15:10:47 | directio checker refcount 3 Oct 15 15:10:47 | sdab: (HP:HSV360) wwid whitelisted Oct 15 15:10:47 | sdac: (HP:HSV360) wwid whitelisted
Siit on näha, et vaid sdab ja sdac on konfifaili alusel whitelistud ja kõigi teiste ketastega multipathil tegelemine keelatud
# ls /dev/mapper/ control multi0
Kettale nt LVM viilaka saame tekitada käsuga:
# pvcreate /dev/mapper/multi0 Physical volume "/dev/mapper/multi0" successfully created
NB! Kasutatavale iSCSI blokkseadmele võib olla failisüsteem tehtud enne multipathi juurutamist. Multipath ise ei kirjuta mingit täiendavat omapoolset infot enam lisaks.
detailse info saamiseks ühendatud iscsist
# iscsiadm -m session -P 3
Kõikide iscasi targetite korraga väljalogimine
# iscsiadm -m node -U all
Ükski blockseadmetest ei tohi olla eelnevalt mounditud, muidu teatab süsteem veaks:
kernel: device-mapper: ioctl: error adding target to table
Peenhäälestusest ja jõudluse suurendamisest
Vaikimisi nt nelja pathiga jagab multipath need active/passive ehk siis active ja enabled
multi0 (3600143801259c4710000800002b20000) dm-0 HP,HSV360 size=20T features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=50 status=active | |- 10:0:0:10 sdg 8:96 active ready running | `- 9:0:0:10 sdf 8:80 active ready running `-+- policy='round-robin 0' prio=10 status=enabled |- 7:0:0:10 sdi 8:128 active ready running `- 8:0:0:10 sde 8:64 active ready running
Active/active jaoks kus kõiki teesid kasutatakse on multipath.confi võti
prio const
Seejärel olles multipath deemoni restartinud näeb järgnevat pilti
multi0 (3600143801259c4710000800002b20000) dm-0 HP,HSV360 size=20T features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 10:0:0:10 sdg 8:96 active ready running |- 7:0:0:10 sdi 8:128 active ready running |- 8:0:0:10 sde 8:64 active ready running `- 9:0:0:10 sdf 8:80 active ready running
Nüüd kirjutab round-robiniga üle kõigi nelja pathi
Rohkem ja põhjalikumat juttu leiab samast kuutõrvaja tekstist DM-Multipath