可以阻止主机访问存储设备或 LUN,或阻止其使用指向某个 LUN 的单个路径。使用 esxcli 命令可屏蔽路径。屏蔽路径时,请创建声明规则,该规则将 MASK_PATH 插件分配给指定路径。

在此过程中,--server=server_name 指定目标服务器。指定的目标服务器会提示您输入用户名和密码。支持其他连接选项,如配置文件或会话文件。有关连接选项的列表,请参见vSphere Command-Line Interface 入门

前提条件

安装 vCLI 或部署 vSphere Management Assistant (vMA) 虚拟机。请参见vSphere Command-Line Interface 入门。要进行故障排除,请在 ESXi Shell 中运行 esxcli 命令。

过程

  1. 检查下一个可用的规则 ID 是多少。
    esxcli --server=server_name storage core claimrule list
    用于屏蔽路径的声明规则的规则 ID 在 101 – 200 范围内。如果此命令显示规则 101 和 102 已经存在,您可以指定 103 来添加规则。
  2. 通过为 MASK_PATH 插件创建新声明规则,将该插件分配给某个路径。
    esxcli --server=server_name storage core claimrule add -P MASK_PATH
  3. 将 MASK_PATH 声明规则加载到系统中。
    esxcli --server=server_name storage core claimrule load
  4. 验证是否正确添加了 MASK_PATH 声明规则。
    esxcli --server=server_name storage core claimrule list
  5. 如果存在已屏蔽路径的声明规则,则将规则移除。
    esxcli --server=server_name storage core claiming unclaim
  6. 运行路径声明规则。
    esxcli --server=server_name storage core claimrule run

结果

在将 MASK_PATH 插件分配给路径之后,路径状态变为不相关,且不再由主机进行维护。因此,显示屏蔽路径信息的命令可能将路径状态显示为失效。

示例: 屏蔽 LUN

在此示例中,屏蔽目标 T1 和 T2 上通过存储适配器 vmhba2 和 vmhba3 访问的 LUN 20。

  1. #esxcli --server=server_name storage core claimrule list
  2. #esxcli --server=server_name storage core claimrule add -P MASK_PATH -r 109 -t location -A vmhba2 -C 0 -T 1 -L 20 
    #esxcli --server=server_name storage core claimrule add -P MASK_PATH -r 110 -t location -A vmhba3 -C 0 -T 1 -L 20 
    #esxcli --server=server_name storage core claimrule add -P MASK_PATH -r 111 -t location -A vmhba2 -C 0 -T 2 -L 20 
    #esxcli --server=server_name storage core claimrule add -P MASK_PATH -r 112 -t location -A vmhba3 -C 0 -T 2 -L 20
  3. #esxcli --server=server_name storage core claimrule load
  4. #esxcli --server=server_name storage core claimrule list
  5. #esxcli --server=server_name storage core claiming unclaim -t location -A vmhba2 
    #esxcli --server=server_name storage core claiming unclaim -t location -A vmhba3
  6. #esxcli --server=server_name storage core claimrule run