Ubuntu 中 iSCSI Target 和 Initiator 的使用

    如何在 Ubuntu 中使用 ISCSI ?且听我详细道来。

  • 配置 Ubuntu 作为 ISCSI Target
    在开始前,还是先更新一下系统吧:
    # apt-get update
    # apt-get upgrade

    (1) 安装 target

    # apt-get install iscsitarget iscsitarget-source iscsitarget-dkms
    资料上说,如果不安装后两个软件,在重启target的时候会报错。为了减少麻烦,还是老老实实都装上吧。

    (2) 修改 ISCSI Target 服务配置文件

    # vi /etc/default/iscsitarget
    ISCSITARGET_ENABLE=true

    (3) 为 Target 准备存储

    如果想用分区或者磁盘作为 Target,可以略过这一步;如果想用文件作为 Target,则可按照下面的示例来进行:
    # dd if=/dev/zero of=/var/lun1.bin count=0 obs=1 seek=50G
    上述命令在 /var 目录下创建了一个名为 lun1.bin,大小为 50G 的文件。

    (4) 修改 ISCSI Target 设备配置文件

    # vi /etc/iet/ietd.conf
    在文件的末尾添加如下信息:
    Target iqn.2012-12.local.mynet:storage.lun1
        Lun 1 Path=/var/lun1.bin,Type=fileio,ScsiId=lun1,ScsiSN=lun1

    第一行 Target 之后的内容可以任意修改,不过最好保持例子中的格式;第二行在该 Target 上创建了一个 LUN,序号为 1。
    当然,如果不想使用文件,也可以使用磁盘分区,只需修改 Path 属性即可:Path=/dev/sdd1

    (5) 重启 ISCSI Target

    # service iscsitarget restart

    如何使用 ISCSI Target 呢?这正是下一节要说的。

  • 配置 Ubuntu 作为 ISCSI Initiator
    当然,首先也要更新系统,和前面的步骤一样,这里就不啰嗦了。

    (1) 安装 open-iscsi

    # apt-get install open-iscsi open-iscsi-utils

    (2) 配置 open-iscsi

    本文示例的 ISCSI Target 配置信息如下:
ISCSI Server IP 192.168.1.100
ISCSI username vivek
ISCSI password yHni3Oq9wYzamS


    如果 ISCSI Target Server 需要用户名密码,则需要在 /etc/iscsi/iscsid.conf 中进行配置,配置选项如下:
    node.session.auth.username = vivek
    node.session.auth.password = yHni3Oq9wYzamS
    discovery.sendtargets.auth.username = vivek
    discovery.sendtargets.auth.password = yHni3Oq9wYzamS
    其中,两组用户名和密码均为 Target Server 设定的用户名和密码。

    修改完成后,需要重启 open-iscsi 服务:
    # service open-iscsi restart

    (3) 发现 Target

    # iscsiadm -m discovery -t sendtargets -p 192.168.1.100
    示例输出如下:
    192.168.1.100:3260,1 iqn.2012-12.com.example:iscsi.vm0.c43030
    这里,3260 是 Target Server 的默认端口,所以在上面的命令中没有指定。如果使用其他端口,则需要用 # -p ip:port 的形式显示指定。

    (3) 使用 Target

    # iscsiadm -m node --targetname iqn.2012-12.com.example:iscsi.vm0.c43030 -p 192.168.1.100 --login
    示例输出如下:
    Logging in to [iface: default, target: iqn.2012-12.com.example:iscsi.vm0.c43030, portal: 192.168.1.1,3260]
    Login to [iface: default, target: iqn.2012-12.com.example:iscsi.vm0.c43030, portal: 192.168.1.1,3260]: successful


    登陆成功后,可以在 /var/log/messages 中看到如下消息:
    # tail -f /var/log/messages
    示例输出如下:
    Jul 2 12:54:04 vivek-laptop kernel: [ 4418.610787] scsi6 : iSCSI Initiator over TCP/IP
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.649208] scsi 6:0:0:0: Direct-Access QNAP iSCSI Storage 3.1 PQ: 0 ANSI: 5
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.649670] sd 6:0:0:0: Attached scsi generic sg3 type 0
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.650531] sd 6:0:0:0: [sdc] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.651889] sd 6:0:0:0: [sdc] Write Protect is off
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.652643] sd 6:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.654620] sdc: unknown partition table
    Jul 2 12:54:05 vivek-laptop kernel: [ 4419.692364] sd 6:0:0:0: [sdc] Attached SCSI disk /dev/sdc is new block level device.

    说明 /dev/sdc 已经作为一个新的块设备被添加到系统中了,该设备使用的就是服务器上的 ISCSI Target。

猜你喜欢

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