iSCSI-Target 安装与使用

iSCSI Target可以用来:

a]用来安装stateless server/client (用于无盘安装)
b]通过局域网、无线网络或者因特网共享磁盘或者磁带设备
c]安装SAN——存储阵列
d]通过Linux下的分布式文件系统实现负载均衡的web服务器集群
在这个教程中,将要学到如何通过tgt框架构建一个全功能的Linux iSCSI SAN。

iSCSI target(server)
存储资源所在的iSCSI服务器被称为“target”。iSCSI target通常是一个硬盘存储设备。当前大部分的主流操作系统都提供了配合iSCSI target使用的客户端软件initiator。

iSCSI initiator(client)
initiator就是iSCSI传输的服务端。典型的initiator都有共同的目的,就是作为一个SCSI总线的适配器,代替物理上的SCSI设备(类似硬盘或者磁带)。iSCSI initiator通过IP网络传输SCSI命令。

tgtadm——Linux SCSI Target管理工具
tgtadm是用来监控、修改Linux SCSI target 的工具,包括target设置、卷设置,等等。这个工具允许提供为装有SCSI initiator的其它操作系统提供块级(block-level)的SCSI存储。这个功能最初被部署为Linux iSCSI target,通过网络向装有iSCSI initiator的系统提供存储服务。

step 1. aur上下载PKGBUILD,并且安装必要的依赖包,进行安装
$ makepkg -asroot

step 2. $ systemctl start tgtd

step 3. $ systemctl enable tgtd

step 4. 新增 iSCSI Target Device
$ tgtadm –lld iscsi –op new –mode target –tid 1 -T ign.2014-11.org.magicwall:iSCSI-data1
备注:iSCSI Qualified Name (iqn)的格式通常如下:
iqn.yyyy-mm.<reversed domain name>[:identifier]
以上的例子中,创建了一个id为1的target,它的iqn为:ign.2014-11.org.magicwall:iSCSI-data1

step 5. 将要使用的磁盘(sdz1和sdz2)加入iSCSI Target Device
$ tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 1 -b /dev/sdz1
$ tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 2 -b /dev/sdz2

step 6. 允许远程iSCSI Initiator Device可存取本iSCSI Target Device
$ tgtadm –lld iscsi –op bind –mode target –tid 1 -I 172.16.1.222
172.16.1.222为SCSI Initiator Device ip
如果不设置ip,也可以设置为ALL,则所有的iSCSI Initiator Devices都能访问

其他:
1. 如何验证iSCSI Targe Device是否设置成功?
$ tgtadm –lld iscsi –op show –mode target

2. 如何移除iSCSI Target Device已使用的磁盘?
$ tgtadm –lld iscsi –op delete –mode logicalunit –tid 1 –lun 1
$ tgtadm –lld iscsi –op delete –mode logicalunit –tid 1 –lun 2

3. 如何使用文件来作为共享磁盘
使用dd 命令创建一个磁盘文件系统:
# dd if=/dev/zero of=/share/fs.iscsi.disk bs=1M count=512
创建了一个512M大小的文件/fs.iscsi.disk
把/fs.iscsi.disk当做一个lun加入到target中:
# tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 0 -b /share/fs.iscsi.disk

4. 将配置信息写到配置文件中去
# nano -w /etc/tgt/conf.d/mail.conf
<target iqn.2013-12.org.magicwall:server.data1>
<backing-store /share/fs.iscsi.disk>
vendor_id scsi1
scsi_sn VITUAL1
write-cache on
</backing-store>

write-cache off
scsi_sn multipath-10
# Parameters below are only global. They can’t be configured per LUN.
# Only allow connections from 192.168.100.1 and 192.168.200.5
#initiator-address 172.16.1.1
# TID of controller
controller_tid 10
</target>

5. 其他系统如何安装软件包
CentOS / RHEL / fedora 安装tgt
$yum install scsi-target-utils
Debian / Ubuntu Linux 安装tgt
$ sudo apt-get install tgt

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Linux分类目录。将固定链接加入收藏夹。

发表回复