我有一个RHEL系统作为iSCSI目标,通过/etc/tgt/targets.conf(我在/etc/tgt/targets.conf中注释掉的例子之后构build的)通过一个目标共享2个LUN ):
<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上创build了一个4.00 TB的LVM逻辑卷; 但是我意识到我需要第二个LUN通过RDMtestingIops到ESXi主机上存储在本地存储上的虚拟机。 为此,我在同一个卷组上创build了另一个5.00 GB LVM逻辑卷,并在上面显示的目标configuration中为第二个LUN添加了LUN条目。 然后卸载ESXi主机上的4.00 Tb LUN,然后重新启动tgtd。
我现在看到一些奇怪的东西。 首先,这里是tgt-admin -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
正如您所看到的,只显示1个LUN,而不是2个,而显示的LUN只是稍后添加的5.00 GB LUN。 如果删除或注释掉LUN条目,则只显示LUN 0,即控制器,而不显示LUN 1。
但是,ESXi仍然可以看到4.00 TB的LUN,并且可以对其进行挂载,格式化等,尽pipe通过相同的iSCSI目标共享,但它看不到5.00 GB的分区。
结果我有几个问题:
tgt-admin是否只显示当前未连接到启动器的LUN? 如果不是,为什么我的4.00 TB数据存储不再显示?
如何获得第二个LUN显示给ESXi,以便通过RDM将其挂载到VM以进行iopstesting?
这是我发现问题所在。 由于企业合并被撤销这个项目后,它被放回了我的盘子,我决定重新从头开始。 这一次我创build了一个LUN,RH_ISCSI_LV_001,并通过iscsi守护进程共享。 我能够在vSphere中安装和格式化它。
再一次,我卸载LUN并停止tgtd编辑/etc/tgt/targets.conf以添加第二个testingLUN,我将其用于性能testing,方法是使用RDM将其映射到guest虚拟机。 当我开始tgtd时,再次显示只有一个LUN。
我推测这可能是VMware在格式化后不能被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在某种程度上没有干净地closures,因为没有阻止第二个tgtd进程启动(显然)它保留了LUN的“所有权”,从而阻止了每个连续的tgtd进程我触摸它产生了。 快速kill -9和service tgtd start稍后service tgtd start并且我的LUN对于ESXi都是可见的。