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

来源:互联网 发布:星际老男孩淘宝店没了 编辑:程序博客网 时间:2024/06/04 19:30

CentosRHELiSCSI Initiator 支持非常不错,但由于iSCSILinux 通常都是搭配应用在中、大型系统环境下,所以我们买的 iSCSI 硬体厂商都会提供驱动程式给 Linux 使用,尤以 RedHatSuSE 这些 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 -jext3 格式)
#mkreiserfsReiserFS 格式)
#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
Notejoesecretjoe2 与 secret2 都是测试用的帐号密码。
只要有改到 /etc/ietd.conf/etc/iscsid.conf 别忘了各别需要使用 InitScripts/etc/init.d/iscsi-target/etc/init.d/iscsi)重新启动相关 Daemonietdiscsid)。

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

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

 

原创粉丝点击