您的位置:首页 > 其它

iSCSI的配置全攻略(ISCSI Target/initiator)

2015-05-16 17:04 295 查看
iSCSI的配置全攻略(ISCSITarget/initiator)
时不时会忘记怎么iscsi导出磁盘,所以在此转载一篇”技术成就梦想“的博文:http://ixdba.blog.51cto.com/2895551/526452 

1.Target端的配置 

target端即磁盘阵列或其他装有磁盘的主机。通过iscsitarget工具将磁盘空间映射到网络上,initiator端就可以寻找发现并使用该磁盘。 

注意,一个target主机上可以映射多个target到网络上,即可以映射多个块设备到网络上。 

1)软件包 

iscsitarget 

可以从http://sourceforge.net/projects/iscsitarget/files/下载最新版本。 

2)编译安装 

很简单,解包,编译,安装就可以。 

tar zxvf iscsitarget-1.4.19.tar.gz 

cd iscsitarget-1.4.19/ 

make 

make install 

该包会将iscsitarget需要的内核模块,用户层工具,服务启动脚本,配置文件,man手册等安装到系统中 

包括: 

iscsi_trgt.ko 内核模块 

ietd iscsitarget的守护进程 

ietadm iscsitarget的用户层管理工具 

/etc/init.d/iscsi-target iscsitarget的启动脚本 

/etc/ietd.conf iscsitarget的配置文件 

/etc/initiators.allow 控制initiator对target的访问权限。 

/etc/initiators.deny 控制initiator对target的访问权限。 

/etc/iet/targets.allow 控制不同target的被访问权限。 

3)配置/etc/ietd.conf

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

Lun 0 Path=/dev/sda1,Type=fileio 

Alias lun0

大致说明: 

Target iqn.2001-04.com.example:storage.disk2.sys1.xyz 表示该ISCSI Target 的命名,命名在同一子网内应该是唯一的,标准命名方式为: 

"Target "+ target名字 (格式如下: iqn.yyyy-mm.<reversed domain name>[:identifier] ) 

“Lun 0 Path=/dev/sda1”表示块设备号为0,映射的磁盘为/dev/sda1。 

本次配置中 Type 的设定为"fileio",我主要用来对一个磁盘进行存储共享。 

当然也可以针对需要设置为: "file" or "LVM"。 

除此之外还有很多其他参数可以设置,具体参考: 
http://manpages.ubuntu.com/manpages/hardy/man5/ietd.conf.5.html

4)启动iscsitarget 

/etc/init.d/iscsi-target start

2.inititor端配置 

1)软件包 

源码包是open-iscsi,经过rpm包封装后,名字是iscsi-initiator-utils。 

2)主要安装了下面一些文件 

/etc/iscsi/iscsid.conf 

/etc/rc.d/init.d/iscsi 

/etc/rc.d/init.d/iscsid 

/sbin/iscsi-iname 

/sbin/iscsiadm 

/sbin/iscsid 

/sbin/iscsistart 

/var/lib/iscsi 

/var/lib/iscsi/ifaces 

/var/lib/iscsi/isns 

/var/lib/iscsi/nodes 

/var/lib/iscsi/send_targets 

/var/lib/iscsi/slp 

/var/lib/iscsi/static 

/var/lock/iscsi

3)连接target 

首先要保证iscsid守护进程启动,否测iscsiadm的一系列操作都会失败: 

/etc/init.d/iscsid start

发现target: 

iscsiadm -m discovery -t sendtargets -p <iSCSI target ip>:<port> 

默认情况下<port>是3260,除非你有特殊的设置。

与target建立连接: 

iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login 

此处target-name为上一步发现target时的获得的。

此时通过fdisk -l就可以看到映射过来的磁盘,该磁盘可以像使用本地磁盘一样进行格式化,分区等操作。 

可以通过以下命令实验: 

fdisk /dev/sdc 

mkfs.ext3 /dev/sdc1 

mount /dev/sdc1 /mnt 

dd if=/dev/zero of=100M.img bs=1M count=100

3.target和initiator间使用CHAP验证。 

CHAP验证有两种,一种是针对discovery的,即如果不符合验证的用户名和密码,则initiator端便无法通过"-m discovery"发现指定主机上的任何一个target。 

命令会返回验证失败,如下: 

$ iscsiadm -m discovery -t sendtargets -p 192.168.29.224 

iscsiadm: Login failed to authenticate with target 

iscsiadm: discovery login to 192.168.29.224 rejected: initiator error (02/01), non-retryable, giving up

另一种是针对node login的,即果不符合验证的用户名和密码,则initiator端编无法通过--login登录指定主机上的某一个target。 

命令会返回验证失败,如下: 

$ iscsiadm -m discovery -t sendtargets -p 192.168.29.224 #成功discover指定主机上的target 

192.168.29.224:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz 

$ iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.29.224 --login #无法通过验证,登录失败 

Logging in to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260] 

iscsiadm: Could not login to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260]: 

iscsiadm: initiator reported error (15 - already exists)

1)在initiator端 

配置/etc/iscsi/iscsid.conf,添加如下选项: 

#以下三个是针对discovery的。 

#discovery时启用CHAP验证 

discovery.sendtargets.auth.authmethod = CHAP 

#initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行 

discovery.sendtargets.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5 

#验证密码,要和target端相同 

discovery.sendtargets.auth.password = 1234567890ab

#以下三个是针对login的。 

#login时启用CHAP验证 

node.session.auth.authmethod = CHAP 

#initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行 

node.session.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5 

#验证密码,要和target端相同 

node.session.auth.password = 1234567890

然后重启initiator。 

/etc/init.d/iscsid stop 

/etc/init.d/iscsid start

2)在target端 

针对discovery配置/etc/ietd.conf,在全局参数处(定义第一个target之前),添加如下一行: 

IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890ab 

IncomingUser 和 OutgoingUser 表示ISCSI 客户端的用户名和密码,用户名和密码都可以为空,默认为allow权限,密码最长可为12个字符。 

此处iqn.1994-05.com.fedora:ba72af8aaf5是initiator的名字(也可以是别的字符串),1234567890ab是initiator的密码,名字和密码必须和initiator上/etc/iscsi/iscsid.conf 

中的用户名密码一致。如果不一致,则initiator执行"-m discovery" 是就会失败。

针对login配置/etc/ietd.conf,既然是针对login的,那么添加IncomingUser是就应该添加的指定的target上。如下: 

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

Lun 0 Path=/dev/sda1,Type=fileio 

IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890

然后重启iscsitarget 

/etc/init.d/iscsi-target stop 

/etc/init.d/iscsi-target start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iscsi