Part 1 – vCloud Air OnDemand – Special Promo

As VMware vCloud Air gets more traction, I think it is time to look into it and provide some details around it. For the folks, who do not know what VMware vCloud Air is, vCloud Air is a public cloud platform fully integrated in your VMware vSphere environment.

vCloud Air currently supports over 5,000 application and more than 90 different Operating Systems. vCloud Air makes it easy to migrate your VMs from a vSphere environment to a public cloud or from a public cloud back to your local vSphere environment.

Looking at some blog post by VMware from August 2014, vCloud Air has 2x the compute power as Microsoft Azure and 3x the storage performance of AWS for less money.

 

The registration for vCloud Air is easy and takes only a few minutes. Click here to get to the sign-up page.
Note: Do not forget to use promo code “Influencer2015” for a free $500 instead of $300. This promo code works only for new vCloud Air users.

For further information, checkout the vCloud Air website.

Installing vCenter Appliance 6

I got finally my head around installing vCenter Appliance 6. What an adventure… Everyone who has previously installed a vCenter Appliance is used to some easy and quick process via an OVA file. A quote from VMware about vSphere 6

With more than 650 new features and innovations, VMware vSphere 6 will provide customers with a highly available, resilient, on-demand cloud infrastructure to run, protect and manage any application. – See more at: http://www.vmware.com/company/news/releases/vmw-newsfeed/Introducing-VMware-vSphere-6—The-Foundation-for-Hybrid-Cloud/1920294#sthash.nM9LvQcJ.dpuf

650 new features and innovations? Sounds promising and you would expect things to work even easier and better than before. There are certainly some promising features but also some not so promising ones. In the case of vCenter 6, I’m not sure what happened.

So what has changed about vCenter 6? I would say almost everything, at least in regards to the install:

  • No OVA
  • No port 5480 admin page anymore
  • Requires a Windows system to deploy the vCenter VCA 6 which is Linux based. How ironic, right?
  • The installation is split in two parts
    • VMware Client-Integration Plugin
    • vCenter Server Appliance

Just the fact that I need to have a Windows system to deploy a Linux based VM sounds and feels wrong.
Since the setup isn’t straight forward anymore, below are the steps to get started:

  1. Login to www.myvmware.com and download the vCenter 6 ISO.Screen Shot 2015-04-27 at 4.27.44 PM
  2. Connect the ISO to a Windows VM or use a tool like DEAMON Tools to connect the ISO to your local Windows system.
  3. Navigate to the VCSA folder on the ISO and run VMware-ClientIntegrationPlugin-6.0.0.Screen Shot 2015-04-27 at 4.55.27 PM Screen Shot 2015-04-27 at 4.55.35 PM Screen Shot 2015-04-27 at 4.55.41 PM Screen Shot 2015-04-27 at 4.55.46 PM Screen Shot 2015-04-27 at 4.56.18 PM
  4. Open vca-setup.html, located in root directory of the ISO and start the installation.Capture01Capture02
  5. Specify the ESXi where you want to run the vCenter Appliance Server on.Capture03
  6. Specify a VM name and the OS password for the vCSA 6Capture04
  7. With vCenter 6, VMware introduced the Platform Service Controller which is required for every vCenter 6 instance. Multiple vCenter instances can share the same Platform Service Controller. The Platform Service Controller is used so share services like Single-Sign-On between multiple vCenters.Note: In this example, I’ll use the embedded Platform Service Controller within the vCenter Server Appliance.Capture05
  8. Select whether you want to join an existing SSO domain or create a new one. I have chosen to create a new one.Capture06
  9. Select the size of your vCenter Server instance.
    Tiny – 10 hosts & 100 VMs
    Small – 100 hosts & 1000 VMs
    Medium – 400 hosts & 4000 VMs
    Large – 1000 hosts & 10,000 VMsCapture07
  10. Chose the datastore where you want to place your vCenter Service Appliance on and select “Enable Thin Disk Mode” to make the disk thin provisioned.Capture08
  11. Select if you want to use the embedded vPostgres or use an external Oracle DB.Capture09
  12. Next, configure the network settings.Capture10
  13. Review the summary of your configuration and click Finish.

Capture11

 

Once you clicked Finish, the actual installation will start.
The deployCapture12ment and startup of the appliance will take roughly 10-15 minutes.

 

 

 

After the appliance is started you can login through either the vSphere Web-Client or the Windows Client with your SSO credentials. Make sure to login as administrator@ and not as root.

Capture14

vSphere Performance Tips And Tricks

Setting up your vSphere environment became easier over the last couple of year but a lot has changed from vSphere 4.0 to vSphere 6.0. In this article I will provide vSphere performance tips and tricks, which will be applicable to vSphere 5.5 and vSphere 6.0.

speedometer-148960_1280

 

  1. To get the best performance out of your vSphere Web-Client, use Google Chrome.
  2. Have vCenter hosted on a SSD or some low latency storage to have a pleasant experience.
  3. Ensure that Hyper-Threading is enabled, vSphere fully understands and uses it.
  4. Disable any power-saving features in the BIOS of your servers. Power-saving modes might cut the available compute resources.
  5. Use VMXNET3 driver on all your VMs. VMXNET3 is the only network driver which gets actively maintained by VMware.
  6. If you’re running 1GB vmnics, you might saturate the link and create a bottleneck. Monitor the average throughput on your vmnics and consider upgrading to 10GB.
  7. Be aware that there is no performance advantage of using RDMs, VMDKs or iSCSI direct-attached drives. Avoid RDM if possible. It is an administrative nightmare.
  8. When using iSCSI, make sure to configure port-binding properly.
  9. If you run jumbo frames, test the configuration. You would be surprised how many people mis-configure jumbo frames from end to end.
  10. For performance troubleshooting, look at ESXTOP. Here is a good article about it.
  11. Follow VMwares performance blog for up to date tips and tricks.
  12. Enable DRS & SDRS to utilize your cluster resources efficiently.

 

Note: If you feel I’m missing some important tips & tricks, please comment on this port or engage me on twitter and I’ll add your suggestions.

2015 Silicon Valley VMUG UserCon

VMUG_USERCONI wanted to recap what has been presented at the 2015 Silicon Valley VMUG UserCon.

The Silicon Valley VMUG Team organized a fantastic UserCon with a packed agenda which started 8:45am and ended at 6:30pm.

Sessions were provided by several vendors, including PernixData, Nimble Storage, EMC and so on.

All session were categorized in the following areas:

  • Data Center Management
  • Demo Sessions & VMware HOL
  • Desktop Virtualization
  • General Sessions
  • Hybrid Cloud & Emerging Technologies
  • Storage & Availability
  • vSphere & Virtualization

As you can see on the list of areas, most aspects of today’s virtualization was covered with at least one session.

 

Personally, the following were my highlights of the UserCon:

 

Oh and before I forgot, there was obviously lots of swag from all vendors.

IMG_1201 IMG_1200

All available slides of the 2015 Silicon Valley VMUG UserCon are attached to this article.

Ultimate Bash Guide For Beginners

bashEveryone who is new to scripting always doesn’t know where to start. There’s countless websites and blog posts out there with endless number of commands and bash guides. I don’t want to share all those super complex commands which are difficult to understand when you first start out with writing some scripts. Instead, I am providing a short bash guide for beginners. This post will cover the basics, some good manners and some more advanced commands.

One of the reasons why I started to write scripts in bash is because bash was just the language I knew due to Linux distros. However, I’m by no means an expert in writing scripts. If someone would ask me about my level of expertise in this area, I would rate myself with a “C”, maybe a C+.

Even though I am not an expert, I think it will be useful to share my experience and the commands which I have used most often. Below some general tips and commands which have helped me in the past and I still sue every day for some basic scripting.

General tips and tricks

Use clear and precise comments.
This will allow other users to easily read and understand your code.

#Validates that the variable is not an empty string. If it is an empty string it will set it false.
if [ -n "my-var" ]; then
    echo "Variable is not empty"
else 
    echo "Variable is empty"
fi

User proper indention
Indention will make your code easier readable. If your code is easily readable, it will be even easier to maintain it in the future.

if [ -n "$my-var" ]; then
    echo "Variable is not empty"
else 
    echo "Variable is empty"
fi

Let your script bail out if any command fails
For debugging of your script, you should use set -e at the beginning of your script.
Using set -e ensures that your script exists as soon as any of the lines is failing.

#!/bin/bash
set -e

Every bash script has to start with it
The first line in every bash script has to be #!/bin/bash
This will tell your terminal which interpreter to run.

Common Commands

Declare a timestamp function
For all my scripts I declare a function which stores the current timestamp when it is called.
I mainly use the timestamp variable for logging of events.

#!/bin/bash

timestamp() {
 date +"%Y-%m-%d_%T"
}

echo $(timestamp): "My script starts here"

a=5
b=6

if [ "$a" -gt "$b" ]; then
    echo $(timestamp): $a "is bigger than" $b
else
    echo $(timestamp): $b "is smaller than" $a
fi

The output will look like this:

./bs.sh
2015-04-15_22:06:55: My script starts here
2015-04-15_22:06:55: 6 is smaller than 5

Use $? to check the previous command
You can use $? to verify whether the previous commands returned 0 or 1.
0 = successful | 1 = failed

#!/bin/bash

timestamp() {
 date +"%Y-%m-%d_%T"
}

touch /tmp/test.log

if [ $? -eq 0 ]; then
    echo $(timestamp) "/tmp/test.log has successfully been created"
else 
    echo $(timestamp) "/tmp/test.log has not been created"
fi

If the script was able to create the file it will return:

./bs.sh
2015-04-15_22:14:04 /tmp/test.log has successfully been created

Read a file with comma separated values and act on it
When querying a database and saving the results as a CSV file, each results will be stored in a line and each value will be comma separated. Below is s simple script which scans a CSV file for the 4th value in every line and prints it, if it is not empty.

#!/bin/bash
timestamp() {
 date +"%Y-%m-%d_%T"
}

#This script expects a CSV file, called test.csv, in /tmp.

#This will read line by line till the end of the file

while read line; do 
#Echo $line, one line after the other, use "cut -d, -f 4" to look for values which are separated by "," and store the value in field "4" as $training

training="$(echo $line | cut -d, -f 4)"

#If $training is not empty, print $training

if [ -n "$training" ]; then
    echo $(timestamp): $training
else
#If $training is empty, print the line below 
    echo $(timestamp): "Field 4 was empty in file /tmp/test.csv"; fi; done < /tmp/test.csv