Erinevus lehekülje "FreeBSD iSCSI" redaktsioonide vahel

Allikas: Kuutõrvaja
(ZFS volume jagamine)
(Multipath FreeBSD peal)
231. rida: 231. rida:
 
           multipath/HPHSV360  ONLINE      0    0    0
 
           multipath/HPHSV360  ONLINE      0    0    0
  
 
+
Testime
  
  
258. rida: 258. rida:
 
  %busy    0    0    84    77    0    0    0  3361888 free
 
  %busy    0    0    84    77    0    0    0  3361888 free
 
                                                     269248 buf
 
                                                     269248 buf
 +
 +
Zfsil võiks lasta mälusäästu huvides käsnata üksnes metadatat.

Redaktsioon: 9. jaanuar 2013, kell 17:34

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 seadistus

Esimesena on vajalik teha seadistusfail kust ja mida on võimalik külge haakida

/etc/iscsi.conf

target0 {
        targetaddress        = 193.40.0.194
        targetname           = iqn.1994-04.org.netbsd.iscsi-target:target0
}

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

# kldload iscsi_initiator

Selleks ,et automaatselt moodul laaditaks lisame rc.confi read

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

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

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)

ZFS volume jagamine

Toimub sarnasent nagu tavalise kettagagi. Tekitame näiteks 10Gb suuruse zfs volume ja jagame selle võrku

# 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

Esimesest allikast

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

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)

Tekitamine

# 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 tekitamine

# 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

Testime


    2 users    Load  1.42  0.57  0.28                  Jan  9 16:15

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
        Tot   Share      Tot    Share    Free           in   out     in   out
Act   37016    7348   658832     9388 3361376  count
All  249884    9264 1074623k    41908          pages
Proc:                                                            Interrupts
  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        cow   22784 total
  1          27       91k   13  93k  18k 2536             zfod ata0 14
                                                          ozfod ohci0 ohci
40.6%Sys   0.6%Intr 10.4%User  0.0%Nice 48.4%Idle        %ozfod  5831 em2 24
|    |    |    |    |    |    |    |    |    |    |       daefr  5572 em3 25
====================+>>>>>                                prcfr  7066 em0 26
                                         5 dtbuf    38763 totfr mpt0 28
Namei     Name-cache   Dir-cache    151513 desvn          react  1097 cpu0:timer
   Calls    hits   %    hits   %      8659 numvn          pdwak  1123 cpu1:timer
       3       3 100                  2101 frevn          pdpgs  1040 cpu3:timer
                                                          intrn  1055 cpu2:timer
 Disks   da0   da1   da2   da3   cd0   cd1 pass0    519664 wire
KB/t   0.00  0.00 62.04 62.17  0.00  0.00  0.00     23620 act
tps       0     0  1264  1219     0     0     0     24052 inact
MB/s   0.00  0.00 76.55 74.00  0.00  0.00  0.00           cache
%busy     0     0    84    77     0     0     0   3361888 free
                                                   269248 buf

Zfsil võiks lasta mälusäästu huvides käsnata üksnes metadatat.