Kernel-Based Virtual Machine Ported To ARM64
hypnosec writes "Linux KVM has been ported to ARM64 just ahead of the release of the architecture, it has been revealed. Just last year ARM KVM virtualization support for Cortex-A15 32bit ARM processor was published. Marc Zyngier of ARM released a set of 29 patches that contained the implementation of KVM for ARM that depends on the pre-arm64 rework as well as tiny perf patch published earlier. Some of the newly released port are support for 4k and 64k pages and 32-bit as well as 64-bit guests."
One word: emulator.
I've been wishing for something like this for months now.
Everybody just says "Raspberry Pi FTW!", but I don't want a tinkering ultra-small device. I want a board with standard size, standard ports and slots, and a ARM processor.
(In other words: I want a goddamn SATA port with my Pi!)
Why is that so hard? Or why is that so commercially inviable? And why there hasn't been a Kickstarter project like this before?
I'm not a hardware/architecture/manufacturer guy, so I have no clue whatsoever.
VMware is not open-source, and is pretty expensive if you need more than the basics. However it's well-supported in most circles, and its paid-license-support gets it past the PHB hurdle.
Xen is a beast. The time investment alone to get it to work puts it out of reach for even mid-level Linux admins. Plus it requires extra help to run non-Xen guest OSes.
OpenVZ isn't real virtualization. It's OS-level containment and pseudo-virtualization, which can be good for some things.
KVM has real steam behind it. It's already in the mainline kernel, it supports real virtualization (I've been able to get all modern Linux distros running as KVM guests as well as WinXP - WIn8 preview), but can get almost as fast as Xen's para-virtualization with some guest-OS drivers installed. There have been new features added to the Linux kernel to help it (Kernel Same-page Merging is one example). It's not that difficult to get working, especially if you use something like libVirt to do the heavy lifting for you.
I'm not an Ubuntu user, so I can't give first-hand experience using KVM on LTS, but a quick google search turned up this this HOWTOforge article on the latest LTS and from my reading, it seems pretty straight forward.
... And so it comes to this.
The US Government have had 64 bit Risc systems running Lisp based OSs since Roswell, but they've been gradually leaking out the technology so as to avoid temporal anomalies the sort of alien attack that wiped out the dinosaurs. The reason for that attack is that velociraptor sapiens had discovered a language very similar to Smalltalk which meant their embedded systems (e.g. spaceprobes) didn't crash and burn with kernel panics and null pointer exceptions when things got a bit tricky. Also they knew that the galaxy is full of life and all of it was made out of meat. Other, older, civilisations felt this was a bad combination.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
Solaris or illumos Zones on ZFS is what you want then.
Even better is SmartOS (http://smartos.org/)! It's OpenSolaris/Illumos *and* makes use of KVM and Zones (with Copy-On-Write help from ZFS). Yes, they actually ported KVM to the illumos (OpenSolaris) kernel.
No idea if it works on SPARC... but I suspect not. Maybe it will eventually?
-Cameron
Well, it depends.
All of the virtualization platforms out there are essentially based on QEMU. All of them read the QCOW file format. All of them have their own implementation and direction of that initial vision.
My experience with KVM is that it is focused on Linux and Windows support. There may be less you can configure under the hood with KVM than with Xen, but if you are a windows and linux shop, or just a linux shop, KVM is awesome. KVM is also the ONLY solution I would try to deploy under RHEL or derivatives, as they dropped Xen support in 6.x. Xen support will be back in 7.x, but that is because RHEL's dropping of support for Xen open source pissed off people on the kernel dev team, so they decided to add it to the kernel directly.
My experience with Xen is that it has a much broader focus, and is more component accessible. The virtual machine hardware and the management tool sets can be easily swapped out for custom ones. I have a number of virtual machine BIOS to pick from if I run into a BIOS bug. I can support BSD and other systems that KVM doesn't, or doesn't do as well. We use Xen as our go to platform, but deployment of KVM would have been faster in some aspects if we didn't need multi-platform support. Xen documentation I've found is also more mature. AFAIK, Xen is the basis for the Amazon EC2 cloud platform (I could be wrong about that). Ubuntu and debian have good support for Xen, but documentation of, say, building a multiple vlan 802.1q networked solution is a situation of YMMV.
My experience with VMWare is that it is a great pay virtualization environment, provided you are willing to shell out for their recommended hardware as well. Setting up things like live migration and cloning are easier with their GUI and step by step instructions. If your company is going to pay for all of that, then it is definitely something worth taking advantage of, as the learning curve is much more accessible (but, it also means you can shoot yourself in the foot faster as well). But the moving target of licensing and hardware requirements are an issue, and my workplace is migrating away from VMWare to Xen because of those issues. Again, if the will to spend is there, it is just fine. I would only use the free solution as something to learn on.
Jails and chroots are nice in a single platform environment, because why waste time on overhead? But the downside is that it is single platform. I'd go more into that, but it isn't really relevant to this discussion. What I would really love to see is something new under the BSD's that offered multi-platform guest support as a host.
All of the the three big players- KVM, XEN, and VMWare are part of OpenStack, so you can use the OpenStack API. If you are ever going to migrate, or have to have cross-compatibility with other virtualization platforms (business parternships can warrant this), then having OpenStack tools available can be really helpful if you want to write the code for it. All three are also supported by OpenNebula, which is an open source pointy clicky interface that can manage all three platforms- provided you can code in your customizations, which could include live migration, etc.
Certification and education are another factor. VMWare wins that one hands down, as they have web accessible training and an easy certification path. The only way you can easily certify on Xen is to get LPIC-3 certified, which will also certify for KVM. The other option is to take the RHEL series (woah, big dollars!), and get certified at the RH Architect level in KVM. The LPIC route actually costs less than the other two, but there are no classes available at that level. Most businesses are familiar only with the VMWare cert path. Also, most companies that have a strong need for someone to fix their problems don't really care which virt solution one has experience with- they care about having an understanding about how all of them work under the hood so that their structural issues are addressed.
Xen has been ported to ARM64 aswell! In addition to Xen port to ARM32 / ARM Cortex-A15.
Your options are... limited.
The people who make 'ARM-based server motherboards' generally bundle them with cases and sell them as network attached storage devices. (Anything mentioned on the Debian on Orion or Debian on Kirkwood pages will be discussing ARM 'servers' based on those Marvel SoCs, some of which have a reasonable number of drive bays).
Some ARM dev boards will also break out an SATA port; but generally only one, (something like Freescale's i.MX53 dev board) as they usually focus on being dev boards, with the SATA port just there because dev boards usually populate all the pins the device can handle, not because you are supposed to use them for server work.
In the cheap seats, a small minority of the hackable tablet/set-top-box focused devices have SATA support. The Allwinner A10, which is cheap as dirt and all over the place, provides it; but substantially fewer devices break it out. The mele A1000 and A2000 are some of the few.
In practice, what you really are asking for doesn't exist(to my knowledge). Your best bet, today, is probably to find a NAS that suits you and has decent 3rd-party firmware support, and call it a day. Virtually nothing else has multiple drive support, and(while NAS devices can have a bit of sticker shock, dev boards aren't known for mass-market pricing, or for niceties like 'microATX form factor', so you'd end up having to hack on the case anyway).
There just isn't an ARM equivalent to, say, any of the cheap microATX Intel Atom or AMD APU based boards($60-$100 once you add some RAM) which draw a bit more power; but are almost insultingly capable in terms of peripherals and raw punch by comparison.
I wanted to ditch VirtualBox in favor of KVM, but ran into a huge stumbling block. I wanted to virtualize my servers, so I need to have KVM's network adapter in bridge mode.
After following the KVM instructions, which had me manually changing many kernel settings, and a lot of trial and error for several days, I threw my hands up and went back to VirtualBox. I reverted all the kernel settings back to stock values, and I had VirtualBox bridging the network adapters in just a few seconds.
Getting KVM set up and running with virtual machines on their own private network wasn't a big deal. But getting them talking to my LAN was a no-go. That's unfortunate, as I would vastly prefer to stay Free.
ask and ye shall receive
http://cubieboard.org/
Xen is indeed the platform on which Amazon ec2 is based, but I would say that decision might be made differently today if given the chance. First off, at the time when it was being created, Xen was the only real option. KVM simply didn't exist until after ec2's launch in 2006, and the only real alternative was VMware. Second, ec2 initially used Paravirtualization exclusively, meaning hardware-assited virtualization functionality wasn't required or used, and performance was extremely good, but compatibility was limited to Xen-aware Linux systems. Fast forward to today and KVM-enabled kernels are performance-comparable to Paravirtualized Xen instances, good Windows drivers exist for KVM virtualized hardware, and maybe most importantly, KVM is part of the kernel of all major Linux distributions.
Squash