iscsi主要是透过TCP/IP的技术,将储存设备透过iscsi target (iscsi目标)功能,做成可以提供磁盘的服务器端,再透过iscsi initiator(iscsi初始化用户)功能,做成能够挂载使用的iscsi target的客户端。
一、所需组件
1、iscsi target :存储设备端,存放磁盘或raid的设备。
[root@rac1 ~]# rpm -qa | grep scsi-target
scsi-target-utils-1.0.14-4.el6.x86_64
2、Iscsi initiator:使用target的客户端。
[root@rac1 ~]# rpm -qa | grep iscsi
iscsi-initiator-utils-6.2.0.872-34.el6.x86_64
二、哪些类型的磁盘装置可以分享?
1、dd建立的大文件
2、Partition
3、完整的磁盘
4、Software raid
5、lvm的lv装置
三、iscsi target设置
1、确定软件是否安装
[root@rac1 ~]# rpm -qa | grep scsi-target
scsi-target-utils-1.0.14-4.el6.x86_64
2、建立所需的磁盘装置
3、配置/etc/tgt/targets.conf文件
一般设置backing-store即可。
<target iqn.相关装置的target名称>
backing-store 磁盘装置名称-1
backing-store 磁盘装置名称-2
除了 backing-store 之外,在这个配置文件当中还有一些比较特别的参数可 以讨论看看 (man tgt-admin):
(1)backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时, 如果你的整颗磁盘是全部被拿来当 iSCSI 分享之用,那么才能够使用 direct-store 。不过,根据网络上的其他文件, 似乎说明这个设定值有点危险 的样子。所以,基本上还是建议单纯使用模拟的 backing-store 较佳。例如鸟 哥的简单案例中,就通通使用 backing-store 而已。
(2)initiator-address (用户端地址): 如果你想要限制能够使用这个 target 的客户端来源,才需要填写这个设定值。基本上,不用设定它 (代表所有人都能 使用的意思), 因为我们后来会使用 iptables 来规范可以联机的客户端嘛!
(3)incominguser (用户账号密码设定): 如果除了来源 IP 的限制之外,你还 想要让使用者输入账密才能使用你的 iSCSI target 的话,那么就加用这个设定 项目。 此设定后面接两个参数,分别是账号与密码啰。
(4)write-cache [off|on] (是否使用快取): 在预设的情况下,tgtd 会使用 快取来增快速度。不过,这样可能会有遗失数据的风险。所以,如果你的数据比 较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。
Eg:
backing-store /dev/vgscsi/lv01
backing-store /dev/vgscsi/lv02
backing-store /dev/vgscsi/lv03
backing-store /dev/vgscsi/lv04
backing-store /dev/vgscsi/lv05
backing-store /dev/vgscsi/lv06
backing-store /dev/vgscsi/lv07
backing-store /dev/vgscsi/lv08
backing-store /dev/vgscsi/lv09
4、启动服务,设置开机启动,观察端口
#/etc/init.d/tgtd start
#chkconfig tgtd on
#nestat -tulnp | grep tgt
# tgt-admin --show
Target 1: iqn.2008-09.com.example:iser
System information:
Driver: iscsi
State: ready
I_T nexus information:
I_T nexus: 1
Initiator: iqn.1994-05.com.redhat:8d1c1e3bc7a7
Connection: 0
IP Address: 10.0.0.100
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 1074 MB, Block size: 512
Online: Yes
Removable media: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vgscsi/lv01
Backing store flags:
5、设定防火墙 (可以不设置)
不论你有没有使用 initiator-address 在 targets.conf 配置文件中,iSCSI target 就是使用 TCP/IP 传输数据的, 所以你还是得要在防火墙内设定可以联机的客 户端才行!既然 iSCSI 仅开启 3260 埠口,那么我们就这么进行即可
[root@www ~]# vim /usr/local/virus/iptables/iptables.allow
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT
[root@www ~]# /usr/local/virus/iptables/iptables.rule
[root@www ~]# iptables-save | grep 3260
-A INPUT -s 192.168.100.0/24 -p tcp -m tcp --dport 3260 -j ACCEPT
# 最终要看到上述的输出字样才是 OK 的呦!若有其他用户需要联机,
# 自行复制 iptables.allow 内的语法,修改来源端即可
四、Iscsi initator设定
1、确定软件是否安装
[root@rac1 ~]# rpm -qa | grep iscsi
iscsi-initiator-utils-6.2.0.872-34.el6.x86_64
2、配置文件/etc/iscsi/iscsi.conf (也可以不修改)
主要是设置discovery(侦测)和node(联机)时可能用到的账号和密码
node.session.auth.username = vbirduser
node.session.auth.password = vbirdpasswd
discovery.sendtargets.auth.username = vbirduser
discovery.sendtargets.auth.password = vbirdpasswd
3、侦测target相关数据
iscsiadm -m discovery -t sendtargets -p 10.0.0.100:3260
4、启动服务
# /etc/init.d/iscsi start
# /etc/init.d/iscsid start
# chkconfig iscsi on
#chkconfig iscsid on
5、联机iscsi target
# iscsiadm -m node -T target 名称 --login
五、更新/删除/新增target数据
# iscsiadm -m node -T targetname --logout
# iscsiadm -m node -o [delete|new|update] -T targetname
六、针对多网卡的情况
http://www.2cto.com/os/201507/415621.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31411496/viewspace-2128700/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31411496/viewspace-2128700/