DM-Multipath kasutamine operatsioonisüsteemiga Debian

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Multipathing ehk täpsemini DM-Multipathing (device-mapper multipath), aga ka tuntud kui Linux Native Multipath ja DM-MPIO (device-mapper multipath I/O), viitab üldiselt võimalusele arvutist ühe ja sama salvestusressurssi (ingl. k. storage; nt kettakastist välja jagatud LUN või iSCSI target) kasutada erinevaid teid (ingl. k. path) mööda. Tavaliselt on sel juhul salvestusressurss arvuti külge ühendatud vastavalt FC või iSCSI transpordi meedia abil, mis vahetavad andmeid vastavalt üle optika või etherneti.

Multipath plokkseade on operatsioonisüsteemi kõrgemate kihtide jaoks moodustatud loogiline seade, mille komponentideks on erinevad teed arvutist kettakastis asuva loogise plokkseadme ehk LUN'ini (Logical Unit).

Sõltuvalt multipath seadistusest võib multipath seadmel olla selliseid omadusi

  • redundantsus - töötab vaatamata mõne arvuti ja salvestusressursi vahel oleva ühenduse riknemisele
  • jõudlus - võimaldab kiiremat andmevahetust kui üksik arvuti ja salvestusressursi vaheline ühenduskanal

Multipath lahendus keskendub arvuti ja salvestusressursi vaheliste ühenduste redundantsuse tagamisele.

Multipath lahenduse juures töötavad koostöös neli komponenti

  • salvestusressurssi arvutiga ühendava seadme draiver - nt FC ühenduse puhul QLogic kontrolleri (ehk HBA - host bus adapter) draiver qla2xxx
  • tuuma dm_multipath moodul - tuuma device-mapperi, mis üldiselt võimaldab konstrueerida mitmekihilisi loogilisi plokkseadmeid (sh nt füüsilistest seadmetest erinevate omadustega loogilisi seadmeid), multipath komponent
  • udev - dünaamiline plokkseadmete moodustamine, vastavalt toimuvatele sündmustele, nt arvuti ja salvestusressursi vahel ühenduse kadumine
  • multipath tarkvara - võimaldab muudustada seadistusfaili alusel multpath plokkseadet ning juhib udev ja device mapperi tööd kontrollides multipath plokkseadet moodustavate seadmete kättesaadavust

Multipath tarkvara ülesandeks on ära tunda, et erinevaid teid mööda on arvutiga ühendatud üks ja sama salvestusressurss ning moodustada loogiline seade, tavaliselt on sellel seadmel nimi kujul, nime viimase komponendi väärtus on juhitav

 /dev/mapper/mpath0

Lisaks multipath tarkvara jälgib ühenduste korrasolekut ning teeb vastavaid ümberlülitusi.

Multipath seadmete kasutamiseks on lisaks vaba tarkvara DM-Multipath lahendusele olemas ka kommertslahendusi, nt EMC PowerPath. Ühe või teise implementatsiooni eelistamine sõltub konkreetselt kasutusel olevast riistavarast, operatsioonisüsteemist ja eelkõige nõuetest lahendusele.

Tööpõhimõte

Käesolevas punktis kirjeldatakse arvutist salvestusressursi kättesaadavusega seotud redundantsuse probleemile kahte võimalikku lahendust

  • käsitsi ümberlülitus
  • automaatne ümberlülitus multipath abil

Olgu kasutada arvuti ja kettakast

                   ______________  lun1
                  |   Kettakast  |
                  |______________|
                       |    | 
                       |    |
                       |    |
              /dev/sda |    | /dev/sdb
                      _|____|_ 
                     | arvuti |
                     |________|
 
                  /dev/cciss/c0d0

kus

  • arvutis on kaks FC porti (täpsemini optika, mis esineb kahe TX/RX paarina)
  • arvuti on ühendatud kettakastiga kasutades dubleeritud ühendust
  • kettakastist on tehtud arvutile kättesaadavaks üks LUN nimega lun1 (arvuti mõttes plokkseade)
  • arvuti /boot ja juurfailisüsteemid asuvad lokaalsel plokkseadmel /dev/cciss/c0d0
  • peale seda, kui arvutis on laaditud FC kontrolleri moodul ilmub arvutisse juurde kaks plokkseadet, /dev/sda ja /dev/sdb

Käsitsi path ümberlüĺitus

/dev/sda ja /dev/sdb on arvuti jaoks tavalised plokkseadmed, mida saab tavalisel viisil kasutada, kui välja arvata oluline asjaolu, et nad mõlemad vastavad ühele ja samale kettakasti ressursile. See väljendub nt selles, et kui /dev/sda peale moodustada partitsioonitabel, teisele partitsioonile LVM ja omakorda LVM köitele ext3 failisüsteem, siis on need kohe olemas ka /dev/sdb peal. Seejuures ei tohi arvutist kasutada /dev/sda ja /dev/sdb seadmeid samaaegselt, vastaselt korral tekkiks konflikt (nt failisüsteem läheb katki), võib olla, et arvuti ei lasegi seda teha.

Dubleeritud ühendusest kettakastiga võiks olla abi nt hooldustöö tegemisel, olgu vajalik nt arvuti ja kettakasti vahelise ühenduskaabli asendamine. Kui antud asjakorralduse puhul parasjagu töötab süsteem /dev/sda pealt ning on kavas vastavat kaablit hooldada, siis võiks põhimõtteliselt olla hoolduse protseduur nt selline

  • peatatakse LVM peal asuvat failisüsteemi kasutatavad protsessid
  • /dev/sda kasutamine lõpetatakse (ühendatakse failisüsteem lahti)
  • kirjeldatakse LVM seadmele vastava füüsilise seadmena /dev/sdb
  • ühendatakse failisüsteem külge
  • käivitatakse protsessid

Ilmselt ei ole see kõige mõistlikum, topelt ühendused on salvestusressursiga olemas, aga kuna nende haldamine on kohmakas, siis tuleb teha teenuse töös katkestus.

Automaatne ümberlülitus multipath tarkvaraga

Alternatiiv oleks /dev/sda ja /dev/sdb baasil moodustada arvutisse uus loogiline seade, mis oskab arvestada seda asjaolu, et tema komponentidele vastavad mitte erinevad plokkseadmed, vaid erinevad teed samale plokkseadmele. Ja lisaks võiks see loogiline seade

  • osata kasutada ära mõlemat ühendust, kui mõlemad töötavad
  • jätkata töötamist, kui on kasutada ka ainult üks tee, emb-kumb

Sellise lahenduse nimi on multipathing. Vaikimisi on esimese multipath seadme nimi /dev/mapper/mpath0.

Multipath seadmega sisu on täpselt samasugune nagu tema komponentidel, mingit formaati plokkseadmel multipathiga ei kaasne. Multipath seade nö eksisteerib arvuti mälus ja ta tekitatakse peale sellise käsu arvutile ütlemist (taustal kasutab ta oma seadistusfaili, kus on näidatud milliseid komponente tal on kasutada; reeglina seadistusfaili puudumisel rakenduvad mõistlikud vaikeväärtused ja moodustatakse ootuspärane multipath seade)

# multipath -v 2

Multipath seadmele moodustatakse edasi partitsioonid, partitsioonile LVM, LVM köitele failisüsteem, nagu tavalisele plokkseadmele. Multipathi kasutava arvuti salvestusressursi kasutamist võiks kujutleda selliste kihtidena

failisüsteem   ->          LVM          ->      fdisk partitsioonid    ->    multipath seade    ->    multipathi komponendid
 
  ext3, ext4       volume group 'data'       /dev/mapper/mpath0-part2      /dev/mapper/mpath0          /dev/sda, /dev/sdb

Multipath lahenduse kirjelduse näide

Et käesolev tekst hoida terviklikumana ja mitte liialt valguda üldistustesse, esitatakse konkreetse multipath lahenduse kirjelduse, millele toetutakse ka järgmistes punktides.

Kasutada olev riistvara

  • üks EMC CLARiiON CX3 kettakast
  • üks CISCO MDS9505 FC kommutaator (ingl. k. switch)
  • igas arvutis üks QLogic QLA2432 kahe pordine FC kontroller

Multipath lahenduse omadused

  • arvutis võib rikneda kuni üks FC kontrolleri port
  • rikneda võib kuni üks kaabel arvuti ja FC lüliti vahel
  • rikneda võib kuni üks kaabel lüliti ja kettakasti vahel
  • rikneda võib kuni üks FC port kettakastil
  • hooldustööde ajal saab LUN'isid kolida ühe SP (service processor) juurest teise juurde
  • normaalses olekus kasutab arvuti andmevahetuseks mõlemat FC kontrollerit

Multipath juures võib põhimõtteliselt kasutada igasuguseid SCSI protokolli kasutavaid seadmeid, sh lokaalseid seadmeid. Milliste seadmetega multipathi kasutatakse, määratakse /etc/multipath.conf seadistusfailis, eriti blacklist sektsiooniga. Reeglina pakuvad aga praktilist huvi sellised juhtumid, kus arvuti ja salvestusressursi vahel on tõepoolest mitu erinevat füüsilist teed. Levinud on nt selline skeem, kus on FC meedia abil ühendatud FC kommutaatoriga omavahel üks kettakast ja mitu arvutit, kusjuures kõik ühendused arvutitest ja kettakastist kommutaatorini on füüsiliselt dubleeritud

                    _____________
                   |  Kettakast  | lun1
                   |_____________|
                 SPA || SPB
                     ||
                  ___||_______________________
                 |                            |
                 | FC kommutaator             |
                 |____________________________|
                   ||             ||    ||
                   ||             ||    ||
                   ||             ||    ||
         FC port 1 || FC port 2   ||    ||
          /dev/sda || /dev/sdc    ||    ..... arvuti n
          /dev/sdb || /dev/sdd    ||
                  _||_            ||
        arvuti 1 |    |           ||
                 |____|           ||
                                  ||
                                 _||_
                                |    | arvuti 2
                                |____|

kus

  • arvutis on kaks FC porti (st kaks RX/TX paari optikat)
  • arvutis on ühele salvestusressursile lun1 vastavaid seadmeid neli seetõttu, et arvutist salvestusressursini on neli võimalikku ühendusteed
  • samaväärne on rääkida kas mõne tee (ingl. k. path) riknemisest või multipath seadmele vastava komponendi (nt sda antud juhul) riknemisest

Arvuti FC kontrolleri draiveri kasutamine

FC kontrolleri tarkvara jagatakse tavaliselt mitmel moel, kusjuures ta võib esineda nö kahe komponendiliselt, draiver ning firmware

  • distributsiooni paketihalduses
  • tootja kodulehel
  • draiver kopeerib firmware FC kontrollerilt

Debian GNU/Linux puhul soovitatakse QLogic FC kontrolleri jaoks kasutada non-free repositooriumist paketti firmware-qlogic

 # apt-get install firmware-qlogic

Tulemusena peab peale arvuti järgmist alglaadimist olema näha FC ressurssidele vastavad SCSI seadmed, nt /dev/sda, /dev/sdb, /dev/sdc ja /dev/sdd eeldusel, et arvuti lokaalne kõvaketas on mingi muu nimega SCSI seade, nt /dev/cciss/c0d0, dmesgi ilmuvad teated kahe FC kontrolleri kohta

Üks kontroller

 qla2xxx 0000:49:00.0: Found an ISP2432, irq 57, iobase 0xffffc20007972000
 qla2xxx 0000:49:00.0: Configuring PCI space...
 PCI: Setting latency timer of device 0000:49:00.0 to 64
 qla2xxx 0000:49:00.0: Configure NVRAM parameters...
 qla2xxx 0000:49:00.0: Verifying loaded RISC code...
 firmware: requesting ql2400_fw.bin
 qla2xxx 0000:49:00.0: Allocated (64 KB) for EFT...
 qla2xxx 0000:49:00.0: Allocated (1413 KB) for firmware dump...
 scsi0 : qla2xxx
 qla2xxx 0000:49:00.0: 
 QLogic Fibre Channel HBA Driver: 8.02.01-k4
 QLogic HPAE312A - 
 ISP2432: PCIe (2.5GT/s x4) @ 0000:49:00.0 hdma+, host#=0, fw=4.04.00 [IP] [84XX] 
 ...
 qla2xxx 0000:49:00.0: LIP reset occured (f7f7).
 qla2xxx 0000:49:00.0: LOOP UP detected (4 Gbps).
 scsi 0:0:0:0: Direct-Access     DGC      RAID 5           0326 PQ: 0 ANSI: 4
 scsi 0:0:1:0: Direct-Access     DGC      RAID 5           0326 PQ: 0 ANSI: 4
 ..
 sd 0:0:0:0: [sda] READ CAPACITY failed
 sd 0:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
 sd 0:0:0:0: [sda] Sense Key : Illegal Request [current] 
 sd 0:0:0:0: [sda] Add. Sense: Logical unit not supported
 sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
 sd 0:0:0:0: [sda] Asking for cache data failed
 sd 0:0:0:0: [sda] Assuming drive cache: write through
 sd 0:0:0:0: [sda] Attached SCSI disk
 sd 0:0:1:0: [sdb] READ CAPACITY failed
 sd 0:0:1:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
 sd 0:0:1:0: [sdb] Sense Key : Illegal Request [current] 
 sd 0:0:1:0: [sdb] Add. Sense: Logical unit not supported
 sd 0:0:1:0: [sdb] Test WP failed, assume Write Enabled
 sd 0:0:1:0: [sdb] Asking for cache data failed
 sd 0:0:1:0: [sdb] Assuming drive cache: write through
 sd 0:0:1:0: [sdb] Attached SCSI disk

Teine kontroller

 qla2xxx 0000:49:00.1: Found an ISP2432, irq 54, iobase 0xffffc20007974000
 qla2xxx 0000:49:00.1: Configuring PCI space...
 PCI: Setting latency timer of device 0000:49:00.1 to 64
 qla2xxx 0000:49:00.1: Configure NVRAM parameters...
 qla2xxx 0000:49:00.1: Verifying loaded RISC code...
 qla2xxx 0000:49:00.1: Allocated (64 KB) for EFT...
 qla2xxx 0000:49:00.1: Allocated (1413 KB) for firmware dump...
 scsi1 : qla2xxx
 qla2xxx 0000:49:00.1: 
 QLogic Fibre Channel HBA Driver: 8.02.01-k4
 QLogic HPAE312A - 
 ISP2432: PCIe (2.5GT/s x4) @ 0000:49:00.1 hdma+, host#=1, fw=4.04.00 [IP] [84XX]
 ..
 qla2xxx 0000:49:00.1: LIP reset occured (f7f7).
 qla2xxx 0000:49:00.1: LOOP UP detected (4 Gbps).
 scsi 1:0:0:0: Direct-Access     DGC      RAID 5           0326 PQ: 0 ANSI: 4
 scsi 1:0:1:0: Direct-Access     DGC      RAID 5           0326 PQ: 0 ANSI: 4
 ..
 sd 1:0:0:0: [sdc] READ CAPACITY failed
 sd 1:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
 sd 1:0:0:0: [sdc] Sense Key : Illegal Request [current] 
 sd 1:0:0:0: [sdc] Add. Sense: Logical unit not supported
 sd 1:0:0:0: [sdc] Test WP failed, assume Write Enabled
 sd 1:0:0:0: [sdc] Asking for cache data failed
 sd 1:0:0:0: [sdc] Assuming drive cache: write through
 sd 1:0:0:0: [sdc] Attached SCSI disk
 sd 1:0:1:0: [sdd] READ CAPACITY failed
 sd 1:0:1:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
 sd 1:0:1:0: [sdd] Sense Key : Illegal Request [current] 
 sd 1:0:1:0: [sdd] Add. Sense: Logical unit not supported
 sd 1:0:1:0: [sdd] Test WP failed, assume Write Enabled
 sd 1:0:1:0: [sdd] Asking for cache data failed
 sd 1:0:1:0: [sdd] Assuming drive cache: write through
 sd 1:0:1:0: [sdd] Attached SCSI disk

Väljundist võiks panna tähele järgmisi asjaolusid

  • firmware: requesting ql2400_fw.bin - firmware laaditakse failisüsteemist, mitte kontrolleri flash'ilt; vastasel korral esineks teade
 qla2xxx 0000:49:00.0: Firmware image unavailable.
 qla2xxx 0000:49:00.0: Firmware images can be retrieved from: ftp://ftp.qlogic.com/outgoing/linux/firmware/.
 qla2xxx 0000:49:00.0: Attempting to load (potentially outdated) firmware from flash.
  • LOOP UP detected (4 Gbps) - kasutatakse 4Gbps fiibriühendust
  • üle FC on kättesaadavad neli SCSI plokkseadet: /dev/sda, /dev/sdb, /dev/sdc ja /dev/sdd

Lisaks, toodud andmed klapivad ilusti lspci väljundiga, nt langevad kokku FC kontrollerite PCI identifikaatorid

 49:00.0 Fibre Channel: QLogic Corp. ISP2432-based 4Gb Fibre Channel to PCI Express HBA (rev 03)
 49:00.1 Fibre Channel: QLogic Corp. ISP2432-based 4Gb Fibre Channel to PCI Express HBA (rev 03)

Multipath tarkvara paigaldamine

Kaasaegsed Linuxi distributsioonide sh Debian GNU/Linux paketihalduses sisaldub multipathing jaoks vajalik multipath tarkvara ja kui ei ole selget põhjust talitada muud moodi, tuleks eelistada seda. Debian GNU/Linux puhul tuleb paigaldada paketti multipath-tools öeldes (Etch ehk v 4.0 puhul on multipath tarkvara versioon 0.4.7, Lenny ehk v. 5.0 ja Debian Squeeze v. 6.0 puhul 0.4.8)

 # apt-get install multipath-tools

Lisaks kasutatakse automaatselt tuuma moodulit dm_multipath.

Paketi koosseisu kuuluvad

  • dokumentatsioon ja seadistusnäited
 /usr/share/doc/multipath-tools/examples/multipath.conf.annotated.gz
 /usr/share/doc/multipath-tools/examples/multipath.conf.synthetic
  • multipathd deemon - /sbin/multipathd
  • multipath seadmete seadistamise utiliit - /sbin/multipath
  • käivitusskript - /etc/init.d/multipath-tools

Multipath seadmete moodustamine

Multipath tarkvara tööd kontrollib seadistusfail /etc/multipath.conf, milles on määratletud sektsioonides

  • defaults - multipath seadmete üldised omadused
  • blacklist - milliseid SCSI seadmeid ei kasutata multipath seadmete moodustamisel
  • multipaths - konkreetsete multipath seadmete kirjeldused
  • devices - salvestusressursside kirjeldused, nt fiibrivõrgus asuvad erinevate tootjate kettakastid

Multipath töötab mõnel juhul ka ilma seadistusfailita põhjusel, et tarkvarasse on nö hardcode'itud populaarsete kettakastide mõistlikud vaikeväärtused, kuid reeglina võiks siiski seadistusfailis kasutusel olevad väärtused ilmutatud kujul esitada ja vajadusel asjaolusid täpsustada. Üle seadistada ilmselt ei ole ka tarvis.

  • Multipath seadet moodustavate komponentide SCSI unikaalne identifikaatori saab teha kindlaks selliselt ja seda scsi-id väärtust kasutatakse seadistusfailis wwid parameetrina, kusjuures kõigi plokkseadete scsi-id väärtus on sama kuna need plokkseadmed vastavad sama füüsilise salvestusressursi juurde viivatele erinevatele teedele
 # /lib/udev/scsi_id -g -u -s /block/sda
 3600601602cc01d008a360bdb7d14de11
 # /lib/udev/scsi_id -g -u -s /block/sdb
 3600601602cc01d008a360bdb7d14de11
 # /lib/udev/scsi_id -g -u -s /block/sdc
 3600601602cc01d008a360bdb7d14de11
 # /lib/udev/scsi_id -g -u -s /block/sdd
 3600601602cc01d008a360bdb7d14de11
  • Kasutatava kettakasti mudelit teades saab kirjeldada sobiva device'i devices sektsiooni, mis võib olla parem kui nö generic väärtusi kasutav juhtum
  • Lähtudes lahendusele esitatavatest nõuetest saab valida muu seas sobiva nime tekkivale multipath seadmele, parameeter alias

Näiteks võiks ülalkirjeldatud riistvara puhul kasutada sellise sisuga seadistusfaili

 defaults {
   udev_dir                /dev
   polling_interval        5
   default_selector        "round-robin 0"
   user_friendly_names     yes
 }
 
 blacklist {
   wwid    200d04efd1804f38e
   devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
   devnode "^hd[a-z][[0-9]*]"
   devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
 }
 
 multipaths {
   multipath {
     wwid                    3600601602cc01d008a360bdb7d14de11
     alias                   pgdata
   }
 }
 
 devices {
   device {
     vendor "DGC"
     product "*"
     path_grouping_policy group_by_prio
     getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
     prio_callout "/sbin/mpath_prio_emc /dev/%n"
     hardware_handler "1 emc"
     features "1 queue_if_no_path"
     no_path_retry 300
     path_checker emc_clariion
     failback immediate
   }
 }

Kommentaarid seadistusfailile

  • Seadistusfailis esineb neli sektsiooni: default, blacklist, multipaths ja devices
  • multipaths all kirjeldatakse süsteemile kättesaadavad multipath seadmed
  • devices all kirjeldatakse süsteemile kättesaadavad salvestusressurssid, nt kui sama fiibri küljes on erinevate tootjate kettakastid
  • antud juhul on kirjeldatud ühele salvestusressursi tüübile vastav device
  • antud juhul on kirjeldatud üks multipath seade pgdata, millele vastab plokkseade nimega /dev/mapper/pgdata

Selleks, et seadistusfaili põhjal moodustada multipath seade, tuleb öelda multipath seadmete seadistamise utiliidi multipath abil öelda

 # multipath -v2
 create: pgdata (3600601602cc01d008a360bdb7d14de11)  DGC     ,RAID 5        
 [size=250G][features=1 queue_if_no_path][hwhandler=1 emc]
 \_ round-robin 0 [prio=2][undef]
  \_ 0:0:1:0 sdb 8:16  [undef][ready]
  \_ 1:0:1:0 sdd 8:48  [undef][ready]
 \_ round-robin 0 [prio=0][undef]
  \_ 0:0:0:0 sda 8:0   [undef][ready]
  \_ 1:0:0:0 sdc 8:32  [undef][ready]
 libdevmapper: libdm-common.c(312): Created /dev/mapper/pgdata

Kui käsk õnnestus, siis antud juhul peaks olema ilmunud seade nimega /dev/mapper/pgdata

 # fdisk /dev/mapper/pgdata -l
 
 Disk /dev/mapper/pgdata: 268.4 GB, 268435456000 bytes
 255 heads, 63 sectors/track, 32635 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 Disk identifier: 0x00000000
 
 Disk /dev/mapper/pgdata doesn't contain a valid partition table

multipath programmiga saab muu hulgas küsida millised seadmed on parasjagu aktiivsed

  • -l argumendi kasutamisel kasutatakse esitatakse tulemus sysfs ja device mapper käest saadud info põhjal, on vähem-informatiivsem
 # multipath -l
 pgdata (3600601602cc01d008a360bdb7d14de11) dm-6 DGC     ,RAID 5        
 [size=250G][features=1 queue_if_no_path][hwhandler=1 emc]
 \_ round-robin 0 [prio=0][active]
  \_ 0:0:1:0 sdb 8:16  [active][undef]
  \_ 1:0:1:0 sdd 8:48  [active][undef]
 \_ round-robin 0 [prio=0][enabled]
  \_ 0:0:0:0 sda 8:0   [active][undef]
  \_ 1:0:0:0 sdc 8:32  [active][undef]
  • -ll argumendi kasutamisel kasutatakse esitatakse tulemus kõigi olemasolevate allikate käest saadud info põhjal, on informatiivsem
 # multipath -ll
 pgdata (3600601602cc01d008a360bdb7d14de11) dm-6 DGC     ,RAID 5        
 [size=250G][features=1 queue_if_no_path][hwhandler=1 emc]
 \_ round-robin 0 [prio=2][active]
  \_ 1:0:1:0 sdb 8:16  [active][ready]
  \_ 0:0:1:0 sdd 8:48  [active][ready]
 \_ round-robin 0 [prio=0][enabled]
  \_ 1:0:0:0 sda 8:0   [active][ready]
  \_ 0:0:0:0 sdc 8:32  [active][ready]

Multipath seadme omadusi saab küsida ka dmsetup programmi abil, kus seadme minor väärtus 6 esineb ka seadme nimes, dm-6

 # dmsetup status -v pgdata
 Name:              pgdata
 State:             ACTIVE
 Read Ahead:        256
 Tables present:    LIVE
 Open count:        0
 Event number:      0
 Major, minor:      254, 6
 Number of targets: 1
 UUID: mpath-3600601602cc01d008a360bdb7d14de11
 
 0 524288000 multipath 2 0 1 0 2 1 A 0 2 0 8:16 A 0 8:48 A 0 E 0 2 0 8:0 A 0 8:32 A 0

Multipath seadme eemaldamiseks sobib öelda

 # multipath -v2 -F
 libdevmapper: libdm-common.c(374): Removed /dev/mapper/pgdata

Probleemide korral on abiks uurida käsu väljundit

 # multipath -v3 -d

Multipathd deemoni kasutamine

Seadistusfaili testimiseks on hea multipath seadme moodustamiseks kasutada vahetult utiliiti multipath. Kuid multipath seadme kasutamisel on oluline, et süsteem automaatselt avastaks, kui mõni multipath seadmeni viiv tee on läinud kakti või on uuesti saanud korda ning automaatselt kohendatataks multipath seadet vastavaks kujunenud olukorrale.

Multipathd deemoni ülesanne on jälgida multipath seadmetega seotud teede olekut ning reageerida sündmustele. Kui selline sündmus aset leiab, kasutab multipathd välist multipath utiliiti vajaliku muudatuse tegemiseks.

Multipath deemoni käivitamist ja seiskamist sobib juhtida skriptiga, tavaliselt käivitatakse see süsteemi alglaadimisel

 # /etc/init.d/multipath-tools start|stop

multipathd programmi saab lisaks kasutada töötava multipathd deemoni kontrollimiseks, interaktiivsesse rezhiimi sattumiseks peab deemon töötama ning lisaks tuleb käivitada multipathd võtmega -k

 # multipathd -k
 # multipathd>

Väljumiseks tuleb öelda Ctrl+D

  • Esitada teede nimekiri
 # multipathd> show paths
 hcil    dev dev_t pri dm_st   chk_st  next_check      
 0:0:0:0 sda 8:0   0   [active][ready] XXXXXXX... 14/20
 0:0:1:0 sdb 8:16  1   [active][ready] XXXXX..... 10/20
 1:0:0:0 sdc 8:32  0   [active][ready] XXXXXX.... 13/20
 1:0:1:0 sdd 8:48  1   [active][ready] XXXXX..... 10/20
  • märkida tee sda katkiseks
 # multipathd> fail path sda
 ok
 multipathd> show paths
 hcil    dev dev_t pri dm_st   chk_st  next_check      
 0:0:0:0 sda 8:0   0   [failed][ready] XXXXXXXXXX 5/5  
 0:0:1:0 sdb 8:16  1   [active][ready] XXXXX..... 11/20
 1:0:0:0 sdc 8:32  0   [active][ready] XXXXXXX... 14/20
 1:0:1:0 sdd 8:48  1   [active][ready] XXXXX..... 11/20
  • vaadata kehtivat konfiguratsiooni
 multipathd> show config

Multipath seadmete kasutamine

Üldiselt soovitatakse multipath seadmetele moodustada LVM kusjuures on abiks kirjeldada LVM seadistusfailis sobiv filter, et mitte saada veateateid /dev/sda, /dev/sdb, /dev/sdc ja /dev/sdd kohta, nt

filter = [ "r/disk/", "r/sd.*/", "a/.*/" ]

ning võiks kasutada sellist preferred_names väärtust

preferred_names = [ "^/dev/mapper" ]

LVM moodustamine toimub iseensest tavalisel moel, nt

 # pvcreate /dev/mapper/pgdata
 # vgcreate pgdata /dev/mapper/pgdata
 # lvcreate -L 160G -n pgdata pgdata

Multipath seadmete ümberseadistamine

Selleks, et multipath seadme seadistusi muuta, sobib tegutseda sellises järjekorras

  • lõpetada seadme kasutamine, nt ühendada lahti failisüsteem
 # umount /dev/pgdata/pgdata
  • märkida vastav LVM grupp mitteaktiivseks, sellised io teated on normaalsed kui /dev/sda ja /dev/sdc ei ole parasjagu aktiivses kasutuses ja /etc/lvm/lvm.conf filter parameeter on korrastamata
 # vgchange -a n pgdata
 /dev/sda: read failed after 0 of 4096 at 0: Input/output error
 /dev/sdc: read failed after 0 of 4096 at 0: Input/output error
 /dev/sdc: read failed after 0 of 4096 at 268435390464: Input/output error
 /dev/sdc: read failed after 0 of 4096 at 0: Input/output error
 0 logical volume(s) in volume group "pgdata" now active
  • seisata multipathd deemon
 # /etc/init.d/multipath-tools stop
 Stopping multipath daemon: multipathd.
  • eemaldada kõik olemasolevad multipath seadmed
 # multipath -F 
 libdevmapper: libdm-common.c(374): Removed /dev/mapper/pgdata

või konkreetne seade

 # multipath -f multpathressursinimi
  • muuta seadistusfaili /etc/multipath.conf
  • multipath seadmete tekitamiseks käivitada multipathd deemon
 # /etc/init.d/multipath-tools start
  • lülitame LVM grupi aktiivseks
 # vgchange -a y pgdata
 /dev/sda: read failed after 0 of 4096 at 0: Input/output error
 /dev/sdc: read failed after 0 of 4096 at 0: Input/output error
 1 logical volume(s) in volume group "pgdata" now active
  • ühendada failisüsteemid külge ja jätkata failisüsteemide kasutamist

Multipath lahenduse testimine

  • dd & iostat - näiteks võiks ülaltoodud riistvara ja seadistuste kasutamisele vastata selline io väljund dd abil andmete kopeerimisele, kust on näha, et kasutatakse mõlemat FC porti paralleelselt, dm-6 on multipath seade ise ning dm-7 multipath seadmele moodustatud LVM voluum
 Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
 ..
 sda               0.00         0.00         0.00          0          0
 sdb              89.50         0.00        39.79          0        159
 dm-6          21353.00         0.00        83.41          0        333
 dm-7          21348.50         0.00        83.39          0        333
 sdc               0.00         0.00         0.00          0          0
 sdd              90.50         0.00        39.71          0        158

Edasi võiks multipathd -k abil määrata teid riknenuks ja jälgida, et salvestusressurss on jätkuvalt nii nagu tarvis kasutatav.

  • FC kaablite ükshaaval lahtiühendamine või samaväärne tegevust nt FC lülitis vastavate portide olekute muutmiseks
  • kettakastis LUN'ide liigutamine teine SP (service processor) külge

Logi

Reegline tekib multipath seadet kasutava arvuti bootimisel dmesg logisse rikkalikult sarnaseid teateid, mis iseenesest ei viita veasituatsioonile

 sd 1:0:0:0: [sda] Device not ready: Sense Key : Not Ready [current] 
 sd 1:0:0:0: [sda] Device not ready: Add. Sense: Logical unit not ready, manual intervention required 
 end_request: I/O error, dev sda, sector 0
 Buffer I/O error on device sda, logical block 0
 ...

/boot ja juurfailisüsteemide kasutamine multipath seadmelt

Juurfailisüsteemi kasutamine multipath seadmelt võimaldab nt paindlikumalt migreerida operatsioonisüsteemi teisele riistavarale, st lihtsalt kettakastist ühendatakse sama plokkseade mõnele muule arvutile külge.

Põhimõtteliselt on juurfailisüsteemi üle FC kasutamise puhul kaks võimalust

  • /boot failisüsteem asub lokaalsel kettal ja juurfailisüsteem tuleb üle FC võrgu
  • /boot ja juurfailisüsteem tulevad mõlemad üle FC võrgu (käesolevas punktis kirjeldatakse edasi seda juhtumit)

/boot ja juurfailisüsteemi multipath seadmelt kasutava arvuti alglaadimisel toimuvad sündmused sellises järjekorras

  • FC kontroller esitab FC ressursi BIOSile nö kõvaketastena (/dev/sda, /dev/sdb), millelt esimese pealt laaditakse bootloader
  • küljes oleva tarkusega laaditakse FC seadmelt bootloader (kas /dev/sda või /dev/sdb pealt, kusjuures siis veel multipathing ei tööta selles mõttes, et tegu ei ole ühe loogilise multipathitud seadmega, vaid tema komponentidega)
  • bootloader laadib /boot failisüsteemist tuuma ja ramdiski
  • ajutiselt ühendatakse külge juurfailisüsteem ramdiskilt
  • laaditakse ramdiskil olevad FC kontrolleri draiver ning muu multipath'i kasutamiseks vajalik tarkvara (tulemusena saab edasi kasutada multipathitud seadet)
  • ühendakse külge päris operatsioonisüsteemi juurfailisüsteem multipath seadmelt, tulemusena operatsioonisüsteem töötab

Selliselt töötava süsteemi ettevalmistamiseks on 2012 aastal nt kaks sellist võimalust

  • kasutada nö lisafirmwarega Debian Squeeze v. 6 net installerit
http://www.debian.org/releases/stable/debian-installer/
http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/6.0.5/amd64/iso-cd/firmware-6.0.5-amd64-netinst.iso
  • tuleb installeeritav arvuti üles bootida nt RIPLinux abil ning seejärel kopeerida mõnest töötavast süsteemist /boot ja juurfailisüsteemid sh sobivalt ettevalmistatud initramfs tõmmis

Kui /boot ja juurfailisüsteemid tulevad üle võrgu, siis on oluline, et süsteemis oleks olemas multipath-tools-boot pakett, paigaldamise käigus moodustatakse uus initramfs tõmmis (sisuliselt sisaldab see pakett vajalikke nn hook'isid, et tõmmisesse lisataks multipath binari jms et initramfs'ist käivitatud pisikese linuxi sees saaks multipathi kasutada)

 # apt-get install multipath-tools-boot

Sõltuvalt asjaoludest võib olla vajalik redigeerida bootloaderi seadistusfail /boot/grub/grub.cfg

# update-grub

Kui kasutatakse /etc/mutipath.conf faili, siis tuleks peale selle faili muutmist ka uuesti genereerida initramfs, et see fail muudetud kujul initramfs'i jõuaks

# update-initramfs -u

Tulemus peaks paistama selline

  • kasutatakse nt selliseid multipath seadmeid
# multipath -ll
mpath0 (360060e80102d1dc00511c56400000005) dm-0 HITACHI,DF600F
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 0:0:0:0 sda 8:0  active ready running
  `- 1:0:0:0 sdb 8:16 active ready running
  • multipath seadmele on tektitatud kaks partitsiooni
# parted /dev/mapper/mpath0 p
Model: Linux device-mapper (multipath) (dm)
Disk /dev/mapper/mpath0: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  256MB   255MB   primary  ext3         boot
 2      256MB   21.5GB  21.2GB  primary               lvm
  • teisele partitsioonile on moodustatud LVM
# pvdisplay 
 --- Physical volume ---
 PV Name               /dev/mapper/mpath0-part2
 VG Name               system
 PV Size               19.76 GiB / not usable 3.00 MiB
 Allocatable           yes 
 PE Size               4.00 MiB
 Total PE              5058
 Free PE               1640
 Allocated PE          3418
 PV UUID               cbk9o6-XJga-PnK7-BOb1-hP8U-KTXX-5sdWhZ
  • kokkuvõttes on failisüsteemid ühendutud selliselt, nb! kuidas /boot on monteeritud
# df -h
Filesystem                 Size   Used   Avail   Use%   Mounted on
/dev/mapper/system-root     12G   756M     10G     7%   /
tmpfs                      2.0G      0    2.0G     0%   /lib/init/rw
udev                       2.0G   180K    2.0G     1%   /dev
tmpfs                      2.0G      0    2.0G     0%   /dev/shm
/dev/mapper/mpath0-part1   236M    58M    166M    26%   /boot

Debian Etch kasutamise iseärasused

Kui Debian Etch puhul seletamatutel põhjustel ei ole multipath abil LUN paista, siis on tõenäoliselt abi sellise paiga http://kuutorvaja.eenet.ee/mw-1.9.3/images/4/44/Get_class_devices.patch rakendamisest

 --- sysfsutils-2.1.0old/lib/sysfs_class.c       2006-08-07 08:08:01.000000000 +0300
 +++ sysfsutils-2.1.0/lib/sysfs_class.c  2008-10-08 19:24:12.000000000 +0300
 @@ -65,8 +65,7 @@
       if (!a || !b)
               return 0;
 
 -       if (strncmp((char *)a, ((struct sysfs_class_device *)b)->name,
 -                               strlen((char *)a)) == 0)
 +       if (strcmp((char *)a, ((struct sysfs_class_device *)b)->name) == 0)
               return 1;
 
       return 0;

Rakendamine toimub sellise järgnevusena

  • paigaldame libsysfs2 paketi kompileerimiseks vajalikud vahendid ning kopeerime paketi lähteteksti
 # cd /usr/src
 # apt-get build-dep libsysfs2
 # apt-get source libsysfs2
  • kopeerime paiga lähteteksti juurde
 # cp get_class_devices.patch sysfsutils-2.1.0/debian/patches
  • kompileerime paketi
 # dpkg-buildpackage -uc
  • paigaldame paketi libsysfs2_2.1.0-5_amd64.deb
 # dpkg -i libsysfs2_2.1.0-5_amd64.deb

Debian Squeeze kasutamise iseärasused

Debian Squeeze puhul tuleb kasutada scsi_id programmi muutunud parameetritega, nt

getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"

Multipath kasutamine iSCSI seadmete nimede fikseerimiseks

Tegu ei ole sisulise multipathinguga, multipath tarkvara kasutatakse lihtsalt plokkseadmete nimede fikseerimiseks.

Üle iSCSI külge ühendatud plokkseadmete nimed esinevad tavaliselt kujul /dev/sda, /dev/sdb jne kusjuures järjekord sõltub iSCSI ressursi külge ühendamise järjekorrast. Tundub, et sellise sisuga /etc/multipath.conf faili kasutamine sobib iSCSI abil külge ühendatud plokkseadmete nimede fikseerimiseks

 defaults {
   udev_dir                /dev
   polling_interval        60
   default_selector        "round-robin 0"
   user_friendly_names yes
 }
 
 blacklist {
   wwid    200d04efd1804f38e
   devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
   devnode "^hd[a-z][[0-9]*]"
   devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
 }
 
 multipaths {
   multipath {
     wwid                    149455400000000000000000001000000228c50000d000000
     alias                   shared1
   }
 
   multipath {
     wwid                    14945540000000000000000000200000049a529000d000000
     alias                   shared2
   }
 }
 
 devices {
   device {
     vendor "IET"
     product "*"
     path_grouping_policy failover
     getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
     no_path_retry 300
     path_checker readsector0
     failback immediate
   }
 }

kus

  • iSCSI seadmetel on reeglina vendori nimeks IET
  • wwid väärtuse saab küsida sarnaselt, /lib/udev/scsi_id -g -u -s /block/sda

Multipath tarkvara kasutamine toimub eelpool kirjeldatud viisil, tulemusena tekivad sellised seadmed /dev/mapper/shared1 ja /dev/mapper/shared2

 # multipath -ll
 shared2 (14945540000000000000000000200000049a529000d000000) dm-14 IET     ,VIRTUAL-DISK  
 [size=8.0G][features=1 queue_if_no_path][hwhandler=0]
 \_ round-robin 0 [prio=1][active]
  \_ 30:0:0:0 sda 8:0   [active][ready]
 shared1 (149455400000000000000000001000000228c50000d000000) dm-15 IET     ,VIRTUAL-DISK  
 [size=6.0G][features=1 queue_if_no_path][hwhandler=0]
 \_ round-robin 0 [prio=1][active]
  \_ 31:0:0:0 sdb 8:16  [active][ready]

SCSI seadmetega töötamine

NB! Käesoleva punkti sisu on testimata. SCSI seadmete eemaldamiseks sobib öelda

 # echo 1 > /sys/block/seadmenimi/device/delete

SCSI seadmete re-skaneerimiseks sobib kasutada

/sys/class/scsi_host/hostN/scan

Lisaks on scsitools paketis skript rescan-scsi-bus.sh.

Olemasoleva readme suuruse muutuse avastamiseks sobib öelda

# echo 1 > /sys/class/block/sdb/device/rescan

Märkused

  • Põhimõtteliselt saab suvalist SCSI seadet kasutada multipath seadme moodustamiseks, aga praktiliselt ei ole sellel suurt mõtet kui välja jätta kastsetamise väärtus. Nt lokaalse ketta scsi-id väärtuse küsimine toimub nii
 # /lib/udev/scsi_id -g -u -s /block/cciss/c0d0
 3600508b1001050395357553155410002
  • FC puhul on tavaline, et iostat ei näita midagi kuigi protsess kirjutab ägedalt; ja vastupidi, protsess ei kirjuta ning ometi on suur IO. Põhjuseks on tüüpiliselt FC kontrolleritel kasutatavad mitmesaja MBait suurused cache'id.
# update-grub    
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
/usr/sbin/grub-probe: error: cannot find a GRUB drive for /dev/mapper/mpath0-part1.  Check your device.map.
/usr/sbin/grub-probe: error: cannot find a GRUB drive for /dev/mapper/mpath0-part1.  Check your device.map.
done

TODO

  • Kettakasti seadistamine
  • FC lüliti seadistamine
  • Edasiarenenud kettakasti võimaluste kasutamine, snapshot, kloon
  • Kirjeldada Path Group mõistet

Hitachi DF600F kettakasti ja QLogic ISP2532 FC kontrolleri kasutamine

Hitachi DF600F kettakasti ja QLogic ISP2532 FC kontrolleri kasutamiseks sobivad Debian Lenny AMD64 paketihalduse vahendid

 # apt-get install multipath-tools firmware-qlogic

Vaikimisi st ilma /etc/multipath.conf faili ettevalmistamata peaks paistama sarnane tulemus

 # multipath
 # multipath -ll
 360060e80102d1dc00511c56400000003dm-0 HITACHI ,DF600F        
 [size=100G][features=1 queue_if_no_path][hwhandler=0]
 \_ round-robin 0 [prio=1][active]
  \_ 1:0:0:0 sda 8:0   [active][ready]
 \_ round-robin 0 [prio=0][enabled]
  \_ 2:0:0:0 sdb 8:16  [active][ready]

või Debian Squeeze puhul

# multipath -ll
mpath0 (360060e80102d1dc00511c56400000006) dm-0 HITACHI,DF600F
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 1:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 0:0:0:0 sda 8:0  active ready running

Näiteks selline ilmutatud kujul esitatud seadistusfail võiks töötada

 defaults {
   udev_dir                /dev
   polling_interval        5
   default_selector        "round-robin 0"
   user_friendly_names     yes
 }
 
 blacklist { 
   wwid    200d04efd1804f38e
   devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
   devnode "^hd[a-z][[0-9]*]"
   devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
 }
 
 multipaths {
   multipath {
     wwid                    360060e80102d1dc00511c56400000003
     alias                   test
   }
 }
 
 devices {
   device {
     vendor "HITACHI"  
     product "DF.*"
     getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
     prio_callout "/sbin/mpath_prio_hds_modular /dev/%n"
     path_grouping_policy multibus
     path_checker tur
     features "1 queue_if_no_path"
     failback immediate
   }
 }

ja tulemuseks, kusjuures liiklus käib paralleelselt üle /dev/sda kui ka /dev/sdb

# multipath -ll
mpath0 (360060e80102d1dc00511c56400000006) dm-0 HITACHI,DF600F
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 0:0:0:0 sda 8:0  active ready running
  `- 1:0:0:0 sdb 8:16 active ready running

Hitachi DF600F kettakasti ja Emulex Corporation Saturn-X: LightPulse FC kontrolleri kasutamine

Seade paistab selline

a:~# lspci | grep Fibre
05:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
08:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)

Kasutamiseks sobib vabatarkvaraline lpfc draiver, sisaldub nt v. 2.6.26 Linuxi tuumas

# modprobe lpfc

Muus osas toimub kasutamine sarnaselt muidu tekstis kirjeldatule.

Kettakasti kontroller on katki

Kui kettakastil on mitu kontrollerit (nagu tavaliselt) ja neis üks läheb katki, siis tavalisel juhul arvutil olevast kahest path'ist kaob üks ära. Lähtepunktiks oleks töötaval juhul selline multipath utiliidi väljund

# multipath -ll
mpath_pgdata (360060e80102595000511318000000260) dm-4 HITACHI,DF600F
size=1.0T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=0 status=active
  |- 0:0:0:0 sdb 8:48 active ready running
  `- 2:0:0:0 sdc 8:32 active ready running

Ühe kontrolleri rike paistab operatsioonisüsteemi logis välja nt sedasi

# cat /var/log/kern.log
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.226328]  rport-0:0-0: blocked FC remote port time out: removing target and saving binding
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.228053] sd 0:0:0:0: rejecting I/O to offline device
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.229114] sd 0:0:0:0: rejecting I/O to offline device
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.229175] device-mapper: multipath: Failing path 8:16.
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.230173] sd 0:0:0:0: rejecting I/O to offline device
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.231230] sd 0:0:0:0: rejecting I/O to offline device
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.235027] sd 0:0:0:0: [sdb] Synchronizing SCSI cache
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.235057] sd 0:0:0:0: [sdb]  
Jun 13 22:56:19 mia-pg-rvk2a kernel: [1984185.235060] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK

ning multipath utiliidi väljund on selline

# multipath -ll
mpath_pgdata (360060e80102595000511318000000260) dm-4 ,
size=1.0T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- #:#:#:# -   #:#  failed faulty running
  `- 2:0:0:0 sdc 8:32 active ready running

kus

  • alles on vaid üks multipath komponent, sdc (varem oli lisaks sdb ka)
  • esimene komponent sdb on märgitud 'faulty' ehk katkiseks

Kui aga multipath töötab, siis tulemusena jääb teenus käima st vastav failisüsteem kasutatavaks operatsioonisüsteemi jaoks.

Multipath ressursi online suurendamine

Multipath ressursi online suurendamine toimub tavaliselt selliselt, et ühelt poolt on multipath seadme peale tehtud nt lvm kasutus ja sinna omakorda ext4 failisüsteem mis on operatsioonisüsteemi juures külge monteeritud. Ja kui seal on ruumi puudu, siis teises otsas olevas kettakastis suurendadakse üle fc võrgu kättesaadavaks tehtud scsi plokkseadme suurust. Ning eesmärgiks on selle kettakastist lisatud ressursi online'is kättesaadavaks tegemine failisüsteemile

kettakast -> fc või iscsi võrk -> scsi seade -> multipath seade -> lvm seade -> ext4 failisüsteem

scsi seadmete suuruse muudatuse äratundmiseks sobib öelda

# echo 1 > /sys/class/block/sda/device/rescan
# echo 1 > /sys/class/block/sdb/device/rescan

multipath seadme suuruse muudatuse äratundmiseks sobib öelda

# multipathd -k'resize map mpath-seadme-nimi-nagu-see-paistab-multipath-ll-käsu-väljundis'
ok

seejuures tekib logisse

Mar 1 13:51:39 kontor-tookoht multipathd[2332]: 36001405068f7781422b4b41b30a760db: resize map (operator)
Mar 1 13:51:39 kontor-tookoht multipathd[2332]: 36001405068f7781422b4b41b30a760db: load table [0 41943040 multipath 0 0 2 1 service-time 0 1 1 8:0 1 service-time 0 1 1 8:16 1
Mar 1 13:51:39 kontor-tookoht multipathd[2332]: ]
Mar 1 13:51:39 kontor-tookoht multipath: dm-3: usable paths found

lvm volume grupile suuruse kättesaadavaks tegemiseks

# pvresize /dev/mapper/mpathnimi

lvm suuruse muutmiseks sobib öelda

# lvresize -LuussuuremsuurusG /dev/vg_test/lv_test

failisüsteemi suurendamiseks

# resize2fs -p /dev/vg_test/lv_test

Kirjeldatud protseduur toimub Ubuntu 18.04 juures, nt Ubuntu 14.04 mitte, resize map XXX puhul jääb suurus samaks ja logisse kirjutatakse

Mar 1 06:29:06 kontor-server-1404 multipathd: uevent trigger error
Mar 1 06:29:06 kontor-server-1404 multipathd: message repeated 2 times: [ uevent trigger error]
Mar 1 06:30:54 kontor-server-1404 multipathd: 36001405068f7781422b4b41b30a760db: resize map (operator)
Mar 1 06:30:54 kontor-server-1404 multipathd: 36001405068f7781422b4b41b30a760db: map is still the same size (25165824)

Kasulikud lisamaterjalid

Kasulikud lisamaterjalid