我将一个RHEL系统设置为一个iSCSI目标,通过/etc/tgt/ target ts.conf中的以下配置通过一个目标共享2个luns (我在/etc/tgt/ target ts.conf中注释掉的示例中构建了该配置):
<target iqn.2014-04.com.local.box:ESXi.target1>
backing-store /dev/ESXi_VG/ESXi_LUN_01 #LUN01
backing-store /dev/ESXi_VG/TEST_LUN_01 #LUN02
</target>
这些数据将作为数据存储分配给一对ESXi主机。
我最初在vg ESXi_VG上为数据存储创建了一个4.00TB的LVM逻辑卷;但是,我意识到我需要第二个LUN通过RDM对存储在ESXi主机上的本地存储的vm进行Iop测试。为此,我在同一个卷组上创建了第二个5.00GB的LVM逻辑卷,并在上面显示的目标配置中为第二个LUN添加了LUN条目。然后在我的ESXi主机上卸载4.00TB LUN,并重新启动tgtd。
我现在看到了一些奇怪的东西。首先,下面是tgt -s命令的输出,以显示当前的LUN:
[root@box ~]# tgt-admin -s
Target 1: iqn.2014-04.com.local.box:ESXi.target1
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
Prevent removal: 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: 5369 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/ESXi_VG/TEST_LUN_01
Backing store flags:
Account information:
ACL information:
ALL
如您所见,只有一个LUN正在显示,而不是2个,而正在显示的LUN只是我在稍后添加的5.00GB LUN。如果删除或注释掉LUN条目,它只显示LUN 0,控制器,而不是LUN 1。
但是,ESXi仍然可以看到4.00TB LUN,并且可以挂载它、格式化它等等,它看不到的是5.00GB分区,尽管它是通过同一个iSCSI目标共享的。
因此,我有几个问题:
发布于 2014-08-02 05:07:48
这是我发现的问题所在。由于公司合并而退出这个项目后,它又被扔回我的盘子里,我决定从头开始重新开始。这一次,我创建了一个LUN,RH_ISCSI_LV_001,并通过iscsi守护进程共享它。我能够在vSphere中挂载和格式化它。
我再次卸载LUN并停止tgtd来编辑/etc/tgt/targets.conf
以添加第二个测试LUN,通过使用RDM将它映射到客户端来进行性能测试。当我再次启动tgtd时,只显示了一个LUN。
我假设在VMware格式化它之后,LUN无法被tgtd读取可能是一个问题,所以我试图用lvremove来销毁它。它抛出一个ioctl错误(device-mapper: remove ioctl on failed: Device or resource busy
),不删除。
经过深入研究,我运行了命令lsof /dev/ESXi_VG/RH_ISCSI_LV_001
,发现pid 2251是阻塞过程。一个快速的ps -ef
和我了解到,tgtd在某种程度上并没有完全关闭,因为没有什么可以阻止第二个tgtd进程启动(显然)它保留了LUN的“所有权”,从而阻止了我生成的每一个连续的tgtd进程。快速杀死-9和service tgtd start
后,我的两个LUN是可见的ESXi。
https://serverfault.com/questions/591141
复制相似问题