Erinevus lehekülje "FreeBSD iSCSI" redaktsioonide vahel

Allikas: Kuutõrvaja
(New page: ===Sissejuhatus=== iSCSI tehnoloogia võimaldab üle TCP/IP võrgu ühendada klientarvutile külge plokk-seadme vastavat teenust pakkuvast serverist, kusjuures on kombeks kasutada sellise...)
 
(Kliendi seadustus FreeBSD10 versioonis)
 
(ei näidata sama kasutaja 89 vahepealset redaktsiooni)
2. rida: 2. rida:
  
 
iSCSI tehnoloogia võimaldab üle TCP/IP võrgu ühendada klientarvutile külge plokk-seadme vastavat teenust pakkuvast serverist, kusjuures on kombeks kasutada selliseid nimetusi kliendi ja serveri kohta  
 
iSCSI tehnoloogia võimaldab üle TCP/IP võrgu ühendada klientarvutile külge plokk-seadme vastavat teenust pakkuvast serverist, kusjuures on kombeks kasutada selliseid nimetusi kliendi ja serveri kohta  
initiator - iSCSI klient  
+
*initiator - iSCSI klient  
target - iSCSI server  
+
*target - iSCSI server  
 
Target ja initiator arvutid võivad kasutada erinevaid operatsioonisüsteeme ning asuda ka erinevatel riistvaralistel platvormidel. Kuna andmevahetuse maht võib kujuneda suureks, siis võib olla mõistlik lisaks kasutusele võtta ainult iSCSI jaoks eraldatud võrgusegment.  
 
Target ja initiator arvutid võivad kasutada erinevaid operatsioonisüsteeme ning asuda ka erinevatel riistvaralistel platvormidel. Kuna andmevahetuse maht võib kujuneda suureks, siis võib olla mõistlik lisaks kasutusele võtta ainult iSCSI jaoks eraldatud võrgusegment.  
Tundub, et initiatori osas on suurem arendajate tähelepanu koondunud projektile [http://www.open-iscsi.org/ ] ning targeti osas projektile [http://iscsitarget.sourceforge.net/].
 
  
===Serveri install===
+
FreeBSD8 versiooniga tuleb kaasa sisseehitatud iSCSI initiator ja iscontrol
 +
käsurea utiliit. Kahjuks puudub hetkel iSCSI target.
  
  # cd /usr/ports/net/iscsi-target/
+
Selleks, et kasutada iSCSI targetit on olemas kaks rakendus portsudes. Esiteks "iscsi-target" (/usr/ports/net/iscsi-target), mis on vahem ja NetBSD pealt porditud lahendus. Teiseks "istgt" (/usr/ports/net/istgt/), mis kaasaegse, uuem ja originaalselt kirjutatud FreeBSD jaoks ning seda kasutab ka FreeNAS lahendus. Üldiselt soovitatakse tungivalt kasutada võimaluse korral "istgt" tarkvara.
  # make install
+
 
 +
===istgt paigaldamine===
 +
 
 +
istgt asub portsude kaustas /usr/ports/net/istgt/
 +
 
 +
# cp auth.conf.sample auth.conf
 +
# cp istgt.conf.sample istgt.conf
 +
# cp istgtcontrol.conf.sample istgtcontrol.conf
 +
 
 +
Istgt.conf (/usr/local/etc/istgt/istgt.conf) on üsna pikk ja paljude võimalustega fail seega tooks välja
 +
vaid kõige lihtsamad muudatused mis vajalikud, et jagamine tööle hakkals. Selleks vaikeseadistustesse võiks teha järgnevad muudatused:
 +
 
 +
Lülitada [UnitControl] autentimine esialgu välja
 +
 
 +
  '''AuthMethod Auto'''
 +
  #AuthMethod CHAP Mutual
 +
  #AuthGroup AuthGroup10000
 +
 
 +
Lisada [PortalGroup1] alla enda seadme IP aadressi ja pordi millel tarkvara kuulab
 +
 
 +
  '''Portal DA1 193.40.0.189:3260'''
 +
 
 +
[InitiatorGroup1] lubaks võrgu mis pääseb ligi
 +
 
 +
  InitiatorName "ALL"
 +
  '''Netmask 193.40.0.0/24'''
 +
 
 +
Ning seadistada seejärels [LogicalUnit1] juures enda block seadme mida jagatakse võrku ning selle suuruse
 +
 +
  '''LUN0 Storage /dev/zvol/srv/iscsi1 Auto'''
 +
 
 +
Käivitame serveri
 +
 +
'''# /usr/local/etc/rc.d/istgt start'''
 +
Starting istgt.
 +
istgt version 0.3 (20100707)
 +
LU1 HDD UNIT
 +
LU1: LUN0 file=/dev/zvol/srv/iscsi1, size=1099511627776
 +
LU1: LUN0 2147483648 blocks, 512 bytes/block
 +
LU1: LUN0 1024.0GB storage for iqn.2007-09.jp.ne.peach.istgt:disk1
 +
LU1: LUN0 command queuing disabled
 +
 
 +
http://wiki.virtastic.com/display/howto/FreeBSD+7.2+with+ZFS+as+an+iSCSI+target
 +
 
 +
http://people.freebsd.org/~rse/iscsi/iscsi.txt
 +
 
 +
===Iscsi-targeti paigaldamine===
 +
 
 +
  '''# cd /usr/ports/net/iscsi-target/'''
 +
  '''# make install'''
 
  ===> Installing rc.d startup script(s)
 
  ===> Installing rc.d startup script(s)
 
  ===>  Compressing manual pages for iscsi-target-20080207_2
 
  ===>  Compressing manual pages for iscsi-target-20080207_2
33. rida: 82. rida:
  
  
Avame /etc/rc.conf ja lisame
+
Seejärel jagame välja füüsilise ketta. See on meil küljes seadmena /dev/ad0 suurusega 70GB
 +
Võrk kuhu jagamine on 192.168.0.0/24
  
iscsi_target_enable="YES"
+
/usr/local/etc/iscsi/targets
  
et reboodil automaatselt server starditaks
+
# NAME          DEVICE          START          LENGTH
 
+
extent0        '''/dev/ad0'''        0              '''70GB'''
Seejärel jagame välja ketta. Selleks on meil /dev/ad0 suurusega 70GB
+
# NAME          ACCESS          STORAGE        NETMASK
 +
target0        rw              extent0        '''192.168.0.0/24'''
  
 +
et reboodil automaatselt server starditaks Avame /etc/rc.conf ja lisame rea
  
 +
iscsi_target_enable="YES"
  
# nano /usr/local/etc/iscsi/targets
+
Ja stardime serveri
  
  # NAME          DEVICE          START          LENGTH
+
  '''# /usr/local/etc/rc.d/iscsi_target start'''
extent0        /dev/ad0        0              70GB
 
# NAME          ACCESS          STORAGE        NETMASK
 
target0        rw              extent0        193.40.0.0/24
 
 
 
Ja stardime serveri
 
 
 
# /usr/local/etc/rc.d/iscsi_target start
 
 
  Starting iscsi_target.
 
  Starting iscsi_target.
 
  Reading configuration from `/usr/local/etc/iscsi/targets'
 
  Reading configuration from `/usr/local/etc/iscsi/targets'
61. rida: 107. rida:
 
  TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target
 
  TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target
  
===Klient===
+
Meile oluline info on siin nimieks olev qn.1994-04.org.netbsd.iscsi-target
 +
seda läheb kliendi juures meil hiljem vaja
 +
 
 +
===Kliendi seadustus FreeBSD10 versioonis===
 +
 
 +
Esiteks peab olema starditud iscsi deemon. Selleks tuleb rc.confi kirjutada
 +
 
 +
iscsid_enable="YES"
 +
 
 +
Käsitsi saame deemoni startida käsuga
 +
 
 +
# service iscsid start
 +
 
 +
Ühendamiseks
 +
 
 +
# iscsictl -A -p 10.10.10.10 -t iqn.2012-06.com.example:target0
 +
 
 +
Kontrollimiseks
 +
 
 +
# iscsictl
 +
Target name                                    Target portal  State
 +
iqn.2012-06.com.example:target0                10.10.10.10    Connected: da0
 +
 
  
# nano /etc/iscsi.conf
+
Automaatseks külgevõtmiseks tuleb tekitada fail /etc/iscsi.conf järgneva sisuga:
  
  target0 { # nickname
+
  t0 {
        targetaddress        = 193.40.0.194
+
TargetAddress  = 10.10.10.10
        targetname          = iqn.1994-04.org.netbsd.iscsi-target:target0
+
        initiatorname  = iqn.1996-07.ee.test:server1             
 +
TargetName      = iqn.2012-06.com.example:target0
 
  }
 
  }
  
Laadime iscsi mooduli
+
Kui InitiatorName ei ole seadistatud kasutatakse vaikimisi kujul iqn.2005-01.il.ac.huji.cs:<hostname>.
 +
 
 +
Samuti on vajalik failiõigused paika seadistada.
 +
 
 +
# chmod 750 /etc/iscsi.conf
 +
 
 +
Selleks, et konfis defineeritud target ühendada
 +
 
 +
# iscsictl -An t0
 +
 
 +
Kõigi konfiguratsioonis defineeritud targetite ühendamiseks
 +
 
 +
# iscsictl -Aa
 +
 
 +
Selleks, et startimisel kõik kettad ühendataks tuleb rc.confi lisada
 +
 
 +
iscsictl_enable="YES"
 +
iscsictl_flags="-Aa"
 +
 
 +
I had put # REQUIRE: mountcritlocal iscsictl
 +
in /etc/rc.d/zfs , trying to make zfs start after iscsi, since the zfs
 +
 
 +
===Kliendi seadistus FreeBSD9 ja vanemates versioonides===
 +
 
 +
Laadime seejärel iscsi mooduli mis FreeBSD7'mest alates vaikuimisi juba kaasas
  
 
  # kldload iscsi_initiator
 
  # kldload iscsi_initiator
  
Selleks ,et automaatselt moodul laaditaks lisame
+
Boodilt startimiseks
 +
 
 +
# echo 'iscsi_initiator_load="YES"' >>/boot/loader.conf
 +
 
 +
Vaatame mis jaotised saadaval on
  
  # nano /etc/rc.conf
+
  # iscontrol -v -d targetaddress=10.4.4.1 initiatorname=iqn.2004-04.org.freebsd:initiator-server1
 +
 
 +
*Targetaddress - iSCSI serveri aadress
 +
*initatorname - kliendi unikaalne nimi (võib kirjutada ka täisnime nt: iqn.2004-04.org.freebsd:initiator-server1).
 +
 
 +
Kui see pole määratud tekitab bsd automaatselt iqn.2005-01.il.ac.huji.cs:<hostname>
 +
 
 +
Käsureal jaotise külgevõtmine ühe reaga
 +
 
 +
# iscontrol -p /run/iscsi-suvakas.pid InitiatorName=iqn.2004-04.org.freebsd:initiator-server1 TargetName=iqn.1994-04.org.netbsd.iscsi-target:target0 TargetAddress=10.4.4.2
 +
 
 +
dmesgi/message logi peaks ilmuma read
 +
 
 +
da1 at iscsi0 bus 0 target 0 lun 0
 +
da1: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device
 +
 
 +
Boodil iscsi automaatne külgevõtmine. Esimesena on vajalik teha seadistusfail kust ja mida on võimalik külge haakida
 +
 
 +
/etc/iscsi.conf
 +
 
 +
target0 {
 +
        targetaddress        = 193.40.0.194
 +
        initiatorname        = iqn.2004-04.org.freebsd:initiator-server1
 +
        targetname          = iqn.1994-04.org.netbsd.iscsi-target:target0
 +
}
 +
 
 +
Selleks ,et automaatselt moodul laaditaks lisame /boot/loader.conf faili rea
  
 
  iscsi_initiator_load="YES"
 
  iscsi_initiator_load="YES"
  
Ning haagime ketta külge
+
Ning haagime seejärel ketta külge
  
  # iscontrol -n target0
+
  '''# iscontrol -n target0'''
 
  # iscontrol[1464]: running  
 
  # iscontrol[1464]: running  
 
  iscontrol[1464]: (pass1:iscsi0:0:0:0):  tagged openings now 0
 
  iscontrol[1464]: (pass1:iscsi0:0:0:0):  tagged openings now 0
90. rida: 213. rida:
 
  iscontrol: supervise starting main loop
 
  iscontrol: supervise starting main loop
  
dmesgi/message logi peaks ilmuma read
+
Selleks, et boodijärgselt ka kohe õieg viilakas külge haagitaks tekitame järgneva "iscsi" nimelise skripti /usr/local/etc/rc.d alla
 +
 
 +
<source lang=bash>
 +
#!/bin/sh
 +
 
 +
# PROVIDE: iscsi
 +
# REQUIRE: NETWORKING
 +
# BEFORE: amd LOGIN
 +
# KEYWORD: shutdown
 +
 
 +
. /etc/rc.subr
 +
 
 +
name="iscsi"
 +
rcvar=`set_rcvar`
 +
command="/sbin/iscontrol"
 +
stop_cmd=":"
 +
start_postcmd="zfs_mount"
 +
 
 +
zfs_mount() {
 +
    if checkyesno zfs_enable ; then
 +
        sleep 5 # give time for iscsi to setup
 +
        zfs mount -a # mount newly available file systems
 +
    fi
 +
}
 +
 
 +
load_rc_config $name
 +
run_rc_command "$1"
 +
</source>
 +
 
 +
Rc.confi kirjutame
 +
 
 +
iscsi_enable="YES"
 +
iscsi_flags="-n target0"
 +
 
 +
Skript võetud sellelt urlilt http://www.sysadmin-cookbook.net/iscsi/
  
da1 at iscsi0 bus 0 target 0 lun 0
+
Teenuste startimisest täpsemalt juttu manuaalis http://www.freebsd.org/doc/handbook/configtuning-starting-services.html
da1: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device
 
  
 
====Kasutamine ja katsetamine====
 
====Kasutamine ja katsetamine====
  
  # newfs /dev/da1
+
Värskelt masinasse ilmunud block devicele uus failisüsteem
 +
 
 +
  '''# newfs /dev/da1'''
 
  /dev/da1: 71680.0MB (146800640 sectors) block size 16384, fragment size 2048
 
  /dev/da1: 71680.0MB (146800640 sectors) block size 16384, fragment size 2048
 
         using 391 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
 
         using 391 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
105. rida: 263. rida:
 
   12796128, 13172480, 13548832, 13925184, 14301536, 14677888, 15054240, 15430592, 15806944, 16183296, 16559648, 16936000, 17312352, 17688704, 18065056 ...
 
   12796128, 13172480, 13548832, 13925184, 14301536, 14677888, 15054240, 15430592, 15806944, 16183296, 16559648, 16936000, 17312352, 17688704, 18065056 ...
  
 +
Seejärel ühendame selle külge /home/net alla
  
 
  # mount /dev/da1 /home/net/
 
  # mount /dev/da1 /home/net/
  # df
+
  '''# df'''
 
  Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
 
  Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
 
  ...
 
  ...
 
  /dev/da1    71085512      4  65398668    0%    /usr/home/net
 
  /dev/da1    71085512      4  65398668    0%    /usr/home/net
  
1.1giga kirjutuskiiruse test 100Mb võrgus
+
Ja testime 1.1gigabaidise failiga kirjutuskiirust 100Mb võrgus
  
 
  # dd if=/dev/zero of=zero-file bs=1024 count=1048576
 
  # dd if=/dev/zero of=zero-file bs=1024 count=1048576
118. rida: 277. rida:
 
  1048576+0 records out
 
  1048576+0 records out
 
  1073741824 bytes transferred in 117.719325 secs (9121203 bytes/sec)
 
  1073741824 bytes transferred in 117.719325 secs (9121203 bytes/sec)
 +
 +
===Jõudlus===
 +
 +
FreeBSD süsteemis iSCSI jõudluse suurendamiseks
 +
 +
Vaatame mis vaikeseadistuseks
 +
 +
:~# camcontrol tags /dev/da2
 +
(pass8:iscsi0:0:0:1): device openings: 1
 +
 +
Muudame
 +
 +
:~# camcontrol tags /dev/da2 -N 256
 +
(pass8:iscsi0:0:0:1): tagged openings now 256
 +
(pass8:iscsi0:0:0:1): device openings: 256
 +
 +
Kontrollime kas muutus
 +
 +
:~# camcontrol tags /dev/da2
 +
(pass8:iscsi0:0:0:1): device openings: 256
 +
 +
=== ZFS volume jagamine ===
 +
Tegemist siis LVMi analoogiaga FreeBSD jaoks. Toimub sarnasent nagu tavalise kettagagi. Tekitame näiteks terabaidi suuruse zfs volume
 +
 +
# zfs create -V 1024g tank/iscsi
 +
 +
Vaatame zfs loendit
 +
 +
# zfs list
 +
NAME        USED  AVAIL  REFER  MOUNTPOINT
 +
tank        1.00T  1.56T  28.8K  /tank
 +
tank/iscsi      1T  2.56T  25.6K  -
 +
 +
Fail tekib ise /dev/zvol/ kausta
 +
 +
Antud juhul on selleks
 +
 +
/dev/zvol/tank/iscsi
 +
 +
Mille võib jagada kas istg või iscsi-target abil välja jagada kasutades
 +
eelnevaid juhendeid. Hetkel kahjuks ZFSi enda iSCSI jagamise käsk ei toimi
 +
kuna FreeBSD ei sisalda iSCSI targetit vaikimisi.
 +
 +
*http://www.markround.com/archives/38-ZFS-Replication.html
 +
 +
===Multipath FreeBSD peal===
 +
 +
cat /boot/loader.conf
 +
geom_multipath_load="YES"
 +
 +
Esimesest allikast ketas külge
 +
 +
da2 at iscsi0 bus 0 scbus7 target 0 lun 1
 +
da2: <HP HSV360 0005> Fixed Direct Access SCSI-5 device
 +
da2: 33554432MB (68719476736 512 byte sectors: 255H 63S/T 4277589C)
 +
 +
Teisest allikast ketas külge
 +
 +
da3 at iscsi1 bus 0 scbus8 target 0 lun 1
 +
da3: <HP HSV360 0005> Fixed Direct Access SCSI-5 device
 +
da3: 33554432MB (68719476736 512 byte sectors: 255H 63S/T 4277589C)
 +
 +
Kahe allika põhjal ühe blokkseadme loomine
 +
 +
# '''gmultipath create -A HPHSV360 /dev/da2 /dev/da3'''
 +
GEOM_MULTIPATH: HPHSV360 created
 +
GEOM_MULTIPATH: da2 added to HPHSV360
 +
GEOM_MULTIPATH: da3 added to HPHSV360
 +
 +
Zfsi külge haakimine
 +
 +
# '''zpool import -d /dev/multipath zp1'''
 +
 +
:~> zpool status
 +
  pool: zp1
 +
  state: ONLINE
 +
  scan: none requested
 +
config:
 +
 +
        NAME                  STATE    READ WRITE CKSUM
 +
        zp1                  ONLINE      0    0    0
 +
          multipath/HPHSV360  ONLINE      0    0    0
 +
 +
http://www.freebsd.org/cgi/man.cgi?query=gmultipath&sektion=8&manpath=FreeBSD+9.1-RELEASE

Viimane redaktsioon: 1. oktoober 2014, kell 00:35

Sissejuhatus

iSCSI tehnoloogia võimaldab üle TCP/IP võrgu ühendada klientarvutile külge plokk-seadme vastavat teenust pakkuvast serverist, kusjuures on kombeks kasutada selliseid nimetusi kliendi ja serveri kohta

  • initiator - iSCSI klient
  • target - iSCSI server

Target ja initiator arvutid võivad kasutada erinevaid operatsioonisüsteeme ning asuda ka erinevatel riistvaralistel platvormidel. Kuna andmevahetuse maht võib kujuneda suureks, siis võib olla mõistlik lisaks kasutusele võtta ainult iSCSI jaoks eraldatud võrgusegment.

FreeBSD8 versiooniga tuleb kaasa sisseehitatud iSCSI initiator ja iscontrol käsurea utiliit. Kahjuks puudub hetkel iSCSI target.

Selleks, et kasutada iSCSI targetit on olemas kaks rakendus portsudes. Esiteks "iscsi-target" (/usr/ports/net/iscsi-target), mis on vahem ja NetBSD pealt porditud lahendus. Teiseks "istgt" (/usr/ports/net/istgt/), mis kaasaegse, uuem ja originaalselt kirjutatud FreeBSD jaoks ning seda kasutab ka FreeNAS lahendus. Üldiselt soovitatakse tungivalt kasutada võimaluse korral "istgt" tarkvara.

istgt paigaldamine

istgt asub portsude kaustas /usr/ports/net/istgt/

# cp auth.conf.sample auth.conf
# cp istgt.conf.sample istgt.conf
# cp istgtcontrol.conf.sample istgtcontrol.conf

Istgt.conf (/usr/local/etc/istgt/istgt.conf) on üsna pikk ja paljude võimalustega fail seega tooks välja vaid kõige lihtsamad muudatused mis vajalikud, et jagamine tööle hakkals. Selleks vaikeseadistustesse võiks teha järgnevad muudatused:

Lülitada [UnitControl] autentimine esialgu välja

 AuthMethod Auto
 #AuthMethod CHAP Mutual
 #AuthGroup AuthGroup10000

Lisada [PortalGroup1] alla enda seadme IP aadressi ja pordi millel tarkvara kuulab

 Portal DA1 193.40.0.189:3260

[InitiatorGroup1] lubaks võrgu mis pääseb ligi

 InitiatorName "ALL"
 Netmask 193.40.0.0/24

Ning seadistada seejärels [LogicalUnit1] juures enda block seadme mida jagatakse võrku ning selle suuruse

  LUN0 Storage /dev/zvol/srv/iscsi1 Auto

Käivitame serveri

# /usr/local/etc/rc.d/istgt start
Starting istgt.
istgt version 0.3 (20100707)
LU1 HDD UNIT
LU1: LUN0 file=/dev/zvol/srv/iscsi1, size=1099511627776
LU1: LUN0 2147483648 blocks, 512 bytes/block
LU1: LUN0 1024.0GB storage for iqn.2007-09.jp.ne.peach.istgt:disk1
LU1: LUN0 command queuing disabled

http://wiki.virtastic.com/display/howto/FreeBSD+7.2+with+ZFS+as+an+iSCSI+target

http://people.freebsd.org/~rse/iscsi/iscsi.txt

Iscsi-targeti paigaldamine

# cd /usr/ports/net/iscsi-target/
# make install
===> Installing rc.d startup script(s)
===>   Compressing manual pages for iscsi-target-20080207_2
===>   Registering installation for iscsi-target-20080207_2
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/bin/iscsi-target 

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/iscsi_target

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.netbsd.org/


Seejärel jagame välja füüsilise ketta. See on meil küljes seadmena /dev/ad0 suurusega 70GB Võrk kuhu jagamine on 192.168.0.0/24

/usr/local/etc/iscsi/targets

# NAME          DEVICE          START           LENGTH
extent0         /dev/ad0        0               70GB
# NAME          ACCESS          STORAGE         NETMASK
target0         rw              extent0         192.168.0.0/24

et reboodil automaatselt server starditaks Avame /etc/rc.conf ja lisame rea

iscsi_target_enable="YES"

Ja stardime serveri

# /usr/local/etc/rc.d/iscsi_target start
Starting iscsi_target.
Reading configuration from `/usr/local/etc/iscsi/targets'
target0:rw:193.40.0.0/24
        extent0:/dev/ad0:0:75161927680
DISK: 1 logical unit (146800640 blocks, 512 bytes/block), type iscsi fs
DISK: LUN 0: 71680 MB disk storage for "target0"
TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target

Meile oluline info on siin nimieks olev qn.1994-04.org.netbsd.iscsi-target seda läheb kliendi juures meil hiljem vaja

Kliendi seadustus FreeBSD10 versioonis

Esiteks peab olema starditud iscsi deemon. Selleks tuleb rc.confi kirjutada

iscsid_enable="YES"

Käsitsi saame deemoni startida käsuga

# service iscsid start

Ühendamiseks

# iscsictl -A -p 10.10.10.10 -t iqn.2012-06.com.example:target0

Kontrollimiseks

# iscsictl
Target name                                     Target portal   State
iqn.2012-06.com.example:target0                 10.10.10.10     Connected: da0


Automaatseks külgevõtmiseks tuleb tekitada fail /etc/iscsi.conf järgneva sisuga:

t0 {
	TargetAddress   = 10.10.10.10
       initiatorname   = iqn.1996-07.ee.test:server1              
	TargetName      = iqn.2012-06.com.example:target0
}

Kui InitiatorName ei ole seadistatud kasutatakse vaikimisi kujul iqn.2005-01.il.ac.huji.cs:<hostname>.

Samuti on vajalik failiõigused paika seadistada.

# chmod 750 /etc/iscsi.conf

Selleks, et konfis defineeritud target ühendada

# iscsictl -An t0

Kõigi konfiguratsioonis defineeritud targetite ühendamiseks

# iscsictl -Aa

Selleks, et startimisel kõik kettad ühendataks tuleb rc.confi lisada

iscsictl_enable="YES"
iscsictl_flags="-Aa"

I had put # REQUIRE: mountcritlocal iscsictl in /etc/rc.d/zfs , trying to make zfs start after iscsi, since the zfs

Kliendi seadistus FreeBSD9 ja vanemates versioonides

Laadime seejärel iscsi mooduli mis FreeBSD7'mest alates vaikuimisi juba kaasas

# kldload iscsi_initiator

Boodilt startimiseks

# echo 'iscsi_initiator_load="YES"' >>/boot/loader.conf

Vaatame mis jaotised saadaval on

# iscontrol -v -d targetaddress=10.4.4.1 initiatorname=iqn.2004-04.org.freebsd:initiator-server1
  • Targetaddress - iSCSI serveri aadress
  • initatorname - kliendi unikaalne nimi (võib kirjutada ka täisnime nt: iqn.2004-04.org.freebsd:initiator-server1).

Kui see pole määratud tekitab bsd automaatselt iqn.2005-01.il.ac.huji.cs:<hostname>

Käsureal jaotise külgevõtmine ühe reaga

# iscontrol -p /run/iscsi-suvakas.pid InitiatorName=iqn.2004-04.org.freebsd:initiator-server1 TargetName=iqn.1994-04.org.netbsd.iscsi-target:target0 TargetAddress=10.4.4.2

dmesgi/message logi peaks ilmuma read

da1 at iscsi0 bus 0 target 0 lun 0
da1: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device

Boodil iscsi automaatne külgevõtmine. Esimesena on vajalik teha seadistusfail kust ja mida on võimalik külge haakida

/etc/iscsi.conf

target0 {
        targetaddress        = 193.40.0.194
        initiatorname        = iqn.2004-04.org.freebsd:initiator-server1
        targetname           = iqn.1994-04.org.netbsd.iscsi-target:target0
}

Selleks ,et automaatselt moodul laaditaks lisame /boot/loader.conf faili rea

iscsi_initiator_load="YES"

Ning haagime seejärel ketta külge

# iscontrol -n target0
# iscontrol[1464]: running 
iscontrol[1464]: (pass1:iscsi0:0:0:0):  tagged openings now 0
iscontrol[1464]: cam_open_btl: no passthrough device found at 1:0:1
iscontrol[1464]: cam_open_btl: no passthrough device found at 1:0:2
iscontrol[1464]: cam_open_btl: no passthrough device found at 1:0:3
iscontrol: supervise starting main loop

Selleks, et boodijärgselt ka kohe õieg viilakas külge haagitaks tekitame järgneva "iscsi" nimelise skripti /usr/local/etc/rc.d alla

#!/bin/sh

# PROVIDE: iscsi
# REQUIRE: NETWORKING
# BEFORE: amd LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="iscsi"
rcvar=`set_rcvar`
command="/sbin/iscontrol"
stop_cmd=":"
start_postcmd="zfs_mount"

zfs_mount() {
    if checkyesno zfs_enable ; then
        sleep 5		# give time for iscsi to setup
        zfs mount -a	# mount newly available file systems
    fi
}

load_rc_config $name
run_rc_command "$1"

Rc.confi kirjutame

iscsi_enable="YES"
iscsi_flags="-n target0"

Skript võetud sellelt urlilt http://www.sysadmin-cookbook.net/iscsi/

Teenuste startimisest täpsemalt juttu manuaalis http://www.freebsd.org/doc/handbook/configtuning-starting-services.html

Kasutamine ja katsetamine

Värskelt masinasse ilmunud block devicele uus failisüsteem

# newfs /dev/da1
/dev/da1: 71680.0MB (146800640 sectors) block size 16384, fragment size 2048
        using 391 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,  6398144,
 6774496, 7150848, 7527200, 7903552, 8279904, 8656256, 9032608, 9408960, 9785312, 10161664, 10538016, 10914368, 11290720, 11667072, 12043424, 12419776,
 12796128, 13172480, 13548832, 13925184, 14301536, 14677888, 15054240, 15430592, 15806944, 16183296, 16559648, 16936000, 17312352, 17688704, 18065056 ...

Seejärel ühendame selle külge /home/net alla

# mount /dev/da1 /home/net/
# df
Filesystem  1K-blocks    Used     Avail Capacity  Mounted on
...
/dev/da1     71085512       4  65398668     0%    /usr/home/net

Ja testime 1.1gigabaidise failiga kirjutuskiirust 100Mb võrgus

# dd if=/dev/zero of=zero-file bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 117.719325 secs (9121203 bytes/sec)

Jõudlus

FreeBSD süsteemis iSCSI jõudluse suurendamiseks

Vaatame mis vaikeseadistuseks

:~# camcontrol tags /dev/da2
(pass8:iscsi0:0:0:1): device openings: 1

Muudame

:~# camcontrol tags /dev/da2 -N 256
(pass8:iscsi0:0:0:1): tagged openings now 256
(pass8:iscsi0:0:0:1): device openings: 256

Kontrollime kas muutus

:~# camcontrol tags /dev/da2
(pass8:iscsi0:0:0:1): device openings: 256

ZFS volume jagamine

Tegemist siis LVMi analoogiaga FreeBSD jaoks. Toimub sarnasent nagu tavalise kettagagi. Tekitame näiteks terabaidi suuruse zfs volume

# zfs create -V 1024g tank/iscsi

Vaatame zfs loendit

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank         1.00T  1.56T  28.8K  /tank
tank/iscsi      1T  2.56T  25.6K  -

Fail tekib ise /dev/zvol/ kausta

Antud juhul on selleks

/dev/zvol/tank/iscsi 

Mille võib jagada kas istg või iscsi-target abil välja jagada kasutades eelnevaid juhendeid. Hetkel kahjuks ZFSi enda iSCSI jagamise käsk ei toimi kuna FreeBSD ei sisalda iSCSI targetit vaikimisi.

Multipath FreeBSD peal

cat /boot/loader.conf
geom_multipath_load="YES"

Esimesest allikast ketas külge

da2 at iscsi0 bus 0 scbus7 target 0 lun 1
da2: <HP HSV360 0005> Fixed Direct Access SCSI-5 device
da2: 33554432MB (68719476736 512 byte sectors: 255H 63S/T 4277589C)

Teisest allikast ketas külge

da3 at iscsi1 bus 0 scbus8 target 0 lun 1
da3: <HP HSV360 0005> Fixed Direct Access SCSI-5 device
da3: 33554432MB (68719476736 512 byte sectors: 255H 63S/T 4277589C)

Kahe allika põhjal ühe blokkseadme loomine

# gmultipath create -A HPHSV360 /dev/da2 /dev/da3
GEOM_MULTIPATH: HPHSV360 created
GEOM_MULTIPATH: da2 added to HPHSV360
GEOM_MULTIPATH: da3 added to HPHSV360

Zfsi külge haakimine

# zpool import -d /dev/multipath zp1

:~> zpool status
  pool: zp1
  state: ONLINE
  scan: none requested
config:

        NAME                  STATE     READ WRITE CKSUM
        zp1                   ONLINE       0     0     0
          multipath/HPHSV360  ONLINE       0     0     0

http://www.freebsd.org/cgi/man.cgi?query=gmultipath&sektion=8&manpath=FreeBSD+9.1-RELEASE