CentOS 中用 tgt 作为 iSCSI Target

[size=small] 在之前的博文[url=http://e2718282.iteye.com/admin/blogs/1739281]Ubuntu中ISCSI Target和Initiator的使用[/url]中,详细说明了 Ubuntu 中的 ISCSI Target 套件,其中,ISCSI Target 是在配置文件中配置的。虽然这能够满足一般的需求,但是对于需要动态控制 Target 的场景来说,有些不够用。本文就向大家介绍 CentOS 中的 ISCSI Target 套件 —— TGT (SCSI target framework),能够满足动态控制 Target 的需求。

[list]
[*][b]安装 TGT[/b]
[/list] [b][color=green]# yum install scsi-target-utils[/color][/b]

安装完成后,启动 TGT 服务:
[b][color=green]# service tgtd start[/color][/b]

如果想在系统启动时自动启动 TGT 服务,可以使用如下命令:
[b][color=green]# chkconfig tgtd on[/color][/b]

如果想确认 TGT 服务是否启动,可以用 [b][color=green]# service tgtd status[/color][/b] 查看服务状态;当然,也可以查询 TGT 服务占用的端口:
[b][color=green]# netstat -anlpt | grep 3260[/color][/b]
其中,3260 是 TGT 服务的监听端口。结果如下:
[img]http://dl.iteye.com/upload/attachment/0077/3279/5c0afa97-d42a-3c60-98d4-d250d37001ab.png[/img]

[list]
[*][b]使用 TGT[/b]
[/list] TGT 不需要配置文件,所以的操作都通过 [color=red]tgtadm[/color] 命令来进行。[b][color=red]注意[/color][/b]:tgtadm 命令如果没有回显结果,则表示执行成功。否则,会提示错误信息。

1、[b]创建 Target[/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op new --tid 2 --targetname iqn.2012-12.com.example:server.target[/color][/b]

2、[b]查询 Target[/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op show[/color][/b]

该命令查询所有的 Target,结果如下:
[img]http://dl.iteye.com/upload/attachment/0077/3286/b2eb3152-a348-3db7-a383-fbec7c38890e.png[/img]

上述命令查询的是所有 Target 的信息(Target 1 没有列出)。可以看出,Target 2 中已经有一个序号为 0 的 LUN 了,该 LUN 是管理用的,由 tgtadm 自动创建。
如果要查询某个 Target 的详细信息,可以使用 [color=red]--tid <id>[/color] 选项:
[b][color=green]# tgtadm --lld iscsi --mode target --op show --tid 2[/color][/b]
[img]http://dl.iteye.com/upload/attachment/0077/3289/aa3075d4-bca7-3d4b-9b20-a7138c195141.png[/img]

3、[b]添加 LUN[/b]
创建 Target 之后,需要向其分配存储空间(即 LUN)和 LUN 号。LUN 可以是磁盘、分区或者文件,LUN 号必须是自然数。这里用文件作为 LUN。

(1) [b]创建用作 LUN 的文件[/b]
[b][color=green]# dd if=/dev/zero of=/home/lun.bin count=0 obs=1 seek=1G[/color][/b]

(2) [b]添加 LUN[/b]
[b][color=green]# tgtadm --lld iscsi --mode logicalunit --op new --tid 2 --lun 1 --backing-store /home/lun.bin[/color][/b]

添加 LUN 后的 Target 2 如下,可以看到刚才添加的 LUN 1:
[b][color=green]# tgtadm --lld iscsi --mode target --op show[/color][/b]
[img]http://dl.iteye.com/upload/attachment/0077/3292/0a7f4b14-cec2-3e81-93d9-98f671631cca.png[/img]

4、[b]访问控制[/b]
为 Target 分配了 LUN 后,需要配置访问控制才可以使用。可以设置所有用户都能访问,也可以设置基于IP/IP段或用户名验证的访问权限。
[b][color=red]注意[/color][/b]:访问控制是 Target 的一个特性,只能给 Target 添加访问控制,而对单独的 LUN 则无法添加访问控制。

(1) [b]任意访问权限[/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op bind --tid 2 -I all[/color][/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op show[/color][/b]
[img]http://dl.iteye.com/upload/attachment/0077/3298/f68473ea-1403-3824-8364-aa71a6a1473e.png[/img]

(2) [b]删除访问权限[/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op unbind --tid 2 -I all[/color][/b]

(3) [b]基于 IP 的权限[/b]
添加两个 IP 的访问权限:
[b][color=green]# tgtadm --lld iscsi --mode target --op bind --tid 2 -I 192.168.1.10[/color][/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op bind --tid 2 -I 192.168.2.10[/color][/b]

再添加一个 IP 段的访问权限:
[b][color=green]# tgtadm --lld iscsi --mode target --op bind --tid 2 -I 192.168.3.0/24[/color][/b]

查看 Target 2 的信息:
[b][color=green]# tgtadm --lld iscsi --mode target --op show[/color][/b]
[img]http://dl.iteye.com/upload/attachment/0077/3300/9810c423-3145-3da3-b204-aa7c57eec726.png[/img]

5、[b]删除 LUN[/b]
[b][color=green]# tgtadm --lld iscsi --mode logicalunit --op delete --tid 2 --lun 1[/color][/b]

查看 Target 2 的信息:
[b][color=green]# tgtadm --lld iscsi --mode target --op show[/color][/b]
[img]http://dl.iteye.com/upload/attachment/0077/3302/a875583c-28e2-37b8-84d8-65d57049d938.png[/img]

6、[b]删除 Target[/b]
[b][color=green]# tgtadm --lld iscsi --mode target --op delete --tid 2[/color][/b]

TGT 的主要管理功能介绍的差不多了,如果想要使用其他功能,还是查 tgtadm 的帮助吧。
[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值