iSCSI 在Linux下的模拟实验(二)

续 iSCSI 在Linux下的模拟实验(一)

4、iSCSI服务端配置

      本节主要说明在Linux环境下如何配置客户端,以使用基于iSCSI的存储设备,

由于手头没有专用的iSCSI存储设备,采用在另一台Linux机器上通过安装部署iSCSI

服务端(target)软件模拟一台支持iSCSI协议的存储设备,客户端通过访问这台

设备来体验iSCSI。

      本文使用的Linux为Centos5.7,服务端管理软件采用Linux SCSI target framework (tgt),

Linux SCSI target framework (tgt)旨在简化不同的SCSI target驱动(iSCSI、光线通道、

SRP等)的建立和维护。其主要目标是无缝地集成到SCSI中间层,并且在用户空间实现tgt

的大部分内容。tgt由内核空间(kernel-space)和用户空间(user-space)代码组成,如果

只关注iSCSI,则不涉及内核空间代码,只是有用户空间代码。

tgt软件的具体介绍请参加http://stgt.sourceforge.net/。


 1)安装服务端tgt软件

        在Linux下(至少是Red Hat系列下),tgt软件名称为scsi-target-utils,安装
    比较简单,执行 yum scsi-target-utils即可,当然需要配置好yum所需的参数。
    安装完成后,执行rpm -qi scsi-target-utils,查看对此包的说明,结果如下:

    

    安装后的文件包括(通过命令rpm -ql scsi-target-utils查看):

       /etc/rc.d/init.d/tgtd              --tgt管理服务守护进程
       /etc/sysconfig/tgtd
       /etc/tgt/targets.conf              --tgt配置文件
       /usr/sbin/tgt-admin                --Linux SCSI Target 配置工具
       /usr/sbin/tgt-setup-lun            --Linux SCSI Target 建立Target工具
                                            是tgtadm管理工具的子集,主要完成
                                            Target创建,增加设备到Target已经
                                            控制哪些客户端可以访问Target
       /usr/sbin/tgtadm                   --Linux SCSI Target 管理工具
       /usr/sbin/tgtd                     --Linux SCSI Target 主程序
       /usr/sbin/tgtimg                   --Linux SCSI Target 映像文件管理工具
       /usr/share/doc/scsi-target-utils-1.0.14
       /usr/share/doc/scsi-target-utils-1.0.14/README
       /usr/share/doc/scsi-target-utils-1.0.14/README.iscsi   --比较好的配置说明文件
       /usr/share/doc/scsi-target-utils-1.0.14/README.iser
       /usr/share/doc/scsi-target-utils-1.0.14/README.lu_configuration
       /usr/share/doc/scsi-target-utils-1.0.14/README.mmc
       /usr/share/man/man8/tgt-admin.8.gz
       /usr/share/man/man8/tgt-setup-lun.8.gz
       /usr/share/man/man8/tgtadm.8.gz


 2)配置tgt
      

         在安装完tgt软件后,需要进行配置,主要包括建立target,为target添加lun,设置

访问target的控制策略等。

     在SCSI协议中,目标器(target)是基本的访问单元,一个服务器或专业存储设备可以

提供 一个或多个目标器(target),目标器target内可以包括多个LUN,LUN的概念比较复杂,

在SCSI规范中,LUN代表物理外围设备和执行SCSI命令所需的逻辑电路,在这里可以将其理解

为基本的存储单元,即从存储设备中分配的具有明确大小的存储,划分LUN 一般由存储设备提供

的管理程序完成,LUN与存储采用的RAID级别无关。

      建立target包括两种方法,基于命令方式和基于配置文件方式,其中配置文件为/etc/tgt/targets.conf。
首先说明基于命令的方式,这里采用的命令为tgtadm。tgtadm用来监控和修改Linux SCSI 目标器软件的
相关参数和对象,如targets、volumes等。tgtadm的详细说明请参加《tgtadm 命令参考》。
      
     【一】命令方式配置Target的流程及相关命令如下:
      
      <1> 建立一个target
           tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2012-01.cn.nayun:test-01
           
           建立target需要提供target ID和名称,在一个网络内,target名称必须是唯一的,主要采用

           iqn-type格式和eui-type 格式表示,在Linux中主要用iqn-type格式,iqn是Internet限定名

         (Internet Qualified Name)的简称。iSCSI target命名采用“iqn.yyyy-mm.<反向的域名>:标识名”

          的形式,在上例中,所建立的target名称为iqn.2012-01.cn.nayun:test-01,其中cn.nayun为

          nayun.cn的反向,采用域名反向的方法主要是为了防止重名。

      <2> 查看所建立的target信息

          tgtadm --lld iscsi --op show --mode target
          
          命令执行完成后,显示如下信息:
          Target 1: iqn.2012-01.cn.nayun:test-01
          System information:
              Driver: iscsi
              State: ready
          I_T nexus information:
          LUN information:
              LUN: 0
                  Type: controller
                  SCSI ID: IET     00010000
                  SCSI SN: beaf10
                  Size: 0 MB, Block size: 1
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: null
                  Backing store path: None
                  Backing store flags: 
          Account information:
          ACL information:

          在建立一个target后,其默认将建立LUN编号为0的控制器,这个LUN不能被删除。

          I_T nexus information 显示Initiator与此Target的连接关系,只有在连接时才能

          显示相关信息,本例中因为没有连接,所有没有信息显示。LUN information显示

          此Target所包含的各个LUN的相关属性。 Account information显示此Target绑定

          的帐号信息,ACL information则显示此Target的访问控制策略。

       <3> 向Target中添加LUN

          tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb   
          
          将本机的第二块硬盘作为一个LUN添加到建立的Target中,此命令完成后,再执行

          tgtadm --lld iscsi --op show --mode target
          在显示出Target信息中,增加了新加入的LUN1的信息,具体如下:
          
          Target 1: iqn.2012-01.cn.nayun:test-01
          System information:
              Driver: iscsi
              State: ready
          I_T nexus information:
          LUN information:
              LUN: 0
                  Type: controller
                  SCSI ID: IET     00010000
                  SCSI SN: beaf10
                  Size: 0 MB, Block size: 1
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: null
                  Backing store path: None
                  Backing store flags: 
              LUN: 1
                  Type: disk
                  SCSI ID: IET     00010001
                  SCSI SN: beaf11
                  Size: 537 MB, Block size: 512
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: rdwr
                  Backing store path: /dev/sdb
                  Backing store flags: 

          Account information:
          ACL information:

      <4> 设置target的访问控制策略
         
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL  --网内所有Initiator均可访问
            tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.210      --允许某个IP地址访问
            tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.0/24     --允许某个网络访问 

          
          添加上述一个访问控制后,再查看一下target信息,

          tgtadm --lld iscsi --op show --mode target
          

          Target 1: iqn.2012-01.cn.nayun:test-01
          System information:
              Driver: iscsi
              State: ready
          I_T nexus information:
          LUN information:
              LUN: 0
                  Type: controller
                  SCSI ID: IET     00010000
                  SCSI SN: beaf10
                  Size: 0 MB, Block size: 1
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: null
                  Backing store path: None
                  Backing store flags: 
              LUN: 1
                  Type: disk
                  SCSI ID: IET     00010001
                  SCSI SN: beaf11
                  Size: 537 MB, Block size: 512
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: rdwr
                  Backing store path: /dev/sdb
                  Backing store flags: 
          Account information:
          ACL information:
              192.168.1.0/24
              192.168.1.210

          可以看到,在ACL information部分列出了可访问此Target的Initiator列表。
              
      <5> 访问帐号操作
          建立新帐号
          tgtadm --lld iscsi --op new --mode account --user scott --password tiger
          显示帐号信息
          tgtadm --lld iscsi --op show --mode account
          将一个帐号与一个Target绑定(bind)
          tgtadm --lld iscsi --op bind --mode account --tid 1 --user scott
          
          将帐号与Target绑定后再查看Target信息:
          Target 1: iqn.2012-01.cn.nayun:test-01
          System information:
              Driver: iscsi
              State: ready
          I_T nexus information:
          LUN information:
              LUN: 0
                  Type: controller
                  SCSI ID: IET     00010000
                  SCSI SN: beaf10
                  Size: 0 MB, Block size: 1
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: null
                  Backing store path: None
                  Backing store flags: 
              LUN: 1
                  Type: disk
                  SCSI ID: IET     00010001
                  SCSI SN: beaf11
                  Size: 537 MB, Block size: 512
                  Online: Yes
                  Removable media: No
                  Readonly: No
                  Backing store type: rdwr
                  Backing store path: /dev/sdb
                  Backing store flags: 
          Account information:
              scott
          ACL information:
              192.168.1.0/24
              192.168.1.210


          可以看到在Account information下显示出本Target绑定的帐号。
          
          上述配置完成后,则SCSI Initiator即可访问和连接所定义的Target。
    
     【二】通过配置文件的方式配置Target
     
          通过tgtadm命令建立的target相关配置,在关闭机器后将不保存,通过配置文件的
          方式则可以保存Target相关信息,在系统重启时,tgtd守护进程从配置文件中提取
          配置信息,根据配置信息建立相应的Target。
          Linux SCSI target framework (tgt)使用的配置文件为/etc/tgt/targets.conf,
          此配置文件采用XML格式保存Target配置信息,将上述通过tgtadm命令建立的Target
          在配置文件中的表示形式如下:
          
          <target iqn.2012-01.cn.nayun:test-01>
                backing-store /dev/sdb
                incominguser scott tiger
                initiator-address 192.168.1.0/24
                initiator-address 192.168.1.210
         </target>


         每一个Target的定义在<target></target>对中进行说明,具体属性包括:
         backing-store :Target包含的LUN对应的存储设备、分区或逻辑卷。
         incominguser  :定义iSCSI接入认证设置,包括用户名和密码
         initiator-address:允许连接Target的客户端(Initiator)主机或网络地址。
         
         配置完成后,重新启动tgtd服务,系统将自动根据配置文件中的设置,建立对应
         的Target。可通过tgtadm --lld iscsi --mode target --op show进行查看。查看
         某个具体Target的信息,使用tgtadm --lld iscsi --mode target --op show --tid n
         命令,其中的n是指对应的Target ID号。
         
         至此,Target设置完成,可以提供服务了。关于配置文件具体内容将在另一篇文章
         中进行说明,这里不再赘述。
 3)Linux SCSI target framework (tgt) 的管理命令
        
      tgt主要通过以下几个命令进行Target的管理:
      <1> tgtadm
          tgtadm用来监控和修改关于Linux SCSI target software的任何内容,包括targets, volumes等。
         
      <2> tgt-admin
          tgt-admin是一个对Target和luns进行持久化配置的工具。它使用tgtadm命令进行Target
          创建、删除和显示等操作。
      <3> tgt-setup-lun
          建立Target,增加设备到Target中,定义可以连接到此Target的客户端(Initiator)。这个
          工具就是一个脚本,主要的操作也是通过tgtadm完成

你可能感兴趣的:(linux,null,System,存储,Path,工具)