Chinaunix首页 | 论坛 | 博客
  • 博客访问: 431858
  • 博文数量: 75
  • 博客积分: 2780
  • 博客等级: 少校
  • 技术积分: 789
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 20:38
文章分类

全部博文(75)

文章存档

2012年(1)

2011年(11)

2010年(12)

2009年(39)

2008年(12)

我的朋友

分类: 服务器与存储

2008-12-28 10:34:03

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 Target 

tar -xzvf iscsitarget-0.4.16.tar.gz
cd iscsitarget-0.4.16
yum -y install gcc gcc-c++ kernel-devel
make
make install


vi /etc/ietd.conf
{
User userid superpassword
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
        Lun 0 Path=/dev/hdb,Type=fileio
        Alias lun0
}
/etc/init.d/iscsi-target start
tailf /var/log/messages
显示如下:

Sep 30 06:40:52 localhost kernel: iSCSI Enterprise Target Software - version 0.4.16
Sep 30 06:40:52 localhost kernel: iscsi_trgt: Registered io type fileio
Sep 30 06:40:52 localhost kernel: iscsi_trgt: Registered io type blockio
Sep 30 06:40:52 localhost kernel: iscsi_trgt: Registered io type nullio
说明成功!

第二步安装 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 12charsecret
(独立于 Target 区段外) discovery.sendtargets.auth.username = joe
discovery.sendtargets.auth.password = 12charsecret
连接 Target/iqn/Lun 时使用的帐号密码
(Login 用的) IncomingUser joe2 12charsecret
(置于 Target 区段内) node.session.auth.username = joe2
node.session.auth.password = 12charsecret
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 会导致资料毁损,请小心!

安装windows客户端


下载,安装后即可连接linux上的 target,格式化盘操作.

阅读(3671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~