I've started the process of making Xenapi Admin Tools XCP 1.6 compliant. I haven't found too many things I've had to change but XCP referrs to a few parameters differently.
For instance the software-version map parameter has changed the product_brand item to platform_name. The item product_version has been changed to platform_version.
Neither of these changes are major and I believe they were made to make XCP more compatible with Xenserver (or at least bring their code into sync) but my lshosts command would bring up nothing for both of those columns. This has been fixed and backwards compatibility has been maintained with XCP 1.1.
Citrix has an opening for a Xen Evangelist. From their blog:
"The Xen Open Source Evangelist will be an advocate for Xen.org projects (Xen, Xen Cloud Platform and Xen ARM) and be primarily engaged with open source Xen users, upstream and downstream projects of Xen as well as developers of Xen.org projects. In addition the Open Source Xen Evangelist will be responsible for representing Citrix and explaining their products and services in the appropriate venues."
It goes on to say that the person would demo and speak at key events around the world, communicate with the community, educate people on Xen and encourage the community to contribute to Xen. Sounds like an interesting opportunity. For more information apply at the Citrix site.
If you're using Windows you need to download Unetbootin. Most Linux distributions include it in their repositories so you can install it using the standard Linux package managers (yum, apt-get, zypper,synaptic etc.). You will also need to download the Xenserver installation CD and save it.
Setting up the USB thumb drive
The USB thumbdrive has to have a partition on it and it has to be formatted as FAT32.
Make yourself root using su or sudo.
Create a new partition and change the partition type to vfat
Save the partition
Format it using mkfs -t vfat <device>
Installing XCP/Xenserver on the thumbdrive
Mount the partition with the mount command or just remove the thumb drive and reinsert it (usually works)
Select Diskimage and then your XCP/Xenserver ISO image that you downloaded
Select USB Drive under Type
Select your thumb drive device
Fixing the thumbdrive so it will boot properly
The isolinux is used to boot ISO9660 disks like cdroms. We need to change the config so it uses syslinux which is used to boot hard disks.
cd into your mounted thumbdrive and copy/paste the following commands
You're done. Insert the thumbdrive into your future XCP/Xenserver host and reboot. You may need to go into the BIOS to change the boot order so it will boot from a USB device.
Although I mentioned you can do this from Windows I won't be providing any support for it because I don't use Windows
The thumbdrive needs to be formatted as FAT32 only
Unetbootin has a tendency to just add files to the thumbdrive so make sure you format the thumbdrive between uses
Not renaming the syslinux/isolinux files will get you an Unfound kernel error on boot
A common error is getting the dreaded mboot.c32: not a COM32R image message. This seems to be because on some versions of the XCP install media the mboot.c32 file is not quite right. The last time I had to fix this I created a Xenserver 6.2 USB thumbdrive (which worked) and copied the /boot/syslinux/mboot.c32 file from there into my XCP 1.1 USB thumbdrive (which got the error listed above). Copy the good mboot.c32 file to the USB thumbdrive's /boot/syslinux folder. This solved the problem for me and so far I've only had it with XCP 1.1.
Xenserver 6.2 - 6.5 doesn't seem to have the problem listed above.
Due to the fracturing of the (remaining) open mobile platforms I thought I'd do a brief history and where they've ended up now. When I refer to open mobile platforms I primarily mean Linux based mobile operating systems, most of which come from one tree - Maemo.
The Early Years of the MID
Maemo is/was largely an unrestricted Debian based Linux operating system. There was no reason to "root" it as we have to with other Mobile Operating systems outside of just installing a package and typing sudo gainroot. From that point on you could treat it like any other Linux platform.
Nokia named this OS2005 (Mistral) starting the yearly mobile OS release pattern. A year later OS2006 (Scirocco/Gregale) came out improving performance and allowing it to access 2 GB memory cards. Both of these operating systems were used on the Nokia n770 MID. OS2007 (Bora) was released for the n800, arguably the first usable MID from Nokia. I had an n800 and used it for several years. The OS would remind a lot of people of Ubuntu's Unity desktop, although not as irritating.
The Late Years of the MID
OS2008 (Maemo 4 - Chinook) was released on the new Nokia n810 but also worked on the n800 if you wanted to install it (I did). Maemo 4 was a much more matured product which also switched out the Opera web browser for a cut down version of Firefox (MicroB). Maemo 4.1 (Diablo) was released as Diablo and offered as an upgrade to OS2008. This included the ability to update the OS without reflashing and a WiMax stack for the n810 WiMax device that didn't survive long because the WiMax network was virtually non-existent.
I owned both an n800 which I upgraded from OS2007 to OS2008 and eventually Diablo. I also owned an n810 although at that time I was getting ready to move onto a more powerful device that would give me Internet all the time - a smart phone.
Open Smart Phones
Maemo 5 (Fremantle) was released on the Nokia n900 smart phone and had a completely redesigned user interface. It looked less like a computer desktop and more like a mobile device interface. It did however, still have a real Debian based operating system underpinning it. Nokia bought the QT interface system and announced they were moving all platforms to it. All previous versions of Maemo used Hildon (GTK) so Maemo 5 shipped with the QT libraries included although they weren’t really used for anything. This meant Maemo 5 could run QT applications.
I own an n900 and love the hell out of it. I don't have apps for Yelp or some of the other things I need but I do have a real ssh terminal, Xchat, rsync and most anything else I want. The multitasking on it is amazing and more powerful than virtually any other Mobile OS platform. Overall it's a great little operating system.
Maemo 6 (Harmattan) was a Debian based OS released on the Nokia n9/n950 mobile phones with an entirely new interface. At this point Nokia had decided that teaming with Intel to create one Linux based mobile platform was a great strategy. This merging of Nokia's Maemo and Intel's Moblin was named MeeGo. Confusingly enough Nokia labeled Maemo 6 - MeeGo 1.2. Maemo 6 moved the interface to QT which opened up a lot of mobile apps because Symbian also used QT. I would buy a Nokia n950 in a heartbeat if I could find one. It was released only for developers. I may buy an n9 anyway.
The Death of Maemo
With Maemo 6 (Harmattan) Nokia started using the MeeGo label even though it was really Maemo underneath. The official MeeGo spec existed and used a Redhat package based Linux distribution as it’s base. Maemo 6 (Harmattan) was clearly a Debian based revision of Maemo.
MeeGo MeeGo was announced by Nokia and Intel in 2010. The real MeeGo also existed at the time Nokia released Maemo 6 (Harmattan) but wasn’t ready for production. The merging of Maemo and Moblin set back the release of MeeGo by at least a year, some say two.
MeeGo was a very aggressive movement that was going to be THE mobile platform for everything from phones, entertainment systems, handsets, netbooks, tablets and in-vehicle-entertainment. Underneath would be the same MeeGo operating system using different graphical interfaces. The Netbook interface was basically Intel’s Moblin. The Smartphone interface was all new (and not the interface Nokia developed for Maemo 6 (which they dubbed MeeGo too).
MeeGo continued the use of QT as it’s graphical interface and used RPM as it’s package format. The last version of MeeGo released was (confusingly again) version 1.2. The official MeeGo 1.2 has very little to do with Nokia’s MeeGo 1.2.
Update: I bought a Nokia n9 with MeeGo on it and have been using it for the last year. The gesture based interface is nice, the screen is gorgeous and the OS overall works very well although I think it was probably pushed out the door too early as it's not as rock solid stable as the n900 was. It's even more vertical oriented like a phone should be and doesn't have a keyboard which is an issue for me. My two biggest issues with it have been the lack of keyboard and a bug in the system that keeps it from recognizing when the headphones are plugged in or not. Someone made a app that hacks the state of the headphone jack so I can go back and forth between music and phone. Although the n9 is fairly well built it's not to the same tank quality that the n900 was. In one year of use (and unknown bumps) the camera stopped working. The n900 went through several years of severe abuse before something broke.
The Death of MeeGo
Nokia hired a former Microsoft guy named Stephen Elop as it’s CEO. Elop decided that it would be in Nokia’s best interest to kill off MeeGo and Symbian smartphone operating systems and adopt Microsoft’s Windows Phone 7. At this point Symbian had 22% of the cell phone marketshare, Windows Mobile had 3%. Symbian though, was on a downward spiral as it had 73% in 2006. In those 5 years it had lost 50% to Android and Apple’s iOS. Nokia before Elop planned on MeeGo taking over the torch. Nokia after Elop planned on offering ONLY Windows Phone devices. Nokia’s stock went from $10 in early 2011 to $3 in late 2012.
Nokia started work on yet another Linux based Mobile platform called Meltemi to replace low end series 40 smartphones which they sold 1.5 billion of. In 2012 Nokia laid off the Meltemi development group and canceled Meltemi. All non-Windows mobile operating systems are now dead at Nokia.
After Nokia’s announcement Intel immediately responded with a message pledging its support for MeeGo. Several months later after realizing they haven’t written one single line of decent software in decades they realized they were in trouble and canceled MeeGo.
Open Mobile Linux Phone Branches
The first open Linux mobile platform LiMO (which went mostly nowhere) changed it’s name to Tizen in 2011.
Samsung the second largest manufacturer of phones after Nokia and lover of every operating system on the planet wants to better control it’s destiny so enters into a deal with Intel to develop - Tizen. Tizen will have a lot of MeeGo and LiMO underneath but use HTML5 as it’s graphical Interface. A bunch of companies sign on to produce Tizen devices just like they did for Symbian and MeeGo. Supposedly the first devices come out Q1 2013. Last year they said Q2 2012. We’ll see. Samsung announces that applications created for it’s other open source mobile OS - Bada will work on Tizen. Bada is reportedly based on BSD but I don’t know much more.
The open source Mer project which had focused on bringing Maemo 5 to Maemo 4 devices changed it’s focus to continuing the development of MeeGo. Mer should be considered MeeGo core only and will be used as the foundation for other Open Mobile devices.
Nemo Mobile is one such project. Nemo uses Mer as the core and the user interface is based on MeeGo Handset.
Plasma Active a KDE group uses Mer as the foundation for it’s mobile OS. Plasma Active gained fame for being the OS of the Spark Tablet which due to legal issues was renamed the Vivaldi tablet. There were issues with the Chinese manufacturer changing the hardware and then not offering the kernel source code for it. Thus the Vivaldi tablet never made it into production. You can however, make your own Vivaldi Tablet by buying a Zenithink C71 Android Tablet and install Plasma Active on it. The C71 is no longer available and there's no garauntee that Plasma Active would work on a newer tablet.
A Finish company comprising mostly of ex-Nokia developers called Jola has announced that they’re developing an OS called Sailfish using Mer and Nemo and sporting a custom phone interface. I may be that Sailfish is the first Mer device to be in production.
Update: The Jola Other Half went on sale in late fall of 2013 in Finland. They opened up sales to the rest of Europe in January so I had my daughter who lives in Paris order me one which she then sent on to me in the US. So now I have a Jola Other Half running SailfishOS. I'll be doing a article on my impressions later but just for a quick teaser I'll say this - the quality of the phone is nowhere near Nokia level as it's made by a Chinese company and is fairly generic. The back of the Other Half is 3d printed and way to slick to use in daily life but I'm covering it with something to make it grippier. SailfishOS is not quite ready for primetime but I think it has amazing potential.
Where does that leave us if we want an Open Mobile Linux device?
You have several options if you’d like to have an Open Mobile Linux device.
As a long time Maemo user (OS2007 on a Nokia n800, OS2008 on a Nokia N810 and Maemo 5 on a Nokia n900) and really like having an open Linux mobile platform. Even though I get shorted on all the Android apps out there I have virtually everything I need (short of Yelp and OneBusAway apps) and a whole lot more. Having a full featured Linux OS on my phone is very useful for a variety of reasons one of which I get a real terminal. I have an app that uses rsync to synchronize my media server to my phone so I never have to manage my music/podcasts via the mobile interface. Multitasking on the n900 is amazing in comparison to Apple's iOS or Android.
However, the n900 keeps getting older and I'd like to have something newer. I'm not about to give up my awesome mobile OS though for a nice piece of hardware running a Java stack. Let's not forget that Nokia make phenomenal hardware even if it was expensive. Their stuff is rock solid and I've had to reboot my n900 fewer times in the last 18 months than I did per week on my Android 2.2 phone.
With all of that in mind I've been waiting for a replacement for Maemo 5. Nokia was working on Maemo 6 then merged their efforts with Intel's Moblin which proved to be a disaster. It took an extra 2 years to get nowhere before Meego 1.2 was released. Nokia put it on one phone, the n9 (which I'd still like to have) and then abandoned it. Intel then announced it was going to carry the torch alone which nobody believed since Intel can't design a piece of software to save their lives. Soon after they too abandoned it. The community project of Mer picked up the source code and started working on it which was supposed to be used by the Vivaldi tablet which never went anywhere.
Intel then partnered with Samsung to work on Tizen which hasn't gone anywhere either. So where does this leave me? Using my couple year old n900 for a bit longer. However, there may be yet another ray of hope (but I'm not holding my breath) - Sailfish OS.
Apparently Sailfish OS from Jola is based on MeeGo but I'm not sure if it's using the Mer codebase or they forked it from MeeGo. Here's a video of Sailfish OS running on a Nokia n950 (my dream phone) and it looks pretty neat. They're saying that they will be able to release in early 2013. Until I see something I can buy or use I'll wait patiently and try not to get too excited.
Up until about now I've been developing the Xenapi Admin Tools on my local cloud. I've been maintaining revisions on a local Subversion server which has been accessible by only the Xenapi Admin Project team. Now that we're slowly moving our projects public for inclusion in the Xen Cloud Platform's github I wanted to push Xenapi Admin Tools to github which is partly done as of today.
The URL for the repo is https://github.com/Xenapi-Admin-Project/xenapi-admin-tools. Please feel free to browse the code and the development docs which outline the Xenapi Admin Tools spec and it's built in functions. I also have a yum repo file and a SPEC file for when I start creating rpms for Xen Cloud Platform/Xenserver. For now I would not consider that anything but alpha. At some point you'll be able to just install the Xenapi-admin-repo rpm and then yum install xenapi-admin-tools to install all of the tools including their manpages, config files and more. Currently a lot of these things don't exist. Also there are two branches of code in the github repo - 3.0 and 4.0. Not all tools are available in 4.0 yet as I'm still rewriting them. The difference is massive speedups with 4.0. Stay tuned for more news.
Installing from an XCP/Xenserver template usually gives you one Virtual Disk to install the operating system on. Depending on your needs this disk may not be large enough. Following is a tutorial on how to add an additional disk to a virtual machine.
Virtual Machine - A virtual machine is a computer that's virtualized and running on a hypervisor. In our case the hypervisor is Xen Cloud Platform/Xenserver. The Virtual Machine can be running any operating system.
Virtual Disk Image - Think of a Virtual Disk Image as a hard drive.
Storage Repository - A "box" storing Virtual Disk Images. Think of this as an external box storing virtual hard drives. The virtual hard drives are the Virtual Disk Images mentioned above.
Virtual Block Device - A Virtual Block Device connects a Virtual Disk Image to a Virtual Machine. In traditional computer terms you could think of it as the cable.
The process for adding a hard drive to a real computer
Insert the disk in the hard drive box
Connect the cable to the hard drive box
Insert the cable into the Computer
The process of adding a new Virtual Disk for a Virtual Machine is
Create a new Virtual Disk Image
Create a new Virtual Block Device for it
Connect the Virtual Block Device to the Virtual Machine
1. Get available free space
You will need to know how much free space is available on your Storage Repository.
I created Virtual Block Device 7 (device=7). Using device=0 would have given me a /dev/dev/xvda which I already have. The xe-param-get command showed my first available Virtual Block Device number was 7. Notice that we associated the Virtual Disk Image (VDI) to the Virtual Machine (VM) by using a Virtual Block Device (VBD).
5. Plug in the disk to the VM
The VM won't see the disk yet as it hasn't been "plugged in". We can do this by either rebooting the VM or using the xe vbd-plug command. Let's plug the VBD into the running VM.
Adding a CD to a running VM is not a difficult task if you know which commands to use. By adding I mean we're going to insert a virtual CD disk into a virtual machine using our little virtual hands. ;-)
1. Get the name of your Virtual Machine
In this case the name is CentOS6 and the UUID is cefb9f88-0424-6701-5ba1-070490c69203.