Ajcody-Virtualization: Difference between revisions
Line 562: | Line 562: | ||
* http://EXTERNAL-DOMAIN:8059 would get redirected to my vm server that is using 192.168.0.59 and to port 80 for the http ZWC login page. | * http://EXTERNAL-DOMAIN:8059 would get redirected to my vm server that is using 192.168.0.59 and to port 80 for the http ZWC login page. | ||
Note, another 'trick' you might need to do on your vm's to get them working in this type of situation from the outside is to setup one server [I used my 192.168.0.16 machine] to redirect and send emails from the other zcs servers. Adjust in the '''Configuration > Global Settings > MTA tab''' on the other ZCS servers to use the one server for: | |||
* Web mail MTA Port 25 | |||
* Inbound SMTP Host name | |||
Here's the /etc/rinetd.conf I have setup: | |||
<pre> | <pre> |
Revision as of 23:03, 11 May 2010
- This article is NOT official Zimbra documentation. It is a user contribution and may include unsupported customizations, references, suggestions, or information. |
Virtualization Issues
Actual Virutalization Issues Homepage
Please see Ajcody-Virtualization
Vmware - ESX - Performance Resources
External resources:
- "Performance Tuning for VI3"
- "Isolating Performance Problems (PDF)"
- "Representing Physical Machines in the Virtual World (PDF)"
- "Using esxtop to Troubleshoot Performance Problems (PDF)"
- "ESX Performance Tips and Tricks (PDF)"
- "Performance Tuning Best Practices for ESX Server 3"
- "ESX Workload Analysis: Lessons Learned"
- "VM Performance Monitoring and Logging"
- "Understanding Performance in a Virtualized Environment'
- "Interpreting Performance Statistics in V13"
- "Top 12 ways to Improve Guest Server Performance under VMware ESX Server"
Using VMWare ESX For ZCS Test Servers - How-To
References
References I ended up consulting to resolve and develope my notes below. There appears to be many alterations on how to do this depending on the version of the Vmware software you are using.
- Moving or copying a virtual machine within a VMware environment
- How work without vCenter Server
- Cannot open Virtual Machine Console
Introduction To Notes
I just did this and I plan on going through it and improving it once I have time.
- I believe the hard coded reference to the volumes could use the sym-link for the path:
- /vmfs/volumes/Storage vs. /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af
- Setup /etc/hosts file on first vmimage to have entries for other machines
- Configure first vmimage to use ESX server for DNS [/etc/resolv.conf] , NTP , and other network services
- Setup ESX for DNS, DHCP, NTP [below for more details]
- Configure vm configuration files, *.vmx , to use manual set MAC addresses and had last number matched number used in hostname.
- Configure ESX server to act as DNS & DHCP server using to auto-allocate ip address and hostnames and set each hostname to have proper A, PTR, and MX records using hostname of image equally domainname for mail.
- for example:
- I would create three groups of images, if possible:
- host.dev.DOMAIN.com
- DEV is for pure testing
- host.qa.DOMAIN.com
- QA is for testing of changes prior to roll out to production
- host.prod.DOMAIN.com
- PROD would be replica's of production and used to test against production issues
- host.dev.DOMAIN.com
- Images configured as:
- image hostname = centos5-30.dev.DOMAIN.com
- server centos5-31.dev.DOMAIN.com has ip address of 192.168.0.31 - set A and PTR record
- MX equals centos5-31.dev.DOMAIN.com / 192.168.0.31
- Use more expansive descriptions in hostnames for standards and predictability.
- Note, underscores ARE NOT vaild DNS hostnames per RFC 1034 - http://www.ietf.org/rfc/rfc1034.txt
- Add the DEV - QA - PROD if your using that as well.
- Primary Domain = example.com
- LDAP Master hostname = ldap-1.DOMAIN.com
- LDAP Replica hostnames = ldap-2.DOMAIN.com , ldap-3.DOMAIN.com , etc.
- First MTA hostname = mta-1.DOMAIN.com
- Other MTA hostnames = mta-2.DOMAIN.com , mta-3.DOMAIN.com , etc.
- First Mailstore hostname = mailstore-1.DOMAIN.com
- Other Mailstore hostnames = mailstore-2.DOMAIN.com , mailstore-3.DOMAIN.com , etc.
- On proxy server hostname =
- Proxy on MTA's: mta-1.DOMAIN.com , mta-2.DOMAIN.com , etc.
- Though the proxy package can be installed on other servers, usually it is installed on the mta's or on it's own.
- Proxy on it's own: proxy-1.DOMAIN.com , proxy-2.DOMAIN.com , etc.
- Proxy on MTA's: mta-1.DOMAIN.com , mta-2.DOMAIN.com , etc.
- On archive [A&D] hostname:
- First Archive hostname = archive-1.DOMAIN.com
- Other Archive hostnames = archive-2.DOMAIN.com , archive-3.DOMAIN.com , etc.
- Configure proxy/firewall to be route point for primary domain and then pass to appropriate server for subdomain mail.
- All external requess for *.zimbra.DOMAIN.com and zimbra.DOMAIN.com route to ESX server which in turns routes to appropriate vm server for subdomain.
- Ports open on firewalls to allow vsphere connection to esx server:
- http://wiki.zimbra.com/index.php?title=Ajcody-Server-Topics#Using_VMWare_ESX_For_ZCS_Test_Servers_-_How-To
- 443, 902, 903, 5989 -- all of those?
- http://wiki.zimbra.com/index.php?title=Ajcody-Server-Topics#Using_VMWare_ESX_For_ZCS_Test_Servers_-_How-To
The Notes
Initial x32 Setups
My Version of Vmware ESX does not have a cloning option - I was actually given the ESX box rebuilt. So here's what I did to 'clone' an image the manual way. See Ajcody-Virtualization-Named-DNS about setting up BIND/DNS for this example.
# Vmware ESX 4.0.0 Build 208167 # vSphere Client 4.0.0. Build 208111 # # Copy some iso files to the server, here's is what I used. # Please note the vmx files below in my examples to my iso name for the centos dvd. # [ /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/iso/CentOS/CentOS-5.4-i386-bin-DVD.iso ] # Create your first VM - I called my Centos5-30 and that standard and naming convention is used throughout. # I left the hostname just to use the localhost and installed the vmware tools. # I then shutdown the image and did a snapshot of it. pwd /vmfs/volumes ls -la total 1024 drwxr-xr-x 1 root root 512 Apr 9 23:59 . drwxrwxrwt 1 root root 512 Apr 9 00:39 .. drwxr-xr-t 1 root root 4200 Apr 9 23:20 4bbaf57f-6230127f-d432-00101849e4af lrwxr-xr-x 1 root root 35 Apr 9 23:59 Storage1 -> 4bbaf57f-6230127f-d432-00101849e4af cd Storage1/ ls Centos5-30/ esxconsole-4bbb574e-eae0-2eb3-9d5b-00101849e4af/ iso/ # Download and copy the various OS iso's you'll want and copy them underneath your storage volume, # I made an iso directory for them all. # Also, I used Firefox and the add-on DownThemAll and went to the Zimbra download pages # http://www.zimbra.com/downloads/ne-downloads.html # http://www.zimbra.com/downloads/ne-downloads-previous.html # And downloaded all the versions of ZCS that I wanted to test against. I then used K3B under Linux # to make iso files of the tar balls. Copy the iso files to your ESX server under the iso directory # you made. If you want to mount them remotely to confirm they are ok to or to review what they have: # ex. mount -t iso9660 ./zcs-x32-installs.iso /mnt/cdrom -o ro,loop # Having the Zimbra iso files like that will allow your images to easily install Zimbra . ls -R iso/ CentOS/ openSUSE/ SLES/ Ubuntu/ ZCS/ ./CentOS: CentOS-5.4-i386-bin-DVD.iso CentOS-5.4-x86_64-bin-DVD.iso ./openSUSE: openSUSE-11.2-Addon-NonOss-BiArch-i586-x86_64.iso openSUSE-11.2-DVD-i586.iso openSUSE-11.2-DVD-x86_64.iso ./SLES: SLES-10-SP3-DVD-i386-GM-DVD1.iso SLES-10-SP3-DVD-x86_64-GM-DVD1.iso SLES-11-DVD-i586-GM-DVD1.iso SLES-10-SP3-DVD-i386-GM-DVD2.iso SLES-10-SP3-DVD-x86_64-GM-DVD2.iso SLES-11-DVD-i586-GM-DVD2.iso ./Ubuntu: ubuntu-8.04.4-desktop-amd64.iso ubuntu-8.04.4-desktop-i386.iso ubuntu-8.04.4-server-amd64.iso ubuntu-8.04.4-server-i386.iso ./ZCS: zcs-x32-606-02_5023-018.iso zcs-x64-5018-23.iso zcs-x64-603-06.iso vmware-cmd -l /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-30/Centos5-30.vmx pwd /vmfs/volumes/Storage1 # Make more directories for you to copy the initial image vitrual disks to mkdir Centos5-{31..49} # Now you'll do a copy operation of your first image to the new directories you made pwd /vmfs/volumes/Storage1 vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-31/Centos5-31.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-32/Centos5-32.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-33/Centos5-33.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-34/Centos5-34.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-35/Centos5-35.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-36/Centos5-36.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-37/Centos5-37.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-39/Centos5-39.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-39/Centos5-39.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-40/Centos5-40.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-41/Centos5-41.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-42/Centos5-42.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-43/Centos5-43.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-44/Centos5-44.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-45/Centos5-45.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-46/Centos5-46.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-47/Centos5-47.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-48/Centos5-48.vmdk vmkfstools -i ./Centos5-30/Centos5-30.vmdk ./Centos5-49/Centos5-49.vmdk pwd /vmfs/volumes/Storage1 # Now you'll copy the inital images configuration file to the directory above the image directories so we can modify it and make it a template file cp Centos5-30/Centos5-30.vmx ./Centos5-31.vmx vi Centos5-31.vmx change variables to be more generic cat Centos5-31.vmx #!/usr/bin/vmware .encoding = "UTF-8" config.version = "8" virtualHW.version = "7" pciBridge0.present = "TRUE" pciBridge4.present = "TRUE" pciBridge4.virtualDev = "pcieRootPort" pciBridge4.functions = "8" pciBridge5.present = "TRUE" pciBridge5.virtualDev = "pcieRootPort" pciBridge5.functions = "8" pciBridge6.present = "TRUE" pciBridge6.virtualDev = "pcieRootPort" pciBridge6.functions = "8" pciBridge7.present = "TRUE" pciBridge7.virtualDev = "pcieRootPort" pciBridge7.functions = "8" vmci0.present = "TRUE" nvram = "Centos5-31.nvram" deploymentPlatform = "windows" virtualHW.productCompatibility = "hosted" unity.customColor = "|23C0C0C0" tools.upgrade.policy = "useGlobal" powerType.powerOff = "soft" powerType.powerOn = "default" powerType.suspend = "hard" powerType.reset = "soft" displayName = "Centos5-31" extendedConfigFile = "Centos5-31.vmxf" floppy0.present = "TRUE" scsi0.present = "TRUE" scsi0.sharedBus = "none" scsi0.virtualDev = "lsilogic" memsize = "1024" scsi0:0.present = "TRUE" scsi0:0.fileName = "Centos5-31.vmdk" scsi0:0.deviceType = "scsi-hardDisk" ide1:0.present = "TRUE" ide1:0.clientDevice = "FALSE" ide1:0.deviceType = "cdrom-image" ide1:0.startConnected = "TRUE" floppy0.startConnected = "FALSE" floppy0.clientDevice = "TRUE" ethernet0.present = "TRUE" ethernet0.networkName = "VM Network" ethernet0.addressType = "generated" guestOSAltName = "Red Hat Enterprise Linux 5 (32-bit)" guestOS = "rhel5" uuid.location = "56 4d 41 ed 87 cc a2 03-77 97 48 8c 65 16 7e ed" uuid.bios = "56 4d 41 ed 87 cc a2 03-77 97 48 8c 65 16 7e ed" vc.uuid = "52 9e a1 5c 02 25 0f c2-20 03 f8 bb 21 93 74 c7" ethernet0.generatedAddress = "" tools.syncTime = "FALSE" cleanShutdown = "TRUE" replay.supported = "FALSE" sched.swap.derivedName = "/vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-31/Centos5-31-d6823091.vswp" scsi0:0.redo = "" vmotion.checkpointFBSize = "4194304" pciBridge0.pciSlotNumber = "17" pciBridge4.pciSlotNumber = "21" pciBridge5.pciSlotNumber = "22" pciBridge6.pciSlotNumber = "23" pciBridge7.pciSlotNumber = "24" scsi0.pciSlotNumber = "16" ethernet0.pciSlotNumber = "32" vmci0.pciSlotNumber = "33" ethernet0.generatedAddressOffset = "0" vmci0.id = "-876333085" hostCPUID.0 = "0000000b756e65476c65746e49656e69" hostCPUID.1 = "000106a500100800009ce3bdbfebfbff" hostCPUID.80000001 = "00000000000000000000000128100800" guestCPUID.0 = "0000000b756e65476c65746e49656e69" guestCPUID.1 = "000106a500010800809822010febfbff" guestCPUID.80000001 = "00000000000000000000000128100800" userCPUID.0 = "0000000b756e65476c65746e49656e69" userCPUID.1 = "000106a500100800009822010febfbff" userCPUID.80000001 = "00000000000000000000000128100800" evcCompatibilityMode = "FALSE" ide1:0.fileName = "/vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/iso/CentOS/CentOS-5.4-i386-bin-DVD.iso" floppy0.fileName = "/dev/fd0" debugStub.linuxOffsets = "0xa356145,0xffffffff,0xfc052084,0xffffffff,0x0,0x0,0xa356150,0x0,0xa35616f,0x0,0xfc052088,0xffffffff,0x0,0x0" tools.remindInstall = "TRUE" sched.cpu.affinity = "all" sched.swap.hostLocal = "disabled" # Now we'll copy this template to the other image directories cp Centos5-31.vmx Centos5-31/Centos5-31.vmx cp Centos5-31.vmx Centos5-32/Centos5-32.vmx cp Centos5-31.vmx Centos5-33/Centos5-33.vmx cp Centos5-31.vmx Centos5-34/Centos5-34.vmx cp Centos5-31.vmx Centos5-35/Centos5-35.vmx cp Centos5-31.vmx Centos5-36/Centos5-36.vmx cp Centos5-31.vmx Centos5-37/Centos5-37.vmx cp Centos5-31.vmx Centos5-38/Centos5-38.vmx cp Centos5-31.vmx Centos5-39/Centos5-39.vmx cp Centos5-31.vmx Centos5-40/Centos5-40.vmx cp Centos5-31.vmx Centos5-41/Centos5-41.vmx cp Centos5-31.vmx Centos5-42/Centos5-42.vmx cp Centos5-31.vmx Centos5-43/Centos5-43.vmx cp Centos5-31.vmx Centos5-44/Centos5-44.vmx cp Centos5-31.vmx Centos5-45/Centos5-45.vmx cp Centos5-31.vmx Centos5-46/Centos5-46.vmx cp Centos5-31.vmx Centos5-47/Centos5-47.vmx cp Centos5-31.vmx Centos5-48/Centos5-48.vmx cp Centos5-31.vmx Centos5-49/Centos5-49.vmx # You'll want to swap the references of the initial image name [ Centos5-30 ] to be the directories image name vi Centos5-31/Centos5-31.vmx vi Centos5-32/Centos5-32.vmx vi Centos5-33/Centos5-33.vmx vi Centos5-34/Centos5-34.vmx vi Centos5-35/Centos5-35.vmx vi Centos5-36/Centos5-36.vmx vi Centos5-37/Centos5-37.vmx vi Centos5-38/Centos5-38.vmx vi Centos5-39/Centos5-39.vmx vi Centos5-40/Centos5-40.vmx vi Centos5-41/Centos5-41.vmx vi Centos5-42/Centos5-42.vmx vi Centos5-43/Centos5-43.vmx vi Centos5-43/Centos5-43.vmx vi Centos5-44/Centos5-44.vmx vi Centos5-45/Centos5-45.vmx vi Centos5-46/Centos5-46.vmx vi Centos5-47/Centos5-47.vmx vi Centos5-48/Centos5-48.vmx vi Centos5-49/Centos5-49.vmx # Now we can register those new images and they'll show up in your vSphere Client vmware-cmd Centos5-31/Centos5-31.vmx register vmware-cmd Centos5-32/Centos5-32.vmx register vmware-cmd Centos5-33/Centos5-33.vmx register vmware-cmd Centos5-34/Centos5-34.vmx register vmware-cmd Centos5-35/Centos5-35.vmx register vmware-cmd Centos5-36/Centos5-36.vmx register vmware-cmd Centos5-37/Centos5-37.vmx register vmware-cmd Centos5-38/Centos5-38.vmx register vmware-cmd Centos5-39/Centos5-39.vmx register vmware-cmd Centos5-40/Centos5-40.vmx register vmware-cmd Centos5-41/Centos5-41.vmx register vmware-cmd Centos5-42/Centos5-42.vmx register vmware-cmd Centos5-43/Centos5-43.vmx register vmware-cmd Centos5-44/Centos5-44.vmx register vmware-cmd Centos5-45/Centos5-45.vmx register vmware-cmd Centos5-46/Centos5-46.vmx register vmware-cmd Centos5-47/Centos5-47.vmx register vmware-cmd Centos5-48/Centos5-48.vmx register vmware-cmd Centos5-49/Centos5-49.vmx register # Confirm they all are registered vmware-cmd -l | sort /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-30/Centos5-30.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-31/Centos5-31.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-32/Centos5-32.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-33/Centos5-33.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-34/Centos5-34.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-35/Centos5-35.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-36/Centos5-36.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-37/Centos5-37.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-38/Centos5-38.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-39/Centos5-39.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-40/Centos5-40.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-41/Centos5-41.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-42/Centos5-42.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-43/Centos5-43.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-44/Centos5-44.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-45/Centos5-45.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-46/Centos5-46.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-47/Centos5-47.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-48/Centos5-48.vmx /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af/Centos5-49/Centos5-49.vmx # You'll see your images now in your vSphere Client. # When you first start them, do a console view of it because you'll see in that view # you need to select an option before it will start up. # Choose : "I copied it" # Once image is running, login as root and within a shell confirm your network interface has # an unique IP address as well as a unique MAC address for the interface # You then might want to suspend the image at this point.
Additional x64 Setups
If you can to x64 with your VMware, here's the additions steps for that [cut-n-paste]
Make a new image for x64 rhel5 called Centos5-x64-50 and once it's all done, shutdown and halt it.
pwd /vmfs/volumes/4bbaf57f-6230127f-d432-00101849e4af mkdir Centos5-x64-{51..69} vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-51/Centos5-x64-51.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-52/Centos5-x64-52.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-53/Centos5-x64-53.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-54/Centos5-x64-54.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-55/Centos5-x64-55.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-56/Centos5-x64-56.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-57/Centos5-x64-57.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-58/Centos5-x64-58.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-59/Centos5-x64-59.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-60/Centos5-x64-60.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-61/Centos5-x64-61.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-62/Centos5-x64-62.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-63/Centos5-x64-63.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-64/Centos5-x64-64.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-65/Centos5-x64-65.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-66/Centos5-x64-66.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-67/Centos5-x64-67.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-68/Centos5-x64-68.vmdk vmkfstools -i Centos5-x64-50/Centos5-x64-50.vmdk Centos5-x64-69/Centos5-x64-69.vmdk # Setup the vmx file like a template like you did for the 32bit ones and then copy to the other x64 directories. cp Centos5-x64-50/Centos5-x64-50.vmx ./ cp Centos5-x64-50/Centos5-x64-50.vmx ./Centos5-x64-60.vmx # make this like be empty quoted - ethernet0.generatedAddress = "" vi Centos5-x64-50.vmx # Edit this for the ethernet and change to 50 to 60 -- make for editing easier for the 60 dir's vi Centos5-x64-60.vmx # copy to other directories. cp Centos5-x64-50.vmx Centos5-x64-51/Centos5-x64-51.vmx cp Centos5-x64-50.vmx Centos5-x64-52/Centos5-x64-52.vmx cp Centos5-x64-50.vmx Centos5-x64-53/Centos5-x64-53.vmx cp Centos5-x64-50.vmx Centos5-x64-54/Centos5-x64-54.vmx cp Centos5-x64-50.vmx Centos5-x64-55/Centos5-x64-55.vmx cp Centos5-x64-50.vmx Centos5-x64-56/Centos5-x64-56.vmx cp Centos5-x64-50.vmx Centos5-x64-57/Centos5-x64-57.vmx cp Centos5-x64-50.vmx Centos5-x64-58/Centos5-x64-58.vmx cp Centos5-x64-50.vmx Centos5-x64-59/Centos5-x64-59.vmx cp Centos5-x64-60.vmx Centos5-x64-60/Centos5-x64-60.vmx cp Centos5-x64-60.vmx Centos5-x64-61/Centos5-x64-61.vmx cp Centos5-x64-60.vmx Centos5-x64-62/Centos5-x64-62.vmx cp Centos5-x64-60.vmx Centos5-x64-63/Centos5-x64-63.vmx cp Centos5-x64-60.vmx Centos5-x64-64/Centos5-x64-64.vmx cp Centos5-x64-60.vmx Centos5-x64-65/Centos5-x64-65.vmx cp Centos5-x64-60.vmx Centos5-x64-66/Centos5-x64-66.vmx cp Centos5-x64-60.vmx Centos5-x64-67/Centos5-x64-67.vmx cp Centos5-x64-60.vmx Centos5-x64-68/Centos5-x64-68.vmx cp Centos5-x64-60.vmx Centos5-x64-69/Centos5-x64-69.vmx # Now edit them, replacing the 50 in the hostname reference to match the ## of the directory. vi Centos5-x64-51/Centos5-x64-51.vmx vi Centos5-x64-52/Centos5-x64-52.vmx vi Centos5-x64-53/Centos5-x64-53.vmx vi Centos5-x64-54/Centos5-x64-54.vmx vi Centos5-x64-55/Centos5-x64-55.vmx vi Centos5-x64-56/Centos5-x64-56.vmx vi Centos5-x64-57/Centos5-x64-57.vmx vi Centos5-x64-58/Centos5-x64-58.vmx vi Centos5-x64-59/Centos5-x64-59.vmx # Now edit them, replacing the 60 in the hostname reference to match the ## of the directory. vi Centos5-x64-61/Centos5-x64-61.vmx vi Centos5-x64-62/Centos5-x64-62.vmx vi Centos5-x64-63/Centos5-x64-63.vmx vi Centos5-x64-64/Centos5-x64-64.vmx vi Centos5-x64-65/Centos5-x64-65.vmx vi Centos5-x64-66/Centos5-x64-66.vmx vi Centos5-x64-67/Centos5-x64-67.vmx vi Centos5-x64-68/Centos5-x64-68.vmx vi Centos5-x64-69/Centos5-x64-69.vmx # Register the x64 images vmware-cmd Centos5-x64-51/Centos5-x64-51.vmx register vmware-cmd Centos5-x64-52/Centos5-x64-52.vmx register vmware-cmd Centos5-x64-53/Centos5-x64-53.vmx register vmware-cmd Centos5-x64-54/Centos5-x64-54.vmx register vmware-cmd Centos5-x64-55/Centos5-x64-55.vmx register vmware-cmd Centos5-x64-56/Centos5-x64-56.vmx register vmware-cmd Centos5-x64-57/Centos5-x64-57.vmx register vmware-cmd Centos5-x64-58/Centos5-x64-58.vmx register vmware-cmd Centos5-x64-59/Centos5-x64-59.vmx register vmware-cmd Centos5-x64-60/Centos5-x64-60.vmx register vmware-cmd Centos5-x64-61/Centos5-x64-61.vmx register vmware-cmd Centos5-x64-62/Centos5-x64-62.vmx register vmware-cmd Centos5-x64-63/Centos5-x64-63.vmx register vmware-cmd Centos5-x64-64/Centos5-x64-64.vmx register vmware-cmd Centos5-x64-65/Centos5-x64-65.vmx register vmware-cmd Centos5-x64-66/Centos5-x64-66.vmx register vmware-cmd Centos5-x64-67/Centos5-x64-67.vmx register vmware-cmd Centos5-x64-68/Centos5-x64-68.vmx register vmware-cmd Centos5-x64-69/Centos5-x64-69.vmx register # You'll see your images now in your vSphere Client. # When you first start them, do a console view of it because you'll see in that view # you need to select an option before it will start up. # Choose : "I copied it" # Once image is running, login as root and within a shell confirm your network interface has # an unique IP address as well as a unique MAC address for the interface # You then might want to suspend the image at this point.
Other Useful Steps To Get Zimbra Installed And Running
RHEL or CentOS
chkconfig sendmail off /etc/init.d/sendmail stop
Some prereq packages that you might not already have installed:
yum install compat-libstdc++-33 compat-libstdc++-296 sysstat
Adding additional storage for Zimbra installation requirement
- Add new virtual disk - requires at least 5GB's of free space on available partition
- Power Off VM And then create a new disk giving it at least 5GB's of space
- Power On the VM
- You can then run this to see/confirm the new "disk"
fdisk -l
- In my example here, my new disk is /dev/sdb
- Partition the new disk
fdisk /dev/sdb
- Select "n" for new partition
- Select "p" for primary partition
- Select "1" for partition number
- Select default of "1" for first cylinder
- Select default, which should be the highest number given in range. This will change based upon the size of the virtual disk you made.
- You new disk is now partition.
- Hit "p" to print out the partition table to confirm.
- Hit "w" to write table to disk and exit fdisk.
- Create new filesystem for the new disk/partition
- This example uses ext3 and the example partition path of /dev/sdb1
mkfs.ext3 /dev/sdb1
- Setup /etc/fstab to mount the new partition for zimbra use
mkdir /opt/zimbra
vi /etc/fstab
- And now add a line like the following:
/dev/sdb1 /opt/zimbra ext3 default 1 1
- Partition the new disk
Using RINETD To Redirect To Your Various VM For External HTTP Access
Here's an example /etc/rinetd.conf on an internal server [192.168.0.16] that will redirect to the various vm's to port 80. The 'firewall', a cheap one like I have, only allows me to do very basic port redirection to an ip address -- NOT an internal ip address AND a different port. So my cheap firewall is setup to redirect port 80## to the rinetd server - 192.168.0.16 and then that server redirects to the vm and the right port - 80.
If your using a DynDNS service this works out very well. As I can now use the DynDNS domain name and simply add a port number to get redirected to the various ZCS servers. For example:
- http://EXTERNAL-DOMAIN:8059 would get redirected to my vm server that is using 192.168.0.59 and to port 80 for the http ZWC login page.
Note, another 'trick' you might need to do on your vm's to get them working in this type of situation from the outside is to setup one server [I used my 192.168.0.16 machine] to redirect and send emails from the other zcs servers. Adjust in the Configuration > Global Settings > MTA tab on the other ZCS servers to use the one server for:
- Web mail MTA Port 25
- Inbound SMTP Host name
Here's the /etc/rinetd.conf I have setup:
192.168.0.16 8030 192.168.0.30 80 192.168.0.16 8031 192.168.0.31 80 192.168.0.16 8032 192.168.0.32 80 192.168.0.16 8033 192.168.0.33 80 192.168.0.16 8034 192.168.0.34 80 192.168.0.16 8035 192.168.0.35 80 192.168.0.16 8036 192.168.0.36 80 192.168.0.16 8037 192.168.0.37 80 192.168.0.16 8038 192.168.0.38 80 192.168.0.16 8039 192.168.0.39 80 192.168.0.16 8040 192.168.0.40 80 192.168.0.16 8041 192.168.0.41 80 192.168.0.16 8042 192.168.0.42 80 192.168.0.16 8043 192.168.0.43 80 192.168.0.16 8044 192.168.0.44 80 192.168.0.16 8045 192.168.0.45 80 192.168.0.16 8046 192.168.0.46 80 192.168.0.16 8047 192.168.0.47 80 192.168.0.16 8048 192.168.0.48 80 192.168.0.16 8049 192.168.0.49 80 192.168.0.16 8050 192.168.0.50 80 192.168.0.16 8051 192.168.0.51 80 192.168.0.16 8052 192.168.0.52 80 192.168.0.16 8053 192.168.0.53 80 192.168.0.16 8054 192.168.0.54 80 192.168.0.16 8055 192.168.0.55 80 192.168.0.16 8056 192.168.0.56 80 192.168.0.16 8057 192.168.0.57 80 192.168.0.16 8058 192.168.0.58 80 192.168.0.16 8059 192.168.0.59 80 192.168.0.16 8060 192.168.0.60 80 192.168.0.16 8061 192.168.0.61 80 192.168.0.16 8062 192.168.0.62 80 192.168.0.16 8063 192.168.0.63 80 192.168.0.16 8064 192.168.0.64 80 192.168.0.16 8065 192.168.0.65 80 192.168.0.16 8066 192.168.0.66 80 192.168.0.16 8067 192.168.0.67 80 192.168.0.16 8068 192.168.0.68 80 192.168.0.16 8069 192.168.0.69 80 logcommon logfile /var/log/rinetd.log