linux使用iscsi配置共享存储

tsm在做vmware的文件级别的恢复也使用了iscsi,原理是Data Protection for VMware Windows Recovery Agent
把vmware磁盘备份快照mount上来作为iscsi target,linux/windows guest作为iscsi initiator来直接读取iscsi target上
的磁盘数据恢复.
具体参考官网文档:
http://www-01.ibm.com/support/docview.wss?uid=swg21473127
iscsi协议可以用来搭建IP-SAN环境,即Initiator 为主机系统,发出读、写数据请求,target为磁带库磁盘阵列之类的存储资源,
主机上的tsm等备份软件就可以快速备份数据到带库上.
这里测试是使用scsi软件让Linux系统仿真成为iSCSI target,通过网络实现linux磁盘的共享.

iscsi target:

1. yum install -y scsi-target-utils
[root@rhel64-64bit sbin]# rpm -qa|grep -i scsi
scsi-target-utils-1.0.24-18.el6.x86_64

2.iSCSI可共享包括镜像文件(.img),分区(partition),单块硬盘(无需分区),raid磁盘阵列、逻辑卷LVM等:
mkdir /iscsi
dd if=/dev/zero of=/iscsi/yo1.img bs=1M count=200
ll -h /iscsi 查看生成的img大小是否正确

3.配置/etc/tgt/targets.conf文件

     --iqn.年-月.域名反过来写 :target名称
        backing-store /iscsi/yo1.img         --设备路径
        initiator-address 192.168.1.0/24     --允许访问该target的initiator的网段
        incominguser vbirduser vbirdpasswd   --initiator访问target要提供的用户名和密码
安装scsi后,安装了下面的管理命令工具:
[root@rhel64-64bit sbin]# locate tgt|grep sbin
/usr/sbin/tgt-admin
/usr/sbin/tgt-setup-lun
/usr/sbin/tgtadm
/usr/sbin/tgtd
/usr/sbin/tgtimg
或者可以使用上面命令配置target名称,设备名称等,但重启tgtd服务后命令行配置的信息全被清除了
tgt-admin实际也是调用了tgtadm,可以tgtadm --help查看参数和语法
tgtadm --lld iscsi --mode target --op new --tid 2 --targetname iqn.2018-06.com.redhat:yo2disk     --创建target
tgtadm --lld iscsi --mode logicalunit --op new --tid 2 --lun 2 --backing-store  /iscsi/yo2.img    --创建lun
tgtadm --lld iscsi --mode target --op bind --tid 2 --initiator-address 192.168.1.0/24              --允许访问网段
tgtadm --lld iscsi --mode account --op new --user yo2user --password 123456
tgtadm --lld iscsi --mode account --op bind --tid 2  --user yo2user

4.service tgtd start 启动服务
   tgt-admin --show  查看配置好的target信息

      LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 210 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /iscsi/yo1.img
            Backing store flags: 
    Account information:
        youser
    ACL information:
        192.168.1.0/24

iscsi initiator:

1.yum install -y iscsi-initiator-utils
root@rhel64-64bit send_targets]# rpm -qa|grep iscsi
iscsi-initiator-utils-6.2.0.873-26.el6.x86_64

2./etc/iscsi/initiatorname.iscsi里面是 iscsi的initiator的名称
  /etc/iscsi/iscsid.conf  配置discovery target和联机时候的用户名和密码,也就是target设置的incominguser
node.session.auth.username = youser
node.session.auth.password = yopassword
discovery.sendtargets.auth.username = youser
discovery.sendtargets.auth.password = yopassword

3.发现目标
  iscsiadm -m discovery -t sendtargets -p 192.168.1.103:3260

  [root@rhel64-64bit send_targets]# iscsiadm -m discovery -t st -p 192.168.1.103:3260
  Starting iscsid:                                           [  OK  ]
  192.168.1.103:3260,1 iqn.2018-06.com.redhat:yo1disk
 service iscsi start 启动服务
  此时查看:/var/lib/iscsi/
[root@rhel64-64bit nodes]# pwd
/var/lib/iscsi/nodes
[root@rhel64-64bit nodes]# ls
iqn.2018-06.com.redhat:yo1disk

[root@rhel64-64bit send_targets]# pwd
/var/lib/iscsi/send_targets
[root@rhel64-64bit send_targets]# ls
192.168.1.103,3260

4.查看发现的目标:
[root@rhel64-64bit send_targets]# iscsiadm -m node
192.168.1.103:3260,1 iqn.2018-06.com.redhat:yo1disk

5.登录target
[root@rhel64-64bit send_targets]# iscsiadm -m node -T iqn.2018-06.com.redhat:yo1disk --login
Logging in to [iface: default, target: iqn.2018-06.com.redhat:yo1disk, portal: 192.168.1.103,3260] (multiple)
Login to [iface: default, target: iqn.2018-06.com.redhat:yo1disk, portal: 192.168.1.103,3260] successful.
fdisk -l 发现多一个/dev/sdc
在initiator端就可以使用这块盘了
此时在target端可以查看到initiator的信息:
[root@rhel64-64bit sbin]# tgt-admin --show
Target 1: iqn.2018-06.com.redhat:yo1disk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
        I_T nexus: 1
            Initiator: iqn.1994-05.com.redhat:56bfb66af5 ----initiator的信息
            Connection: 0
                IP Address: 192.168.1.109

6.如果想删除发现的target:
iscsiadm -m node -T targetname --logout
iscsiadm -m node -T targetname -o [delete|new|update]

7.windows作为iscsi initiator比较简单:控制面板->管理工具->iscsi发起程序
                                                             发现->发现门户输入target的ip端口
                                                             目标->连接

你可能感兴趣的:(LINUX)