January 29th, 2013 | Tags: , , , , ,

I have been spending some time learning the OVM 3 CLI since it was released in the earlier 3.x versions, however the biggest roadblock for me has always been that they only allow access via SSH on port 10000.  However now I know how to enable key based authentication for these connections opening this up for a much more robust scripting experience.

Connect to OVM CLI with Password

$ ssh -p 10000 admin@ovmmgr.allanglesit.com
admin@ovmmgr.allanglesit.com's password:

Authorize Keys for OVM CLI

To allow key based authentication to OVM CLI simply add your public key on your OVM Manager Server to /home/oracle/.ssh/ovmcli_authorized_keys.  For our environment we already had everyone who needed access in the authorized_keys for root.

# cat /root/.ssh/authorized_keys >> /home/oracle/.ssh/ovmcli_authorized_keys

However if you wanted to do it remotely using the public key file directly from your client.

# cat .ssh/id_rsa.pub | ssh root@ovmmgr.allanglesit.com "cat >> /home/oracle/.ssh/ovmcli_authorized_keys"

Connect to OVM CLI with Public Keys

Now our connection is without that pesky password prompt.

$ ssh -p 10000 admin@ovmmgr.allanglesit.com
Comments Off

One of my biggest complaints about Oracle VM 3 is that everything is abstracted at every level.  A VM name is simply meta data stored in a database (kind of) while everywhere that it matters the VM only exists as a UUID, lets look at some examples.

The Way It Is

From the hypervisor if we use native Xen commands to look at all of the instantiated VMs.

# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
0004fb000006000002a00feb1f52cae4           155  8192     2     -b----  39176.1
0004fb00000600000b5b1f8673c451be           171  8192     2     -b---- 1007276.5
0004fb000006000026a40b6fb53fe2c3           135 16384     2     -b---- 169716.7
0004fb0000060000506f591d6877c284           194  3072     1     -b----  16108.4
0004fb00000600007052ad7b040749ea           176  8192     2     -b---- 1726118.2
0004fb0000060000a07b66923b0f68a4           138  4096     2     -b---- 2092394.0
0004fb0000060000abfcf710ebd640df           101  2048     2     -b---- 540488.4
0004fb0000060000bf16256b99159fc6           143 16384     2     -b---- 3972112.7
0004fb0000060000e3f234f6c1d26448           173  8192     2     -b---- 852019.6
0004fb0000060000e602b0e0969dba07            92  2048     2     -b---- 234244.0
0004fb0000060000f9205e11159e5459           175 12288     2     r----- 4145289.3
Domain-0                                     0  2486    24     r----- 4455022.6

Now since under the covers we are using Xen that means that somewhere there is a vm.cfg file (could be named anything, but for now they are sticking with vm.cfg).

# cat vm.cfg
vif = ['mac=00:21:f6:00:00:07,bridge=']
OVM_simple_name = 'PRD-IM'
guest_os_type = 'linux'
disk = ['file:/OVS/Repositories/0004fb00000300005527ce584481a013/VirtualDisks/0004fb000012000052e7181e3458aba7.img,xvda,w']
vncunused = '1'
uuid = '0004fb00-0006-0000-506f-591d6877c284'
on_reboot = 'restart'
boot = 'cn'
cpu_weight = 27500
memory = 3072
cpu_cap = 0
maxvcpus = 2
OVM_high_availability = False
vnclisten = ''
vnc = '1'
OVM_description = 'Keste IM - Prod'
on_poweroff = 'destroy'
on_crash = 'restart'
maxmem = 3072
name = '0004fb0000060000506f591d6877c284'
builder = 'hvm'
vcpus = 1
keymap = 'en-us'
OVM_os_type = 'Oracle Linux 6'
OVM_cpu_compat_group = ''
OVM_domain_type = 'xen_hvm'

But finding it can be tricky.  All repositories are stored in UUID form under /OVS/Respositories.  Then inside of each repo you have multiple folders, Assemblies, ISOs, Templates, VirtualDisks, VirtualMachines.  They are pretty self explanatory, but vm.cfgs go under VirtualMachines, they then refer to virtual disk images in the VirtualDisks folders.  Here is an example for the vm.cfg we looked at above.

# pwd

This breaks down like this…

/OVS/Repositories/ [UUID of REPO] /VirtualMachines/ [UUID of VM] /vm.cfg

The Problem

If we lose the manager, then we lose all ability to manage the environment without heavy navigation of the file system, or if we discover a hypervisor which was previously managed by the same OVM Manager UUID then we end up with a bunch of Orphaned VMs.  You will notice that not only is there no meaningful names, there is also no meaningful information about the VMs, I assure that not all of my VMs have 256MB of RAM with a single CPU.


Figure 1-1: Orphaned VMs

The Solution

Now the crux of this problem is that while we have discovered the Hypervisor we have not discovered the underlying repository.



Figure 1-2: Our Server Pool and Hypervisor

So first thing we need to do is right-click on the hypervisor and “Rescan Physical Disks” this should complete fairly quickly.  This will allow OVM Manager to be aware of the Physical Disk on which we have our repository with our running VMs.  Disregard the warning icon, that is due to having an older version of the hypervisor on that machine (3.1.1)


Figure 1-3: Rescan Physical Disks Job

Here we simply monitor the job until completion.  After it is complete we right-click on the hypervisor and “Rediscover Server” this allows the OVM Manager to look at the physical disk that it just found out about to see if there is a repository on it.


Figure 1-4: Rediscover Server Job

Monitor until the job completes.


Figure 1-5: New Repository Visible

Now we see a UUID for a new repository under the Repositories tab.  Right-click and Refresh.


Figure 1-6: Repository Refresh Job

Monitor until the job completes.


Figure 1-7: Fixed VMs

Now our VMs show the correct information.

A Few Notes

Any names that you assigned VirtualDisks are gone, they are back to UUID, sorry.  Also if you had any machines that are stopped when you perform this action you will not see them on the hypervisor.  They are in the Unassigned Virtual Machines folder.  Click and drag to re-assign them.  Or use the Migrate button.

I wanted to take a few minutes and let all of you know about an organization I had the pleasure and honor of working with recently.  I have worked with similar organizations previously however there was something truly special about this organization.  This organization was Heavenly Driven Disaster Relief website here.

About HDDR

Basically HDDR is a non-profit organization which want to help people afflicted by disasters, they have been all over the world working in disaster areas trying to help people clean up and rebuild their lives.  At the center of this ministry is Albert Knight, he is a contractor with a passion for helping people.  He coordinates volunteer teams of all skill levels to complete the work that is being done under the organization.  While HDDR is a Christian Organization they do not require volunteers have an affiliation with a specific church or even religion.  People of all faiths and lifestyles are encouraged to get involved.  Another thing that HDDR does differently is they really try to defray some of the costs of your participation in the relief efforts.  They are able to provide housing and food for groups, leaving you with only the costs associated with getting there.

About Al

We came to work, and to be honest Al didn’t expect alot from us, all he really wanted was 8AM – 4PM so he was surprised when our crew went back out after dinner (most nights) to finish up some jobs.  But the really important thing for you to understand about Al, is that he really burns for this ministry.  While this is in his backyard.  This is by no means without sacrifice for him.  Al has a home in Philadelphia, PA but during the week he is living with the volunteers in Atlantic City, NJ so that they can get an early start.

Lessons Learned

Al runs a really tight ship.  We lead a team of 9 to New Jersey from Dallas, TX.  This was a 25-27 hour drive.  We had two pickups one of which was packed to the gills with tools and gear.  Looking back we brought too much.  Al already had most everything that was needed.  That said I would recommend that everyone who plans on going forget all of the tools that they think they will need (Al has all of those) and instead focus on having a basic toolkit for each member of your team.

  • Tool Belt / Leathers
  • Hammer
  • Tape Measure
  • Carpenters Pencils (at least 3)
  • Utility Knife or Break-Away Razor
  • 1 each Phillips and Standard Screwdriver
  • Work Boots (steel toe)

Now had we packed the above we would have needed one storage box which could have held all of these, instead of half of a pick-up bed.  And honestly the only other things that we used were things that Al already had (skil saw, nail gun, miter saw) but we used ours because the pickup was 10 feet closer than the trailer.

How Can I Help?

Oh here it comes, the part where he tries to pry money out of my wallet…  Honestly though, HDDR and Al don’t want your money.  But they do need your skilled or unskilled labor.  They really can work with all skill levels, and they will put you to work at a level where you feel comfortable and challenged, so you won’t just be picking up garbage.  He takes the time to show you what to do, and then he lets you run and do it.  Now all that said if you are not able to give of your time but you’d like to give of your resources instead they will be more than happy to receive that donation and will make sure that it is maximized.  You have a couple of options…

  1. Buy a shirt or sweater on the HDDR website
  2. Make a cash donation, or a donation of specific supplies and gift cards
  3. HDDR is working on getting PayPal set up so that they can streamline the donation process, in the interim if you’d like to make a donation to them through my site using the link on the bottom of this post please feel free to do so.  Note: if you choose to do so please understand that I will forward the money to HDDR as quickly as possible (I would guess they should be able to have it inside of a week and a half based on clearing times) and I encourage you to coordinate with HDDR to ensure that the money is received (and that you get all appropriate tax receipts).

The Videos

We had some guys with us who are creative geniuses who were able to capture quite a bit of great footage and edit it together into daily videos.


Comments Off
January 16th, 2013 | Tags: , , ,

The past couple of weeks I have been dealing with a fairly aggravating issue at home.  My wife has a Windows 7 laptop which for some reason started printing everything repeatedly (repeatedly being defined as forever and ever until the bottom of the paper tray was found).  Our printer in particular is a HP Laserjet 1022n which is connected to the network, and my wife’s computer connects via the network directly (as in not using any print server to mediate the jobs).  When this was occurring and looking at the print queue I was seeing the one job, however the job kept flashing (or perhaps blinking) and it seemed like the job was being continuously restarted.  This would even happen for test pages.  The only other machines in the house are Linux/Unix and none of them had the same issue so it didn’t appear to be caused by the printer itself.  One other detail was that I purchased this printer new in 2005 and it has been working just fine since then, with this computer and others.

Things I Tried

  • Updating the Windows 7 Print Driver
  • Updating the Printers Firmware
  • Deleting the Printer and Recreating it in Window

None of the above “fixed” the problem.  However I was able to find a solution.  The problem apparently was Bi-Directional Support.

  1. Click on Start
  2. Select Devices and Printers
  3. Right Click on the Symptomatic Printer
  4. Select Printer Properties
  5. Click on the Ports Tab
  6. Uncheck Enable Bidirectional Support
  7. Click Apply and Re-Test


Comments Off
January 15th, 2013 | Tags: , , , ,

I personally use Crashplan for my cloud based backups (I have for over a year).  I use them because they are one of a few (to be honest the only one) who actually have Solaris installers.  The one downside of this is that they do not start the CrashPlanEngine by default (as a service).  However when using the Service Management Framework in Solaris this is really easy to handle yourself…  For more details how to handle the SMF portion refer to my article “Solaris 11: Defining A Service Using Svcbundle and the SMF” which goes into much more detail on this subject.

Install Crashplan Application

#mv CrashPlan_2010-03-08_Solaris.tar.gz /var/spool/pkg/
#tar -xzvf CrashPlan_3.4.1_Solaris.tar.gz

Create a Service Bundle

# svcbundle -o crashplanengine.xml -s service-name=application/crashplanengine -s model=daemon -s start-method="/opt/sfw/crashplan/bin/CrashPlanEngine start

Import the Service Bundle

# mv crashplanengine.xml /lib/svc/manifest/site/
# svcadm restart manifest-import

Check the Status of our Service

# svcs -a | grep crashplan
online         14:38:53 svc:/application/crashplanengine:default

Since I have done this my Crashplan service has been much more stable and my backups have been completing more reliably.

REF: http://support.crashplan.com/doku.php/getting_started/installing_crashplan

Comments Off
Page 5 of 25« First...34567...1020...Last »