Reaching a virtual host remotely with the vSphere client through a SSH tunnel is not as straight forward as one could hope. However, it is possible with a few simple steps.
How to connect to a remote ESXi server through a SSH tunnel
I will present two examples, one using the Putty GUI and the other with command line arguments for Putty.
A. Putty GUI
- Create or open an existing session to a machine located on the ESXi management network.
- Go to Connection – SSH – Tunnels and add the following tunnel configurations:
Replace 10.0.0.254 with the IP of your ESXi host.
- Return to the session settings and make sure you save your settings . It is always a pain to realize when pressing Open to early.
- Connect to the machine with the newly created session
- Due to some issues in the vSphere client we need to add an entry to the Windows hosts file. Open notepad with administrator privileges (needed to make changes to the hosts file) and open the file (without file extension):
(hint: copy paste the about line into the Open file dialogue)
- Add a line at the end of the file
Save the file and exit Notepad
- Fire the vSphere client and enter esxiserver as “IP address / Name” and your login credentials.
B. Putty command line
- Instead of setting up a Putty session with the GUI
putty.exe -L 443:destIP:443 -L 902:destIP:902 -L 903:destIP:903 user@local_machine
(all the above on the same line) where destIP is the IP of the ESXi-server, user is your username on the local_machine and local_machine is the machine on the local network. Hit enter to launch the SSH session and log in.
- Setup the hosts file as described in step 5-6 in the previous section
- Launch the vSphere client and connect as described in step 7 above.
Raw Device Mapping (RDM) is a a method to pass a physical drive (that is detected by ESXi) to a virtual machine without first creating a Datastore and a virtual hard disk inside it.
Here is how to setup a drive with RDM to a VM:
- Enable SSH on the host. Log in to the physical ESXi host. Under Troubleshooting Options select Enable SSH.
- Log in to the host with your favorite SSH client
- Find out what the disk is called by issuing the command:
ls -l /vmfs/devices/disks/
The device is called something like:
Make sure you determine the correct drive to use for the RDM. Entries with the same beginning as above but ending with :1 is a partition. This is not what you want, you want to map the entire drive.
- Find your datastore by issuing the command:
ls -l /vmfs/volumes/
It should be named something like:
Datastore1 -> 509159-bd99-…
- Go to your Datastore by issuing the command:
(Type ls and you will see the content of this Datastore)
- Here comes the actual mapping. Issue the command:
vmkfstools -z /vmfs/devices/disks/<name of disk from step 3> <RDM>.vmdk
Where you replace the <name of disk from step 3> with the actual disk name and <RDM>with what you would like to call the RDM. A concrete example:vmkfstools -z /vmfs/devices/disks/t10.ATA_DISKNAME_ SamsungRDM.vmdk
- Log in to the vSphere client
- Shutdown the virtual machine that you want to add the RDM to
- Open the settings for the virtual machine
- Under hardware tab, click Add…
- Select Hard Disk and press Next
- Select Use an existing virutal disk
- Press Browse, go to the datastore we found in step 4 and select theSamsungRDM.vmdk we created in step 6.
- Press Next, Next and Finish to finalize the add hardware guide.
The hard drive is now added to the VM. Just start it up and start using the drive.
Note 1: I was trying to be a smart ass by using the path /dev/disks/ instead of /vmfs/devices/disks/ to point out the disk for the vmkfstools and it refused to accept it.
Note 2: SMART monitoring does not work on drives used as RDM.