iSCSI & Multipath Linux ja Windows

Linux

Asennus suoritetaan CentOS 7 Linuxjakelulle. Linuxissa iSCSI-levyjä hallitaan iscsi-initiator-työkaluilla ja multipath-polkuja multipath-työkaluilla. Asennetaan iscsitarget, multipath ja riippuvuudet. Tästä voit lukea Multipathista enemmän.

root@centos # yum -y install device-mapper-multipath \
 device-mapper-multipath-libs \
 libiscsi-utils iscsi-initiator-utils


iscsiadm-komennolla voidaan etsiä verkosta iSCSI-portalit. -t optio on lyhenne typestä, st lyhenne sendtargets ja -p portalista. Annetaan portaleiksi aiemmin Nexentaan luodut: 172.29.159.10 ja 172.29.160.10 -osoitteet. Portti 3260 on oletusportti iSCSI-portaleille, mutta tämä voidaan määritellä myös joksikin muuksi. Etsitään portalit ja kirjaudutaan löydettyihin targeteihin. Tuotantoympäristöissä on monesti useita targeteja ja tässä esimerkissä kirjaudutaan useisiin targeteihin portal-osoitteen kautta ja näytetään miten oikeat targetit löytää useamman targetin joukosta.

root@centos # iscsiadm -m discovery -t st -p 172.29.159.10:3260
172.29.159.10:3260,2 iqn.2017-03.bar.foo:linux01
172.29.159.10:3260,2 iqn.2017-03.bar.foo:win01
root@centos # iscsiadm -m discovery -t st -p 172.29.160.10:3260
172.29.160.10:3260,2 iqn.2017-03.bar.foo:linux02
172.29.160.10:3260,2 iqn.2017-03.bar.foo:win02
root@centos # iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2017-03.bar.foo:linux01, portal: 172.29.159.10,3260] (multiple)
Logging in to [iface: default, target: iqn.2017-03.bar.foo:win01, portal: 172.29.159.10,3260] (multiple)
Logging in to [iface: default, target: iqn.2017-03.bar.foo:linux02, portal: 172.29.160.10,3260] (multiple)
Logging in to [iface: default, target: iqn.2017-03.bar.foo:win02, portal: 172.29.160.10,3260] (multiple)
Login to [iface: default, target: iqn.2017-03.bar.foo:linux01, portal: 172.29.159.10,3260] successful.
Login to [iface: default, target: iqn.2017-03.bar.foo:win01, portal: 172.29.159.10,3260] successful.
Login to [iface: default, target: iqn.2017-03.bar.foo:linux02, portal: 172.29.160.10,3260] successful.
Login to [iface: default, target: iqn.2017-03.bar.foo:win02, portal: 172.29.160.10,3260] successful.


Jos halutaan kirjautua tiettyyn targetiin, niin tämä onnistuu kommenolla:

root@centos # iscsiadm -m node -T iqn.2017-03.bar.foo:linux01 --login
172.29.159.10:3260,2 iqn.2017-03.bar.foo:linux01
Login to [iface: default, target: iqn.2017-03.bar.foo:linux01] successful.
root@centos # iscsiadm -m node -T iqn.2017-03.bar.foo:linux02 --login
172.29.160.10:3260,2 iqn.2017-03.bar.foo:linux02
Login to [iface: default, target: iqn.2017-03.bar.foo:linux02] successful.

Kopioidaan multipath.conf -tiedosto /etc/ -hakemiston alle, ladataan multipath-moduli, käynnistetään multipath ja asetetaan multipath käynnistymään käynnistyksen yhteydessä.

root@centos # cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
root@centos # modprobe dm-multipath
root@centos # systemctl enable multipathd.service
root@centos # systemctl start multipathd.service


fdisk -l tulostaa tiedot järjestelmän levyistä. Yleensä multipath-levyt näkyvät sdx -muodossa, joten poimitaan tulosteesta kaikki sd -sanan sisältävät rivit. Tulosteesta näemme, että järjestelmälle näkyy neljä 40Gt:n levyä.

root@centos # fdisk -l |grep sd
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk /dev/sdd: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk /dev/sdc: 42.9 GB, 42949672960 bytes, 83886080 sectors


multipath -v3 -komento listaa järjestelmän levylaitteet. grep linux näyttää tulosteesta kaikki linux -sanan sisältävät rivit. Tulosteesta voimme nähdä, että sdd on iSCSI-levy. multipath -ll tulosteesta meidän tulee etsiä sdd-levyyn liittyvä multipath-polku. egrep -B 4 -optiolla kerromme, että haluamme nähdä edelliset neljä riviä sen rivin lisäksi joka sisältää sdd -sanan. Näin näemme, että sdd on yksi mpathc-polun levyistä

root@centos # multipath -v3|grep linux
May 12 17:00:06 | sda: tgt_node_name = iqn.2017-03.bar.foo.linux01
May 12 17:00:06 | sdb: tgt_node_name = iqn.2017-03.bar.foo.linux02
root@centos # multipath -ll|egrep -B 4 sda
mpathe (36589cfc0000006ef34a222cc3cce3301) dm-2 NEXENTA ,COMSTART
size=40G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 32:0:0:0 sdb  8:16  active ready running
  `- 31:0:0:0 sda  8:0   active ready running


Luodaan physical volume mpathc-levylle, ja data_vg -volume group. data_vg -volumelle luodaan logical volume nimeltään data, ja määritetään kaikki levytila käyttöön.

root@centos # pvcreate /dev/mapper/mpathe
  Physical volume "/dev/mapper/mpathg" successfully created.
root@centos # vgcreate data_vg /dev/mapper/mpathe
  Volume group "data_vg" successfully created
root@centos # lvcreate -l 100%FREE data_vg -n data
  Logical volume "data" created.


Luodaan ext4-tiedostojärjestelmä logical volumelle. Tiedosto-järjestelmää luodessa tulisi ottaa huomioon levyn käyttötarkoitus. Block-koolla ja inode:n määrillä on suuri vaikutus levytilan hyötysuhteeseen ja suorituskykyyn kun levykoko kasvaa.

root@centos # mkfs.ext4 /dev/data_vg/data
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10484736 blocks
524236 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done


Luodaan /data -hakemisto, liitetään luotu levy siihen mount -komennolla ja lisätään levyn tiedot fstab -tiedostoon, niin että levy liitetään automaattisesti /data -hakemistoon käynnistyksen yhteydessä.

root@centos # mkdir /data
root@centos # mount /dev/data_vg/data /data/
root@centos # echo "/dev/data_vg/data /data ext4 _netdev 0 0" >> /etc/fstab


Palvelin voidaan uudelleenkäynnistää, jonka jälkeen tarkistetaan df -h -komennolla, että levyt on liitetty järjestelmään.

root@centos # df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/cl_centos-root  8.0G  1.2G  6.9G  15% /
devtmpfs                    482M     0  482M   0% /dev
tmpfs                       492M     0  492M   0% /dev/shm
tmpfs                       492M  6.6M  486M   2% /run
tmpfs                       492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1                 1014M  183M  832M  19% /boot
/dev/mapper/data_vg-data     40G   49M   38G   1% /data
tmpfs                        99M     0   99M   0% /run/user/0


Linuxissa voidaan testata polkujen toimivuutta disabloimalla toinen verkkokorteista. Tarkistetaan multipathin tila ja toinen poluista näyttää failed-tilaa.

root@centos # ifconfig eth1 down
root@centos # multipath -ll|egrep -A 4 mpathe
mpathe (36589cfc0000006ef34a222cc3cce3301) dm-2 NEXENTA ,COMSTART
size=40G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 32:0:0:0 sdb  8:16  active ready running
  `- 31:0:0:0 sda  8:0   failed faulty running


Enabloidaan eth1 -verkkoliitäntä ja tarkistetaan multipathin tila. Polku on palautunut active-tilaan.

root@centos # ifconfig eth1 up
root@centos # multipath -ll|egrep -A 4 mpathe
mpathe (36589cfc0000006ef34a222cc3cce3301) dm-2 NEXENTA ,COMSTART
size=40G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 32:0:0:0 sdb  8:16  active ready running
  `- 31:0:0:0 sda  8:0   active ready running


Windows

Palvelimena toimii Windows Server 2016 Standard. Kuten Linux-palvelimessa, Windows-palvelimessa on kaksi verkkokorttia, joista toinen on dedikoitu iSCSI-liikenteelle. Nimetään tämä verkkokortti iSCSI-verkko nimiseksi ja asetetaan verkkokortille IP-osoite 172.29.160.99

ISCSI

eth

Lisätään Multipath I/O -tuki. Server Managerista lisätään oikealta yläkulmasta Manage → Add Roles and Features

server-mng


Vasemmalla näkyy asennukset vaiheet:
• Before You Begin: Painetaan Next
• Installation Type: Role-based or feature-based installation
• Server Selection: Valitaan oma palvelin
• Server Roles: Ei valita mitään
• Features: Valitaan Multipath I/O
• Confirmation: Restart the destination server automatically if required -valinta voidaan laittaa päälle.



mdio-win

Etsitään iSCSI-levyt käynnistämällä Tools -valikosta iSCSI Initiator. Ensimmäistä kertaa käynnistettäessä Windows herjaa, että palvelu ei ole käynnissä ja tulisiko palvelu käynnistää. Tähän valitaan yes.


iscsi-initiator

Discovery -välilehdeltä painetaan Discover Portal ja lisätään NexentaStorin IP-osoite 172.29.159.10. Toistetaan ja lisätään myös toinen IP-osoite 172.29.160.10.


portal

Targets -välilehdellä näkyy nyt kaikki targetit. Valitaan win01 ja painetaan Connect.


iscsi-initiator-disc


Connect To Target ikkunassa laitetaan ruksi Enable multi-path -kohtaan ja painetaan OK. Toistetaan win02 -targetille.


connect-to-target


Server Managerin Tools -valikosta valitaan MPIO. Discover Multi-Paths välilehdeltä valitaan NEXENTA COMSTAR ja laitetaan ruksi Add support for iSCSI devices kohtaan ja painetaan Add. Tämän jälkeen Windows käynnistetään uudelleen.


mpio-properties.

mpio-properties.


Server Managerista → File and Storage Servives → Volumes → Disks Valitaan iSCSI-levy ja hiiren oikealla napilla Bring Online. Nyt levylle voidaan luoda volume hiiren oikealla napilla ja valitsemalla New Volume…


disk-mgmnt


• Before You Begin: Next
• Server and Disk: Next ja valitaan Yes, kun Windows kysyy halutaanko levy tuoda online.
• Size: Volume size: 40GB
• Drive Letter or Folder: Drive letter: E
• File System Settings: File system: NTFS, Allocation unit size: Default, Volume label: iSCSI
• Confirmation: Create


Konsolista mpclaim -s -d -komennolla näemme MPIO-levyt. mpclaim -s -d 0 näyttä lisätietoja levystä, tässä tapauksessa näemme levyn sisältävän kaksi polkua.

mpclaim1

Myös Windowsissa voidaan testata polkujen toimintaa disabloimalla toinen verkkokorteista. mpclaim -komennolla voidaan tarkastaa polkujen tila. Lopuksi enabloidaan verkkokortti ja polut palautuvat

mpclaim2

mpclaim3