雪碧瓶手工制作花篮:储存区域网路(SAN)-使用Linux(Centos5)来做iSCSI Initiator客户机设置篇

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 10:07:57
Feb 14th, 2008 Leave a comment | Trackback

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/02/14/san-iscsi.html

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

第二步:使用 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 在安全管理方面有着不错优势,可以使用”主机”和”使用者”来完成允许或拒绝存取的设定。

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 会导致资料毁损,请小心!