iSCSI + GFS

Zaklady

Pojmy

SAN – Storage Area Network

  • architektura systemu pro ukladani dat
  • datova uloziste jsou na separatnich serverech / zarizenich (Storage Arrays, …)
  • aplikacnim serverum se svazky jevi jako „lokalne primountovane“

SCSI – Small Computer System Interface

  • prikazy rizena sbernice
  • podporuje napr. hotplugging, autodiscovery, etc.
  • drive povazovan za profesionalni a univrzalnejsi protejsek sbernici (E)IDE a podobnym

iSCSI

  • Storage Area Network (SAN) protokol
  • emulace SCSI rozhrani nad IP infrastrukturou
  • client / server architektura
    • server – target
    • client – initiator
  • auto-discovery

Jmenne schema – jak je pojmenovan target?

  • napriklad: iqn.2006-03.cz.welbloud:storage.test1
  • iqn. – vnimejme jako pevnou soucast
  • cz.welbloud – domenove jmeno v teckove notaci, ale od konce
  • 2006-03 – casovy udaj registrace domeny, domeny se prodavaji a kupuji
  • zbytek za pomlckou – cokoliv, co nam pomuze udrzet nase diskova zarizeni v poradku, v teckove notaci (?)

„discovery“ metody

  • iSNS
  • SendTarget
  • Service Location protocol (RFC 4018)
  • staticke prirazeni

nekolik dostupnych implementaci

  • Open iSCSI
  • Linux-iSCSI Project – oboji implementace iSCSI initiatoru pro linux
    • napada vas otazka, proc dva tymy vyvyji totez? Uz se spojili, vyvoj pokracuje pod hlavickou open iSCSI

Zastoupeni implementaci targetu v distribucich (nekompletni):

  • Debian: IET target v sid, backportovano do etch
  • CentOS (Redhat): v 5.0 tgt
  • Suse: v Suse 10.1 IET, v opensuse 10.2 nic ?

GFS -- Global File System

  • sdileny file system
  • lze jej pripojit nezavisle na nekolika strojich (predpoklada se vyuziti v clusterech)
  • vazany na jmeno clusteru
  • pojmenovany
  • nekolik mechanismu zamykani (FIXME)
  • jeden zurnal per stanice

MultiPath

  • podpora vice fyzickzch cest
  • vyuzitelne pro failover ci load balancing
  • podpurny demon v pravidelnych intervalech zkousi jedntlive cesty
  • implementovan napr. v device mapperu
    • vedlejsi rezim k napr. linear, snapshot, mirror

iSCSI HowTo

CentOS 5.0

# instalace baliku CentOS
yum install scsi-target-utils iscsi-initiator-utils
 
# 
# Target: 
#   * implementace "Linux SCSI target framework (tgt)"
#   * reference: /usr/share/doc/scsi-target-utils-0.0/
 
# spustime demona
tgtd
 
# vytvorime target s ID1 pod domenou welbloud.cz
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2006-03.cz.welbloud:storage.test1
 
# vytvorime logickou jednotku s cislem 1, ktera bude nabizet blokove zarizeni /dev/hdc
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/hdc
 
# overime
tgtadm --lld iscsi --op show --mode target
 
## ACL
 
# povolime pristup vsemm 
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
 
#zase jej odeberem
tgtadm --lld iscsi --op unbind --mode target --tid 1 -I ALL
 
# povolime pristup podsiti
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.11.0/24
 
# vytvorime uzivatele
tgtadm --lld iscsi --op new --mode account --user koleno --password loket
 
# prohledneme uzivatele
tgtadm --lld iscsi --op show --mode account
> Account list:
>     koleno
 
# 
# Initiator: 
#   * implementace Open-iSCSI
#   * Reference: /usr/share/doc/iscsi-initiator-utils*
#
 
# predpokladame:
#  * iSCSI target s adresou 10.0.0.1
#  * target ma povoleny pristup pro nase initiatory (IP based AAA, packet filtry)
 
# pridame nasledujici direktivu do /etc/iscsi.conf (CentOS 4.6) ci DiscoveryAddress = 147.251.50.157 (CentOS 5.0)
# tak se nam pripo
DiscoveryAddress=10.0.0.1
 
# pustime scsi demony -- semantika jednotliovych se ruzni 
/etc/init.d/iscsi start
/etc/init.d/iscsid start
 
# vypiseme, co jsem objevili
iscsiadm -m discovery --print=1

GFS HowTo

CentOS 4.6 / 5.0

# instalace baliku CentOS
# je treba spravne repo, viz. http://wiki.centos.org/Repositories
 
# CentOS 4.6
yum install GFS GFS-kernel-smp
 
# CentOS 5.0
yum install kmod-gfs  
 
# vytvoreni filesystemu
#  -t clustername:fsname -- vazba na jmeno clusteru a pojmenovani clusteru
#  -p lock_method -- (lock_dlm / lock_gulm / lock_nolock)
#  -j number -- pocet zurnalu, musi jich byt vic nez klientu
 
gfs_mkfs -t mycluster:mygfs -p lock_dlm -j 2 /dev/sdb1
 
# a pripojime jej 
mount -t gfs /dev/sdb1 /mnt/gfs_disk
 
# ... pokud nemame spustene Cluster Envirnonment, tak se nam pripojit nepoodari :(

Multipathing HowTo

CentOS 4.6 / 5.0

# instalace potrebny baliku
yum install device-mapper-multipath
 
# natazeni potrebneho modulu
modprobe dm-multipath
 
# je potreba zakomentovat "blacklisting", musi byt explicitne povolene zarizeni, kde se hleda multipath
vim /etc/multipath.conf
 
> #devnode_blacklist {
> #        devnode "*"
> #}
 
# spusteni multipath demona
/etc/init.d/multipathd start
 
#inicialni nacteni cest
multipath
 
# zjisteni aktualnich "multicest"
multipath -l
 
# pokud se vse povedlo:
#  *  blokova zarizeni se ukazuji jako /dev/mpathX
#  *  vytvorene oddily se ukazuji jako /dev/mpathXpY
#  *  X = cislo zarizeni, Y = cislo partisny na zarizeni

Tips & tricks

iSCSI

  • security: no cryptography support, vulerable to network sniffing and packet altering
    • solution with IPSec – serious performace hit
  • iSCSI uses TCP stream, the target usually listens at TCP port 3260.

Reference

RFC, ktera definuji iSCSI protokol:
  * RFC 3720 http://tools.ietf.org/html/rfc3720
  * RFC 3721 http://tools.ietf.org/html/rfc3721
 
comp/unix/iscsi-gfs.txt · Poslední úprava: 2008/04/08 13:41 autor: srerucha

TOPlist