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 tgtd start

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

    如果想确认 TGT 服务是否启动,可以用 # service tgtd 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 的帮助吧。

猜你喜欢

转载自e2718282.iteye.com/blog/1739649