Erinevus lehekülje "ISCSI kasutamine Gentooga" redaktsioonide vahel

Allikas: Kuutõrvaja
(iSCSI jõudluse suurendamine)
(Iscsi server STGT)
 
(ei näidata sama kasutaja 15 vahepealset redaktsiooni)
1. rida: 1. rida:
===iSCSI serveri seadistus===
+
===iSCSI serveri iSCSI-target seadistus===
  
 
Unmaskime iscsitargeti
 
Unmaskime iscsitargeti
52. rida: 52. rida:
 
suureks keeramine võib negatiivselt mõjuda.
 
suureks keeramine võib negatiivselt mõjuda.
  
===iSCSI jõudluse suurendamine===
+
Käigupealt kui iscsi serveril on koormus taga pole soovitatav ietd deemonit sageli restartida. See võib lõppeda katkiste serveritega. Selleks, et käigupealt lisada jaotisi tuleb toimida järgnevalt:
  
vaja leida hea kompromiss latentsi suhtes. Tüüpilise iSCSI kasutava masina
+
Vaatame mis on viimane tid
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 seadeod hostis ja/või klientides.
 
  
Alternatiivseid iSCSI stacke võib kah proovida, selles suhtes on viimastes kernelites toimunud mingid arengud ja loodetavasti paremuse suunas.
+
# cat /proc/net/iet/volume
 +
tid:6 name:iqn.2001-04.org.proxmox:iSCSI.disk27
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:4244635648 blocksize:512 path:/dev/voluum/vm27
 +
tid:5 name:iqn.2001-04.org.proxmox:iSCSI.disk17
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm17
 +
tid:4 name:iqn.2001-04.org.proxmox:iSCSI.disk14
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:4194304000 blocksize:512 path:/dev/voluum/vm14
 +
tid:3 name:iqn.2001-04.org.proxmox:iSCSI.disk03
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm03
 +
tid:2 name:iqn.2001-04.org.proxmox:iSCSI.disk02
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:4244635648 blocksize:512 path:/dev/voluum/vm02
 +
tid:1 name:iqn.2001-04.org.proxmox:iSCSI.disk01
 +
lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm01
  
===Jumbo kaadrite lubamine===
+
Nagu näeme on viimaseks kasutatud tid'iks 6. Võtame seega kasutusele number 7 ning
 +
jagame tekitatud viilaka välja
  
Kõik switchid ei pruugi jumbo kaadreid ja flowcontrolli toetada. Tasub enne
+
# ietadm --op new --tid=7 --params Name='''iqn.2011-08.ee.eenet:mahutaja.vm7'''
switchi manualist järgi uurida kui neid hakata lubama. Töötavat võrguseadet
+
# ietadm --op new --tid=7 --lun=0 --params Type=fileio,Path='''/dev/hda5'''
saab jooksvalt ümber seadistada ifconfigu abil.
 
  
# ifconfig eth0
+
The first command creates a new target, with an ID of 1 and a name of "iqn.2009-02.com.example:test". See http://en.wikipedia.org/wiki/ISCSI#Addressing for more details on the naming conventions of iSCSI targets.
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
+
Selleks, et jaotis siiski peale reboodi säluks tuleb vastav sektsioon lisada ka ietd.conf faili
jumbo paketi suurus. Selleks, et muuta tuleb anda järgnev käsk:
 
  
# ifconfig eth0 mtu 9000
+
===Iscsi server STGT ===
# 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
+
  make menuconfig
 +
  Select Device Drivers -> SCSI device support -> SCSI disk support
 +
  Select Enable the block layer -> IO Schedulers -> CFQ I/O Scheduler
  
  #cat /etc/network/interfaces
+
  # emerge tgt
auto lo
 
iface lo inet loopback
 
auto eth0
 
i face eth0 inet dhcp
 
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===
+
*http://stgt.sourceforge.net/
  
Linux pakub mitmesuguseid kerneli I/O scheduleerijaid. Näiteks Redhatis on vaikimisi "CGQ"
+
*http://www.cyberciti.biz/tips/howto-setup-linux-iscsi-target-sanwith-tgt.html
(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/
+
*http://scst.sourceforge.net/comparison.html
 
 
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
 

Viimane redaktsioon: 5. oktoober 2011, kell 11:07

iSCSI serveri iSCSI-target 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.

Käigupealt kui iscsi serveril on koormus taga pole soovitatav ietd deemonit sageli restartida. See võib lõppeda katkiste serveritega. Selleks, et käigupealt lisada jaotisi tuleb toimida järgnevalt:

Vaatame mis on viimane tid

# cat /proc/net/iet/volume
tid:6 name:iqn.2001-04.org.proxmox:iSCSI.disk27
	lun:0 state:0 iotype:fileio iomode:wt blocks:4244635648 blocksize:512 path:/dev/voluum/vm27
tid:5 name:iqn.2001-04.org.proxmox:iSCSI.disk17
	lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm17
tid:4 name:iqn.2001-04.org.proxmox:iSCSI.disk14
	lun:0 state:0 iotype:fileio iomode:wt blocks:4194304000 blocksize:512 path:/dev/voluum/vm14
tid:3 name:iqn.2001-04.org.proxmox:iSCSI.disk03
	lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm03
tid:2 name:iqn.2001-04.org.proxmox:iSCSI.disk02
	lun:0 state:0 iotype:fileio iomode:wt blocks:4244635648 blocksize:512 path:/dev/voluum/vm02
tid:1 name:iqn.2001-04.org.proxmox:iSCSI.disk01
	lun:0 state:0 iotype:fileio iomode:wt blocks:33554432 blocksize:512 path:/dev/voluum/vm01

Nagu näeme on viimaseks kasutatud tid'iks 6. Võtame seega kasutusele number 7 ning jagame tekitatud viilaka välja

# ietadm --op new --tid=7 --params Name=iqn.2011-08.ee.eenet:mahutaja.vm7
# ietadm --op new --tid=7 --lun=0 --params Type=fileio,Path=/dev/hda5

The first command creates a new target, with an ID of 1 and a name of "iqn.2009-02.com.example:test". See http://en.wikipedia.org/wiki/ISCSI#Addressing for more details on the naming conventions of iSCSI targets.

Selleks, et jaotis siiski peale reboodi säluks tuleb vastav sektsioon lisada ka ietd.conf faili

Iscsi server STGT

 make menuconfig
 Select Device Drivers -> SCSI device support -> SCSI disk support
 Select Enable the block layer -> IO Schedulers -> CFQ I/O Scheduler
# emerge tgt