如何从 openfiler 和 Linux 中删除 iSCSI 目标

在本文中,我将逐步介绍从 openfiler 中删除 iSCSI 目标的方法。

使用 root 帐户登录并按照以下步骤操作

# cd /opt/openfiler/etc/iscsi
# ls -l
total 28
-rw-r--r-- 1 openfiler openfiler 2000 Jan 28 19:52 ietd.conf.tmp
drwxr-xr-x 2 root      root      4096 Jan 28 19:41 iqn.2006-01.com.openfiler:ctdb
drwxr-xr-x 2 root      root      4096 Jan 28 19:41 iqn.2006-01.com.openfiler:qdisk
drwxr-xr-x 2 root      root      4096 Jan 28 19:40 iqn.2006-01.com.openfiler:san
drwxr-xr-x 2 root      root      4096 Jan 28 19:52 iqn.2006-01.com.openfiler:tsn.dc0b0f3d8f75
drwxr-xr-x 2 root      root      4096 Jan 28 19:43 targets
drwxr-xr-x 2 root      root      4096 Apr 12  2011 transforms

如我们所见,创建的所有 iSCSI 目标都是可见的。
继续,删除我们不再需要的目标

# rm -rf "iqn.2006-01.com.openfiler:tsn.dc0b0f3d8f75"

现在将目录更改为目标

# cd targets/
# pwd
/opt/openfiler/etc/iscsi/targets

打开 iscsi_settings.xml 文件并删除 iscsi-target 条目,如下所示

# vi iscsi_settings.xml
<?xml version="1.0"?>
<iet>
  <globalsettings>
    <isns/>
  </globalsettings>
  <targets>
    <target Name="iqn.2006-01.com.openfiler:san">
      <HeaderDigest value="None"/>
      <DataDigest value="None"/>
      <MaxConnections value="1"/>
      <InitialR2T value="Yes"/>
      <ImmediateData value="No"/>
      <MaxRecvDataSegmentLength value="131072"/>
      <MaxXmitDataSegmentLength value="131072"/>
      <MaxBurstLength value="262144"/>
      <FirstBurstLength value="262144"/>
      <DefaultTime2Wait value="2"/>
      <DefaultTime2Retain value="20"/>
      <MaxOutstandingR2T value="8"/>
      <DataPDUInOrder value="Yes"/>
      <DataSequenceInOrder value="Yes"/>
      <ErrorRecoveryLevel value="0"/>
      <Wthreads value="16"/>
      <QueuedCommands value="32"/>
      <lun Id="0" Path="/dev/san/work" Type="blockio" ScsiId="hgrEcw-zeTg-cXpE" ScsiSN="hgrEcw-zeTg-cXpE" IOMode="t"/>
    </target>
    <target Name="iqn.2006-01.com.openfiler:ctdb">
      <HeaderDigest value="None"/>
      <DataDigest value="None"/>
      <MaxConnections value="1"/>
      <InitialR2T value="Yes"/>
      <ImmediateData value="No"/>
      <MaxRecvDataSegmentLength value="131072"/>
      <MaxXmitDataSegmentLength value="131072"/>
      <MaxBurstLength value="262144"/>
      <FirstBurstLength value="262144"/>
      <DefaultTime2Wait value="2"/>
      <DefaultTime2Retain value="20"/>
      <MaxOutstandingR2T value="8"/>
      <DataPDUInOrder value="Yes"/>
      <DataSequenceInOrder value="Yes"/>
      <ErrorRecoveryLevel value="0"/>
      <Wthreads value="16"/>
      <QueuedCommands value="32"/>
      <lun Id="0" Path="/dev/san/ctdb" Type="blockio" ScsiId="zegB7p-3BHl-ySne" ScsiSN="zegB7p-3BHl-ySne" IOMode="t"/>
    </target>
    <target Name="iqn.2006-01.com.openfiler:qdisk">
      <HeaderDigest value="None"/>
      <DataDigest value="None"/>
      <MaxConnections value="1"/>
      <InitialR2T value="Yes"/>
      <ImmediateData value="No"/>
      <MaxRecvDataSegmentLength value="131072"/>
      <MaxXmitDataSegmentLength value="131072"/>
      <MaxBurstLength value="262144"/>
      <FirstBurstLength value="262144"/>
      <DefaultTime2Wait value="2"/>
      <DefaultTime2Retain value="20"/>
      <MaxOutstandingR2T value="8"/>
      <DataPDUInOrder value="Yes"/>
      <DataSequenceInOrder value="Yes"/>
      <ErrorRecoveryLevel value="0"/>
      <Wthreads value="16"/>
      <QueuedCommands value="32"/>
      <lun Id="0" Path="/dev/san/qdisk" Type="blockio" ScsiId="VWq9z7-aa2l-6RMj" ScsiSN="VWq9z7-aa2l-6RMj" IOMode="wt"/>
    </target>
    <target Name="iqn.2006-01.com.openfiler:tsn.dc0b0f3d8f75">
      <HeaderDigest value="None"/>
      <DataDigest value="None"/>
      <MaxConnections value="1"/>
      <InitialR2T value="Yes"/>
      <ImmediateData value="No"/>
      <MaxRecvDataSegmentLength value="131072"/>
      <MaxXmitDataSegmentLength value="131072"/>
      <MaxBurstLength value="262144"/>
      <FirstBurstLength value="262144"/>
      <DefaultTime2Wait value="2"/>
      <DefaultTime2Retain value="20"/>
      <MaxOutstandingR2T value="8"/>
      <DataPDUInOrder value="Yes"/>
      <DataSequenceInOrder value="Yes"/>
      <ErrorRecoveryLevel value="0"/>
      <Wthreads value="16"/>
      <QueuedCommands value="32"/>
      <lun Id="0" Path="/dev/san/ctdb" Type="blockio" ScsiId="zegB7p-3BHl-ySne" ScsiSN="zegB7p-3BHl-ySne" IOMode="wt"/>
    </target>
  </targets>
</iet>

完成后保存并退出文件并重新启动 iscsi-target 服务

# /etc/init.d/iscsi-target restart
Stopping iSCSI target service: ......                      [  OK  ]
Starting iSCSI target service:                             [  OK  ]

检查是否OK,我们可以看到目标已成功删除。

从 openfiler 中删除 iscsi-target 后,我们可能会在尝试重新启动 iSCSI 服务时在客户端 linux 机器上收到以下错误

# service iscsi restart
Stopping iscsi:                                            [  OK  ]
Starting iscsi: iscsiadm: Could not login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.dc0b0f3d8f75, portal: 192.168.1.8,3260].
iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)
iscsiadm: Could not log into all portals

从 linux 机器中删除 iSCSI 目标

# service iscsi stop
Stopping iscsi:                                            [  OK  ]

使用以下命令删除选定的目标

# iscsiadm -m node -o delete -T "iqn.2006-01.com.openfiler:tsn.dc0b0f3d8f75" --portal 192.168.1.8,3260

从 openfiler 服务器重新发现 iSCSI 目标,如下所示,我们只有所需的目标

# iscsiadm -m discovery -t sendtargets -p 192.168.1.8
192.168.1.8:3260,1 iqn.2006-01.com.openfiler:qdisk
192.168.1.8:3260,1 iqn.2006-01.com.openfiler:ctdb
192.168.1.8:3260,1 iqn.2006-01.com.openfiler:san

在 linux 机器上启动所需的 iSCSI 服务

# service iscsi start
Starting iscsi:                                            [  OK  ]
日期:2020-06-02 22:18:29 来源:oir作者:oir