{"id":312,"date":"2017-12-29T14:25:52","date_gmt":"2017-12-29T14:25:52","guid":{"rendered":"https:\/\/bootstrap-it.com\/blog\/?p=312"},"modified":"2018-01-25T03:00:47","modified_gmt":"2018-01-25T03:00:47","slug":"aws-just-announced-a-move-from-xen-towards-kvm-so-what-is-kvm","status":"publish","type":"post","link":"https:\/\/bootstrap-it.com\/blog\/?p=312","title":{"rendered":"AWS just announced a move from Xen towards KVM. So what is KVM?"},"content":{"rendered":"<div id=\"s-share-buttons\" class=\"horizontal-w-c-circular s-share-w-c\"><a href=\"http:\/\/www.facebook.com\/sharer.php?u=https:\/\/bootstrap-it.com\/blog\/?p=312\" target=\"_blank\" title=\"Share to Facebook\" class=\"s3-facebook hint--top\"><\/a><a href=\"http:\/\/twitter.com\/intent\/tweet?text=AWS just announced a move from Xen towards KVM. So what is KVM?&url=https:\/\/bootstrap-it.com\/blog\/?p=312\" target=\"_blank\"  title=\"Share to Twitter\" class=\"s3-twitter hint--top\"><\/a><a href=\"http:\/\/reddit.com\/submit?url=https:\/\/bootstrap-it.com\/blog\/?p=312&title=AWS just announced a move from Xen towards KVM. So what is KVM?\" target=\"_blank\" title=\"Share to Reddit\" class=\"s3-reddit hint--top\"><\/a><a href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&url=https:\/\/bootstrap-it.com\/blog\/?p=312\" target=\"_blank\" title=\"Share to LinkedIn\" class=\"s3-linkedin hint--top\"><\/a><a href=\"mailto:?Subject=AWS%20just%20announced%20a%20move%20from%20Xen%20towards%20KVM.%20So%20what%20is%20KVM?&Body=Here%20is%20the%20link%20to%20the%20article:%20https:\/\/bootstrap-it.com\/blog\/?p=312\" title=\"Email this article\" class=\"s3-email hint--top\"><\/a><\/div><div class=\"section-inner sectionLayout--insetColumn\">\n<p id=\"fa77\" class=\"graf graf--p graf-after--h3\">Tied up in a recent AWS announcement about a new EC2 high-end instance type (the C5) is\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.theregister.co.uk\/2017\/11\/07\/aws_writes_new_kvm_based_hypervisor_to_make_its_cloud_go_faster\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.theregister.co.uk\/2017\/11\/07\/aws_writes_new_kvm_based_hypervisor_to_make_its_cloud_go_faster\/\">a strong suggestion<\/a>\u00a0that Amazon\u2019s cloud computing giant has begun to shift its hundreds of thousands of physical servers away from the open source Xen hypervisor that\u2019s run them until now, to the open source alternative, KVM.<\/p>\n<p id=\"47a8\" class=\"graf graf--p graf-after--p\"><span class=\"markup--quote markup--p-quote is-other\" data-creator-ids=\"99894d236f03\">Whether you\u2019ve got your career and\/or home mortgage deeply invested in the future of Xen or whether you never knew it existed, you might be interested in learning more about KVM. So here\u2019s a general introduction adapted from my book,\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/bootstrap-it.com\/index.php\/books\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/bootstrap-it.com\/index.php\/books\/\">Teach Yourself Linux Virtualization and High Availability: prepare for the LPIC-3 304 certification exam<\/a>.<\/span><\/p>\n<blockquote id=\"d269\" class=\"graf graf--blockquote graf-after--p\"><p>Need some more basic background on either Linux servers or AWS? My\u00a0<a class=\"markup--anchor markup--blockquote-anchor\" href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\">Linux in Action<\/a>\u00a0and\u00a0<a class=\"markup--anchor markup--blockquote-anchor\" href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\">Learn Amazon Web Services in a Month of Lunches<\/a>\u00a0books from Manning might help, along with my\u00a0<a href=\"http:\/\/pluralsight.pxf.io\/c\/1191769\/424552\/7490?subId1=solving&amp;u=https%3A%2F%2Fapp.pluralsight.com%2Fprofile%2Fauthor%2Fdavid-clinton\">Linux server administration courses at Pluralsight<\/a>.<\/p><\/blockquote>\n<h4 id=\"a71d\" class=\"graf graf--h4 graf-after--blockquote\">KVM<\/h4>\n<p id=\"68a6\" class=\"graf graf--p graf-after--h4\">Like Xen, KVM (Kernel-based Virtual Machine) is an open source hypervisor technology for virtualizing compute infrastructure running on x86 compatible hardware. Also like Xen, KVM has both an active user community and significant enterprise deployments.<\/p>\n<p id=\"47dc\" class=\"graf graf--p graf-after--p\">A KVM host actually runs on the Linux\u00a0<span class=\"markup--quote markup--p-quote is-other\" data-creator-ids=\"dd0a280e6c4c\">kernel<\/span>\u00a0along with two KVM kernel modules (the kvm.ko module and either kvm-intel.ko or kvm-amd.ko). Through its tight kernel integration\u200a\u2014\u200aincluding the I\/O connectivity with kernel block and network drivers provided by Virtio\u200a\u2014\u200aKVM can offer its guests more seamless access to all the complex hardware and networking profiles that they might encounter.<\/p>\n<p id=\"8ca8\" class=\"graf graf--p graf-after--p\">Hardware virtualization extensions built into modern CPU designs and required for KVM deployments mean that, right out of the box, KVM guests can safely access only those hardware resources they need without the need to worry about leakage to the larger system.<\/p>\n<p id=\"12e3\" class=\"graf graf--p graf-after--p\">Where exactly does QEMU fit in with all this? Besides being able to act as a hypervisor, QEMU\u2019s strength is as an emulator. KVM, in its hypervisor virtualization role, can tap on to QEMU\u2019s emulation powers to compliment its own hardware acceleration features, presenting its guests with an emulated chipset and PCI bus. The whole, as they say, can be greater than the sum of its parts.<\/p>\n<\/div>\n<div class=\"section-inner sectionLayout--outsetColumn\">\n<figure id=\"fefe\" class=\"graf graf--figure graf--layoutOutsetCenter graf-after--p\" data-scroll=\"native\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*yxCnS2vWiyE7SZWOUy1rBA.png\" data-width=\"1000\" data-height=\"562\" data-scroll=\"native\"><canvas class=\"progressiveMedia-canvas js-progressiveMedia-canvas\" width=\"75\" height=\"40\"><\/canvas><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/1000\/1*yxCnS2vWiyE7SZWOUy1rBA.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/1000\/1*yxCnS2vWiyE7SZWOUy1rBA.png\" \/><\/div>\n<\/div><figcaption class=\"imageCaption\">A KVM hypervisor sitting between the Linux host OS and its guest\u00a0VMs<\/figcaption><\/figure>\n<\/div>\n<div class=\"section-inner sectionLayout--insetColumn\">\n<p id=\"6f99\" class=\"graf graf--p graf-after--figure\">A great deal of management functionality for KVM is often actually provided by Libvirt. Therefore, you might sometimes want to refer to the detailed information about KVM-related features like networking, storage, and file system layouts that\u2019s found in the fifth chapter of the\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/bootstrap-it.com\/index.php\/books\/\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/bootstrap-it.com\/index.php\/books\/\">Teach Yourself Linux Virtualization and High Availability<\/a>\u00a0book (\u201cLibvirt and Related Tools\u201d).<\/p>\n<h4 id=\"b700\" class=\"graf graf--h4 graf-after--p\">Installation<\/h4>\n<p id=\"444e\" class=\"graf graf--p graf-after--h4\">Before anything else, you\u2019ll need to make sure that the physical machine you\u2019re planning to use as a KVM host supports hardware virtualization. Besides the BIOS setting and the contents of \/proc\/cpuinfo (which we discussed in Chapter One), you can also quickly check this from a running Linux system using kvm-ok:<\/p>\n<pre id=\"e509\" class=\"graf graf--pre graf-after--p\">$ kvm-ok<\/pre>\n<p id=\"f301\" class=\"graf graf--p graf-after--pre\">It\u2019s also a good idea to be sure which hardware architecture\u200a\u2014\u200a64 or 32-bit\u200a\u2014\u200ayou\u2019re working with:<\/p>\n<pre id=\"b9f5\" class=\"graf graf--pre graf-after--p\">$ uname -m<\/pre>\n<p id=\"94c9\" class=\"graf graf--p graf-after--pre\">But even if your hardware profile is up to the task, you\u2019ll have to let the Linux kernel in on your plans. If they\u2019re not already there, you should add the kvm and either kvm-intel or kvm-amd kernel modules.<\/p>\n<pre id=\"b3bb\" class=\"graf graf--pre graf-after--p\"># modprobe kvm-intel<\/pre>\n<p id=\"1dda\" class=\"graf graf--p graf-after--pre\">If those modules fail to load (and there\u2019s no \/dev\/kvm device in the file system), then there\u2019s a good chance your CPU just isn\u2019t up to the job you\u2019d like it to to. However, if all that worked out, you\u2019re ready to install the qemu-kvm package (and, if necessary, libvirt, virt-install, and bridge-utils as well).<\/p>\n<h4 id=\"4152\" class=\"graf graf--h4 graf-after--p\">Working with KVM Management Tools<\/h4>\n<p id=\"1e10\" class=\"graf graf--p graf-after--h4\">It\u2019s no secret that virtualization platforms have a well-deserved reputation for being complicated. But there are two things that can make getting started with KVM just a bit more challenging than some of the others:<\/p>\n<ul class=\"postList\">\n<li id=\"6bde\" class=\"graf graf--li graf-after--p\">There are quite a few management toolkits available, each offering similar\u200a\u2014\u200abut not identical\u200a\u2014\u200afunctionality.<\/li>\n<li id=\"dc77\" class=\"graf graf--li graf-after--li\">They have a nasty habit of changing the names used for the key binaries depending on which distribution and release you\u2019re using.<\/li>\n<\/ul>\n<p id=\"245f\" class=\"graf graf--p graf-after--li\">I\u2019ll introduce you to Libvirt Tools and vmbuilder in Chapter Five, but here, we\u2019ll discuss the KVM tool kit.<\/p>\n<p id=\"11f2\" class=\"graf graf--p graf-after--p\">Building new guests using what we\u2019ll call the \u201cKVM\u201d way is a two step process. First, you\u2019ll use qemu-img to create a new image\u200a\u2014\u200aor modify or convert an old one. Then you\u2019ll use qemu-kvm to set up a virtual machine that will start up the installation.<\/p>\n<blockquote id=\"17b4\" class=\"graf graf--blockquote graf-after--p\"><p>Did I just say \u201cyou\u2019ll use qemu-kvm\u2026\u201d? Silly me. qemu-kvm was merged into qemu a long time ago and has been replaced by qemu-system-x86_64. In the meantime, some systems offer you kvm as a wrapper that executes qemu-system-x86_64 -enable-kvm\u200a\u2014\u200aalthough you shouldn\u2019t confuse the kvm wrapper with the old kvm binary that used a somewhat different syntax.<\/p><\/blockquote>\n<p id=\"ec0e\" class=\"graf graf--p graf-after--blockquote\">So let\u2019s see how these two steps work. You create a disk image with qemu-img (which, by the way, can be used very effectively for other hypervisors as well), where \u201cmy-disk\u201d is the name of the image you\u2019d like to create, the maximum size of the image will be 6 GB, and qcow2 is the file format. qcow, by the way, stands for \u201cQEMU Copy On Write\u201d.<\/p>\n<pre id=\"f2b3\" class=\"graf graf--pre graf-after--p\"># qemu-img create -f qcow2 \/home\/username\/myimages\/my-disk.img 6G \\\r\n Formatting \u2018\/home\/username\/myimages\/my-disk.img\u2019, \\\r\n fmt=qcow2 size=6442450944 \\\r\n encryption=off \\\r\n cluster_size=65536 \\\r\n lazy_refcounts=off \\\r\n refcount_bits=16<\/pre>\n<p id=\"1308\" class=\"graf graf--p graf-after--pre\">Choosing a file format will depend on your specific needs. If you need greater compatibility and flexibility\u200a\u2014\u200aincluding the ability to generate sophisticated snapshots\u200a\u2014\u200athen qcow2 is probably going to be your best choice.<\/p>\n<p id=\"5a70\" class=\"graf graf--p graf-after--p\">The qcow disk image format permits disk space allocation to grow only as needed, meaning the use of space is always as efficient as possible. Changes to a qcow read-only image can be saved to a separate file, which refers internally to the original image. qcow2 added the ability to create multiple image snapshots.<\/p>\n<p id=\"4d8c\" class=\"graf graf--p graf-after--p\">We\u2019re now ready for step two. Here\u2019s how we\u2019ll build our VM:<\/p>\n<pre id=\"0cb1\" class=\"graf graf--pre graf-after--p\"># kvm -name my-VM \\\r\n -hda \/home\/username\/myimages\/my-disk.img \\\r\n -cdrom \/home\/username\/Downloads\/ubuntu-16.04-server-amd64.iso \\\r\n -boot d -m 1024<\/pre>\n<p id=\"1e66\" class=\"graf graf--p graf-after--pre\">A new SDL window will often (although not necessarily for all distributions) pop up where you can complete the operating system installation process. Regaining control of your mouse from the Qemu terminal requires pressing CTRL+ALT.<\/p>\n<p id=\"82b4\" class=\"graf graf--p graf-after--p\">To explain: using \u201ckvm\u201d (although the precise command you\u2019ll need for your version may differ), we\u2019ll call our new guest \u201cmy-VM\u201d, designate the my-disk.img file as hda (\u201chard drive a\u201d), point to the location of the operating system ISO (Ubuntu 16.04 server, in this case), and set 1024 MB as the maximum memory alloted to the VM.<\/p>\n<p id=\"d6ce\" class=\"graf graf--p graf-after--p\">By default, KVM will configure your guest for user-level networking (as though the parameters -netdev user,id=user.0 -device e1000,netdev=user.0 were specified). This will provide the guest with an IP address through KVM\u2019s own DHCP service and access to your host, the Internet, and to LAN-based recourses. While the default configuration is simple, it may be overly restrictive for some scenarios, as there are often some performance and feature limitations.<\/p>\n<p id=\"cf6a\" class=\"graf graf--p graf-after--p\">Besides these, you can use command line flags to control various VM configuration parameters, including:<\/p>\n<ul class=\"postList\">\n<li id=\"2a44\" class=\"graf graf--li graf-after--p\">-smp 2 provides two processors (\u201csmp\u201d = symmetric multiprocessing).<\/li>\n<li id=\"e8eb\" class=\"graf graf--li graf-after--li\">The -net argument (example: -net nic,model=virtio,macaddr =52:54:00:05:11:11) establishes a network connection for your guest.<\/li>\n<li id=\"387f\" class=\"graf graf--li graf-after--li\">You can provision a network bridge using something like -net bridge,vlan=0,br=br0\u200a\u2014\u200aalthough this will require a matching -net definition on the host. The two are connected through a special \u201cvlan\u201d parameter.<\/li>\n<li id=\"9282\" class=\"graf graf--li graf-after--li\">-balloon virtio will allow me to expand or reduce a guest\u2019s memory size without having to reboot it.<\/li>\n<li id=\"9668\" class=\"graf graf--li graf-after--li\">You can also use the -drive file= flag to define additional block storage devices. Adding a value for format= (qcow2, for instance).<\/li>\n<\/ul>\n<p id=\"0be3\" class=\"graf graf--p graf-after--li\">The -M flag will assign a specific machine type hardware emulation. pc. For example, will provide a standard PC profile. For a complete list of available machine types, you can run kvm -M\u00a0?:<\/p>\n<pre id=\"77c4\" class=\"graf graf--pre graf-after--p\"># kvm -M ?\r\nSupported machines are:\r\nubuntu Ubuntu 15.04 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-wily)\r\npc-i440fx-wily Ubuntu 15.04 PC (i440FX + PIIX, 1996) (default)\r\nubuntu Ubuntu 15.04 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-vivid)\r\npc-i440fx-vivid Ubuntu 15.04 PC (i440FX + PIIX, 1996) (default)\r\npc-i440fx-utopic Ubuntu 14.10 PC (i440FX + PIIX, 1996)\r\npc-i440fx-trusty Ubuntu 14.04 PC (i440FX + PIIX, 1996)\r\npc Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-2.5)\r\npc-i440fx-2.5 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-2.4 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-2.3 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)\r\npc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)\r\npc-1.3 Standard PC (i440FX + PIIX, 1996)\r\npc-1.2 Standard PC (i440FX + PIIX, 1996)\r\npc-1.1 Standard PC (i440FX + PIIX, 1996)\r\npc-1.0 Standard PC (i440FX + PIIX, 1996)\r\npc-0.15 Standard PC (i440FX + PIIX, 1996)\r\npc-0.14 Standard PC (i440FX + PIIX, 1996)\r\npc-0.13 Standard PC (i440FX + PIIX, 1996)\r\npc-0.12 Standard PC (i440FX + PIIX, 1996)\r\npc-0.11 Standard PC (i440FX + PIIX, 1996)\r\npc-0.10 Standard PC (i440FX + PIIX, 1996)\r\nq35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35\u20132.5)\r\npc-q35\u20132.5 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20132.4 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20132.3 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20132.2 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20132.1 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20132.0 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20131.7 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20131.6 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20131.5 Standard PC (Q35 + ICH9, 2009)\r\npc-q35\u20131.4 Standard PC (Q35 + ICH9, 2009)\r\nisapc ISA-only PC\r\nnone empty machine\r\nxenfv Xen Fully-virtualized PC\r\nxenpv Xen Para-virtualized PC<\/pre>\n<h4 id=\"5f70\" class=\"graf graf--h4 graf-after--pre\">KVM Monitor<\/h4>\n<p id=\"218d\" class=\"graf graf--p graf-after--h4\">While working with QEMU, you can open a monitor console and interact with your clients in ways that might be difficult or even impossible using a regular headless server. You can launch the KVM Monitor by pressing CTRL+ALT, and then SHIFT+2, and a new console will open on your desktop. SHIFT+1 will close the console. You can also access the console from the command line using something like:<\/p>\n<pre id=\"19f8\" class=\"graf graf--pre graf-after--p\">$ kvm -monitor stdio<\/pre>\n<p id=\"9203\" class=\"graf graf--p graf-after--pre\">You will probably NOT be able to launch the monitor as root (i.e., via sudo). Naturally, your version may require \u201cqemu-system-x86_64\u201d rather than kvm. This approach allows you to add command line arguments (like that -monitor which specified a console target). Consult man qemu-system-x86_64 for details on the kinds of operations the monitor allows.<\/p>\n<p id=\"e744\" class=\"graf graf--p graf-after--p\">This example (borrowed from en.wikibooks.org\/wiki\/QEMU\/Monitor) will list all the block devices currently available to your system, and then point one of them to an ISO file you want to use:<\/p>\n<pre id=\"0e21\" class=\"graf graf--pre graf-after--p\">(qemu) info block\r\nide0-hd0: type=hd removable=0 file=\/path\/to\/winxp.img\r\nide0-hd1: type=hd removable=0 file=\/path\/to\/pagefile.raw\r\nide1-hd1: type=hd removable=0 file=\/path\/to\/testing_data.img\r\nide1-cd0: type=cdrom removable=1 locked=0 file=\/dev\/sr0 ro=1 drv=host_device\r\nfloppy0: type=floppy removable=1 locked=0 [not inserted]\r\nsd0: type=floppy removable=1 locked=0 [not inserted]\r\n(qemu) change ide1-cd0 \/home\/images\/my.iso<\/pre>\n<h4 id=\"33af\" class=\"graf graf--h4 graf-after--pre\">Networking<\/h4>\n<p id=\"e099\" class=\"graf graf--p graf-after--h4\">By default, a KVM guest will receive an IP address within the 10.0.2.0\/24 subnet, and have outgoing access (including SSH access) both to its host, and to the wider network beyond. By that same default however, it won\u2019t be able to host services for network clients. If you need to open up incoming network connectivity, you\u2019ll probably want to create a network bridge on your host that\u2019s similar to the one we used for Xen in the previous chapter. As before, you will install bridge-utils on the host and, assuming you\u2019re running a Debian-based system and you want your host to receive its IP from a network DHCP server, edit the \/etc\/network\/interfaces to look something like this (on CentOS machines, edit files in the \/etc\/sysconfig\/network-scripts\/ directory):<\/p>\n<pre id=\"d455\" class=\"graf graf--pre graf-after--p\">auto lo\r\niface lo inet loopback<\/pre>\n<pre id=\"9320\" class=\"graf graf--pre graf-after--pre\">auto eth0\r\niface eth0 inet manual<\/pre>\n<pre id=\"6472\" class=\"graf graf--pre graf-after--pre\">auto br0\r\niface br0 inet dhcp\r\n bridge_ports eth0\r\n bridge_stp off\r\n bridge_fd 0\r\n bridge_maxwait 0<\/pre>\n<p id=\"4135\" class=\"graf graf--p graf-after--pre\">On CentOS, you\u2019ll need to create an ifcfg-br0 file in the \/etc\/sysconfig\/network-scripts\/ directory to look something like this:<\/p>\n<pre id=\"ed24\" class=\"graf graf--pre graf-after--p\">DEVICE=br0\r\nTYPE=Bridge\r\nBOOTPROTO=static\r\nDNS1=192.168.0.1\r\nGATEWAY=192.168.0.1\r\nIPADDR=192.168.0.100\r\nNETMASK=255.255.255.0\r\nONBOOT=yes\r\nSEARCH=\u201dexample.com\u201d<\/pre>\n<p id=\"2794\" class=\"graf graf--p graf-after--pre\">\u2026And then add a line reading BRIDGE=br0 line to your primary network interface file (which will often be: \/etc\/sysconfig\/network-scripts\/ifcfg-eth0).<\/p>\n<p id=\"2cf3\" class=\"graf graf--p graf-after--p\">You will then stop and restart your network services (or reboot).<\/p>\n<p id=\"73a2\" class=\"graf graf--p graf-after--p graf--trailing\"><em class=\"markup--em markup--p-em\">This article originally appeared in <a href=\"https:\/\/medium.com\/@dbclin\">my Medium account<\/a>. Looking for a solid introduction to Linux or AWS administration? Check out my\u00a0<\/em><a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.manning.com\/books\/linux-in-action?a_aid=bootstrap-it&amp;a_bid=4ca15fc9\"><em class=\"markup--em markup--p-em\">Linux in Action<\/em><\/a><em class=\"markup--em markup--p-em\">\u00a0and\u00a0<\/em><a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.manning.com\/books\/learn-amazon-web-services-in-a-month-of-lunches?a_aid=bootstrap-it&amp;amp;a_bid=1c1b5e27\"><em class=\"markup--em markup--p-em\">Learn Amazon Web Services in a Month of Lunches<\/em><\/a><em class=\"markup--em markup--p-em\">\u00a0books from Manning. Prefer your tech learning in video? I\u2019ve got\u00a0<\/em><a href=\"http:\/\/pluralsight.pxf.io\/c\/1191769\/424552\/7490?subId1=solving&amp;u=https%3A%2F%2Fapp.pluralsight.com%2Fprofile%2Fauthor%2Fdavid-clinton\"><em class=\"markup--em markup--p-em\">Linux administration courses at Pluralsigh<\/em><\/a><em class=\"markup--em markup--p-em\">t just waiting to be watched.<\/em><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tied up in a recent AWS announcement about a new EC2 high-end instance type (the C5) is\u00a0a strong suggestion\u00a0that Amazon\u2019s cloud computing giant has begun to shift its hundreds of thousands of physical servers away from the open source Xen&hellip; <a href=\"https:\/\/bootstrap-it.com\/blog\/?p=312\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":313,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bootstrap-it.com\/blog\/?p=312\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT\" \/>\n<meta property=\"og:description\" content=\"Tied up in a recent AWS announcement about a new EC2 high-end instance type (the C5) is\u00a0a strong suggestion\u00a0that Amazon\u2019s cloud computing giant has begun to shift its hundreds of thousands of physical servers away from the open source Xen&hellip; Continue Reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bootstrap-it.com\/blog\/?p=312\" \/>\n<meta property=\"og:site_name\" content=\"Bootstrap IT\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-29T14:25:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-01-25T03:00:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bootstrap-it.com\/blog\/wp-content\/uploads\/kvm.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"562\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"dbclin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@davidbclinton\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dbclin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=312\",\"url\":\"https:\/\/bootstrap-it.com\/blog\/?p=312\",\"name\":\"AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT\",\"isPartOf\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#website\"},\"datePublished\":\"2017-12-29T14:25:52+00:00\",\"dateModified\":\"2018-01-25T03:00:47+00:00\",\"author\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec\"},\"breadcrumb\":{\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=312#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bootstrap-it.com\/blog\/?p=312\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/?p=312#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/bootstrap-it.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS just announced a move from Xen towards KVM. So what is KVM?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#website\",\"url\":\"https:\/\/bootstrap-it.com\/blog\/\",\"name\":\"Bootstrap IT\",\"description\":\"Learn technology using technology\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bootstrap-it.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec\",\"name\":\"dbclin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g\",\"caption\":\"dbclin\"},\"sameAs\":[\"http:\/\/bootstrap-it.com\/\",\"dbclinton\",\"https:\/\/twitter.com\/davidbclinton\"],\"url\":\"https:\/\/bootstrap-it.com\/blog\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bootstrap-it.com\/blog\/?p=312","og_locale":"en_US","og_type":"article","og_title":"AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT","og_description":"Tied up in a recent AWS announcement about a new EC2 high-end instance type (the C5) is\u00a0a strong suggestion\u00a0that Amazon\u2019s cloud computing giant has begun to shift its hundreds of thousands of physical servers away from the open source Xen&hellip; Continue Reading &rarr;","og_url":"https:\/\/bootstrap-it.com\/blog\/?p=312","og_site_name":"Bootstrap IT","article_published_time":"2017-12-29T14:25:52+00:00","article_modified_time":"2018-01-25T03:00:47+00:00","og_image":[{"width":1000,"height":562,"url":"https:\/\/bootstrap-it.com\/blog\/wp-content\/uploads\/kvm.png","type":"image\/png"}],"author":"dbclin","twitter_card":"summary_large_image","twitter_creator":"@davidbclinton","twitter_misc":{"Written by":"dbclin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bootstrap-it.com\/blog\/?p=312","url":"https:\/\/bootstrap-it.com\/blog\/?p=312","name":"AWS just announced a move from Xen towards KVM. So what is KVM? - Bootstrap IT","isPartOf":{"@id":"https:\/\/bootstrap-it.com\/blog\/#website"},"datePublished":"2017-12-29T14:25:52+00:00","dateModified":"2018-01-25T03:00:47+00:00","author":{"@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec"},"breadcrumb":{"@id":"https:\/\/bootstrap-it.com\/blog\/?p=312#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bootstrap-it.com\/blog\/?p=312"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bootstrap-it.com\/blog\/?p=312#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bootstrap-it.com\/blog"},{"@type":"ListItem","position":2,"name":"AWS just announced a move from Xen towards KVM. So what is KVM?"}]},{"@type":"WebSite","@id":"https:\/\/bootstrap-it.com\/blog\/#website","url":"https:\/\/bootstrap-it.com\/blog\/","name":"Bootstrap IT","description":"Learn technology using technology","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bootstrap-it.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/ae0fb1d5b3b01558b92b6426d77766ec","name":"dbclin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bootstrap-it.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a93785d437350478a7f1dfcbec58d26bc28e0124e405179acbe1b4325c09f90a?s=96&d=mm&r=g","caption":"dbclin"},"sameAs":["http:\/\/bootstrap-it.com\/","dbclinton","https:\/\/twitter.com\/davidbclinton"],"url":"https:\/\/bootstrap-it.com\/blog\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=312"}],"version-history":[{"count":3,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions"}],"predecessor-version":[{"id":324,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions\/324"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/313"}],"wp:attachment":[{"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bootstrap-it.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}