Erinevus lehekülje "ISCSI kasutamine Gentooga" redaktsioonide vahel

Allikas: Kuutõrvaja
(Jumbo kaadrite lubamine)
51. rida: 51. rida:
 
See on kah kahtlane, tasub pigem erinevate väärtustega mängida sest liiga
 
See on kah kahtlane, tasub pigem erinevate väärtustega mängida sest liiga
 
suureks keeramine võib negatiivselt mõjuda.
 
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.
 
 
*http://www.redhat.com/magazine/008jun05/features/schedulers/
 
 
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://www.gentoo-wiki.info/TIP_Jumbo_Frames
 
 
http://forum.open-e.com/showthread.php?t=1138
 
 
http://www.randomboot.org/storage/518-iscsi-performance-tuning.html
 

Redaktsioon: 13. juuni 2011, kell 15:43

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.