Set Up Dependent Hardware iSCSI with ESXCLI
Dependent hardware iSCSI setup requires several high-level tasks.
You should be familiar with
the corresponding command for each task. You can refer to the relevant
documentation for each command or run
esxcli iscsi --help
in the console. Specify one of the
options listed in
Connection Options for ESXCLI Host Management Commands
in place of
<conn_options>
.
Prerequisites
- Verify that you are familiar with iSCSI authentication. See Enabling iSCSI Authentication.
- Verify that you are familiar with CHAP. See Setting iSCSI CHAP.
- Verify that you are familiar with iSCSI parameters. See Listing and Setting iSCSI Parameters.
Procedure
-
Determine the iSCSI
adapter type and retrieve the iSCSI adapter ID.
esxcli <conn_options> iscsi adapter list
- (Optional)
Set the iSCSI name and
alias.
esxcli <conn_options> iscsi adapter set --adapter <adapter_name> --name=<name> esxcli <conn_options> iscsi adapter set --adapter <adapter_name> --alias=<alias>
-
Set up port binding.
-
Identify the
VMkernel port of the dependent hardware iSCSI adapter.
esxcli <conn_options> iscsi logicalnetworkportal list --adapter=<adapter_name>
-
Connect the
dependent hardware iSCSI initiator to the iSCSI VMkernel ports by running the
following command for each port.
esxcli <conn_options> iscsi networkportal add --nic=<bound_vmknic> --adapter=<iscsi_adapter>
-
Verify that the
ports were added to the dependent hardware iSCSI initiator.
esxcli <conn_options> iscsi physicalnetworkportal list --adapter=<adapter_name>
-
Identify the
VMkernel port of the dependent hardware iSCSI adapter.
-
Add a dynamic discovery
address or a static discovery address.
- With dynamic
discovery, all storage targets associated with a host name or IP address are
discovered. You can run the following command.
esxcli <conn_options> iscsi adapter discovery sendtarget add --address=<ip/dns[:port]> --adapter=<adapter_name>
- With static
discovery, you must specify the host name or IP address and the iSCSI name of
the storage target. You can run the following command.
esxcli <conn_options> iscsi adapter discovery statictarget add --address=<ip/dns[:port]> --adapter=<adapter_name> --name=<target_name>
When you later remove a discovery address, it might still be displayed as the parent of a static target. You can add the discovery address and rescan to display the correct parent for the static targets. - With dynamic
discovery, all storage targets associated with a host name or IP address are
discovered. You can run the following command.
- (Optional)
Set the authentication
information for CHAP.
You can set per-target CHAP for static targets, per-adapter CHAP, or apply the command to the discovery address.
Option Command Adapter-level CHAP esxcli iscsi adapter auth chap set --direction=uni --chap_username=<name> --chap_password=<pwd> --level=[prohibited, discouraged, preferred, required] --secret=<string> --adapter=<vmhba>
Discovery-level CHAP esxcli iscsi adapter discovery sendtarget auth chap set --direction=uni --chap_username=<name> --chap_password=<pwd> --level=[prohibited, discouraged, preferred, required] --secret=<string> --adapter=<vmhba> --address<sendtarget_address>
Target-level CHAP esxcli iscsi adapter target portal auth chap set --direction=uni --chap_username=<name> --chap_password=<pwd> --level=[prohibited, discouraged, preferred, required] --secret=<string> --adapter=<vmhba> --name<iscsi_iqn_name>
The following example sets adapter-level CHAP.esxcli <conn_options> iscsi adapter auth chap set --direction=uni --chap_username=<name> --chap_password=<pwd> --level=preferred --secret=uni_secret --adapter=vmhba33
- (Optional)
Set the authentication
information for mutual CHAP by running
esxcli iscsi adapter auth chap set
again with--direction
set tomutual
and a different authentication user name and secret.Option Command Adapter-level CHAP esxcli iscsi adapter auth chap set --direction=mutual --mchap_username=<name2> --mchap_password=<pwd2> --level=[prohibited required] --secret=<string2> --adapter=<vmhba>
Discovery-level CHAP esxcli iscsi adapter discovery sendtarget auth chap set --direction=mutual --mchap_username=<name2> --mchap_password=<pwd2> --level=[prohibited, required] --secret=<string2> --adapter=<vmhba> --address=<sendtarget_address>
Target-level CHAP esxcli iscsi adapter target portal auth chap set --direction=mutual --mchap_username=<nam2e> --mchap_password=<pwd2> --level=[prohibited required] --secret=<string2> --adapter=<vmhba> --name=<iscsi_iqn_name>
Important: You are responsible for making sure that CHAP is set before you set mutual CHAP, and for using compatible levels for CHAP and mutual CHAP. - (Optional)
Set iSCSI parameters.
Option Command Adapter-level CHAP esxcli iscsi adapter param set --adapter=<vmhba> --key=<key> --value=<value>
Discovery-level CHAP esxcli iscsi adapter discovery sendtarget param set --adapter=<vmhba> --key=<key> --value=<value> --address=<sendtarget_address>
Target-level CHAP esxcli iscsi adapter target portal param set --adapter=<vmhba> --key=<key> --value=<value> --address=<address> --name=<iqn.name>
-
After setup is complete,
perform rediscovery and rescan all storage devices.
The following example performs the rediscovery and rescan operations.
esxcli <conn_options> iscsi adapter discovery rediscover esxcli <conn_options> storage core adapter rescan --adapter=vmhba36
- (Optional)
If you want to make
additional iSCSI login parameter changes, you must log out of the corresponding
iSCSI session and log back in.
-
Run
esxcli iscsi session remove
to log out. -
Run
esxcli iscsi session add
or rescan the adapter to add the session back.
-
Run