DM-Multipath

Allikas: Kuutõrvaja
Redaktsioon seisuga 21. märts 2009, kell 11:28 kasutajalt Imre (arutelu | kaastöö) (Logi)

Sissejuhatus

Multipathing ehk täpsemini DM-Multipathing (device-mapper multipath) viitab üldiselt võimalusele arvutist ühe ja sama salvestusressursi (ingl. k. storage; nt kettakastist välja jagatud LUN või iSCSI target) poole jõuda erinevaid teid mööda. Tavaliselt on sel juhul salvestusressurss arvuti külge ühendatud FC või iSCSI abil.

Multipath ehk täpsemini DM-Multipath plokkseade on operatsioonisüsteemi kõrgemate kihtide jaoks jaoks moodustatud loogiline plokkseade, millele vastab tavaliselt mitu füüsilist plokkseadet. Sõltuvalt multipath seadistusest võib loogilisel plokkseadmel olla selliseid omadusi

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

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

  • salvestusressurssi arvutiga ühendava seadme draiver - nt FC ühenduse puhul QLogic HBA draiver qla2xxx
  • tuuma device-mapper tugi, mis nt võimaldab konstrueerida mitmekihilisi loogilisi plokkseadmeid sh füüsilistest seadmetest erinevate omadustega loogilisi seadmeid
  • udev - dünaamiline plokkseadmete moodustamine, vastavalt toimuvatele sündmustele, nt arvuti ja salvestusressursi vahel ühenduse kadumine
  • multipath tarkvara - tarkvara, mis juhib udev ja device mapperi tööd kontrollides multipath plokkseadet moodustavate füüsiliste kättesaadavust

Multipath tarkvara ülesandeks on ära tunda, et erinevaid teid mööda on arvutiga ühendatud üks ja sama salvestusressurss ning moodustada loogiline seade. Lisaks multipath tarkvara jälgib ühenduste korrasolekut ning teeb vastavaid ümberlülitusi. Kui multipath tarkvara töötab on käivitatud multipathd deemoni protsess

 # ps aux | grep multipathd | grep -v grep
 root      4208  0.1  0.0  19572  3208 ?        SLl  00:22   1:47 /sbin/multipathd

Multipath seadmete kasutamiseks on lisaks vabatarkvaralisele DM-Multipathile 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.

Salvestusressursid

Multipath juures võib põhimõtteliselt kasutada igasuguseid SCSI protokolli kasutavaid seadmeid, sh lokaalseid seadmeid. Reeglina pakuvad aga praktilist huvi sellised juhtumid, kus arvuti ja salvestusressursi vahel on tõepoolest mitu erinevat teed. Levinud on nt selline skeem, kus on FC meedia abil ühendatud FC lülitiga (ingl. k. switch) omavahel üks kettakast ja mitu arvutit, kusjuures kõik ühendused arvutite ja kettakastist lülitini on füüsiliselt dubleeritud

                    _____________
                   |  Kettakast  |
                   |_____________|
                 SPA || SPB
                     ||
                  ___||____________
                 |                 |
                 | FC lüliti       |
                 |_________________|
                   ||     ||    ||
                   ||     ||    ..... arvuti n
                  _||_    ||
        arvuti 1 |    |   ||
                 |____|   ||
                          ||
                         _||_
                        |    | arvuti 2
                        |____|

Konkreetselt võiks olla nt tegu sellise riistvaraga

  • EMC CLARiiON CX3 kettakast
  • CISCO MDS9505 FC lüliti
  • QLogic QLA2432 FC adapterid

Multipath seadmete kasutamiseks ettevalmistuste tegemine

Enne multipath seadmete seadistamise juurde asumist peab olema selge milliste omadustega tulemust on eesmärk saavutada.

Multipathing jaoks vajaliku tarkvara paigaldamine

Kaasaegsed Linuxi distributsioonide sh Debian GNU/Linux paketihalduses sisaldub multipathing'u jaoks vajalik ja sissejuhatuses loetletud tarkvara, st levinud seadmete draivereid, device-mapperi tugi tuumas, udev ja multipath. Kui ei ole selget põhjust talitada muud moodi, tuleks eelistada operatsioonisüsteemi paketihalduses esinevat tarkvara.

Debian GNU/Linux puhul on udev ja device-mapper vaikimisi paigaldatud, nt QLogic FC adapteri jaoks soovitatakse kasutada non-free repositooriumist paketti firmware-qlogic

 # apt-get install firmware-qlogic

ning multipath tarkvara paigaldamiseks öelda

 # apt-get install multipath-tools

Multipath tarkvara seadistamine ja käivitamine

Multipath tarkvara tööd kontrollib seadistusfail /etc/multipath.conf, mis võiks ülalkirjeldatud seadmete kasutamisel olla nt sellise sisuga

 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

Multipath seadme komponentide scsi-id

SCSI seadmetel on unikaalne id, mida saab teha kindlaks selliselt

 # /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

Seda id väärtust kasutatakse seadistusfailis wwid parameetrina.

Multipath deemoni käivitamist ja seiskamist sobib juhtida skriptiga

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

Kui seni tehtud sammud on õnnestunud, 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

 # 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

 # 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 seadmete kasutamine

Üldiselt soovitatakse multipath seadmetele moodustada LVM kusjuures on abiks kirjeldada LVM seadistusfailis sobiv filter, nt

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

LVM moodustamine toimub iseensest tavalisel moel, nt

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

Multipath lahenduse testimine

  • dd & iostat

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
 ...

Juurfailisüsteemi kasutamine multipath seadmelt

Juurfailisüsteemi kasutamine multipath seadmelt võimaldab nt paindlikumalt migreerida operatsioonisüsteemi teisele riistavarale.

Kuigi juurfailisüsteem asub multipath seadmel, asub antud juhtumil arvuti lokaalsel kõvakettal kataloog /boot, milles on bootloader sh bootloaderi seadistusfail (nt GRUB puhul /boot/grub/grub.lst), operatsioonisüsteemi tuum ja ramdisk.

Juurfailisüsteemi multipath seadmelt kasutava arvuti alglaadimisel toimuvad sündmused sellises järjekorras

  • arvuti lokaalselt kõvakettalt laaditakse bootloader
  • bootloader laadib tuuma
  • ajutiselt ühendatakse külge juurfailisüsteem ramdiskilt
  • laaditakse ramdiskil olevad FC adapteri draiver ning muu multipath'i kasutamiseks vajalik tarkvara
  • ühendakse külge juurfailisüsteem multipath seadmelt

Selliselt töötava süsteemi ettevalmistamiseks tuleb sooritada nt sellised sammud

  • ühendada mõnele multipathiga töötavale arvutile külge ettevalmistatava ja multipath seadmelt bootima hakkava arvuti juurfailisüsteem
  • kopeerida ettevalmistatava arvuti juurfailisüsteemi operatsioonisüsteem
  • öelda
 # mount -t proc /proc /mnt/proc
 # chroot /mnt

Paketi multipath-tools-boot paigaldamise käigus moodustatakse uus ramdisk

 # apt-get install multipath-tools-boot
  • redigeerida lokaalse ettevalmistatava arvuti bootloaderi seadistusfail /boot/grub/menu.lst sobivaks

Kasulikud lisamaterjalid