This is an old revision of the document!


04. Configurarea unui target iSCSI (Linux IO Target)

Într-un sistem de tipul Cluster/Grid, deseori este necesară accesarea unui block-device de distanță, iar operațiile suportate să fie aceleași ca și cazul în care respectivul block-device (disc) este conectat local, direct la placa de bază a stației respective. Acest lucru este posibil prin protocolul iSCSI care transpune împachetează toate comenzile protocolului de comunicație cu discuri SCSI în pachete IP. Astfel este posibilă accesarea la distanță a oricărui disc, ba chiar partajarea acestuia între mai multe entități, nivelul de granularitate fiind blocul de date (nu mai există sistem de fișiere ca în cazul protocolului NFS).

În nomenclatura iSCSI, serverul ce pune la dispoziția clientului diferite block-device-uri poartă numele de target. Pe Linux, target-ul iSCSI implicit inclus în nucleu se numește Linux IO. Vom instala serverul de iSCSI pe stația storage1 (pachetul poartă numele de targetcli cu opțiunea –no-install-recommends pentru a nu instala pachete recomandate, întrucât dimensiunea acestora este foarte marea).:

root@storage1:~# apt-get install --no-install-recommends targetcli

targetcli este un command line interface creat pentru management-ul serverului de iSCSI (target) pe Linux. Target-ul LIO de pe Linux este capabil să exporte discuri ce au mediu de stocare discuri fizice sau fișiere printre altele. Vom deschide targetcli pe stația storage1:

root@storage1:~# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli GIT_VERSION (rtslib GIT_VERSION)
Copyright (c) 2011-2013 by Datera, Inc.
All rights reserved.
Loaded iscsi_target_mod kernel module.
[...]
/> ls
o- / ............................................... [...]
  o- backstores .................................... [...]
  | o- fileio ......................... [0 Storage Object]
  | o- iblock ......................... [0 Storage Object]
  | o- pscsi .......................... [0 Storage Object]
  | o- rd_dr .......................... [0 Storage Object]
  | o- rd_mcp ......................... [0 Storage Object]
  o- ib_srpt ................................. [0 Targets]
  o- iscsi ................................... [0 Targets]
  o- loopback ................................ [0 Targets]
  o- qla2xxx ................................. [0 Targets]
  o- tcm_fc .................................. [0 Targets]

Cu ajutorul comenzii ls vedem toate configurațiile de la un moment dat. Acestea sunt organizate ca o ierarhie de fișiere. Observați toate tipurile de backstores care pot fi exportate. Noi vom lucra cu tipul fileio (fișiere) și iblock (discuri fizice). Dorim să creăm un backstore de tipul fileio:

/> cd backstores
/backstores> cd fileio
/backstores/fileio> help create
SYNTAX
  create name file_or_dev [size] [generate_wwn] [buffered]

Observați că putem să explorăm ierarhia de configurații folosind comanda cd. Am folosit comanda help create pentru a vedea ce opțiuni avem pentru crearea unui backstore. Vom crea un backstore de dimensiunea 100M ce are ca suport fișierul /disk1.img:

/backstores/fileio> create disk1 /disk1.img 100MB
Generating a wwn serial.
Not using buffered mode.
Created fileio disk1.

Următorul pas va fi să creăm un IQN (iSCSI Qualified Name) pentru target-ul nostru în subierarhia de configurare iscsi:

/backstores/fileio> cd /iscsi
/iscsi> help create
SYNTAX
  create [wwn]
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d.
Selected TPG Tag 1.
Successfully created TPG 1.

În continuare vom dezactiva autentificarea asociată cu acest IQN. Vom folosi comanda cd urmată de valoarea IQN generată pentru a intra în modul de configurare ale acesteia (puteți folosi auto-complete), după care vom folosi intra:

/iscsi> cd iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d/
/iscsi/iqn.20....25e09e86bb4d> ls
o- iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d .......... [1 TPG]
  o- tpgt1 ........................................................... [enabled]
    o- acls ........................................................... [0 ACLs]
    o- luns ........................................................... [0 LUNs]
    o- portals ..................................................... [0 Portals]

Observați că trebuie să mergem pe intrarea tpgt1 (este un tag intern asociat IQN-ului). Aici vom configura parametrii de autentificare:

/iscsi/iqn.20....25e09e86bb4d> cd tpgt1/
/iscsi/iqn.20...e86bb4d/tpgt1> set parameter AuthMethod=None
Parameter AuthMethod is now 'None'.
/iscsi/iqn.20...e86bb4d/tpgt1> set attribute authentication=0
Parameter authentication is now '0'.

Observați alte 3 sub-categorii de configurații:

  • acls - filtrarea accesului
  • luns (Logical Unit Number) - dispozitiv logic adresat de client
  • portals - nivelul rețea prin care se va face legătura la target

În concluzie trebuie să creăm cel puțin un portal pentru accesul la IQN prin rețea:

/iscsi/iqn.20...e86bb4d/tpgt1> cd portals
/iscsi/iqn.20...tpgt1/portals> create
Using default IP port 3260
Automatically selected IP address 192.168.1.1.
Successfully created network portal 192.168.1.1:3260.
/iscsi/iqn.20...tpgt1/portals> cd ..

Observați că automat a selectat adresa IP a interfeței eth0 și portul 3260. Vom crea un dispozitiv logic cu ajutorul căruia vom referenția backstore-ul:

/iscsi/iqn.20...e86bb4d/tpgt1> cd luns
/iscsi/iqn.20...4d/tpgt1/luns> create /backstores/fileio/disk1
Selected LUN 0.
Successfully created LUN 0.

În submeniul acls va trebuie să înregistrăm clienții iSCSI folosind IQN-ul acestora. Deocamdată nu știm IQN-ul clienților, îl vom configura după ce instalăm clienții de iSCSI. Să vizualizăm configurația actuală:

/> ls
o- / .................................................................................... [...]
  o- backstores ......................................................................... [...]
  | o- fileio .............................................................. [1 Storage Object]
  | | o- disk1 ......................................................... [/disk1.img activated]
  | o- iblock .............................................................. [0 Storage Object]
  | o- pscsi ............................................................... [0 Storage Object]
  | o- rd_dr ............................................................... [0 Storage Object]
  | o- rd_mcp .............................................................. [0 Storage Object]
  o- ib_srpt ...................................................................... [0 Targets]
  o- iscsi ......................................................................... [1 Target]
  | o- iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d ..................... [1 TPG]
  |   o- tpgt1 ...................................................................... [enabled]
  |     o- acls ...................................................................... [0 ACLs]
  |     o- luns ....................................................................... [1 LUN]
  |     | o- lun0 ................................................. [fileio/disk1 (/disk1.img)]
  |     o- portals ................................................................. [1 Portal]
  |       o- 192.168.1.1:3260 ............................................. [OK, iser disabled]
  o- loopback ..................................................................... [0 Targets]
  o- qla2xxx ...................................................................... [0 Targets]
  o- tcm_fc ....................................................................... [0 Targets]
saisp/labs/06/contents/04.1396111871.txt.gz · Last modified: 2014/03/29 18:51 by mihai.carabas
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0