读书人

CentOS 顶用 tgt 作为 iSCSI Target

发布时间: 2012-12-23 11:28:15 作者: rapoo

CentOS 中用 tgt 作为 iSCSI Target
在之前的博文Ubuntu中ISCSI Target和Initiator的使用中,详细说明了 Ubuntu 中的 ISCSI Target 套件,其中,ISCSI Target 是在配置文件中配置的。虽然这能够满足一般的需求,但是对于需要动态控制 Target 的场景来说,有些不够用。本文就向大家介绍 CentOS 中的 ISCSI Target 套件 —— TGT (SCSI target framework),能够满足动态控制 Target 的需求。

安装 TGT # yum install scsi-target-utils

安装完成后,启动 TGT 服务:
# service tftd starat

如果想在系统启动时自动启动 TGT 服务,可以使用如下命令:
# chkconfig tftd on

如果想确认 TGT 服务是否启动,可以用 # service tftd status 查看服务状态;当然,也可以查询 TGT 服务占用的端口:
# netstat -anlpt | grep 3260
其中,3260 是 TGT 服务的监听端口。结果如下:


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

1、创建 Target
# tgtadm --lld iscsi --mode target --op new --tid 2 --targetname iqn.2012-12.com.example:server.target

2、查询 Target
# tgtadm --lld iscsi --mode target --op show

该命令查询所有的 Target,结果如下:


上述命令查询的是所有 Target 的信息(Target 1 没有列出)。可以看出,Target 2 中已经有一个序号为 0 的 LUN 了,该 LUN 是管理用的,由 tgtadm 自动创建。
如果要查询某个 Target 的详细信息,可以使用 --tid <id> 选项:
# tgtadm --lld iscsi --mode target --op show --tid 2


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

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

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

添加 LUN 后的 Target 2 如下,可以看到刚才添加的 LUN 1:
# tgtadm --lld iscsi --mode target --op show


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

(1) 任意访问权限
# tgtadm --lld iscsi --mode target --op bind --tid 2 -I all
# tgtadm --lld iscsi --mode target --op show


(2) 删除访问权限
# tgtadm --lld iscsi --mode target --op unbind --tid 2 -I all

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

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

查看 Target 2 的信息:
# tgtadm --lld iscsi --mode target --op show


5、删除 LUN
# tgtadm --lld iscsi --mode logicalunit --op delete --tid 2 --lun 1

查看 Target 2 的信息:
# tgtadm --lld iscsi --mode target --op show


6、删除 Target
# tgtadm --lld iscsi --mode target --op delete --tid 2

TGT 的主要管理功能介绍的差不多了,如果想要使用其他功能,还是查 tgtadm 的帮助吧。

读书人网 >操作系统

热点推荐