HardBirch

iSCSI Initiator与 Target 的安装、配置与连接过程备忘

时间:09-12-24 栏目:系统技术篇 作者:鲁智森也有文化 评论:0 点击: 2,159 次

Centos
RHEL

iSCSI Initiator 
支持非常不错,但由于
iSCSI

Linux 
通常都是搭配应用在中、大型系统环境下,所以我们买的 
iSCSI 
硬体厂商都会提供驱动程式给 
Linux 
使用,尤以 
RedHat

SuSE 
这些 
Linux 
知名厂商支持度最高,直到最近 
2007 
年左右,现在 
Linux 
都渐渐已经内建 
iSCSI Initiator 
相关软体,来介绍如何在 
Linux 
实做 
iSCSI Initiator

Initiator 主要功能是提供电脑主机连线到 
Target 
作磁碟存取。这个 
Initiator 
可使用硬件方式 
Initiator 
或者软件方式 
Initiator
,我们下面的
Initiator
,基本都是使用软件方式 
Target 
与 
Initiator


软件



硬件

的 
iSCSI Target 
与 
iSCSI Initiator 
就好比 
RAID 

“SoftRAID”

“Hardware RAID”




第一步安装 iSCSI Initiator for Linux

在 Centos 5 
软体内就有 
iSCSI Initiator .



#yum -y install iscsi-initiator-utils  

或者下载open 

iscsi进行 
make && make install

第二步:使用 iscsiadm 
指令管理连线



#service iscsi start


#iscsiadm -m discovery –type sendtargets –portal 192.168.0.1


iSCSI Target 主机查找 
Target Record 
信息,其中 
192.168.0.1 
为 
Target 
主机 
IP 
或 
DNS 
名称。找到后会提示你发现




#service iscsi restart

现在就可以在你的电脑中见到新的设备了./dev/sdb…
之类
,
我们可以对他来象本地一样操作

接下来在 Linux
分区、格式化与挂载就可以用了
.

分区


#fdisk /dev/sdbX


#mkfs -j
ext3 
格式)



#mkreiserfs
ReiserFS 
格式)



#mount /dev/sdbX /

下次开机自动取得 iSCSI Target 
磁碟

只要 iSCSI Initiator 
主机曾经 
sendtargets 
过并且 
login 
相关 
record,
只要在 
Initiator 
主机使用指令
“chkconfig iscsi on”
设定下次开机自动启动 
iSCSI Initiator Daemon
,就可以办到

下次开机自动取得 
iSCSI Target 
磁碟

功能。



#chkconfig iscsi on

有关iSCSI
的其它



iSCSI 在安全方面相关设定
,iSCSI 
在安全管理方面有着不错优势
,
可以使用

主机



使用者

来完成允许或拒绝存取的设定。

0.iSCSI Target 安装

# tar zxvf iscsi-target.xxxxx.tar.gz                                         


# cd iscsi-target.xxxxx                                                      


# make  

编译过程可能会有部分error
,请参考本论坛博客文章


iscsitarget 
Linux2.6.32
内核上编译 若干编译错误与解决方法(备忘)



 

)                                                                     


# make install                                                               


# mkdir /iscsidisk                                                           


# dd if=/dev/zero of=/iscsidisk/sharedisk1.img bs=1k count=1 seek=2000K      


    (以上这句是用
dd
建立了一个
2G
大小的映像文档,也就是我们的一个
iscsi
映像磁盘
)



# vim /etc/ietd.conf                                                         


    找到"Target iqn"
,注意这行
Target
后的一串字符,是
iscsi
的标记              



    找到"Lun 0"
一行,改为                                                    



    Lun 0 Path=/iscsidisk/sharedisk1.img,Type=fileio                         


# chkconfig iscsi-target on                                                  


# /etc/init.d/iscsi-target start

1.iSCSI Target 实战以 
IP 
为基础的允许或拒绝 
Initiator 
主机

iSCSI Enterprise Target 软体本身有内建类似 
TCP Wrapper

/etc/hosts.allow

/etc/hosts.deny
)的 
/etc/initiators.allow

/etc/initiators.deny
,接下来示范设定这两个档案来限制 
Initiator 
主机存取。

设定 /etc/initiators.allow

/etc/initiators.deny
这二个文件就可以控制主机了
.
安装完会默认生成

底下列出例子为
只允许 
172.16.7.120 
这台 
Initiator”


拒绝全部

设定

/etc/initiators.allow 内容,最后一行允许 
172.16.7.120
(其他三行被#注解)

# Some exmaples


#iqn.2001-04.com.example:storage.disk1.sys1.xyz 192.168.22.2, 192.168.3.8


#iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64


iqn.2001-04.com.example:storage.disk2.sys1.xyz 172.16.7.120

/etc/initiators.deny 内容,最后一行拒绝全部(其他四行被#注解)

# Some exmaples


#iqn.2001-04.com.example:storage.disk1.sys1.xyz ALL


#iqn.2001-04.com.example:storage.disk1.sys2.xyz 192.168.12.2, 192.168.3.0/24, 192.167.1.16/28


#iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64


iqn.2001-04.com.example:storage.disk2.sys1.xyz ALL

注意到 iqn 
需与 
/etc/ietd.conf 
内的 
iqn 
相同。

2.iSCSI Target 使用者帐号密码为基础的允许或拒绝 
Initiator 
主机

iSCSI Target 使用帐号密码方式认证分成两阶段:

第一阶段是 Discovery 
时认证所使用的帐号密码(
SendTargets 
用的)。

第二阶段是登入各别 Target / iqn / Lun 
时所使用的帐号密码(
Login 
用的)。



一个 iSCSI Enterprise Target 
能够在 
/etc/ietd.conf 
设定多个 
Target 
区段,分享多个 
iqn / Lun 
并且可以为每个 
Target / iqn / Lun 
设定存取的帐号密码。

由下图的上半个视窗可以看到在 Target 
主机于 
/etc/ietd.conf 
设定两个 
Target / iqn / Lun
,而下半个视窗可看到 
Initiator 
主机使用 
iscsiadm 
指令发现两个 
Target

/etc/ietd.conf Initiator 主机设定

Discovery 时使用的帐号密码



SendTargets 
用的) 
IncomingUser joe secret



(独立于 Target 
区段外) 
discovery.sendtargets.auth.username = joe



discovery.sendtargets.auth.password = secret


连接 Target / iqn / Lun 
时使用的帐号密码



Login 
用的) 
IncomingUser joe2 secret2



(置于 Target 
区段内) 
node.session.auth.username = joe2



node.session.auth.password = secret2


Note
joe

secret

joe2 
与 
secret2 
都是测试用的帐号密码。



只要有改到 /etc/ietd.conf

/etc/iscsid.conf 
别忘了各别需要使用 
InitScripts

/etc/init.d/iscsi-target

/etc/init.d/iscsi
)重新启动相关 
Daemon

ietd

iscsid
)。

SAN 架构与其相关技术应用非常广,比如我们可以配合集群(
Cluster
)与丛集群案系统(
Cluster File System
)的高级应用,像是 
RedHat GFS 
或是 
Oracle OCFS2 
档案系统,提供分享(
Shared

Block Level I/O 
给多台主机。

注意:若未使用及设定 Cluster File System 
但却使用两个 
Initiator 
同时存取同一个 
Target Device 
会导致资料毁损,请小心!

 

声明: 本文由( 鲁智森也有文化 )原创编译,转载请保留链接: iSCSI Initiator与 Target 的安装、配置与连接过程备忘

iSCSI Initiator与 Target 的安装、配置与连接过程备忘:等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐