In early 2009 when X_Factor was under heavy development, I was putting in about 100 hours per week (really. it sucked!). At the time it made sense to work from home. I really didn’t even have time to drive to work. But I needed to get the place all setup. Now I don’t work from home anymore, except on my super secret after hours projects.
Historically I have used sed statements to alter esx.conf and grub.conf to change the amount of allocated service console memory. So this means that we are doing a search and replace assuming a default memory amount (string). ESX 4 and now ESX 3.5U5 have default values other than 272MB.
Instead of the ghetto sed statements, we can use vmware-vim-cmd (vimsh in older ESX3 versions).
vmware-vim-cmd /hostsvc/memoryinfo 838860800
When doing a kickstart install, it needs to be run after first boot instead of the post environment. Something like this (Tested on ESX4.0U1 && ESX3.5U4):
LOGFILE=/root/build.log
chvt 3
###
### Run once script
###
cat >> /etc/rc3.d/S99run-once<<EOF1
#!/bin/sh
###
### Sleep while we wait for hostd to start completely
###
### The sleep value will vary based on how fast your system is.
### As a VM on my overloaded laptop, I use 600s.
###
sleep 600
###
### Alter service console memory allocation
###
echo "Changing service console memory to 800MB" >> $LOGFILE
/usr/bin/vmware-vim-cmd /hostsvc/memoryinfo 838860800 >> $LOGFILE 2>&1
echo "Done changing service console memory" >> $LOGFILE
echo >> $LOGFILE
rm /etc/rc3.d/S99run-once
reboot
EOF1
chmod +x /etc/rc3.d/S99run-once
jeremy esx3, esx4
As of September 15, I do not work at Xcedex. It’s been almost a month and I still don’t know what to say. So I’ll stick with the facts.
Ran out of money. Everyone was laid off. If you want more of the scoop, give me a call or email.
So I say farewell to my application. I need to drop it (for now).
Now I have a new job. I’m back to being a virtualization architect. It is familiar territory for me, except there is much more focus on product drag and not as much on billable time.
jeremy Uncategorized
It seems like a good time to bring this up. vSphere is the hot news, and it has the ability to run very large workloads; 8 vCPUs and 256GB of RAM per VM. So we technically can run most workloads as virtual machines, it must be about 99%.
Before I get into it, let me quickly define candidate selection…
Simply the process of looking through the list of servers in a data center (candidates) and using a methodology to pick which ones should be moved to the virtual infrastructure; this could also be for future workloads (not yet deployed workloads). Candidate selection really defines the scope of the virtual infrastructure.
Now, VMware would love it if you virtualized 100% of your x86 environment on their platform. That might happen eventually, but it might not make the most sense right now for you. Or it may not be realistic to get done in the near future. Or it might not make financial sense for you.
So, why would you want to use a method of picking a subset of your datacenter?
- Low hanging fruit. If you select and prioritize the high consolidation ratio workloads first, you will recover your investment sooner and save more money.
- Project size. If a project is too big, it will not succeed without being broken into smaller, more manageable chunks. Candidate selection can be a method of breaking large projects into phases that are manageable.
- Cost. It’s not free to virtualize a workload (even if you are using a free hypervisor). If you run a single vm that is allocated 8 vCPUs and 256GB RAM, I’m going to assume it is using a nice chunk of that capacity. On many servers today (April 2009), that doesn’t leave a lot of room for others. So the point is that it might make financial sense to establish a cut off somewhere.
- Justification. You can use the selection criteria as a way to justify to your users that the resulting VM is going to perform adequately. In some environments, this is a very political process. Simply having a methodology gains you credibility. Then supporting performance information helps seal the deal.
- Business Rules. Sometimes business rules are in place that prevent a server from being a virtualization candidate. Maybe the business has a rule that states no MSSQL servers, or no Domain Controllers, or no web servers for the mortgage app, …you get the point, and it doesn’t always make sense. This category is a little different than the other reasons for candidate selection. This is essentially documenting a decision already made instead of making a decision and documenting it.
Somewhere down the road I definitely expect everything to be a VM. For many people I know, every new deployment is a VM. We will get there, but for today there are several different use cases for candidate selection.
jeremy X_Factor
I have been working with a grid provider for a while now. Using them for things like dev, build, and demo servers for our portal application. It was going OK for about 6 months until recently. Two totally unacceptable things have happened…
- They lost a VM. Something about host hardware problems, then the VM’s NIC was “hosed”. I don’t know what that means, but they couldn’t fix it so I deleted the VM. I don’t remember actually losing a windows box in years and years.
- Storage latency has become consistently unacceptable. Even now on a Sunday night. Here is me trying to detach 3 little databases from sql 2008.
So, grid providers, there is a little lesson here. You must capacity plan properly and provide excellent customer service. It’s basically just like internal IT except the customer can go elsewhere.
So what do I do as the customer? I have to go elsewhere. That is the only thing that is in my control. I can only battle for so long with unwilling or incompetent tech support.
jeremy Uncategorized
It’s been over a year since my last post. I’ve been super busy.
Last time I posted, I was a virtualization architect out in the professional services field implementing mostly (but not exclusively) VMware infrastructure products in large datacenters. I did that for Xcedex for several years dating back to ESX 2.0. From the early days until now, I have identified lots of gaps or opportunities to automate and make life better for myself. When appropriate, I did just that and developed solutions to problems that others are also having.
So now I still work for Xcedex, but as VP of Engineering. We have been very hard at work kicking out code. Making internal tools fit for public consumption and making new software tools. You can see what we have announced here. http://www.xcedex.com/xf. There are also more unannounced apps to come.
So here is my disclaimer. Anything on this site is my personal opinion and not endorsed by Xcedex. Xcedex knows nothing about what I publish here.
jeremy Uncategorized
VirtualCenter has all sorts of permission options. It is nice and flexible, but can take some guess and check work. Maybe this doc will save you some time. It was written with VC 2.5 in mind.
A common scenario is to delegate the creation of new virtual machines to others. This often times means deploying an existing template and customizing using an existing spec. This means giving up some permissions on four different objects.
- Template to deploy.
- Customization specs
- Resource pool (or cluster) where the new VM will live
- Folder in the DC where the new VM will live.
So you may not want to cover all of this with one role. It depends on how complicated your VirtualCenter layout is. For an example, I will setup permissions for a test user using the following VC layout.
- The template will be hosted in the LAB1 datacenter, in a folder named Templates.
- The template will be deployed to the Test2 cluster in the LAB2 datacenter.
- The destination VM will be placed in the MyFolder folder in the LAB2 datacenter.
For this scenario, I will use 4 different roles. I am trying to make it as complicated as possible to show the different areas that need permission modifications. As a disclaimer, there are probably some other ways to get this done.
ReadCustomizationSpecs Role
The first role gives the user/group access to read the existing customization specifications. This role should be applied at the top of the VC tree.
DeployFromTemplate Role
This role will give the user access to read the template. This one will be assigned to the folder named Templates inside the LAB1 datacenter.
AddToResourcePool Role
This role will give the user access to add the virtual machine to the cluster/resource pool. It will be applied to the Test2 cluster in LAB2 datacenter.
VirtualMachineDeployment Role
This last role is the general purpose role to allow the user to stick the VM in a folder and do things like power it on. This one would be right in between the “Virtual Machine User” and “Virtual Machine Power User” default roles.
Just a couple other bullet point notes.
- When testing permission changes, I recommend logging off the VIC and back on to make sure it takes effect.
- When you apply permission for a user/group that propagates, then apply another permission lower in the tree; you will not know the first one is there by looking at the lower object. VC will only show you this if you look higher in the tree. So by looking at an object, you cannot say definitively what the permissions are on it. VMware should get on fixing this one. chop chop.
And finally, the doc on VC permissions is located here. http://www.vmware.com/pdf/vi3_vc_roles.pdf
jeremy esx3