ISCSI kasutamine Gentooga

Allikas: Kuutõrvaja
Redaktsioon seisuga 13. juuni 2011, kell 12:35 kasutajalt Jj (arutelu | kaastöö) (Jumbo kaadrite lubamine)

iSCSI serveri seadistus

Unmaskime iscsitargeti

# "echo "sys-block/iscsitarget" >> /etc/portage/package.keywords" 

Paigaldame iscasitargeti

# emerge iscsitarget 

Teeme iscsi_trgt mooduli stardil laaditavaks

#echo "iscsi_trgt" >> /etc/modules.autoload.d/kernel-2.6 

Loome ietd.conf faili

/etc/ietd.conf

Target iqn.2001-04.org.gentoo:iSCSI.test.disk1 
        Lun 0 Path=/dev/hda5,Type=fileio 
        MaxConnections          1 
        #InitialR2T              Yes 
        #ImmediateData           No 
        #MaxRecvDataSegmentLength 8192 
        #MaxXmitDataSegmentLength 8192 
        #MaxBurstLength          262144 
        #FirstBurstLength        65536 
        #DataPDUInOrder          Yes 
        #DataSequenceInOrder     Yes 
        #ErrorRecoveryLevel      0 
        #HeaderDigest            CRC32C 
        #DataDigest              CRC32C 
        #Wthreads                8

Stardime ietd deemoni

# /etc/init.d/ietd start

Deemon võib startimisel soovitada sysctl muutujaid seadistada näiteks:

* net.ipv4.tcp_mem:min (766944) is lower than recommended 1048576
* net.ipv4.tcp_mem:default (1022592) is lower than recommended 1048576

Mida võib ignoreerida, pigem näitab, et arendaja ei saa aru mida tcp_mem väärtused tähendavad. Erinevalt tcp_rmem ja tcp_wmem asjadest seda pole vaja näppida ja kui vajadus tekib, siis peab meeles pidama, et ühikuks on page size (tüüpiliselt 4096 baiti).

* net.ipv4.tcp_rmem:min (131072) is lower than recommended 1048576
* net.ipv4.tcp_wmem:min (131072) is lower than recommended 1048576

See on kah kahtlane, tasub pigem erinevate väärtustega mängida sest liiga suureks keeramine võib negatiivselt mõjuda.

iSCSI jõudluse suurendamine

vaja leida hea kompromiss latentsi suhtes. Tüüpilise iSCSI kasutava masina kettkasutusmuster on teistsugune -- rohkem väiksemaid pakette ja latents on kriitilisem. Tuleb analüüsida mis kihid üksteise peale on laotud ning kus ja mida puhverdatakse. Võimalik et tuleb tuunida ka I/O scheduleri seadeid hostis ja/või klientides.

Alternatiivseid iSCSI stacke võib kah proovida, selles suhtes on viimastes kernelites toimunud mingid arengud ja loodetavasti paremuse suunas.

Jumbo kaadrite lubamine

Kõik switchid ei pruugi jumbo kaadreid ja flowcontrolli toetada. Tasub enne switchi manualist järgi uurida kui neid hakata lubama. Töötavat võrguseadet saab jooksvalt ümber seadistada ifconfigu abil.

# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0E:0C:70:C9:63
inet addr:172.19.51.160 Bcast:172.19.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

See mis meid huvitab on MTU väärtus. Hetkel on see seatud 1500 peale mis pole jumbo paketi suurus. Selleks, et muuta tuleb anda järgnev käsk:

# ifconfig eth0 mtu 9000
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0E:0C:70:C9:63
inet addr:172.19.51.160 Bcast:172.19.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1

Selleks, et muuta seadistus Debianis püsivaks

#cat /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
MTU=9000

isc-dhcpd abil muutmine

subnet 192.168.0.0 netmask 255.255.255.0 {
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
  option interface-mtu 9000;
}

Linuxi I/O SCHEDULERi muutmine

Linux pakub mitmesuguseid kerneli I/O scheduleerijaid. Näiteks Redhatis on vaikimisi "CGQ" (Completely Fair Queuing). Näiteks Open-iSCSI grupp teatab, et vahel võib "NOOP"i kasutamine toimida iSCSI serveri puhul paremini.

Scheduleri saab jooksvalt muuta keskonnas näiteks järgnevalt:

#echo noop > /sys/block/${DEVICE}/queue/scheduler

Samamoodi saab hiljem muuta seadistuse tagasi cfg peale

LINUX READ AHEAD VALUE

Vaikimisi küsib Linux lugemise ajal järgmised 256 sektorit. Selle muutuja suurendamine võib lugemiskiirust märkimisväärselt suurendada. Ehk öelda siis kernelile, e ta loeks rohkem sektoreid vaikimisi ette.

Seda read-ahead numbrit saab muuta blockdev käsuga.

This is only valuable with sequential I/O-type applications, and can cause performance problems with high random I/O. Under sequential I/O. the performance gain was observed to be in the 10%-20% range.

Süntaks on: blockdev –setra X <device name>

Näiteks

# /sbin/blockdev –setra 4096 /dev/sda

Et vaadelda eksisteerivat read ahead seadistusi kirjuta:

# blockdev –getra <device name>

Jumbod tuelb kindlasti lubada kui switch ja kõik masinad toetavad.

http://forum.open-e.com/showthread.php?t=1138

http://www.randomboot.org/storage/518-iscsi-performance-tuning.html