esxi鍒犻櫎瀛樺偍 (esxi閲嶈涔嬪悗濡備綍鎭㈠鏁版嵁)

在 ESXi/ESX 4.x 中移除 LUN 的过程比较复杂。而 ESXi 5.0 及更高版本提供了一些改进功能,可以简化该过程,使管理员可以更方便地移除 LUN。

卸载 LUN 核对清单

卸载 LUN 之前,请确保以下事项:

  • 如果正在使用该 LUN 作为 VMFS 数据存储,则在该 VMFS 数据存储上存储的所有对象(如虚拟机、快照和模板)都已取消注册,或者移动到另一个数据存储。 注意 :还必须将 VMFS 数据存储上的所有 CD/DVD 映像从虚拟机中取消注册。
  • 该数据存储未用于 vSphere HA 检测信号。
  • 该数据存储不属于数据存储群集。 有关数据存储群集的详细信息,请参见:

vSphere 5.1 Resource Management GuidevSphere 5.0 Resource Management Guide。该数据存储不受存储 DRS 管理。。 有关 Storage DRS 的详细信息,请参见vSphere 5.1 Resource Management GuidevSphere 5.0 Resource Management Guide。

  • 该数据存储没有被配置为检测核心转储分区。
  • 有关详细信息,请参见 在 ESXi 5.x/6.0 主机上配置诊断核心转储分区 (2093656)。
  • 已为该数据存储禁用 Storage I/O Control。 有关详细信息,请参见 vSphere 5.1 Resource Management Guide 或 vSphere 5.0 Resource Management Guide 中的“管理 Storage I/O 资源”部分。
  • 在 ESXi 主机上运行的第三方脚本或实用程序无法访问有问题的 LUN。如果正在使用该 LUN 作为数据存储,请取消注册在该数据存储上存储的所有对象(如虚拟机和模板)。
  • 如果正在使用该 LUN 作为 RDM,请从虚拟机中移除此 RDM。单击 编辑设置 ,突出显示 RDM 硬盘,然后单击 移除 。如果尚未选择 从磁盘删除 ,请选择该选项,然后单击 确定 注意 :该操作将破坏映射文件,但不会破坏 LUN 内容。
  • 检查 LUN/数据存储是否 被用作主机的持久暂存位置。有关持久暂存的详细信息,请参见 为 ESXi 4.x/5.x/6.0 创建持久暂存位置 (2075508)。 以下 PowerCLI 脚本可用于检查当前暂存位置: $vcServer = "vCenter01"$cluster = "CL01"$esxCred = Get-CredentialConnect-VIServer $vcServer | Out-Null#Connect to ESX hosts in clusterforeach ($esx in Get-Cluster $cluster | Get-VMHost) {Connect-VIServer $esx -Credential $esxCred | Out-NullGet-VMHostAdvancedConfiguration -Name "ScratchConfig.ConfiguredScratchLocation"}

注意 :如果正在 vSphere 5.x 和 6.x 中使用 vSphere Web Client,则只有在数据存储卸载操作期间才会执行这些检查:

  • 主机不包含任何驻留在该数据存储上的虚拟机
  • 主机不应将该数据存储用于 HA 检测信号

获取要移除的 LUN 的 NAA ID

在 vSphere Client 中,可从数据存储的“属性”窗口查看此信息。 在 ESX 主机上,请运行以下命令: # esxcli storage vmfs extent list 您会看到类似以下内容的输出: Volume Name VMFS UUID Extent Number Device Name Partition----------- ----------------------------------- ------------- ------------------------------------ ---------datastore1 4de4cb24-4cff750f-85f5-0019b9f1ecf6 0 naa.6001c230d8abfe000ff76c198ddbc13e 3Storage2 4c5fbff6-f4069088-af4f-0019b9f1ecf4 0 naa.6001c230d8abfe000ff76c2e7384fc9a 1Storage4 4c5fc023-ea0d4203-8517-0019b9f1ecf4 0 naa.6001c230d8abfe000ff76c51486715db 1LUN01 4e414917-a8d75514-6bae-0019b9f1ecf4 0 naa.60a98000572d54724a34655733506751 1 记下该数据存储的 NAA ID,以便稍后在该步骤中使用此信息。 注意 :您也可以运行 esxcli storage filesystem list 命令,该命令可列出 ESXi 主机识别出的所有文件系统。

使用 vSphere Client 卸载 LUN

要使用 vSphere Client 分离存储设备,请参见 vSphere 5.0StorageGuide 中的“分离存储设备”部分。 警告 :必须先使用文档中记录的方法成功卸载数据存储,然后才能完成下面所述的步骤。有关详细信息,请参见 vSphere 5.0 Storage Guide 中的“卸载 VMFS 或 NFS 数据存储”部分。 要使用 vSphere Client 从 ESXi 5.0 主机卸载 LUN,请执行以下操作:

  1. 如果此 LUN 为 RDM,请跳至步骤 2。否则,在 ESXi 主机的“配置”选项卡中,单击 存储 。右键单击要移除的数据存储,然后单击 卸载 。 此时将显示“确认卸载数据存储”窗口。符合必备条件后,请单击 确定 注意 :要在 vSphere Client 中从多个主机中卸载某一个数据存储,请单击 主机和群集 > 数据存储和数据存储群集 视图 (Ctrl+Shift+D )。执行卸载任务,然后选择不应再访问要卸载的数据存储的相应主机。
  2. 单击 设备 视图(位于 配置 > 存储 ):
  3. 右键单击此 LUN 的 NAA ID(如上所述),然后单击 分离 。此时将显示“确认卸载设备”窗口。符合必备条件后,请单击 确定 。此 LUN 将在“设备”的“操作状态”下显示为“已卸载”。 注意 :必须按主机执行“分离”功能,该功能不会传播到 vCenter Server 中的其他主机。如果已将 LUN 提供给 SAN 上的启动器组或存储组,则必须在该 SAN 中对该启动器组中的每个主机执行“分离”功能,然后再从该组中取消该 LUN 的映射。如果不按此步骤进行操作,则会使该存储组中没有针对要取消映射的 LUN 执行“分离”操作的主机处于全部路径异常 (APD) 状态。
  4. 确认 LUN 是否成功分离。然后,该 LUN 便可安全地从 SAN 中取消提供。有关详细信息,请联系存储阵列供应商。
  5. 对可识别该 LUN 的所有 ESXi 主机执行重新扫描。该设备将自动从存储适配器中移除。

该设备一旦分离,便会处于已卸载状态,即使重新提供该设备也是如此(即,已分离状态是一种持久状态)。要使设备恢复联机状态,必须附加该设备。 如果要从 ESXi 主机中永久停用该设备,请从主机配置中手动移除 NAA 条目:

  1. 要列出永久分离的设备,请运行以下命令: # esxcli storage core device detached list 您会看到类似以下内容的输出: Device UID State------------------------------------ -----naa.50060160c46036df50060160c46036df offnaa.6006016094602800c8e3e1c5d3c8e011 off
  2. 要从系统中永久移除设备配置信息,请运行以下命令: # esxcli storage core device detached remove -d NAA_ID 例如: # esxcli storage core device detached remove -d naa.50060160c46036df50060160c46036df

使用命令行卸载 LUN

要使用命令行从 ESXi 5.x/6.x 主机卸载 LUN,请执行以下操作:

  1. 如果此 LUN 为 RDM,请跳至步骤 4。否则,要获取已挂载到 ESXi 主机的所有数据存储列表,请运行以下命令: # esxcli storage filesystem list 您会看到类似于以下内容的输出,其中会列出所有 VMFS 数据存储: Mount Point Volume Name UUID Mounted Type Size Free------------------------------------------------- ----------- ----------------------------------- ------- ------ ----------- -----------/vmfs/volumes/4de4cb24-4cff750f-85f5-0019b9f1ecf6 datastore1 4de4cb24-4cff750f-85f5-0019b9f1ecf6 true VMFS-5 140660178944 94577360896/vmfs/volumes/4c5fbff6-f4069088-af4f-0019b9f1ecf4 Storage2 4c5fbff6-f4069088-af4f-0019b9f1ecf4 true VMFS-3 146028888064 7968129024/vmfs/volumes/4c5fc023-ea0d4203-8517-0019b9f1ecf4 Storage4 4c5fc023-ea0d4203-8517-0019b9f1ecf4 true VMFS-3 146028888064 121057050624/vmfs/volumes/4e414917-a8d75514-6bae-0019b9f1ecf4 LUN01 4e414917-a8d75514-6bae-0019b9f1ecf4 true VMFS-5 146028888064 4266131456
  2. 要查看希望移除的数据存储所在的 LUN 的唯一标识符,请运行以下命令: # esxcfg-scsidevs -m 此命令将生成 VMFS 数据存储卷及其相关唯一标识符的列表。记下要卸载的数据存储的唯一标识符 ( NAA_ID ),以便稍后使用。 有关 esxcfg-scsidevs 命令的详细信息,请参见 使用 VMware ESXi/ESX 时识别磁盘 (2049662) 。
  3. 运行以下命令卸载数据存储: # esxcli storage filesystem unmount [-u UUID | -l label | -p path ] 例如,使用以下命令之一卸载 LUN01 数据存储: # esxcli storage filesystem unmount -l LUN01# esxcli storage filesystem unmount -u 4e414917-a8d75514-6bae-0019b9f1ecf4# esxcli storage filesystem unmount -p /vmfs/volumes/4e414917-a8d75514-6bae-0019b9f1ecf4 注意 :如果尝试卸载的 VMFS 文件系统具有活动 I/O 或尚未满足卸载 VMFS 数据存储的必备条件,则会在 VMkernel 日志中显示如下错误: WARNING:VC:637: unmounting opened volume ('4e414917-a8d75514-6bae-0019b9f1ecf4' 'LUN01') is not allowed.VC:802: Unmount VMFS volume f530 28 2 4e414917a8d7551419006bae f4ecf19b 4 1 0 0 0 0 0 :Busy
  4. 要验证数据存储是否已卸载,请运行以下命令: # esxcli storage filesystem list 您会看到类似以下内容的输出: Mount Point Volume Name UUID Mounted Type Size Free------------------------------------------------- ----------- ----------------------------------- ------- ------ ----------- -----------/vmfs/volumes/4de4cb24-4cff750f-85f5-0019b9f1ecf6 datastore1 4de4cb24-4cff750f-85f5-0019b9f1ecf6 true VMFS-5 140660178944 94577360896/vmfs/volumes/4c5fbff6-f4069088-af4f-0019b9f1ecf4 Storage2 4c5fbff6-f4069088-af4f-0019b9f1ecf4 true VMFS-3 146028888064 7968129024/vmfs/volumes/4c5fc023-ea0d4203-8517-0019b9f1ecf4 Storage4 4c5fc023-ea0d4203-8517-0019b9f1ecf4 true VMFS-3 146028888064 121057050624LUN01 4e414917-a8d75514-6bae-0019b9f1ecf4 false VMFS-unknown version 0 0 Mounted 字段设置为 false, Type 字段设置为 VMFS-unknown version,并且 Mount Point 不存在。 注意 :VMFS 数据存储的已卸载状态不会受重新引导的影响。这是默认行为。如果需要临时卸载数据存储,可在 unmount 命令上附加 --no-persist 标记。
  5. 要分离设备/LUN,请运行以下命令: # esxcli storage core device set --state=off -d NAA_ID
  6. 要验证设备是否处于脱机状态,请运行以下命令: # esxcli storage core device list -d NAA_ID 您会看到类似于以下内容的输出,其中会显示磁盘的 Status 是否为 off: naa.60a98000572d54724a34655733506751Display Name:NETAPP Fibre Channel Disk (naa.60a98000572d54724a34655733506751)Has Settable Display Name:trueSize:1048593Device Type:Direct-AccessMultipath Plugin:NMPDevfs Path:/vmfs/devices/disks/naa.60a98000572d54724a34655733506751Vendor:NETAPPModel:LUNRevision:7330SCSI Level:4Is Pseudo:falseStatus:offIs RDM Capable:trueIs Local:falseIs Removable:falseIs SSD:falseIs Offline:falseIs Perennially Reserved:falseThin Provisioning Status:yesAttached Filters:VAAI Status:unknownOther UIDs:vml.020000000060a98000572d54724a346557335067514c554e202020 在设备上运行 partedUtil getptbl 命令可查看设备是否未找到。 例如: # partedUtil getptbl /vmfs/devices/disks/naa.60a98000572d54724a34655733506751 Error:Could not stat device /vmfs/devices/disks/naa.60a98000572d54724a34655733506751 - No such file or directory.Unable to get device /vmfs/devices/disks/naa.60a98000572d54724a34655733506751
  7. 如果要永久取消使用该设备,现在便可从 SAN 中取消提供 LUN。有关详细信息,请联系您的存储团队、存储管理员或存储阵列供应商。
  8. 要重新扫描 ESXi 主机上的所有设备,请运行以下命令: # esxcli storage core adapter rescan [ -A vmhba# | --all ] 设备将自动从存储适配器中移除。 注意 :必须对可识别已移除的 LUN 的所有主机运行重新扫描。该设备一旦分离,便会处于已卸载状态,即使重新提供该设备也是如此(即,已分离状态是一种持久状态)。要使设备恢复联机,必须附加该设备。要通过命令行来执行该操作,请运行以下命令: # esxcli storage core device set --state=on -d NAA_ID
  9. 如果要从 ESXi 主机中永久取消使用该设备(即,该 LUN 已破坏或将破坏),请运行以下命令,从主机配置中移除 NAA 条目:要列出永久分离的设备,请运行以下命令: # esxcli storage core device detached list 您会看到类似以下内容的输出: Device UID State---------------------------- -----naa.50060160c46036df50060160c46036df offnaa.6006016094602800c8e3e1c5d3c8e011 off要从系统中永久移除设备配置信息,请执行以下操作: # esxcli storage core device detached remove -d NAA_ID 例如: # esxcli storage core device detached remove -d naa.50060160c46036df50060160c46036df此时,对该设备配置的引用将从 ESXi 主机的配置中永久移除。 注意 :如果分离但仍提供该设备(跳过步骤 7),以上命令将无法从系统中永久移除该设备,且该设备会自动重新附加。您必须完成步骤 7,才能永久移除该设备。

使用 PowerCLI 和 vSphere SDK for Perl 自动分离数据存储

可以使用 PowerCLI 脚本自动从多个主机中分离数据存储。 使用 PowerCLI 要使用 PowerCLI 分离存储设备,请执行以下操作:

  1. 查看 VMware Contributed Sample Code disclaimer。
  2. 从 Automating Datastore/Storage Device Detachment in vSphere 5 *载下** PowerCLI 脚本。 注意 :此 PowerCLI 脚本按原样提供,并由相应社区提供支持。如果遇到与 PowerCLI 脚本有关的问题,请从 VMware Communities 论坛获得帮助。
  3. 使用以下命令导入脚本: Import-Module path_to_script
  4. 确保已卸载目标数据存储。有关详细信息,请参见 vSphere 5.0 Storage Guide 中的“卸载 VMFS 或 NFS 数据存储”部分。
  5. 运行以下命令列出所有数据存储及其附加的主机: Get-Datastore | Get-DatastoreMountInfo | Sort Datastore, VMHost | FT –AutoSize 您会看到类似以下内容的输出: Datastore VMHost Lun Mounted State--------- ------ --- ------- -----IX2ISCSI01 esx01.vmw.local naa.5000144f52145699False AttachedIX2ISCSI01 esx02.vmw.local naa.5000144f52145699False AttachedIX2ISCSI01 esx03.vmw.local naa.5000144f52145699False AttachedLocalDatastore esx01.vmw.local mpx.vmhba1:C0:T0:L0 True AttachedLocalDatastore esx02.vmw.local mpx.vmhba1:C0:T0:L0 True Attachedesx04-Internal-150GB esx04.vmw.local t10.ATA_____GB0160EAPRR_____________________________WCAT25563003________ True Attachedesx04-Internal-500GB esx04.vmw.local t10.ATA_____WDC_WD5000AAKS2D00V1A0________________________WD2DWMAWF0069467 True Attachedesx03-Internal-150GB esx03.vmw.local t10.ATA_____GB0160EAPRR_____________________________WCAT25704089________ True Attachedesx03-Internal-500GB esx03.vmw.local t10.ATA_____WDC_WD5000AAKS2D00YGA0________________________WD2DWCAS85034601 True Attached
  6. 选择相应的数据存储,记下 Datastore 列下方的名称,然后确认所有主机的 Mounted 列的值均为 False。
  7. 运行以下命令从所有主机中分离设备: Get-Datastore datastore_name | Detach-Datastore 其中 datastore_name 是在步骤 3 中记下的数据存储名称。 您会看到类似以下内容的输出: Detaching LUN naa.5000144f52145699 from host esx01.vmw.local...Detaching LUN naa.5000144f52145699 from host esx02.vmw.local...Detaching LUN naa.5000144f52145699 from host esx03.vmw.local...

注意 : Powercli 命令 Get-Datastore datastore_name | Detach-Datastore 只能分离由多个 extent 组成的数据存储的 head extent (first extent)。该步骤不适用于有 multiextent 的数据存储。 使用 vSphere SDK for Perl 要使用 Perl 分离存储设备,请执行以下操作:

  1. 查看 VMware Contributed Sample Code disclaimer。
  2. 部署社区可支持的 Perl 脚本,该脚本位于 VMware vSphere 博客 Automating Datastore/Storage Device Detachment in vSphere 5 中。 注意 :继续操作前,请确保已卸载目标数据存储。有关详细信息,请参见 vSphere 5.0 Storage Guide 中的“卸载 VMFS 或 NFS 数据存储”部分。
  3. 运行以下命令列出所有数据存储及其附加的主机: ./lunManagement.pl --server vcenter_ip --username user --operation list 其中 vcenter_ip 是用于管理主机的 vCenter Server 的 IP 地址, user 是具有管理权限的用户。
  4. 系统将提示您输入步骤 3 中使用的用户帐户的密码。如果输入的密码正确,则该脚本将生成如下输出: Datastore:esx01-local-storage-1 LUN:mpx.vmhba1:C0:T0:L0esx01.vmw.local MOUNTED ATTACHEDDatastore:esx02-local-storage-1 LUN:mpx.vmhba1:C0:T0:L0esx02.vmw.local MOUNTED ATTACHEDDatastore:iSCSI-1 LUN:naa.600144f0a33bc20000004e9772510001esx01.vmw.local UNMOUNTED ATTACHEDesx02.vmw.local UNMOUNTED ATTACHEDDatastore:iSCSI-2 LUN:naa.600144f0a33bc20000004e9772ee0002esx01.vmw.local MOUNTED ATTACHEDesx02.vmw.local MOUNTED ATTACHEDDatastore:iSCSI-3 LUN:naa.600144f0a33bc20000004e9773560003esx01.vmw.local MOUNTED ATTACHEDesx02.vmw.local MOUNTED ATTACHEDDatastore:iSCSI-4 LUN:naa.600144f0a33bc20000004e9773560004esx01.vmw.local MOUNTED ATTACHEDesx02.vmw.local MOUNTED ATTACHEDDatastore:iSCSI-5 LUN:naa.600144f0a33bc20000004e9773570005esx01.vmw.local MOUNTED ATTACHEDesx02.vmw.local MOUNTED ATTACHED
  5. 检查相应数据存储名称和 NAA 值下方的 UNMOUNTED 关键字,确认已卸载要分离的数据存储。
  6. 运行以下命令从多个主机中分离设备: ./lunManagement.pl --server vcenter_ip --username user --operation detach --datastore datastore 其中 vcenter_ip 为 vCenter Server 的 IP 地址, user 为具有管理权限的用户, datastore 为步骤 4 中确定的数据存储名称。
  7. 系统将提示您输入密码,并确认是否要执行该操作。输入正确的密码并确认警告信息后,该工具将生成如下输出: Detaching LUN "0200000000600144f0a33bc20000004e9772510001434f4d535441" from Host "esx01.vmw.local" ...Successfully detached LUN!Detaching LUN "0200000000600144f0a33bc20000004e9772510001434f4d535441" from Host "esx02.vmw.local" ...Successfully detached LUN!

注意 :分离 LUN 后,便可在存储中取消提供该 LUN。但是,如果在存储上取消提供 LUN 之前,运行了在 ESXi 主机中永久停用 LUN 的 esxcli storage core device detached remove -d NAA_ID 命令,LUN 会重新附加到主机,并且还必须再进行分离。