iSCSI target және iSCSI initiator (client) баптау

Дереккөз: dreamcatcher.ru/linux/010_iscsi.html
Аты: Using iSCSI On Debian Lenny (Initiator And Target)
Аударма жасаған және эксперимент жүргізген: мен


Бұл анықтамалықта Debian Lenny операциялық жүйесіндегі басқарылатын iSCSI target және iSCSI initiator (client) жұмыстарын баптауларын қарастырамыз. iSCSI хаттамасы storage area network (SAN) хаттамалар жүйесіне кіреді. Ол iSCSI target-те орналасқан қойманы ethernet арқылы қолдануға мүмкіндік береді. iSCSI initiator басқа жүйелерде орналасқан қоймаларды, өзінің жеке физикалық дискісі сияқты қолдануға мүмкіндік береді.

Мысалға, мен Debian Lenny негізіндегі екі серверді қолданамын делік:

* server1.example.com (Initiator): IP address 192.168.0.100
* server2.example.com (Target): IP address 192.168.0.101

Target (server2) серверін көтереміз

Қажетті пакеттерді орнатамыз:

aptitude install iscsitarget iscsitarget-modules-`uname -r`

Одан кейін /etc/default/iscsitarget конфигурациялық файлын өзгертеміз:

vi /etc/default/iscsitarget

Оның ішінде келесі параметрді өзгертеміз:

ISCSITARGET_ENABLE=true

Қойма ретінде біз бос қатқыл дисктерді (мысалға /dev/sdb), қатқыл дисктегі бөлімдерді (/dev/sdb1) немес RAID массивтерді (мысалға /dev/md0) қолдануымызға болады. Бірақ мен осы мысалды арнайы 20GB салмақпен логикалық том жасаймын. Логикалық том vg0 логикалық тобына кіретін storage_lun1 деген атта болады:

lvcreate -L20G -n storage_lun1 vg0

Егер сіз мен сияқты қойма ретінде кескінді қолданғыңыз келсе, онда 20 Gb-тық том жасау үшін келесі команданы орындаңыз:
mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

/etc/ietd.conf файлын төмендегі жолдардан басқасының барлығы комментарий жасау (жолдың басына # символын қою) арқылы өзгертеміз:

[...]
Target iqn.2001-04.com.example:storage.lun1
IncomingUser someuser secret
OutgoingUser
Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio
Alias LUN1
#MaxConnections 6

Target-тің атын «iSCSI Qualified Name» стандартымен анықталып, мына түрде белгіленеді: iqn.yyyy-mm.[:identifier], мұндағы yyyy-mm доменнің қай уақытқа дейін жұмыс істейтіні көрсетілген, ал identifier параметрін өздігінше таңдауымызға болады.
IncomingUser өрісі initiators (clients) -ға қоймаға рұқсат берілетін логин мен құпия сөзді сақтайды. Егер бұл параметрдің қажеттілігі туындамаса жолды бос қалдырамыз.
Lun параметрі қойманың толық жолын (адресін) көрсетеді (мысалға /dev/vg0/storage_lun1, /storage/lun1.img, /dev/sdb, т.б.).

Енді target-ке iqn.2001-04.com.example:storage.lun1 құрылғысына рұқсатты келесі адрестен 192.168.0.100 (server1.example.com) беретінімізді көрсетейік. Ол үшін vi командасы арқылы /etc/initiators.allow ашамыз және келесіні қосамыз:

[...]
iqn.2001-04.com.example:storage.lun1 192.168.0.100

Одан кейін target-ті қосуымызға болады:

/etc/init.d/iscsitarget start

Initiator (server1) серверін көтереміз

Server1-ге initiator-дың жұмысын қамтамасыз ететін пакеттерін орнатамыз:

aptitude install open-iscsi

Бұл служба автоматты түрде қосылу үшін келесі файлға /etc/iscsi/iscsid.conf өзгертулерді енгіземіз:

[...]
node.startup = automatic
[...]

Одан кейін initiator-ді қайта қосамыз:

/etc/init.d/open-iscsi restart

Енді біз target (server2) серверінің қоймасына қосылып көреміз:

server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

iqn.2001-04.com.example:storage.lun1 қоймасының баптаулары /etc/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,326
0,1/default файлында автоматты түрде сақталады. Бірақ сізге бұл файлды қоймаға рұқсат алу үшін логин мен құпия сөзді қосуыңыз қажет. Файлды қолмен өзгертпеу үшін iscsiadm утилитасын қолдануымызға болады:

iscsiadm -m node --targetname «iqn.2001-04.com.example:storage.lun1» --portal «192.168.0.101:3260» \
--op=update --name node.session.auth.authmethod --value=CHAP
iscsiadm -m node --targetname «iqn.2001-04.com.example:storage.lun1» --portal «192.168.0.101:3260» \
--op=update --name node.session.auth.username --value=someuser
iscsiadm -m node --targetname «iqn.2001-04.com.example:storage.lun1» --portal «192.168.0.101:3260» \
--op=update --name node.session.auth.password --value=secret

Енді біз төмендегі команда арқылы қоймаға қосыла аламыз:

server1:~# iscsiadm -m node --targetname «iqn.2001-04.com.example:storage.lun1» --portal «192.168.0.101:3260» --login

Logging in to [iface: default, target: iqn.2001-04.com.example:storage.lun1, por
tal: 192.168.0.101,3260]
Login to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal:
192.168.0.101,3260]: successful
server1:~#

Немесе initiator-ды қайта қосамыз:

/etc/init.d/open-iscsi restart

Егер сіз target-пен байланысты үзгініз келсе, онда келесі команданы қолданыңыз:

iscsiadm -m node --targetname «iqn.2001-04.com.example:storage.lun1» --portal «192.168.0.101:3260» --logout

fdisk -l командасының нәтижесін көретін болсақ, жаңа қатқыл дискінің пайда болғаның байқаймыыз (нақты мысалда /dev/sdb):

server1:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00031334

Device Boot Start End Blocks Id System
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Extended
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
server1:~#

Жаңа пайда болған құрылғыны қолдану үшін оны форматтаймыз:

server1:~# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x882944df.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

The number of cylinders for this disk is set to 20480.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): < — m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): < — n
Command action
e extended
p primary partition (1-4)
< — p
Partition number (1-4): < — 1
First cylinder (1-20480, default 1): < — ENTER
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-20480, default 20480): < — ENTER
Using default value 20480

Command (m for help): < — t
Selected partition 1
Hex code (type L to list codes): < — L
0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS /.
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Hex code (type L to list codes): < — 83

Command (m for help): < — w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
server1:~#

Қайтадан дисктердің қалпын тексереміз:

server1:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00031334

Device Boot Start End Blocks Id System
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Extended
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x882944df

Device Boot Start End Blocks Id System
/dev/sdb1 1 20480 20971504 83 Linux
server1:~#

/dev/sdb1-де жаңа файлдық жүйені құрамыз:

mkfs.ext3 /dev/sdb1

Және оны монтаждаймыз:

mount /dev/sdb1 /mnt

mount командасының нәтижесін көрелік:

server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /mnt type ext3 (rw)
server1:~#

Одан кейін df -h командасын орындаймыз:

server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
server1:~#

Енді жаңа диск үшін тұрақты тіркелу(монтаждау) нүктесін белгілейік:

mkdir /storage

Дисктің автоматты түрде монтаждалуын жүзеге асыру үшін /etc/fstab файлына келесі өзгерістерді енгіземыз:

[...]
/dev/sdb1 /storage ext3 defaults,auto,_netdev 0 0

Жұмысымызды тексеру үшін серверімізді қайта қосамыз және df -h командасының нәтижесін көреміз:

server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /storage type ext3 (rw,_netdev)
server1:~#

server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
server1:~#

Нәтижесінде біз INITIATOR серверінде TARGET серверінің дискісін қолдана аламыз :)

  • +2
0 пікір
Тек тіркелген қолданушылар ғана пікір қалдыра алады.