Monday, October 3, 2011

virtualising esx on esx

virtualise esx on esx

to avoid confusion and for brevity i will use the following terms in this documnet
pESX - Physical ESX
vESX - Virtual ESX

A very basic network / logical layout of the pESX/vESX infrastructure





DRAFT

I decided to create an vESX cluster within an pESX server for the purpose of going over material for the VCAP, I needed to be able to break things without worrying about impacting the production environment along with the fact that change control and making changes for the purpose of testing configs for vcap study material are mutually exclusive.

I had read a few articles previously but never bothered to absorb any of the information , i had a few hours free and an pESX server sitting there doing nothing so i decided to see what would happen if i tried to install ESX on ESX and would i be able to get a fully working esx cluster without referring to somebody elses work.

One very important consideration was that the  vESX traffic could not touch the production network

I will briefly describe the steps i took to build and configure the environment and the challenges i encountered

The architecture:

Physcial
HP BL 460 G1
4 X 3Ghz CPU's
32 GB RAM
4 X 146Gb HDD's (2 X raid 1 volumes 131GB and 143GB usable storage)
3 X Standard switches mapped to no physical uplinks

Virtual
2 vESX servers(2 pseudo Physical CPUs , 2GB RAM)
2 vESXi servers(2 pseudo Physical CPUs , 2GB RAM)
1 Open Filer which had 140GB of storage configured over 2 LUNs
1 W2K8r2 server acting as DC and VC
1 router (zeroshell)


IP Addressing

ESX01
     SC - 192.168.100.1
     VmotionFTvmKernel - 192.168.100.5

     vswif1 - 192.168.150.21
     vmk0 - 192.168.150.1



ESX02
     SC - 192.168.100.2
     VmotionFTvmKernel - 192.168.100.5


     vswif1 - 192.168.150.21
     vmk0 - 192.168.150.1


ESXi03
     VMK0 - 192.168.100.3

     VMK1 - 192.168.150.3

ESXi04
     VMK0 - 192.168.100.4
     VMK1 - 192.168.150.4

TLOpenFiler
      Management IP - 192.168.100.11
     iSCSI teamed IF - 192.168.150.13

TLFWrouter
      192.168.100.254
      192.168.150.254
      192.168.200.254

TLDCVS01

      192.168.200.100











Networking

In keeping with best practice i made the decision to split out the networking by traffic type,
on the pESX host i created 3 standard switches and did not bind them to any physical adapter
They were labeled as follows
"TL ESX vmK - isolated"      192.168.100.0/24 -> VMkernel and management traffic
"TL ESX iSCSI - isolated"    192.168.150.0/24 -> iSCSI Traffic
"TL ESX VMs - isolated"      192.168.200.0/24 -> Virtual Machine Traffic

Promiscous mode must be enabled on the virtual switches on the pESX host , the reason for enabling this security risk is the nested ESX host would otherwise only see the MAC addresses of virtual machines placed on the virtual network of that vESX host , we enable it so that all vESX servers see all MAC addresses.


Routing

As simple as putting a zeroshell router on the pESX host and giving it a NIC + an IP on each subnet.

Vlans

Not yet

Storage layout

Storage available on the pESX host was 4 X 146 GB HDD's split into 2 volumes , ESXi was installed on one of the volumes so there was 132 GB available on 1 volume (Datastore01) and 140 GB (esx07localvol1) available on the second.
in order to seperate storage by function (i.e vVMs on seperate phsycial spindles to the vESX and management/infrastucture systems)  the vESX servers , DC/VC , openfiler and router were all installed on Datastore1.
In order to present storage to the openfiler i opened VC and pointed to the pESX server , and added a number of disks to the "TLOpenfiler" virtual machine  (the only reason for adding a number of smaller disks rather than one big disk was simply to be able to add a number of disks within openfiler to create a LUN composed of a number of smaller disks as i felt this was more representative of a near production environment )

Openfiler configuration

The openfiler was installed as a VM directly on the pESX host , storage was allocated to it as above , and the VM was powered on and configured with boot , / (root) and swap all on the same disk (we dont care about performance in this setup) defaults were followed for the remainder.
The openfiler was initially configured with 1 interface which was on the "TL ESX vmK - isolated"
I added two more interfaces on the "TL ESX iSCSI - isolated" and created a bonded interface , assigning a 192.168.150.13 address.

create storage ......... as per http://greg.porter.name/wiki/HowTo:Openfiler
createLUN
createiSCSItarget

vESX server build

As the ESX Service console is simply an instance of Red hat linux i created the new virtual machine in the pVSphere and set the OS type as Redhat enterprise 64bit , i set the NIC type to be E1000 and the disk controller to be SAS parallel.
After the VM had been created i mounted the ESX media and started the VM following the defaults to get a good install.

ESXi does not have a service console instead it uses busybox to issue commands to the vmkernel , in this case i took a chance and created the vESXi machine as a generic 64bit version of linux , again NIC type was set to E1000 and the disk controller was set as SAS parallel.
ESXi image was mounted and installation was kicked off.

         vESX Networking
  
         on the pESX server for each vESX server , Add vNIC's mapped to the unbound vNICs created             on the the pESX server this will give the vESX server physical adapters. in each case i added 2
         NICs for each traffic type to more accurately reflect real world configurations  

         Attaching to iSCSI storage

          On Each ESX server using the vSphere client to connect to each one the following steps must be
          performed in order to access iSCSI LUNS (Which have already been created)
          on vESX add service console port on the iSCSI vSwitch, assign IP, SN mask etc  
          Open iSCSI (3260) service console FW port under security configuration.
          on the vspehere client attached to the vESX server go to configure , Storage adapters , iSCSI ,
          Configured (enabled) and finally click OK

          Now ESX is ready to attach to the iSCSI LUN created on the Openfiler
          on the iSCSI software intitator , select the Static Discovery tab and enter the IP and port of the
          OpenFilers IP on the Storage subnet and enter the target name copied from the Openfiler config page


         MPIOing the storage

         To enable Redundant MPIOing for the storage i added a second VMkernel port on the vswitch
          and named it "TL ESX iSCSI Pathb - Isolated" and gave it an IP on the 150 Subnet.
          Now to enable the redundancy in this environment i promoted NIC1 to the active and demoted
          NIC2 to be the standby adapter on the "TL ESX iSCSI - Isolated" VMK Port ,
          and the reverse of this NIC Order on the "TL ESX iSCSI Pathb - Isolated"
          then on the ESX host i ran the following command:
          esxcli swiscsi nic add -n vmk0 -d vmhna33
          esxcli swiscsi nic add -n vmk1 -d vmhba33
         
           
          


RDM
I also created an RDM to the FileServer01 , to do this i added a virtual machine portgroup to the  iSCSI vswitch, naming it "TL ESX iSCSI RDM - Isolated" , added a vNIC bound to that network to the VM , installed the iSCSI initiator and accessed the TLiSCSI1 LUN....except...i couldnt i found that W2K8 does not not seem to be compatible with the version of OpenFiler that i installed(2.3), i chose to not use CHAP authentication on the Openfiler ( Real world i would not use CHAP either , instead i would rely on the non routed segregated iSCSI network and switch port security, CHAP is cleartext and very easy to intercept)  










Issues

Power on VM fails with an error about running ESX as a virtual machine


Cannot virtualise vcentre on a vESX (64bit problem)



vcenter install fails saying you cant install on this version of 64bit windows
(This is actually an issue with ADAM being installed on a DC and trying to listen on 389)


Cannot join esxi hosts to a HA clister that already contains esx hosts
(this is to do with the vmkernel and service consle ports having different names and types , create das.allownetworks entry on cluster)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006541


Cannot Start VMA within the vESX sinfrastructure
(64 bit OS cannot start in vESX)

No comments:

Post a Comment