<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3833634700318167346</id><updated>2011-12-21T09:23:24.418+01:00</updated><category term='linux'/><category term='i/o'/><category term='virtualization'/><category term='hpc'/><category term='visualization'/><category term='virtualbox'/><category term='package'/><category term='cuda'/><category term='sysadmin'/><category term='java'/><category term='web'/><category term='ec2'/><category term='security'/><category term='howto'/><category term='vmware'/><category term='opencl'/><category term='apt'/><category term='alacricity'/><category term='eucalyptus'/><category term='cloud'/><category term='gpgpu'/><category term='encryption'/><category term='gpu'/><category term='VM'/><category term='clusters'/><category term='filesystems'/><category term='nvida'/><category term='downgrade'/><category term='servers'/><category term='debian'/><category term='ubuntu'/><category term='kvm'/><category term='xenserver'/><category term='solaris'/><category term='xen'/><category term='supercomputing'/><category term='science'/><category term='database'/><title type='text'>Virtually A Machine</title><subtitle type='html'>On virtualization in scientific computing and other IT stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>85</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5491519615037257358</id><published>2011-11-30T15:17:00.000+01:00</published><updated>2011-11-30T15:17:53.452+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>Xen vs. KVM yet again</title><content type='html'>Interesting read on &lt;a href="http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs-kvm-redux/"&gt;Baremetal vs. Xen vs. KVM benchmark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;In short:&lt;/b&gt; Xen with HVM guests + PV drivers (that is, full virtualization mode with paravirtualised drivers, as opposed to paravirtualized mode) and KVM are equally effective. In some tests one was marginally faster, in some tests it was the other.&lt;br /&gt;&lt;br /&gt;If you read my old posts, I was in&amp;nbsp;favor&amp;nbsp;of Xen for better performance of its PV (paravirtualized) guests and ability to run on older CPUs. Today all my boxes have hardware support for virtualization and I don't even use PV mode. While it's still slightly faster, it's not worth the additional complexity. If you've ever had a VM that failed to boot when PyGrub couldn't find the right kernel, you know what I mean. HVM + drivers/tools, that's the way to do it on any platform - be it Xen server or Virtualbox on a desktop.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Even shorter:&lt;/b&gt; virtualization platforms are so mature there's no real difference in performance or stability. For large installations, advanced features and management tools are the important factors. For one machine - familiarity and ease of use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5491519615037257358?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5491519615037257358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/11/xen-vs-kvm-yet-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5491519615037257358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5491519615037257358'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/11/xen-vs-kvm-yet-again.html' title='Xen vs. KVM yet again'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8623194620840579800</id><published>2011-11-25T11:21:00.000+01:00</published><updated>2011-11-25T11:21:42.023+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>How to run a network monitoring station on a XenServer VM</title><content type='html'>I spent way too much time on this seemingly simple task, I hope someone will find this guide useful.&lt;br /&gt;&lt;br /&gt;Network monitoring applications require a &lt;b&gt;promiscous mode&lt;/b&gt; on a network interface. Easy on a physical machine, didn't work on XenServer. Interface inside a VM switched to promiscous mode, but the traffic was filtered before it reached VM. Only for a brief period I could see all the packets, then only broadcasts got through. Just like on the switch that's learning - that should have pointed me to the right answer.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Open VSwitch&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I googled for a solution and found some (e.g. &lt;a href="http://support.citrix.com/article/CTX121729"&gt;this one&lt;/a&gt;&amp;nbsp;from Citrix), but nothing worked. Until I remembered that XenServer 6 uses &lt;a href="http://openvswitch.org/"&gt;Open VSwitch&lt;/a&gt; by default and all the answers I found were for earlier versions using bridging backend. Now it should be easy. VSwitch works like a high-end, configurable switch so I'll just put the right port into traffic mirroring mode, right? Wrong.&lt;br /&gt;&lt;br /&gt;To configure Open VSwitch in XenServer you use a VSwitch Controller virtual appliance. Installation is simple - just download the file, open it with XenCenter and select a VM. Then configure an IP address if you don't use DHCP, point the web browser at it and enter a pool to use. At this point it complained it can't work with free XenServer license. Which Citrix failed to mention on their website.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;The other solution&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's always good to have a backup plan. Mine was simple: set XenServer to use the old bridging code. I rejected it at first for two reasons:&lt;br /&gt;- it requires a reboot,&lt;br /&gt;- VSwitch has more features (which I didn't need at the moment, but I might one day) and should perform better.&lt;br /&gt;&lt;br /&gt;After scheduling a downtime for VMs, I typed one simple command into a CLI:&lt;br /&gt;&lt;pre&gt;xe-switch-network-backend bridge&lt;br /&gt;&lt;/pre&gt;Reboot and it's done. You can check with 'cat /etc/xensource/network.conf' to be sure.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Forcing promiscous mode - the old way&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now all you have to do is put the right interfaces into promiscous mode. Interfaces - because you need to do it on both PIF and VIF (physical and virtual interface, one that connects to the real network and one that connects to VM). First, find the UUIDs of the interfaces with:&lt;br /&gt;&lt;pre&gt;xe vif-list&lt;br /&gt;xe pif-list&lt;br /&gt;&lt;/pre&gt;If you've got many VMs and NICs, you'll get a long list. You can try filtering, e.g. xe vif-list vm-name-label="My monitoring VM", see xe help vif-list for details. However, some filters didn't work for me. Once you have UUIDs, do:&lt;br /&gt;&lt;pre&gt;xe pif-param-set uuid=&lt;your uuid=""&gt; other-config:promiscuous="true"&lt;/your&gt;&lt;br /&gt;xe vif-param-set uuid=&lt;your uuid=""&gt; other-config:promiscuous="true"&lt;/your&gt;&lt;br /&gt;&lt;/pre&gt;Check if it worked:&lt;br /&gt;&lt;pre&gt;xe pif-param-list uuid=&lt;your uuid=""&gt;&lt;/your&gt;&lt;br /&gt;xe vif-param-list uuid=&lt;your uuid=""&gt;&lt;/your&gt;&lt;br /&gt;&lt;/pre&gt;Disconnect VIF from VM and connect it back:&lt;br /&gt;&lt;pre&gt;xe vif-unplug uuid=&lt;your uuid=""&gt;&lt;/your&gt;&lt;br /&gt;xe vif-plug uuid=&lt;your uuid=""&gt;&lt;/your&gt;&lt;br /&gt;&lt;/pre&gt;Note: unplug/plug only works if you have XenServer Tools installed. Otherwise reboot the VM.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Other possible ways&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Some howtos for older XenServers used: brctl setageing xenbr0 0 (or whatever Xen bridging interface you use). I didn't need it, but you can try it if xe ...param-set fails.&lt;br /&gt;&lt;br /&gt;I could probably configure VSwitch without Citrix controller appliance. I might one day.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8623194620840579800?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8623194620840579800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/11/how-to-run-network-monitoring-station.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8623194620840579800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8623194620840579800'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/11/how-to-run-network-monitoring-station.html' title='How to run a network monitoring station on a XenServer VM'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7676231499071452633</id><published>2011-07-08T15:11:00.001+02:00</published><updated>2011-07-11T14:40:28.702+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>Important new releases</title><content type='html'>&lt;strike&gt;I don't usually write about the releases&lt;/strike&gt;&amp;nbsp;&lt;edit&gt;: Who am I kidding? I only write about releases, it's been months since I wrote a useful Howto. I promise one as soon as I find some mythical free time.&lt;/edit&gt;&lt;br /&gt;&lt;br /&gt;Oracle has released an &lt;a href="http://jdk7.java.net/"&gt;early version of Java 7&lt;/a&gt;. It promises some important features, most importantly native support for other languages on JVM. Speaking of which, &lt;a href="http://radar.oreilly.com/2011/07/jvm-languages.html"&gt;O'Reilly has a short summary&lt;/a&gt;. Also from Oracle, new version of VirtualBox is mostly a bugfix release.&lt;br /&gt;&lt;br /&gt;Samsung, as a part of Khronos group, is working to make GPUs useful (yep, I'm not a gamer, for me they're useless power drains most of the time). You've probably heard of OpenCL, a platform for running all-purpose software on GPUs or special-purpose accelerators (with a nice feature of falling back to CPU if nothing else is available). WebCL is a JavaScript binding for OpenCL that allows to use GPU computing in client-side web apps. Samsung not only released the WebCL implementation, it also did it under BSD license, meaning it's free to use for any purpose.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On more personal side, I got a couple of machines for an experimental XenServer pool, meaning I can test new features without jeopardizing production VMs. Shiny!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7676231499071452633?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7676231499071452633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/07/important-new-releases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7676231499071452633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7676231499071452633'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/07/important-new-releases.html' title='Important new releases'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1278978302356671807</id><published>2011-06-02T13:29:00.001+02:00</published><updated>2011-06-02T18:08:31.856+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen support in mainline Linux kernel</title><content type='html'>For the past two years, Xen infrastructure has been getting included in the Linux kernel piece by piece. It's finally done. A nice coincidence is that new version we'll be called 3.0 instead of &lt;s&gt;&amp;nbsp;2.6.30 &lt;/s&gt;&amp;nbsp;2.6.40 - just like Xen was the feature so important it justified the change (in reality, there was no single large addition, just the sum of small changes since 2.6.0 made today kernel something completely different).&lt;br /&gt;&lt;br /&gt;Soon an ordinary Linux system will be able to run as Xen dom0 (host) without any changes in the kernel, just like it is with KVM, VirtualBox and some other virtualization solutions. I hope it will stop the decline of Xen: when it's no harder to setup then its competitors and offers better performance, it's becoming and interesting choice again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1278978302356671807?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1278978302356671807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/06/xen-support-in-mainline-linux-kernel.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1278978302356671807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1278978302356671807'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/06/xen-support-in-mainline-linux-kernel.html' title='Xen support in mainline Linux kernel'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7520485295878203686</id><published>2011-03-31T10:46:00.000+02:00</published><updated>2011-03-31T10:46:57.599+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Password storage, part 2 - my choice</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IEtuxm5gYqU/TZQ-xCFL4MI/AAAAAAAAAGQ/TSI2VJcnkGg/s1600/keepass.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="207" src="http://1.bp.blogspot.com/-IEtuxm5gYqU/TZQ-xCFL4MI/AAAAAAAAAGQ/TSI2VJcnkGg/s400/keepass.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Note:&lt;/b&gt; read&amp;nbsp; &lt;a href="http://virtually-a-machine.blogspot.com/2011/03/password-storage-part-1-considerations.html"&gt;Part 1&lt;/a&gt; for general considerations.&lt;br /&gt;&lt;br /&gt;After some tries I settled on &lt;b&gt;&lt;a class="zem_slink" href="http://keepass.info/" rel="homepage" title="KeePass"&gt;Keepass&lt;/a&gt;&lt;/b&gt; family. The original app works on Windows and has two lines: &lt;b&gt;Keepass Classic (1.x)&lt;/b&gt; and &lt;b&gt;Keepass Professional (2.x)&lt;/b&gt;. Before you jump to the latter (it has a bigger version number and it's called professional, so it must be better, right?), bear in mind that Keepass 2 is written in .NET. What's wrong with that?&lt;br /&gt;&lt;br /&gt;- It severely limits the number of systems that can run it. While you can use it on most versions of Windows and (with Mono) on Linux, BSD and MacOS X, .NET runtime needs to be installed. What if you need to run it on someone else's machine? No problem in carrying a few MB portable Keepass binary with you, but &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/.NET_Framework" rel="wikipedia" title=".NET Framework"&gt;.NET Framework&lt;/a&gt; is large and invasive.&lt;br /&gt;- It's way slower then Keepass Classic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Supported systems&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Keepass 1.x only runs on Windows, but there are ports and clones &lt;b&gt;for almost any system and device&lt;/b&gt;: Linux, MacOS X, PDAs/smartphones (iPhone, Blackberry, Android, Windows Mobile) and even dumb phones (using Java Mobile, almost any phone can run it). All of them use the same file format. I mostly use &lt;a href="http://www.keepassx.org/"&gt;KeepassX&lt;/a&gt; on Linux, supplemented by Windows and phone versions.&lt;br /&gt;&lt;br /&gt;Windows version can be integrated with Portable Apps Suite and Bart Preinstalled Environment, two great tools that many IT professionals carry around. No problem in using my passwords on a friend's computer, got Keepass Portable and the database is backed on my USB drive [*].&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Organizing passwords&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="zemanta-img separator zemanta-action-dragged"&gt;&lt;a href="http://commons.wikipedia.org/wiki/File:KeePass_random_password.png" style="clear: left; display: block; float: left; margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Generate a new random password in the free pas..." height="212" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/KeePass_random_password.png/300px-KeePass_random_password.png" style="border: medium none; font-size: 0.8em;" width="300" /&gt;&lt;/a&gt;&lt;span class="zemanta-img-attribution" style="clear: left; float: left; margin-left: 1em; margin-right: 1em; width: 300px;"&gt;Image via &lt;a href="http://commons.wikipedia.org/wiki/File:KeePass_random_password.png"&gt;Wikipedia&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/KeePass_random_password.png/300px-KeePass_random_password.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/KeePass_random_password.png/300px-KeePass_random_password.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt; Keepass can organize your passwords in the tree structure (eg. you can start by dividing into Personal and Work, than in Personal into Shops, Forums, Websites...). Useful if you have dozens of them. Even better, you can search your database. When adding a new entry, you have a choice of writing a password or generating a new one with a given length and set of characters. There's even an option to generate pronouncable passwords. I usually go with a long random string of mixed case letters, numbers and several special characters.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Keepass database is a single file. It means in case of corruption, you lose it all, so Keepass automatically writes backups. It's protected with a &lt;b&gt;strong encryption&lt;/b&gt;, so it's safe to send it over the network. Just remember to &lt;b&gt;choose good password:&lt;/b&gt; containing numbers, special signs and REALLY long - like, 20 characters or more.&lt;br /&gt;&lt;br /&gt;Noticed that Keepass gives you an option to see the password you're typing instead of asterisks and to correct it in case of a mistake? All apps written by security-savvy people do it. Asterisks give little protection against someone looking over your shoulder (they can see the keyboard anyway!), but discourage from using strong passwords.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Integrating with other applications&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Keepass can import passwords from several applications, including Firefox, and export to XML (both human and machine readable) or TXT. There are plugins to integrate it with web browsers and other apps. I don't use them though, there's a simpler and more secure option: press &lt;b&gt;Ctrl-Shift-A&lt;/b&gt; while visiting a page, Keepass will auto-type your username and password. It matches application titlebar to the entry's Title and URL field. To make sure the match is correct, install Hostname in Titlebar extension in Firefox. For other apps, use Ctrl-C to copy password to clipboard (Ctrl-B for username). Keepass will clear your clipboard after a specified time (20s by default).&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Footnote:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;[*] Some would consider it insecure: if you don't control the machine, it might steal the password you use - or ALL passwords once Keepass database is unlocked. In my opinion it's secure enough provided that you:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt; 1) trust your friends not to intentionally steal your password,&lt;br /&gt;2) trust your friends to secure their machines.&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt; While condition 1 is generally always met, condition 2 rules out many machines. When I need to work from an untrusted system, I use Keepass on my phone. It's damn inconvenient to type a Keepass password on the phone's keyboard (obviously I've chosen a strong one) and even worse to read on the phone and type on the computer&amp;nbsp; the password from Keepass, considering that most of them look like F25c6D-SGe#r5vK;DVb5, but I do it maybe twice a year.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Possibly related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.androidpolice.com/2011/03/30/tutorial-sync-passwords-across-computers-and-android-with-keepass/"&gt;[Tutorial] Sync Passwords Across Computers And Android With KeePass&lt;/a&gt; (androidpolice.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://maketecheasier.com/import-keepassx-database-to-lastpass/2011/01/02"&gt;How to Import KeePassX Password to LastPass (And Vice-versa)&lt;/a&gt; (maketecheasier.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.makeuseof.com/tag/password-manager-battle-royale-top/"&gt;Password Manager Battle Royale: Who Will End Up On Top?&lt;/a&gt; (makeuseof.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://lifehacker.com/5530702/best-password-manager-keepass"&gt;Best Password Manager: KeePass [Hive Five Followup]&lt;/a&gt; (lifehacker.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=4f9fe801-03fa-4aff-9a73-75b8b1b3e9a5" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7520485295878203686?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7520485295878203686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/password-storage-part-2-my-choice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7520485295878203686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7520485295878203686'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/password-storage-part-2-my-choice.html' title='Password storage, part 2 - my choice'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-IEtuxm5gYqU/TZQ-xCFL4MI/AAAAAAAAAGQ/TSI2VJcnkGg/s72-c/keepass.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1128919793624261512</id><published>2011-03-30T13:25:00.000+02:00</published><updated>2011-03-30T13:25:31.230+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Password storage, part 1 - considerations</title><content type='html'>Typical user needs passwords for dozens if not hundreds of different systems: computers, mail and IM accounts, forums, shops, newsletters etc. It is clearly impossible to remember more than a handful of good passwords, which leaves two choices: &lt;br /&gt;- write down the passwords, or&lt;br /&gt;- use the same &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Password" rel="wikipedia" title="Password"&gt;password&lt;/a&gt; for different systems. &lt;br /&gt;&lt;br /&gt;Both choices can be insecure, but experts agree: &lt;b&gt;reusing password is the worst choice&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some kind of password storage system is then essential. As usual, we have many options, but neither of them really stands out. I'd like my password storage to have the following six characteristics, ordered from the most important:&lt;br /&gt;#1 Security&lt;br /&gt;#2 Reliability&lt;br /&gt;#3 Ease of use&lt;br /&gt;#4 Universal access&lt;br /&gt;#5 Portability&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Security&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Obviously, you don't want anybody to see your passwords. It's easy to say you want maximum security, but this requirement t interferes with all other characteristics.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Reliability&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;In the digital age, if you loose all your passwords, you might as well restart your life. OK, maybe it's not that dramatic, but you'd waste days to regain access to your data and some will be irrepplacably lost. You might even consider reliability more important than security, I won't argue. Questions to ask when assessing the system:&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Is the storage easy to backup?&lt;/strong&gt; &lt;br /&gt;In case of the software, that rules out everything that stores passwords in locations like Windows registry. A hidden file somewhere deep in your home directory is marginally better. A known location is preferred.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Is it likely that the storage can be corrupted? What then - do I loose all information or a part of it?&lt;/strong&gt;&lt;br /&gt;That again rules out registry. Also, be careful with the software that stores all your passwords in one encrypted file. A one byte error can make it inaccessible. On the other hand, one file is trivially easy to backup, so there's no excuse not to have dozens of copies scattered everywhere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Ease of use&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;If the system is too complicated, people won't use it. Simple. But many so-called security professionals get it wrong. You can see it in every other office. If you implement authentication system that requires complicated, often changed passwords and limits access to data, you'll probably find out your users share accounts and post the password on the bulletin board. &lt;br /&gt;&lt;br /&gt;How does it apply to a password storage system? Ideally, it should be completely transparent: you need to login somewhere, magic happens, you're in. Browser password manager get's close to the ideal, especially when not protected with master password. Convenient, insecure, unreliable and limited to one app.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the other end of the spectrum is a password written down on a piece of paper, sealed in an envelope and stored in a safe, protected by walls, locks, alarm systems and armed guards. When you need it, go to the safe, authenticate to the guard, disarm alarm system, use the key and code to open the deposit box, break the seal, take out the paper. Codes to nuclear warheads where stored that way. Guess what? After the cold war had ended, it turned out some of the codes were set to a string of zeros. Lesson learned: even in maximum security environment &lt;b&gt;you can't make your system too hard to use or it WILL be circumvented&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Universal access and portability&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Ideally, it should be equally easy to use your system with every website and every application. Taking your passwords from one computer to another (e.g. on a USB drive or over the network) is very convenient, but might clash with #1. If you use different operating systems, you want your system to work with all of them. Maybe you need a command line and a GUI version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt; What are the choices?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 1) Paper and pen&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Don't laugh, the low-tech solution actually have some strong points. Paper is quite reliable (unless you have a terrible handwriting). It can be backed up with a copy machine. It's portable. It works with every opearing system, website and application. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the other hand, paper storage scores terrible on #1 and #3. It's inconvenient. Typing the password you read from the paper is slow and prone to errors. The stronger the password, the worse it gets. It's also hard to keep the system secure, especially with dozens of passwords: that means either a large sheet of paper or many small cards, both unwieldy and devastating when lost.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, it's easy to relatively securely store a few passwords that way - security guru Bruce Schneier recommends keeping them in the wallet. You might consider some form of simple encryption or obscufation. It won't stop a commited attacker - anything simple enough to do in your head is also too simple to be secure - but might be enough to stop a kid who accidentaly found your password card.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 2) Text file&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Only marginally more advanced then paper and pen, text file with all logins and passwords also has some merits. It's can't break. It's easy to copy. It works with every system with one obvious exception: the password to the computer you use to read the passwords has to be stored elsewhere (in organic memory, maybe). You can use it with Notepad on Windows and vi on Linux, copy-paste or retype passwords to every application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To be secure you should never keep it unencrypted. And you absolutely shouldn't send it unencrypted. This reduces the portability. You can, however, choose an encryption software that doesn't require installation and keep on the USB drive together with your password file. You can find a program compatible with &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" rel="wikipedia" title="Pretty Good Privacy"&gt;OpenPGP&lt;/a&gt; standard, they work on every operating system. However, it reduces ease of use which wasn't particularly great to begin with. Retrieving password requires decrypting, finding an entry, copy-pasting and securely deleting an unencrypted file. Adding new password is even worse: decrypt, enter your login, create a password (either with external tool or just by creating a random string, whatever you do, never reuse an old password), encrypt, securely delete a clear-text copy. Even security-savvy users don't want to bother doing that many times a day. Still, it's a good backup system - write your passwords once, enrypt with a strong password, store it everywhere you can.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;3) Stored in an application&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Mail client, instant messenger, web browser - all can store the passwords for you. It's handy and everyone but the most paranoid use that option to some extent. If you keep some considerations in mind, it's quite secure. Your computer should be protected anyway. If it's not, whichever option you choose, you're not safe: even keeping your passwords on the paper won't protect you from someone recording keys pressed on your keyboard. Never use it as your only password storage. Otherwise, one day you'd want to access your account with another application or from a different machine and you'll find there's no way to recover your password.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4) Password storage software&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Generally, it's a graphical user interface to option number 2. Password store encrypts your secret data, you use a master password to unlock it. It's easier to add new entries, most apps have an integrated password generator. However, they usually work on one operating system only, be it Linux, Windows or MacOS. Some require installation, I recommend against them - choose one that works from the USB drive. Also note where it stores the passwords, so you can backup the file regularly. Passwords stores sometimes integrate with applications that require passwords, others have an auto-type feature, worst case - use clipboard. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's quite clear that password store is the most secure option while being almost as convenient as storing password in the application. Which software I've chosen? Read part 2.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Possibly related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.ghacks.net/2011/03/28/how-to-backup-true-crypt-data-to-be-prepared-for-emergencies/"&gt;How To Backup True Crypt Data To Be Prepared For Emergencies&lt;/a&gt; (ghacks.net)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.makeuseof.com/tag/password-manager-battle-royale-top/"&gt;Password Manager Battle Royale: Who Will End Up On Top?&lt;/a&gt; (makeuseof.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.brighthub.com/mobile/iphone/articles/66880.aspx"&gt;Top Password Managers for iPhone&lt;/a&gt; (brighthub.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://mashable.com/2011/03/25/security-gadgets/"&gt;10 Security Gadgets to Keep Your Stuff Safe on the Go&lt;/a&gt; (mashable.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://beast4romtheeast.wordpress.com/2011/03/24/creating-a-secure-password/"&gt;Creating a secure password&lt;/a&gt; (beast4romtheeast.wordpress.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://lifehacker.com/5715794/how-to-write-down-and-encrypt-your-passwords-with-an-old+school-tabula-recta"&gt;How to Write Down and Encrypt Your Passwords with an Old-School Tabula Recta [How To]&lt;/a&gt; (lifehacker.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=ef701250-9bd1-4e3a-8699-444ea5eea27e" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1128919793624261512?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1128919793624261512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/password-storage-part-1-considerations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1128919793624261512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1128919793624261512'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/password-storage-part-1-considerations.html' title='Password storage, part 1 - considerations'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2395469713774753006</id><published>2011-03-29T11:49:00.000+02:00</published><updated>2011-03-29T11:49:00.804+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen 4.1 released</title><content type='html'>&lt;span class="zemanta-img separator" style="clear: right;"&gt;&lt;a href="http://commons.wikipedia.org/wiki/File:Linux-x86-under-qemu.png" style="clear: right; display: block; float: right; margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="linux kernel booting under qemu (openwrt) + gn..." height="196" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Linux-x86-under-qemu.png/300px-Linux-x86-under-qemu.png" style="border: medium none; font-size: 0.8em;" width="300" /&gt;&lt;/a&gt;&lt;span class="zemanta-img-attribution" style="clear: both; float: right; margin-left: 1em; margin-right: 1em; width: 300px;"&gt;Image via &lt;a href="http://commons.wikipedia.org/wiki/File:Linux-x86-under-qemu.png"&gt;Wikipedia&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;After almost a year, a new major version of Xen hypervisor was released. Xen 4.1 adds several performance enhancements and support for very large systems.&lt;br /&gt;&lt;br /&gt;There's also a new API: Xen 4.1 includes support for old xend/xm tools, but they're deprecated. You should migrate to xl command and libxl toolstack. There are some significant differences, so upgrade path is not easy. A terrible idea in my opinion: Xen was always harder to run then its competitors, adding another obstacle definitely won't help. That is, unless you run a high-level tool, in which case you don't care about the gory details.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now if only I can get my hands on a physical machine to run some tests...&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.zdnet.com/blog/virtualization/xen-41-hypervisor-released/2903"&gt;Xen 4.1 hypervisor released&lt;/a&gt; (zdnet.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://news.slashdot.org/story/11/03/25/206240/Xen-41-Hypervisor-Released"&gt;Xen 4.1 Hypervisor Released&lt;/a&gt; (news.slashdot.org)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=74a3f19f-376f-4fe6-98ec-ca1059446abc" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2395469713774753006?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2395469713774753006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/xen-41-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2395469713774753006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2395469713774753006'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2011/03/xen-41-released.html' title='Xen 4.1 released'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1519893283524316655</id><published>2010-12-17T11:58:00.000+01:00</published><updated>2010-12-17T11:58:39.995+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>EC2 can now import VMware images</title><content type='html'>Amazon recently announced a new feature: importing VMDK images into EC2. Right now the support is limited only &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Windows_Server_2008" rel="wikipedia" title="Windows Server 2008"&gt;Windows Server 2008&lt;/a&gt; SP2 (now that is specific!), support for Linux and other versions of Windows is coming soon.&lt;br /&gt;&lt;br /&gt;There are some other limitations that can make a perfectly good &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/VMDK" rel="wikipedia" title="VMDK"&gt;VMware image&lt;/a&gt; unusable in EC2. Remote access needs to be enabled for obvious reasons. Also anti-virus and intrusion detection software cannot run during conversion process, but you can enable them again later.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://aws.typepad.com/aws/2010/12/amazon-vm-import-bring-your-vmware-images-to-the-cloud.html"&gt;VM Import - Bring Your VMware Images to The Cloud&lt;/a&gt; (aws.typepad.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.readwriteweb.com/cloud/2010/12/vmware-on-amazon-web-services.php"&gt;VMware on Amazon Web Services or How the Cloud Becomes a Data Fabric&lt;/a&gt; (readwriteweb.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.pcworld.com/article/213897/amazon_moves_vmwares_virtual_machines_to_the_cloud.html?tk=rss_news"&gt;Amazon Moves VMware's Virtual Machines to the Cloud&lt;/a&gt; (pcworld.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://rickvanover.wordpress.com/2010/12/15/importing-vmware-vms-to-amazon-ec2/"&gt;Importing VMware VMs to Amazon EC2&lt;/a&gt; (rickvanover.wordpress.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=e0e7dd6a-e769-421c-b969-8e63e51e2e1e" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1519893283524316655?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1519893283524316655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/12/ec2-can-now-import-vmware-images.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1519893283524316655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1519893283524316655'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/12/ec2-can-now-import-vmware-images.html' title='EC2 can now import VMware images'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-642970305010881751</id><published>2010-11-22T15:28:00.000+01:00</published><updated>2010-11-22T15:28:34.318+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Gartner: 6 myths about server virtualization</title><content type='html'>A short but interesting read. ﻿Thomas Bittman, analyst at Gartner, wrote &lt;a href="http://www.cio.co.uk/article/3248789/six-misconceptions-about-server-virtualisation/"&gt;summarized some common misconceptions&lt;/a&gt; about server virtualization:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Server virtualisation is not as hot as it once was&lt;/li&gt;&lt;li&gt;Server virtualisation is mainly for large organisations&lt;/li&gt;&lt;li&gt;Server virtualisation saves money&lt;/li&gt;&lt;li&gt;Server virtualisation is a commodity decision&lt;/li&gt;&lt;li&gt;Virtualisation is an IT thing&lt;/li&gt;&lt;li&gt;VMware Has little competition in the server virtualisation market&lt;/li&gt;&lt;/ol&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.edugeek.net/forums/general-chat/65471-define-virtualisation-layman-terms.html"&gt;Define virtualisation in layman terms&lt;/a&gt; (edugeek.net)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.edugeek.net/forums/hardware/63765-san-virtualisation.html"&gt;SAN and virtualisation&lt;/a&gt; (edugeek.net)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.economist.com/node/17528042?story_id=17528042&amp;amp;fsrc=rss"&gt;Innovation in IT: The liquefaction of hardware&lt;/a&gt; (economist.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.v3.co.uk/v3/news/2270450/gartner-enterprises-set-virtual"&gt;Enterprises warned on the march of virtualisation&lt;/a&gt; (v3.co.uk)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=b4fdb177-5831-41cf-822d-16a6e3648f3e" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-642970305010881751?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/642970305010881751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/gartner-6-myths-about-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/642970305010881751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/642970305010881751'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/gartner-6-myths-about-server.html' title='Gartner: 6 myths about server virtualization'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1358146184760625881</id><published>2010-11-17T13:10:00.000+01:00</published><updated>2010-11-17T13:10:21.947+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><title type='text'>What's new in Fedora?</title><content type='html'>I'm more into Debian-based distros, but a freshly released &lt;a class="zem_slink" href="http://fedoraproject.org/" rel="homepage" title="Fedora"&gt;Fedora&lt;/a&gt; 14 and upcoming Fedora 15 pack some very interesting features. It almost made me switch right away and I might still do that when 15 comes. Keep up a good job, people of Fedora!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;Fedora 14&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Virtualization&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Virtual2Virtual migration scripts helps with transition from Xen to KVM. I don't like it, but I expected it and if I have to do such transition in future, at least I hope it'll be easy. Xen Dom0 support is missing from a stock Fedora kernel.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;SPICE&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;A new rendering protocol for remote desktops, much improved compared to RDP and VNC. An interesting feature is placing the graphic processing either on the client (which reduces network and server load) or on the server (for thin clients with insufficient CPU power). According to Redhat, it's even possible to watch full HD video on remote desktop. You can also use USB devices plugged to a terminal - a feature long available in commercial, Windows-based solutions, but missing in a Linux world. For more:&lt;br /&gt;&lt;a href="http://www.redhat.com/virtualization/rhev/desktop/spice/" title="http://www.redhat.com/virtualization/rhev/desktop/spice/"&gt;http://www.redhat.com/virtualization/rhev/desktop/spice/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Libjpeg-turbo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;It might seem like a small change, but if you tried it and if you work with digital images, you know better. I've used it for a few monhts and it gives a massive speedup for Gimp and other photo-related software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;D compiler&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;In the last few years we've seen a wave of new programming languages. Most of them run on JVM, CLR (.NET) or other such platform. D is one the very few that can be compiled to machine code and yet has all the features that programmers learned to love in new languages. I've never tried D, not being much of a software developer myself, but I like the idea of having a better language for system programming than a 40 year old C. Fedora 13 features a GNU D compiler as a part of a GCC collection, &lt;a class="zem_slink" href="http://www.debian.org/" rel="homepage" title="Debian"&gt;Debian Squeeze&lt;/a&gt; has it too.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Perl 6&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Perl is in transition to a new, greatly redesigned version. Again, I'm not going to use it myself (I used to write my sysadmin scripts in Perl, than moved to Python) but the developers will get a better, cleaner tool which means more great free software for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;Fedora 15&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Libre Office&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;A branch of OpenOffice  that appeared after Oracle's acquisition of Sun. Probably all distro will switch to Libre Office in 2011.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;a class="zem_slink" href="http://www.freedesktop.org/wiki/Software/systemd" rel="homepage" title="systemd"&gt;Systemd&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;An init replacement, alternative to Upstart used in Ubuntu and other distros (including Fedora 14). You can find more information and a comparison of these two systems in this &lt;a href="http://0pointer.de/blog/projects/systemd.html"&gt;insightful, but very long post&lt;/a&gt; by a Systemd developer. I also have some experience with Solaris SMF and I found it superior to Upstart, although confusing and overly complicated (due to XML configuration and reinventing the names for pretty much everything). Systemd started later than any of these and learned on their mistakes, so it'll likely be the Best Init System Ever. Granted, most people don't care much about that, they just want there daemons started. But believe me, it's the big thing if you need to dive into the guts of your system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;No SUID&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;No binaries will be setuid root on Fedora 15. This will make the system more resillient against yet unknown security holes.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://arstechnica.com/open-source/news/2010/11/fedora-14-released-with-new-features-for-developers.ars"&gt;Fedora 14 released with new features for developers&lt;/a&gt; (arstechnica.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://aws.typepad.com/aws/2010/11/fedora-core-14-for-amazon-ec2.html"&gt;Fedora Core 14 AMIs for Amazon EC2&lt;/a&gt; (aws.typepad.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://lifehacker.com/5681095/fedora-14-brings-sped+up-jpeg-handling-better-remoting-to-linux-desktops"&gt;Fedora 14 Brings Sped-Up JPEG Handling, Better Remoting to Linux Desktops [Downloads]&lt;/a&gt; (lifehacker.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=5c778846-3d95-4124-9289-929f3534357b" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1358146184760625881?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1358146184760625881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/whats-new-in-fedora.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1358146184760625881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1358146184760625881'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/whats-new-in-fedora.html' title='What&apos;s new in Fedora?'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2358056476823225143</id><published>2010-11-15T14:23:00.000+01:00</published><updated>2010-11-15T14:23:04.592+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><category scheme='http://www.blogger.com/atom/ns#' term='nvida'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Amazon introduces EC2 GPU instance</title><content type='html'>&lt;span class="zemanta-img separator" style="clear: right;"&gt;&lt;a href="http://www.flickr.com/photos/98305710@N00/3467674841" style="clear: right; display: block; float: right; margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="nVidia_TESLA GPU" height="180" src="http://farm4.static.flickr.com/3642/3467674841_ae579d0ba3_m.jpg" style="border: medium none; font-size: 0.8em;" width="240" /&gt;&lt;/a&gt;&lt;span class="zemanta-img-attribution" style="clear: both; float: right; margin-left: 1em; margin-right: 1em; width: 240px;"&gt;Image by &lt;a href="http://www.flickr.com/photos/98305710@N00/3467674841"&gt;Philippe Lin&lt;/a&gt; via Flickr&lt;/span&gt;&lt;/span&gt;&lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Graphics_processing_unit" rel="wikipedia" title="Graphics processing unit"&gt;GPU&lt;/a&gt; programming is an emerging trend in &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/High-performance_computing" rel="wikipedia" title="High-performance computing"&gt;High-Performance Computing&lt;/a&gt;. We tried it here and while it doesn't work for most types of computations, it's enormously useful for the others. Now you can try working with nVidia Tesla without buying the expensive hardware. A new EC2 instance called Cluster GPU or cg1.4xlarge provides some serious processing power:&lt;br /&gt;- dual Tesla M2050 board (with 448 cores and 3 GB RAM each)&lt;br /&gt;- 2x quad-core Intel X5570&lt;br /&gt;- 22 GB RAM,&lt;br /&gt;- 10 Gbps Ethernet.&lt;br /&gt;&lt;br /&gt;Today there's enough software utilizing the stuff to start working right away: CUDA bindings for C, C++, Python, Java and other languages, OpenCL libraries, GPU-enabled math software. Also Amazon's Elastic MapReduce can utilize both GPU and ordinary Cluster Instances, as well as regular EC2 machines (note to self: we just lived to the day when a virtual machine is regular and a physical machine is a special feature).&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://aws.typepad.com/aws/2010/11/new-ec2-instance-type-the-cluster-gpu-instance.html"&gt;New EC2 Instance Type - The Cluster GPU Instance&lt;/a&gt; (aws.typepad.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://insidehpc.com/2010/11/15/amazon-announces-cluster-gpu-instance-for-cloud-computing/"&gt;Amazon Announces Cluster GPU Instance for Cloud Computing&lt;/a&gt; (insidehpc.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://go.theregister.com/feed/www.theregister.co.uk/2010/11/15/amazon_ec2_gpu_slices/"&gt;Amazon adds GPUs to EC2 HPC clouds&lt;/a&gt; (go.theregister.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=c33ae859-7f90-4dad-922d-574ca557c617" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2358056476823225143?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2358056476823225143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/amazon-introduces-ec2-gpu-instance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2358056476823225143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2358056476823225143'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/11/amazon-introduces-ec2-gpu-instance.html' title='Amazon introduces EC2 GPU instance'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3642/3467674841_ae579d0ba3_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6061792595660510621</id><published>2010-10-22T13:28:00.000+02:00</published><updated>2010-10-22T13:28:30.005+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filesystems'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 10.10 - what's under the hood</title><content type='html'>Most of my machines run a current LTS, previous LTS or have been moved to Debian. But one test server just got upgraded to &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/List_of_Ubuntu_releases" rel="wikipedia" title="List of Ubuntu releases"&gt;Ubuntu 10.10&lt;/a&gt;. There are loads of post about changes in the latest Ubuntu, but they all focus on what's visible. Which is - not much. Let's dig a little bit deeper.&lt;br /&gt;&lt;br /&gt;This time, there are no fundamental changes like a transition to &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Upstart" rel="wikipedia" title="Upstart"&gt;Upstart&lt;/a&gt;. The biggest difference is in the kernel - you get 2.6.35 instead of 2.6.32. If you keep an eye on kernel development (eg. on &lt;a class="zem_slink" href="http://lwn.net/" rel="homepage" title="LWN.net"&gt;Linux Weekly News&lt;/a&gt;), you know there were much code cleanup and new drivers. No major redesign though.&lt;br /&gt;&lt;br /&gt;Ubuntu now supports &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Lustre_%28file_system%29" rel="wikipedia" title="Lustre (file system)"&gt;LUSTRE&lt;/a&gt; - a cluster file system that's used in the places like my datacenter. It promises high performance and reliability. It also usualy fails to deliver them, especially if not configured by experienced admins. I'm not going to run a LUSTRE server in a predictable future, but I might need a client.&lt;br /&gt;&lt;br /&gt;Development tools were also updated. The &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/GNU_Compiler_Collection" rel="wikipedia" title="GNU Compiler Collection"&gt;GCC&lt;/a&gt; suite is now 4.5 - this version contains two major new features:&lt;br /&gt;- Link-time opimization that produces faster binaries,&lt;br /&gt;- A plugin architecture, something that GCC developers avoided for years.&lt;br /&gt;&lt;br /&gt;There are also LLVM 2.7 and 2.8. Both versions were significant steps. LLVM 2.7 is a first edition that can compile itself (a sure sign of compiler's maturity). LLVM 2.8, in addition to other improvements, comes with DragonEgg - a GCC plugins that let's you use GCC front-end with LLVM optimizers and code generators. If you don't know what's all the fuss about LLVM, &lt;a href="http://llvm.org/"&gt;read their website&lt;/a&gt; or at least &lt;a href="http://en.wikipedia.org/wiki/Low_Level_Virtual_Machine"&gt;Wikipedia page&lt;/a&gt;. It's way too complicated and important to summarize. Suffice to say it allowed for real progress in research on compilation techniques, it's integral part of Apple's operating systems and it inspired notable improvements in other compilers.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://arstechnica.com/open-source/reviews/2010/10/ars-reviews-ubuntu-1010-wip.ars"&gt;Feature: Blessed Unity: Ars reviews Ubuntu 10.10&lt;/a&gt; (arstechnica.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://jeffhoogland.blogspot.com/2010/10/howto-easily-install-2635-maverick.html"&gt;HOWTO: Easily Install 2.6.35 (Maverick) Kernel on Ubuntu 10.04&lt;/a&gt; (jeffhoogland.blogspot.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=2dbd957c-b6f2-4316-8089-b69778b3427b" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6061792595660510621?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6061792595660510621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/10/ubuntu-1010-whats-under-hood.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6061792595660510621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6061792595660510621'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/10/ubuntu-1010-whats-under-hood.html' title='Ubuntu 10.10 - what&apos;s under the hood'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1799156551682772056</id><published>2010-10-22T13:23:00.000+02:00</published><updated>2010-10-22T13:23:59.285+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Use Amazon Web Services for free</title><content type='html'>Starting from November 1, Amazon will give some free services for new customers. The offer goes well beyond the usual "try before you buy". For a year, each month you can get:&lt;br /&gt;- 750 hours of &lt;a class="zem_slink" href="http://aws.amazon.com/ec2/" rel="homepage" title="Amazon EC2"&gt;Amazon EC2&lt;/a&gt; Linux Micro Instance usage&lt;br /&gt;- 750 hours of an Elastic Load Balancer&lt;br /&gt;(Mind you, a 31-day month is just 744 hours - you can run one machine continuously for free!)&lt;br /&gt;- 10 GB of &lt;a class="zem_slink" href="http://amazon.com/" rel="homepage" title="Amazon EC2"&gt;EBS&lt;/a&gt; storage and 5 GB S3 storage&lt;br /&gt;- 30 GB of internet transfer (15 in, 15 out)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also all customers, new and existing will get another free usage tier that won't expire in 12 months.&lt;br /&gt;- 25 hours and 1 GB of storage for Amazon &lt;a class="zem_slink" href="http://aws.amazon.com/simpledb" rel="homepage" title="SimpleDB"&gt;SimpleDB&lt;/a&gt;&lt;br /&gt;- 100 thousands requests for Simple Queue Servisc and Simple Notification Service.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://aws.amazon.com/free/"&gt;AWS website&lt;/a&gt; for details. It made me wish I didn't sign up a couple of years ago.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://thenextweb.com/us/2010/10/21/amazon-launching-free-usage-tier-for-aws/"&gt;Amazon Launching 'Free Usage Tier' For AWS [TNW United States]&lt;/a&gt; (thenextweb.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.edugeek.net/forums/general-chat/64557-amazon-announce-free-web-services.html"&gt;Amazon announce free web services&lt;/a&gt; (edugeek.net)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=b7b305ec-c365-415d-be73-764614b8beda" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1799156551682772056?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1799156551682772056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/10/use-amazon-web-services-for-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1799156551682772056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1799156551682772056'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/10/use-amazon-web-services-for-free.html' title='Use Amazon Web Services for free'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7450251322365674636</id><published>2010-09-29T14:55:00.000+02:00</published><updated>2010-09-29T14:55:16.115+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Creator of ZFS leaves Oracle</title><content type='html'>Jeff Bonwick, creator of &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/ZFS" rel="wikipedia" title="ZFS"&gt;ZFS&lt;/a&gt; and head of the ZFS team &lt;a href="http://blogs.sun.com/bonwick/en_US/entry/and_now_page_2"&gt;announced he's leaving Oracle and starting an own business&lt;/a&gt;. He states he enjoyed working for Sun and later for Oracle. Somehow I only believe in the first part. There were more high profile engineers leaving, including Java creator &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/James_Gosling" rel="wikipedia" title="James Gosling"&gt;James Gosling&lt;/a&gt;, as well as several thousands anonymous employees laid off. But this time it's personal. For me, ZFS is the single reason to choose Solaris over other operating systems.&lt;br /&gt;&lt;br /&gt;The future of ZFS is probably safe, it's mature enough, it's open source, thousands of companies want to see it supported. Still, can't say I like this message.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://blogs.sun.com/bonwick/en_US/entry/and_now_page_2"&gt;Creator of ZFS, Jeff Bonwick, leaves Oracle&lt;/a&gt; (blogs.sun.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=9c77ee36-2699-4f90-9292-7db32d573483" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7450251322365674636?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7450251322365674636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/creator-of-zfs-leaves-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7450251322365674636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7450251322365674636'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/creator-of-zfs-leaves-oracle.html' title='Creator of ZFS leaves Oracle'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6284288328787105488</id><published>2010-09-21T10:24:00.000+02:00</published><updated>2010-09-21T10:24:19.758+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>EC2 quick news - September 2010</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Oracle Certifies Enterprise Software on Amazon EC2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Several Oracle products, including the most known database, have been certified to run on EC2. Oracle also prepared VM images. It's not clear yet, but looks like you can use the same image on EC2 and on your Oracle VM Server, but without live migration between the two. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;RSA key import&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Now you can import your own RSA public key instead of having it generated by Amazon. For the truly paranoid or for those that need to use the same key for many applications. A variety of formats is supported, including the OpenSSH format.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Idempotent Instance Creation&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;This strange name refers to a new mode supported by EC2 tools: you can issue the same command many times and it will only run once. Useful if you often experience errors and you're not sure if you should wait a bit longer or try again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Resource tagging and filtering&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;You can now attach up to 10 tags to EC2 instances, AMIs, EBS volumes and snapshots, and Amazon VPC resources such as VPCs, subnets, connections, and gateways. Web front-end and command line tools now support filters with the usual '?' for a single character and '*' for any string. Multiple filters can be combined with AND and OR. Filters work on various fields, such as names, instance types and availibility zones. All of these make your infrastructure easier to manage of you use hundreds or thousands of resources.&lt;br /&gt;&lt;br /&gt;Most new features are described in a new &lt;a href="http://docs.amazonwebservices.com/AWSEC2/latest/DeveloperGuide/"&gt;EC2 Developer Guide&lt;/a&gt;.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://aws.typepad.com/aws/2010/09/run-oracle-applications-on-amazon-ec2.html"&gt;Run Oracle Applications on Amazon EC2&lt;/a&gt; (aws.typepad.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://aws.typepad.com/aws/2010/09/new-amazon-ec2-features-resource-tagging-idempotency-filtering.html"&gt;New Amazon EC2 Features: Resource Tagging, Idempotency, Filtering, Bring Your Own Keys&lt;/a&gt; (aws.typepad.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.nytimes.com/external/idg/2010/09/20/20idg-oracle-will-support-apps-running-on-amazon-ec2-39232.html"&gt;Oracle Will Support Apps Running on Amazon EC2&lt;/a&gt; (nytimes.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=0f0f0c20-826d-469c-a5d0-5668f2e6c7cc" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6284288328787105488?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6284288328787105488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/ec2-quick-news-september-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6284288328787105488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6284288328787105488'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/ec2-quick-news-september-2010.html' title='EC2 quick news - September 2010'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3635183068471872202</id><published>2010-09-16T16:01:00.000+02:00</published><updated>2010-09-16T16:01:03.098+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Official EC2 Linux instances</title><content type='html'>EC2 users can choose from a wide range of predefined Linux virtual machines. Now there's one more, but this time it's official, created by Amazon. Looks like it's based on Fedora. Standard installation is quite minimal, but you can add packages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nice thing for beginners. You don't have to choose from thousands of images,&amp;nbsp; you're sure it's created by professionals who know the insides of EC2 infrastructure. Of course, I'd rather use Debian or Ubuntu...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3635183068471872202?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3635183068471872202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/official-ec2-linux-instances.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3635183068471872202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3635183068471872202'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/official-ec2-linux-instances.html' title='Official EC2 Linux instances'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2690362150930280813</id><published>2010-09-13T14:42:00.000+02:00</published><updated>2010-09-13T14:42:14.956+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>EC2 micro instances</title><content type='html'>Few days ago &lt;a href="http://aws.typepad.com/aws/2010/09/new-amazon-ec2-micro-instances.html"&gt;Amazon announced&lt;/a&gt; a new type of EC2 machine - micro instance. It has 613 MB of RAM, supports 64-bit systems and costs only 2 cents per hour (3 cents for Windows version). It also has less CPU power and I/O capabilities, but it's well suited for many applications that don't require much resources. I can thing of many possible uses: monitoring tools, revision control systems, low-traffic web servers, training, testing. Micro instances come without ephemeral storage. You boot them right from EBS and keep your data there, which is fine unless you create GBs of temporary files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you're not sure if it has enough power, consider two things:&lt;br /&gt;- The sustained CPU power is low, but if you need a short burst, you might get it if the cycles are available. In fact, you can get twice as much as a small instance! No guarantee though, still useful if your app generates variable load.&lt;br /&gt;- As with all EC2 instances, you can convert it to a bigger type.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See also &lt;a href="http://aws.amazon.com/about-aws/whats-new/2010/09/09/announcing-micro-instances-for-amazon-ec2"&gt;this post on running Ubuntu on EC2 micro&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2690362150930280813?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2690362150930280813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/ec2-micro-instances.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2690362150930280813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2690362150930280813'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/ec2-micro-instances.html' title='EC2 micro instances'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3925735037958412805</id><published>2010-09-02T15:19:00.000+02:00</published><updated>2010-09-02T15:19:00.324+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='downgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Live migrating Ubuntu to Debian - howto</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt; 0. Prerequisites&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;You'll need:&lt;br /&gt;- unlocked root acount,&lt;br /&gt;- about 4 GB of disk space,&lt;br /&gt;- pen and paper to take notes about things that failed and need to be repaired later,&lt;br /&gt;- ability to ignore warnings and error messages, some of them pretty serious&lt;br /&gt;- about 6 hours, excluding download time (I have a Debian mirror next room, so dowloads are almost instantenous)&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 1. Logout from your desktop environment&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Switch to console (Alt-Ctrl-F1). Login as root.&lt;br /&gt;The idea is to run as few apps as possible, but don't switch to single user mode - you might need virtual terminals.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 2. Remove some software&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;This kind of migration is tough on your package manager. Some packages are newer in Debian, some are older. Some apps are divided between several packages in a different way. Files belong to another package. There's no way Apt will get everything right. To make its life easier I removed several apps.  The point is to remove only a few apps (you'll have to reinstall them later) with lots of dependencies. &lt;br /&gt;My choice was:&lt;br /&gt;- KDE apps - I use Gnome and only a handful of KDE apps - by removing them I got rid of dozens of KDE libs&lt;br /&gt;- build-essential and dkms - this removed all compilers and development libraries&lt;br /&gt;- texmaker - it removed all the LaTeX stuff that I rarely use anyway&lt;br /&gt;- chromium, firefox, openoffice.org, gimp&lt;br /&gt;- gdm - depends on Ubuntu-specific packages&lt;br /&gt;- Ubuntu-specific software: apport, software-center, indicator, usb-creator-gtk, plymouth, everything with ubuntu in its name.&lt;br /&gt;Note that I couldn't remove all these at one point - some of the apps would remove too much. If that's your case, skip it and try again later.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 3. Remove dependencies&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Get rid of unnecesary libraries with:&lt;br /&gt;&lt;blockquote&gt;apt-get autoremove&lt;br /&gt;orphaner&lt;/blockquote&gt;If the latter gives "command not found", apt-get install deborphan.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4. Change /etc/apt/sources.list&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Add Debian Squeeze repositories (choose a mirror close to you) and whatever you may need, I added unnoficial Multimedia repo:&lt;br /&gt;&lt;blockquote&gt;deb &lt;a href="http://www.debian-multimedia.org/" title="http://www.debian-multimedia.org/"&gt;http://www.debian-multimedia.org/&lt;/a&gt; squeeze main non-free&lt;/blockquote&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 5. Install Debian package signing keys&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Apt will complain about untrusted packages. Start by:&lt;br /&gt;&lt;blockquote&gt;apt-get update&lt;br /&gt;apt-get install debian-archive-keyring debian-multimedia-keyring&lt;/blockquote&gt;For some reasons it wasn't enough on my box, I had to install the key manually:&lt;br /&gt;&lt;blockquote&gt;gpg --recv-keys 9AA38DCD55BE302B --keyserver subkeys.pgp.net&lt;br /&gt;gpg --export 9AA38DCD55BE302B | apt-key add -&lt;/blockquote&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 6. First Big Cycle - upgrade packages that are newer in Debian&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;There's no way you'll get all the packages reinstalled in one try. My way was to reinstall some packages, fix errors,  remove unneeded dependencies, try again. The cycle looks like this:&lt;br /&gt;- &lt;b&gt;[upgrade command]&lt;/b&gt;&lt;br /&gt;- apt-get -f install&lt;br /&gt;- [manual fix]&lt;br /&gt;- apt-get autoremove&lt;br /&gt;- orphaner&lt;br /&gt;&amp;nbsp;What's an &lt;b&gt;upgrade command&lt;/b&gt;? There's a subtle difference in the way apt-get and aptitude resolve dependencies. I did apt-get upgrade first. It only deals with easy cases, so it'll upgrade a few packages in one cycle. When it can't find anything to upgrade, switch to apt-get dist-upgrade. Try it for a few cycles, than do aptitude dist-upgrade.&lt;br /&gt;&amp;nbsp;After installing a few packages, upgrade command will fail. First try automatic repair with apt-get -f install. If it still doesn't work, see what the problem is. Usually a package tries to overwrite a file that's also present in another package. Install it manually, using dpkg and full path to the package file:&lt;br /&gt;&lt;blockquote&gt;dpkg -i --force-all /var/cache/apt/archives/package-name.deb&lt;/blockquote&gt;You can also remove Ubuntu version and install the Debian package next. Again, use dpkg instead of apt-get, --remove packagename will remove the software, but leave the config files intact, --purge will also remove configuration and often works better. See also fixes for specific packages at the end of this howto. Write down any problems, maybe the best way is to remove the package and reinstall later.&lt;br /&gt;If there are no partially installed packages, remove crud with apt and orhpaner and upgrade some more. You might run apt-get clean at the end of the cycle if you're low on disk space.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;7. Prepare for downgrade&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Edit /etc/apt/preferences, create the file if it doesn't exist.&lt;br /&gt;&lt;blockquote&gt;Package: *&lt;br /&gt;Pin: release o=Debian&lt;br /&gt;Pin-Priority: 1001&lt;br /&gt;Package: *&lt;br /&gt;Pin: release o=Ubuntu&lt;br /&gt;Pin-Priority: 600&lt;br /&gt;Package: *&lt;br /&gt;Pin: release o=Unknown&lt;br /&gt;Pin-Priority: 600&lt;/blockquote&gt;Exact numbers don't matter, just keep Debian priority higher than 1000, it means that matching packages will be installed even if it means downgrading. &lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 7. Second Big Cycle - downgrade packages&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;This works the same as the first cycle, only now the upgrade command will do a downgrade. Don't forget apt-get autoremove and orphaner.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 8. Check if all packages have been replaced&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get install apt-show versions&lt;br /&gt;apt-show-versions | grep -v squeeze&lt;/blockquote&gt;This will show all packages that don't come from Debian Squeeze. There might be some claiming to belong to Lenny, that's OK. &lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 9. Make sure your system will boot.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;See if grub and init scripts upgraded correctly. Only then reboot to Debian.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 10. Fix your system.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Check config files, install back packages that you removed. Remember that Firefox was renamed to Iceweasel in Debian.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; Appendix - problems with specific packages&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt; Locales&lt;/b&gt;&lt;br /&gt;Got loads of messages about unsupported locale. Solution:&lt;br /&gt;&lt;blockquote&gt;locale-gen&lt;br /&gt;dpkg-reconfigure locales&lt;/blockquote&gt;&lt;b&gt; mysql-client, sane-utils, python-gnomecanvas, grub-pc&lt;/b&gt;&lt;br /&gt;Remove and install back.&lt;br /&gt;&lt;b&gt;Printing system&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get remove cups ghostscript&lt;br /&gt;dpkg --purge cups-pdf&lt;/blockquote&gt;Install back later.&lt;br /&gt;&lt;b&gt;Unusuable X&lt;/b&gt;&lt;br /&gt;At first X wouldn't start at all, than I got locked keyboard. I purged and installed back many packages before I got it to work. Only some of them were needed, also I attempted to remove some multiple times (won't hurt to remove a package that's not installed), that's the essence I got from my .bash_history:&lt;br /&gt;&lt;blockquote&gt;dpkg --purge --force-all hal dbus udev xserver-xorg&lt;br /&gt;aptitude --purge remove x11-apps x11-session-utils x11-server-utils xauth xbase-clients xinit xorg&lt;br /&gt;dpkg --purge --force-all dbus dbus-x11 hal udev desktop-base hardinfo libx11-data x11-common x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils xfonts-utils xinput xkb&lt;br /&gt;-data xscreensaver-data xserver-common xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-video-all xs&lt;br /&gt;erver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-nv gconf2 gconf2-common libice6 libx11-6 libxklavier16 libxrandr2 libxrender1 libxres1 libxt6 libxv1&lt;br /&gt;aptitude install hal dbus udev xserver-xorg xorg xserver-xorg-video-intel xserver-xorg-input-all&lt;/blockquote&gt;&lt;b&gt; Syslog&lt;/b&gt;&lt;br /&gt;Didn't work.&lt;br /&gt;&lt;blockquote&gt;dpkg --purge rsyslog&lt;br /&gt;aptitude install rsyslog&lt;/blockquote&gt;&lt;b&gt;Init scripts and networking system&lt;/b&gt;&lt;br /&gt;Get rid of upstart first. I had problems with sysv-rc and needed to force reconfiguration. Some init scripts were installed with "dpkg-new" in the name, I had to rename them. As with X, I tried few solutions, this is distilled but stil redundant version:&lt;br /&gt;&lt;blockquote&gt;dpkg-reconfigure sysv-rc&lt;br /&gt;cd /etc/init.d&lt;br /&gt;mv acpid.dpkg-new acpid&lt;br /&gt;mv anacron.dpkg-new anacron&lt;br /&gt;mv atd.dpkg-new atd&lt;br /&gt;mv cron.dpkg-new cron&lt;br /&gt;mv dbus.dpkg-new dbus&lt;br /&gt;mv module-init-tools.dpkg-new module-init-tools&lt;br /&gt;mv procps.dpkg-new procps&lt;br /&gt;mv rsyslog.dpkg-new rsyslog&lt;br /&gt;mv udev-mtab udev&lt;br /&gt;dpkg --purge --force-all base-files ifupdown initscripts netbase sysv-rc sysvinit sysvinit-utils&lt;br /&gt;apt-get --reinstall install base-files ifupdown initscripts netbase sysv-rc sysvinit sysvinit-utils&lt;/blockquote&gt;At one point, dpkg started complaining about missing '/sbin/update-rc.d'. I couldn't install anything until I did:&lt;br /&gt;&lt;blockquote&gt;touch /sbin/update-rc.d&lt;br /&gt;chmod +x /sbin/update-rc.d&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3925735037958412805?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3925735037958412805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/live-migrating-ubuntu-to-debian-howto.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3925735037958412805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3925735037958412805'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/09/live-migrating-ubuntu-to-debian-howto.html' title='Live migrating Ubuntu to Debian - howto'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3178737396377664838</id><published>2010-08-11T11:53:00.001+02:00</published><updated>2010-09-02T15:19:56.530+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Live migrating Ubuntu to Debian - introduction</title><content type='html'>I was a long time &lt;a class="zem_slink" href="http://www.debian.org/" rel="homepage nofollow" title="Debian"&gt;Debian&lt;/a&gt; user before I switched to &lt;a class="zem_slink" href="http://www.ubuntu.com/" rel="homepage nofollow" title="Ubuntu (operating system)"&gt;Ubuntu&lt;/a&gt; in 2005. I always liked Debian for its stability, wide choice of software and superior &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Package_management_system" rel="wikipedia nofollow" title="Package management system"&gt;package management&lt;/a&gt;. However, at this point Debian release cycle, always long and unpredictable, got even longer than usual. A stable or even testing version of Debian meant seriously outdated software, not to mention poor hardware support. With Ubuntu, my laptop finally got a decent power management out of the box. There were other improvements, like &lt;a class="zem_slink" href="http://projects.gnome.org/NetworkManager/" rel="homepage nofollow" title="NetworkManager"&gt;NetworkManager&lt;/a&gt; and a general focus on ease of use. Plus, being a Debian derivative, Ubuntu inherited many good traits of its ancestor. It was a good choice than and for a few following years.&lt;br /&gt;Then something began to break. There were some controversial design choices, but even worse was declining quality. For the last few releases I had to deal with numerous bugs, some serious, most minor but annoying. 9.10 was pretty bad, but a last normal release before LTS is always a playground for new technology. But 10.4 is even worse and it's supposed to be a Long Term Support release! Everyday I install a few updates (yes, I'm happy the bugs are getting fixed, but there shouldn't be that many in the first place) and yet my machine is still unstable. My box would sometimes lock up or get a &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Load_%28computing%29" rel="wikipedia nofollow" title="Load (computing)"&gt;load average&lt;/a&gt; of 15 for no appearent reason.&lt;br /&gt;In the meantime, Debian release cycle got shorter and predictable. Many Ubuntu usability improvements were merged back upstream. Some widely reported features are not useful at all for me: I don't need Ubuntu One, I use unison on my own server; I don't need Software Center cause I prefer Aptitude etc. I decided it's time to move back. Clean install would be an obvious choice, but I decided to migrate a live system instead. There were some issues, but it worked. Did I mention that Debian has a great package manager?&lt;br /&gt;If you want to know how to migrate from Ubuntu do Debian, stay tuned for the next part (update: &lt;a href="http://virtually-a-machine.blogspot.com/2010/09/live-migrating-ubuntu-to-debian-howto.html"&gt;it's here&lt;/a&gt;). In the meantime, you can read my post on &lt;a href="http://virtually-a-machine.blogspot.com/2009/09/howto-downgrade-ubuntu-karmic-to-jaunty.html"&gt;downgrading Ubuntu&lt;/a&gt;. If it seems complicated or dangerous, be warned that migration to Debian is quite harder.&lt;br /&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img alt="Enhanced by Zemanta" class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=10ed518d-3c6f-496f-8ca8-da4a5529ee00" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3178737396377664838?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3178737396377664838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/08/live-migrating-ubuntu-to-debian.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3178737396377664838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3178737396377664838'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/08/live-migrating-ubuntu-to-debian.html' title='Live migrating Ubuntu to Debian - introduction'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1490618343207509033</id><published>2010-08-11T11:49:00.002+02:00</published><updated>2011-03-30T13:06:13.897+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Howto: disable eCryptFS</title><content type='html'>Encrypting your disk is usually a good idea and eCryptFS (aka Ubuntu Encrypted Home) clearly has some advantages over the competitors. It's also easy to implement on an existing system. But, if for some reason you want to decrypt your home directory, you won't get a one-click solution. The process is quite simple if you feel comfortable working with command line. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'll use /home/igor as an example, replace it with your home directory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. Prepare another user account.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Either unlock your root account (sudo passwd root) or create another user account and let it use sudo. I've chosen the first option because a root account is useful for recovery if anything goes wrong.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2. Logout from your desktop environment, switch to console (Alt-Ctrl-F1)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;3. Login as root or as another user.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is critical - you can't be logged in on your regular account. Type 'mount' and see if it shows a line similar to this one:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;/home/igor/.Private on /home/igor type ecryptfs (ecryptfs_sig=...)&lt;/blockquote&gt;&lt;br /&gt;It shouldn't be present. If it is, try 'umount /home/igor'. If it fails, you probably have a session still loged on or one of your applications is still running. If you can't find it, try rebooting and switching to console without ever logging in.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 4. Edit file /home/.ecryptfs/igor/.ecryptfs/Private.mnt&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change the line /home/igor to /home/igor/Private&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;5. Create Private directory and make it belong to your regular account&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;mkdir /home/igor/Private&lt;br /&gt;chown igor.igor /home/igor/Private&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 6. Reboot the computer&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After the reboot, everything that was in /igor/home directory, is now in /igor/home/Private. There's only one step left.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;7. Move the files&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Switch to console, login with your regular account. Move the files:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;shopt -s dotglob&lt;br /&gt;mv Private/* .&lt;/blockquote&gt;&lt;br /&gt;First command is very important - it'll make sure that files beginning with dot will also be moved. Second one ends with dot - don't miss it!&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt; 8. Uninstall eCryptFS or leave it as it is&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At this point, eCryptFS encrypts your ~/Private directory instead of your home. You can leave it for confidential files, or if you want to get rid of eCryptFS, do:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sudo apt-get remove ecryptfs-utils&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1490618343207509033?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1490618343207509033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/08/howto-disable-ecryptfs.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1490618343207509033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1490618343207509033'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/08/howto-disable-ecryptfs.html' title='Howto: disable eCryptFS'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1921449800925583608</id><published>2010-05-26T09:07:00.002+02:00</published><updated>2010-05-26T09:08:58.706+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>Virtualization news - May 2010</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Open vSwitch 1.0 released&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've already &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/virtual-switches.html"&gt;written about virtual switches&lt;/a&gt;. See my old post if you don't know why they're so damn useful. Core functionality is already there:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;VLANs&lt;/li&gt;&lt;li&gt;Monitoring of inter-VM communication via &lt;/li&gt;&lt;li&gt;Per VM policing&lt;/li&gt;&lt;li&gt;&lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Link_aggregation" rel="wikipedia nofollow" title="Link aggregation"&gt;NIC bonding&lt;/a&gt; with source-MAC &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Load_balancing_%28computing%29" rel="wikipedia nofollow" title="Load balancing (computing)"&gt;load balancing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support for OpenFlow&lt;/li&gt;&lt;li&gt;Ethernet over GRE&lt;/li&gt;&lt;li&gt;Compatibility layer for the Linux bridging code&lt;/li&gt;&lt;li&gt;Kernel and user-space forwarding engine options&lt;/li&gt;&lt;li&gt;Support for Xen, &lt;a class="zem_slink" href="http://www.xen.org/" rel="homepage nofollow" title="Xen"&gt;XenServer&lt;/a&gt;, KVM and &lt;a class="zem_slink" href="http://www.virtualbox.org/" rel="homepage nofollow" title="VirtualBox"&gt;VirtualBox&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;XenServer 5.6 annouced &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm4.static.flickr.com/3298/3508402575_706d2210e2_m.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="XenServer" border="0" src="http://farm4.static.flickr.com/3298/3508402575_706d2210e2_m.jpg" style="border: medium none; display: block;" /&gt;&lt;/a&gt;In a couple of days, Citrix will release new version of XenServer. It will be available in four versions: Free, Advanced, Enterprise and Platinum. Essentials for XenServer will not be continued, instead its functionality is integrated into paid versions of XenServer.&lt;br /&gt;&lt;br /&gt;Most notable new feature is Dynamic Memory - ability to automatically adjust RAM provided for the VMs within specified minimal and maximal value.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;VirtualBox 3.2.0 released &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New version of VirtualBox - and the first one with Oracle branding - brings some interesting features:&lt;br /&gt;&lt;ul&gt;&lt;a href="http://commons.wikipedia.org/wiki/File:VirtualBox2.png" rel="nofollow" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img alt="VirtualBox: Sun Microsystems, Inc., innotek Gm..." height="225" src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/VirtualBox2.png/300px-VirtualBox2.png" style="border: medium none; display: block;" width="300" /&gt;&lt;/a&gt;&lt;li&gt;hardware support: fully utilizes hardware virtualization support on newest Intel CPUs, multi-monitor setup (physical screen can be mapped to a specific VM)&lt;/li&gt;&lt;li&gt;redesigned I/O and networking stack, promising increased performance&lt;/li&gt;&lt;li&gt;Remote Video Acceleration&lt;/li&gt;&lt;li&gt;hot-plugging virtual CPUs&lt;/li&gt;&lt;li&gt;deleting and merging snapshots while VM is running&lt;/li&gt;&lt;/ul&gt;Plus other enhancements. As usual, there's a free version for personal use.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://go.theregister.com/feed/www.theregister.co.uk/2010/05/19/oracle_virtualbox_3_2/" rel="nofollow"&gt;Oracle punts first VirtualBox x64 hypervisor&lt;/a&gt; (go.theregister.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://eon.businesswire.com/news/eon/20100511006368/en" rel="nofollow"&gt;Citrix Synergy: DataCore Virtualization Software Takes Citrix Projects to the 3rd Dimension; Going Beyond Servers and Desktops to Virtualize Storage&lt;/a&gt; (eon.businesswire.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://r.zemanta.com/?u=http%3A//www.infoworld.com/d/virtualization/citrix-fires-desktop-virtualization-455%3Fsource%3Drss_infoworld_news&amp;amp;a=17933103&amp;amp;rid=11350bc9-f898-411e-bbd3-4bbca50cc378&amp;amp;e=37cb247be4a2f114d085e767f5311b51" rel="nofollow"&gt;Citrix fires up desktop virtualization&lt;/a&gt; (infoworld.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://eon.businesswire.com/news/eon/20100513006034/en" rel="nofollow"&gt;Citrix Unveils Next XenServer Release as New Reports Show Rapid Server Virtualization Market Share Growth&lt;/a&gt; (eon.businesswire.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/11350bc9-f898-411e-bbd3-4bbca50cc378/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=11350bc9-f898-411e-bbd3-4bbca50cc378" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1921449800925583608?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1921449800925583608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/05/virtualization-news-may-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1921449800925583608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1921449800925583608'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/05/virtualization-news-may-2010.html' title='Virtualization news - May 2010'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3298/3508402575_706d2210e2_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3264036167176238616</id><published>2010-05-06T12:29:00.001+02:00</published><updated>2010-05-06T12:30:21.224+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>New Apache projects, Xen news and my learning project</title><content type='html'>&lt;a href="http://blogs.apache.org/foundation/date/20100504"&gt;Six Apache projects&lt;/a&gt; have gained a top level status. In my opinion, a status of Apache project and especially a top-level one is a sure indicator of high quality and innovative software. The projects are: Apache Traffic Server (web proxy), Mahout (&lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Machine_learning" rel="wikipedia nofollow" title="Machine learning"&gt;machine learning&lt;/a&gt; library), Tika (content analysis toolkit), Nutch (web searching engine), Avro (data serialization system) and HBase (a NoSQL database).&lt;br /&gt;&lt;br /&gt;Which reminds me of my &lt;a href="http://virtually-a-machine.blogspot.com/2010/03/software-to-learn.html"&gt;to-learn list&lt;/a&gt;. I started with Skipfish. It quickly discovered one potential XSS flaw in the software I checked. But I was dissapointed with the number of false positives and repeated messages. Still, it was much better than other tools of the same kind I had tried before. &lt;br /&gt;&lt;br /&gt;&lt;a class="zem_slink" href="http://www.nginx.org/" rel="homepage nofollow" title="Nginx"&gt;Nginx&lt;/a&gt; came next, but I only had time for a very simple test with one box and httperf . Short answer: if you're searching for a fast server for static content, search no more. Nginx without any tweaking is about 6 times faster than fine-tuned Apache 2 with prefork model. Threaded Apache 2 came closer, but still it took 30% longer to complete the test. Impressive. And that's without any caching and load balancing, where Nginx really excells.&lt;br /&gt;&lt;br /&gt;In other news, &lt;a href="http://blog.xen.org/index.php/2010/05/05/google-summer-of-code-participants-announced/"&gt;3 Xen projects&lt;/a&gt; have been accepted to &lt;a class="zem_slink" href="http://code.google.com/soc/" rel="homepage nofollow" title="Google Summer of Code"&gt;Google Summer of Code&lt;/a&gt;: migration from memory ballooning to memory hotplug, new features for XCP web interface and XCP integration with DRBD. The last one sounds interesting.&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://profarius.com/content/nginx-vs-apache" rel="nofollow"&gt;Michael Lustfield: Nginx vs. Apache&lt;/a&gt; (profarius.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://dccrowley.posterous.com/its-lean-its-russian-and-its-mean-nginx-serve" rel="nofollow"&gt;It's lean, it's russian and it's mean - Nginx serves 7% of the worlds websites!&lt;/a&gt; (dccrowley.posterous.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://ostatic.com/blog/six-apache-projects-graduate-to-top-level-status" rel="nofollow"&gt;Six Apache Projects Graduate to Top-Level Status&lt;/a&gt; (ostatic.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/7b315df8-d933-49d9-ae29-b465143e62dd/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=7b315df8-d933-49d9-ae29-b465143e62dd" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3264036167176238616?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3264036167176238616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/05/new-apache-projects-xen-news-and-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3264036167176238616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3264036167176238616'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/05/new-apache-projects-xen-news-and-my.html' title='New Apache projects, Xen news and my learning project'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5868812178629248668</id><published>2010-04-30T12:39:00.000+02:00</published><updated>2010-04-30T12:39:59.462+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='downgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>I'm not upgrading to Ubuntu Lucid</title><content type='html'>At least not yet. I'll probably do it in two or three weeks. Why?&lt;br /&gt;&lt;br /&gt;Because official release date doesn't magically make the distro stable. It does, however, make thousands of people install it and report bugs. I've been using Lucid beta for weeks and I've seen a few bugs. Granted, not as much as with Karmic. LTS releases take their packages from Debian Testing instead of &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/Debian" rel="wikipedia nofollow" title="Debian"&gt;Debian Unstable&lt;/a&gt;, which greatly improves quality. Still, I don't think Lucid is ready for production use.&lt;br /&gt;&lt;br /&gt;Now, don't get me wrong, I'm all for installing early version to report bugs and help improve the software. I do a lot of work in a Lucid VM. I've reported some bugs on Lucid and commented on the others. But my main machine needs to be stable and I'm not going to take a risk. Not after going through the &lt;a href="http://virtually-a-machine.blogspot.com/2009/09/howto-downgrade-ubuntu-karmic-to-jaunty.html"&gt;painful process of downgrading&lt;/a&gt; a few months ago.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://go.theregister.com/feed/www.theregister.co.uk/2010/04/26/unbuntu/" rel="nofollow"&gt;Lucid Lynx fights 'major' X-Server memory leak&lt;/a&gt; (go.theregister.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/a967ecf3-2c00-4bd9-ad70-1d9f98890c5f/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=a967ecf3-2c00-4bd9-ad70-1d9f98890c5f" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5868812178629248668?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5868812178629248668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/im-not-upgrading-to-ubuntu-lucid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5868812178629248668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5868812178629248668'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/im-not-upgrading-to-ubuntu-lucid.html' title='I&apos;m not upgrading to Ubuntu Lucid'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7988388868625045490</id><published>2010-04-14T11:18:00.000+02:00</published><updated>2010-04-14T11:18:44.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='filesystems'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen 4 released</title><content type='html'>Version 4 of opensource &lt;a class="zem_slink" href="http://www.xen.org/" rel="homepage nofollow" title="Xen"&gt;Xen&lt;/a&gt; hypervisor has been available for a few days now. This release brings up some interesting features:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New kernel for dom0&lt;/b&gt; - instead of ancient 2.6.18, we get a new subsystem built on PVOps interface of new Linux kernels. Currently 2.6.31.13 is supported, but porting it to a new version is now trivial compared to the old approach. Finally Xen gets a decent support for new&amp;nbsp; hardware and running a modern distribution in dom0 is way easier.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Blktap2 - new disk I/O system&lt;/b&gt;. This almost deserves a separate post. Virtual block devices (hard disks) can be backed by files, partitions, LVM volumes or even network devices. &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/VHD_%28file_format%29" rel="wikipedia nofollow" title="VHD (file format)"&gt;VHD&lt;/a&gt;, the native format of Microsoft virtualization systems and a de-facto industry standard (VirtualBox and VMware can read it too) is now supported. Advanced disk formats such as copy-on-write (run multiple VMs from the same image initially and only copy the blocks that changed), sparse images, on-the-fly encryption and compression are easier and faster then before. Disk images can be accessed from outside the VM. But the real killer feature is live snapshot.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Copy-on-write RAM&lt;/b&gt;. VMs can now share memory. The scalability is also improved: by default Xen supports 1 TB RAM and 128 CPUs, limits can be increased.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Improved PCI passthrough&lt;/b&gt; - PV guests still use old mechanism by default cause it doesn't require hardware support. If your CPU and chipset combination support IOMMU, you have to enable the new way manually, see http://wiki.xensource.com/xenwiki/XenPCIpassthrough&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Many other improvements.&lt;/b&gt; Updated Pygrub, certified PV drivers for Windows guests, disk resize without reboot, libxl - new userspace Xen management API, improved networking, physical CPU and RAM hotplug, support for Smart NICs with multi-queue and SR-IOV (one physical Ethernet card appearing as multiple PCI devices)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-related"&gt;&lt;h6 class="zemanta-related-title" style="font-size: 1em; margin: 1em 0pt 0pt;"&gt;Related articles by Zemanta&lt;/h6&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://go.theregister.com/feed/www.theregister.co.uk/2010/04/13/xen_4_0_hypervisor/" rel="nofollow"&gt;Xen 4.0 adds Remus fault tolerance&lt;/a&gt; (go.theregister.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://eon.businesswire.com/news/eon/20100413005731/en" rel="nofollow"&gt;Xen.org Brings New Level of Performance to the Enterprise and Cloud with Xen 4.0 Hypervisor&lt;/a&gt; (eon.businesswire.com)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/dedf00a1-24ef-4026-9ada-cec5f6ebe1de/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=dedf00a1-24ef-4026-9ada-cec5f6ebe1de" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7988388868625045490?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7988388868625045490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/xen-4-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7988388868625045490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7988388868625045490'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/xen-4-released.html' title='Xen 4 released'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7007672851745916008</id><published>2010-04-08T15:47:00.000+02:00</published><updated>2010-04-08T15:47:35.335+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Qubes: secure Xen-based desktop OS</title><content type='html'>Security researcher Joanna Rutkowska of &lt;a href="http://www.blogger.com/%20http://en.wikipedia.org/wiki/Blue_Pill_%28malware%29"&gt;Blue Pill&lt;/a&gt; fame is back with a new project. &lt;a href="http://qubes-os.org/"&gt;Qubes OS&lt;/a&gt; is a system that proposes an interesting approach to security:&lt;br /&gt;- Applications HAVE and WILL HAVE security flaws.&lt;br /&gt;- The holes eventually WILL be exploited.&lt;br /&gt;- The best we can do is isolate, so an intruder won't get access to all the data.&lt;br /&gt;&lt;br /&gt;This is already done in the server world. Nobody runs an all-purpose server if one can avoid it, dividing between multiple machines (physical or virtual) makes life easier. It doesn't work that well on the desktop.&lt;br /&gt;&lt;br /&gt;Let's say you use Firefox for your casual browsing. Even if you are cautious and use a non-Windows OS, you can't completely rule out a possibility to get it infected with malware. Then you use the same browser for online shopping or banking. Next day you notice your money was transfered to a Nigerian bank. How about using another browser for banking? Better, but not 100% proof. Another process can still read or alter other app's data. OK than, another browser from a different user account? Much better, now you're safe... unless an intruder already got a root access. &lt;br /&gt;&lt;br /&gt;VMs add another layer of security at the same time adding complexity. I admit I considered using this approach on my personal machine. To have my data and important apps on one VM, use another for potentialy dangerous activities (that includes web browsing, email and pretty much anything that has to do with network or removable media) and another for high-security stuff. But it'd be too much hassle. Say I found a PDF document I'd like to keep. I'm supposed to open it on a "dangerous" VM, see if it's OK (how can I be sure anyway?), then move it to a "work" VM. How long before I do something in a wrong VM, either by mistake or out of laziness? And how long it'd take me to setup such system anyway?&lt;br /&gt;&lt;br /&gt;Here's how Qube OS does it (or aims to do - it's an early development release and some of the features are only planned). Lightweight Xen-based VMs are spawned transparently. They all run an X server but without any desktop environment. Only one privileged VM runs a desktop environment. All VMs share the same screen, start menu, system tray etc. With one click, you start a Firefox in a "work", "banking" or "personal" VM, their windows are distinguished by a coloured border. Networking stack runs in another, unprivileged VM. Yet another one, not connected to a network, is a secure storage. You can copy/paste text and copy files between VMs, but it requires confirmation and can only be initiated from a priviliged VM. The VMs share system files, so you upgrade all of them at once.&lt;br /&gt;&lt;br /&gt;That takes away about 90% of the hassle. The remaining 10% is still too much for the average user. But if your security requirements are higher than average, Qube OS is worth a look. A modern CPU with VT-d and IOMMU is required to use all features and you'll need plenty of RAM.&lt;br /&gt;&lt;br /&gt;If you think it's too complicated and decide to stay with one machine for everything, just use a separate browser for banking. Please.&lt;br /&gt;&lt;br /&gt;See also: &lt;a href="http://www.virtualization.info/2010/04/bluepill-researcher-is-back-with-xen.html"&gt;article on virtualization.info&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7007672851745916008?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7007672851745916008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/qubes-secure-xen-based-desktop-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7007672851745916008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7007672851745916008'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/qubes-secure-xen-based-desktop-os.html' title='Qubes: secure Xen-based desktop OS'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6519842858995766594</id><published>2010-04-08T10:31:00.000+02:00</published><updated>2010-04-08T10:31:28.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu Lucid window controls</title><content type='html'>I've been playing around with Ubuntu 10.04 Lucid Lynx inside a VM for a few weeks. Like many people I was annoyed with the decision to move window controls. Fortunately, it's easy to move them back where they belong. Fire up a terminal and paste the following lines:&lt;br /&gt;&lt;blockquote&gt;gconftool-2 --set /apps/metacity/general/button_layout \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --type string "menu:minimize,maximize,close"&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6519842858995766594?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6519842858995766594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/ubuntu-lucid-window-controls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6519842858995766594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6519842858995766594'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/04/ubuntu-lucid-window-controls.html' title='Ubuntu Lucid window controls'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2129331398936806263</id><published>2010-03-29T15:27:00.001+02:00</published><updated>2010-08-12T20:11:32.271+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Xen 4 on Ubuntu Lucid</title><content type='html'>Excellent post on Xen Blog -&amp;nbsp; &lt;a href="http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/"&gt;Steps to try Xen 4.0.0 Release Candidate 8 on Ubuntu Lucid 10.04 64 Bits&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Be careful, that means running experimental software on top of other experimental software. Ubuntu Beta can be quite unstable even a few days before release, &lt;a href="http://virtually-a-machine.blogspot.com/2009/09/howto-downgrade-ubuntu-karmic-to-jaunty.html"&gt;as I found out in the past&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2129331398936806263?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2129331398936806263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/xen-4-on-ubuntu-lucid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2129331398936806263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2129331398936806263'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/xen-4-on-ubuntu-lucid.html' title='Xen 4 on Ubuntu Lucid'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3036022816411789250</id><published>2010-03-23T17:02:00.001+01:00</published><updated>2010-03-23T17:45:13.813+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Software to learn</title><content type='html'>Here's software that I'm going to try in a near future.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Distributed processing&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt; &lt;br /&gt;Hadoop is a distributed computing environment, best known for its implementation of MapReduce. I've already played around with Hadoop. It's easy to start, cause you begin with MapReduce only, no need to run all the modules on the fist day. But now it's time to learn some more.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cwiki.apache.org/MAHOUT/"&gt;Mahout&lt;/a&gt;&lt;br /&gt;Apache Mahout is a suite of machine learning libraries. It works on top of Hadoop, which means it should be easily scalable to thousands of machines. Machine learning is not my cup of tea, but I'm going to have a quick look.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://couchdb.apache.org/"&gt;CouchDB&lt;/a&gt;&lt;br /&gt;You can't work in IT and not hear about NoSQL movement. I've never used a non-relational DB in my projects before, time to change it. CouchDB goes first, since it's widely deployed in both small-scale (Ubuntu's DesktopCouch) and large-scale projects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Web&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/skipfish/%20"&gt;Skipfish&lt;/a&gt;&lt;br /&gt;A fully automated, active web application security reconnaissance tool. Not much to learn really, I'm just run it against my servers right now and I'll see the results in a few hours.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nginx.org/"&gt;nginx&lt;/a&gt;&lt;br /&gt;An extremely high performance HTTP server supporting static files, caching and proxy, even dynamic content with FastCGI. It's often orders of magnitude faster then Apache.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.memcached.org/"&gt;Memcached&lt;/a&gt; &lt;br /&gt;Memcached stores object in memory. Technically, it's a database, but the name suggests the most common use: to cache objects (eg. database queries) in web application. &lt;a href="http://en.wikipedia.org/wiki/Memcache"&gt;See wikipedia article&lt;/a&gt; for good introduction. Another way to drastically increase performance of a web app. I've used memcached with MediaWiki (where it's just a matter of a few lines in a config file), but never used it for my project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You probably noticed that half of these are &lt;a href="http://apache.org/"&gt;Apache projects&lt;/a&gt;. I didn't intentionally select them that way, but now I'm going to have a closer look at other Apache software - besides those listed and those I already know. It's no coincidence that one organization supports innovative distributed programming frameworks, the most successful web server, widely used J2EE app server, popular version control tool and build automation system, Java libraries and a load of other software. Apache Foundation clearly have both high standards and a knack for choosing the right projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3036022816411789250?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3036022816411789250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/software-to-learn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3036022816411789250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3036022816411789250'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/software-to-learn.html' title='Software to learn'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3761660216326170745</id><published>2010-03-17T15:25:00.000+01:00</published><updated>2010-03-17T15:25:06.933+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>IE 9 will use GPU to render pages</title><content type='html'>News about the IE9 platform preview are everywhere today. One important information is at the bottom of &lt;a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx"&gt;Microsoft's announcement&lt;/a&gt;. IE 9 will render pages using GPU if the right device is available. It's a great idea (in a wrong browser) - video card is extremaly underutilized during web browsing. I hope other browsers will catch up soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3761660216326170745?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3761660216326170745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/ie-9-will-use-gpu-to-render-pages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3761660216326170745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3761660216326170745'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/ie-9-will-use-gpu-to-render-pages.html' title='IE 9 will use GPU to render pages'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6469794771338789276</id><published>2010-03-17T15:24:00.000+01:00</published><updated>2010-03-17T15:24:18.097+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Eucalyptus howto</title><content type='html'>Canonical, Eucalyptus and Intel prepared a &lt;a href="http://software.intel.com/en-us/articles/intel-cloud-builder-best-practices/"&gt;whitepaper on cloud design and deployment&lt;/a&gt;. It's clearly the best howto on Eucalyptus I've ever seen. And I admit it even though &lt;a href="http://virtually-a-machine.blogspot.com/search/label/eucalyptus"&gt;I've written one too&lt;/a&gt; (and I'll use this opportunity to link to it). Their whitepaper is much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6469794771338789276?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6469794771338789276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/eucalyptus-howto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6469794771338789276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6469794771338789276'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/eucalyptus-howto.html' title='Eucalyptus howto'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7870425786241545035</id><published>2010-03-16T10:26:00.000+01:00</published><updated>2010-03-16T10:26:50.660+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Nexenta: Power of Solaris with usability of Linux? Not yet</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_I5KwSSiP_FY/S59NgJ9AThI/AAAAAAAAAFg/Hh2UCnRtpNc/s1600-h/nexenta5.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="151" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/S59NgJ9AThI/AAAAAAAAAFg/Hh2UCnRtpNc/s200/nexenta5.png" width="200" /&gt;&lt;/a&gt;Being a newbie Solaris user, I discovered what seasoned admins know: this system has its strengths, but daily administration tasks are a pain in the ass. Really neat and modern solutions like SMF coexist with software that looks like it comes straight from 1970s. Simple process of software patch could take hours. &lt;br /&gt;&lt;br /&gt;Then I discovered &lt;a class="zem_slink" href="http://www.nexenta.org/" rel="homepage nofollow" title="Nexenta OS"&gt;Nexenta&lt;/a&gt;. It's the OS distribution that combines &lt;a class="zem_slink" href="http://www.opensolaris.com/" rel="homepage nofollow" title="OpenSolaris"&gt;OpenSolaris&lt;/a&gt; kernel and some system software with userspace from Debian and Ubuntu - including APT! Just imagine - a system with &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/ZFS" rel="wikipedia nofollow" title="ZFS"&gt;ZFS&lt;/a&gt;, SMF, zones and at the same time - proper package manager, sane directory tree and thousands of apps. I downloaded Nexenta 3.0 Beta and installed it into a VM right away. &lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_I5KwSSiP_FY/S59NqIs4n8I/AAAAAAAAAFo/SFDT-pYofo8/s1600-h/nexenta1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/S59NqIs4n8I/AAAAAAAAAFo/SFDT-pYofo8/s320/nexenta1.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;First impression was positive. The installation was simple, after booting I got a bash shell instead of lousy sh. But it didn't take me a minute to run into a first bug. I tried using aptitude to see available packages and immediately discovered it doesn't react to keystrokes (appareantly, it's a long known bug). Say goodbye to my dream of proper package manager. Some other text-mode software had issues with keyboard and fonts as well. Now, after a few days of testing (read: playing around), I think this system is promising, but it requires a lot of work before it's usable. Just installing the packages you can see that some of them were taken from Linux without much modification - their pre/post install scripts try to mess with Linux-specific files in /proc or modify Upstart settings. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/S59OiXJI-_I/AAAAAAAAAFw/b-waBOZ14hA/s1600-h/nexenta3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/S59OiXJI-_I/AAAAAAAAAFw/b-waBOZ14hA/s320/nexenta3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I can't recommend Nexenta to neither server nor desktop. I doubt it'll ever be able to become an alternative to Solaris with the small number of developers the project has. I hope it'll serve as a testbed for ideas to be implemented in (Open)Solaris and in a few years we'll see more convergence between Linux and Solaris.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/c655f998-a081-4954-8521-950e094fd78b/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=c655f998-a081-4954-8521-950e094fd78b" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7870425786241545035?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7870425786241545035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/nexenta-power-of-solaris-with-usability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7870425786241545035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7870425786241545035'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/nexenta-power-of-solaris-with-usability.html' title='Nexenta: Power of Solaris with usability of Linux? Not yet'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_I5KwSSiP_FY/S59NgJ9AThI/AAAAAAAAAFg/Hh2UCnRtpNc/s72-c/nexenta5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5358516374469928902</id><published>2010-03-03T14:11:00.002+01:00</published><updated>2010-03-03T14:11:46.475+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>Introduction to desktop virtualization</title><content type='html'>I'm getting familiar with Xendestop - I've attended a workshop recently and read a bit. Desktop virtualization is less popular then server virtualization, but it's slowly getting more attention in large corporations, government organizations, universities etc. - everywhere you have dozens or hundreds of desktops sharing the same configuration.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Desktop virtualization comes in many forms. You can use thin client or PC as an endpoint. Usually in addition to&amp;nbsp; standard protocols like RDP or VNC, they use a proprietary one with more features - for example, handling remote hardware (thin clients these days come with soundcards, cameras, DVD drives, USB ports), better network utilization. On a PC client, you can use a specialized software or a browser-based client - useful for one-time access from a remote machine. Some PC clients can also work offline&lt;br /&gt;&lt;br /&gt;On the server end, you can run multiple desktop OSes on one server. This form, called VDI, is the most popular for obvious reasons - lower costs, better hardware utilization, less power, cooling and rack space. Another solution is to use one physical machine per client. It's useful when you need a specialized hardware on the client but still want to benefit from other advantages of desktop virtualization. You can also virtualize a single app - it'll run in it's own isolated environment, but from a user's perspective it'll look like it's running on his or her system. Xendesktop can combine all three forms.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Decoupling software and data from hardware is one advantage. If your terminal fails, replace it and continue working. Log on with your credentials to any box in the company and you get your own desktop.&lt;br /&gt;&lt;br /&gt;But the real benefit is centralized administration. All desktops using the same operating system can be run from the single image. Ever had to install patch on 10 machines? How about 1000 and a full operating system upgrade? Plus, you don't have to experiment on a live system - prepare a new image, test it and then change the users' configuration: at the next login, they'll get a new system. Users can't do any damage to their OS, the machine image is read-only and user data is isolated from it. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why not?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are downsides, too. You need a reliable, redundant hardware and skilled operators, otherwise a single failure will make your whole IT infrastructure unusuable. The system is best suited for office employees. IT engineers will want to meddle with their setup, run different OSes, use strange hardware. People who work with graphics-intensive apps, eg. for video editing, would notice a degraded performance. Current systems handle low-quality video (eg. flash animations) quite well, but full resolution movies or games would quickly bring your network to its knees (actually, the system that can't run games and movies can be considered superior in a workplace).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5358516374469928902?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5358516374469928902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/introduction-to-desktop-virtualization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5358516374469928902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5358516374469928902'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/introduction-to-desktop-virtualization.html' title='Introduction to desktop virtualization'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8364390208333094903</id><published>2010-03-02T15:02:00.001+01:00</published><updated>2010-03-03T08:21:33.784+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Parallel processing in shell scripts</title><content type='html'>&lt;b&gt;&lt;span style="font-size: large;"&gt;Shell scripts on multiple CPU cores&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Most of the computing tasks at home are interactive, but there are some common batch jobs like file compression, audio/video encoding, graphic manipulation. Many Linux users prefer command line tools for such tasks. It's easy to run them on multiple files with &lt;i&gt;for&lt;/i&gt; or &lt;i&gt;find&lt;/i&gt;. But if you have multi-core CPU or multiple CPUs, running parallel jobs would vastly reduce the time it takes to process all files. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_I5KwSSiP_FY/S44N4ldZZII/AAAAAAAAAFY/6O4V2pSbRNw/s1600-h/ppss.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="182" src="http://4.bp.blogspot.com/_I5KwSSiP_FY/S44N4ldZZII/AAAAAAAAAFY/6O4V2pSbRNw/s400/ppss.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/ppss/"&gt;PPSS&lt;/a&gt; is a shell script that executes commands in parallel. There are many tools like that, what's different about PPSS is that it's dead simple to use. Let's start with an example. I put a bunch of JPG files into ~/test-ppss and I want to convert them to tiff. All I need is:&lt;br /&gt;&lt;blockquote&gt;ppss -d ~/test-ppss -c 'jpg2tiff '&lt;/blockquote&gt;As you can see, it only needs two paremeters:&lt;br /&gt;&lt;blockquote&gt;-d /directory/with/files/to/be/processed&lt;br /&gt;-c 'command '&lt;/blockquote&gt;Note the trailing space in the command. It's the simplest form - filename will be appended at the end. &lt;br /&gt;&lt;br /&gt;OK, I cheated a little bit. You probably won't find jpg2tiff command on your system. It's a shell script I created that contains:&lt;br /&gt;&lt;blockquote&gt;convert -compress lzw "$1" "`basename "$1" jpg`tiff"&lt;/blockquote&gt;It uses "convert" from the ImageMagick package. I created it to have an easy to grasp command line for my first PPSS example. Now let's try without the script. How do we put a filename somewhere in the middle of PPSS command line? PPSS sets the $ITEM environment variable, so all you need use:&lt;br /&gt;-c 'command -i "$ITEM" -s some -o other -a arguments'.&lt;br /&gt;&lt;b&gt;In our example:&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;ppss&amp;nbsp; -d ~/test-ppss -c 'BASENAME=$(basename "$ITEM" .jpg); convert -compress lzw "$ITEM" "$BASENAME.tiff"'&lt;/blockquote&gt;As you can imagine, it took me more than one try to write it, so a helper script might be a good idea.&lt;br /&gt;&lt;br /&gt;There are other arguments for PPSS. By default, it run one parallel job for each CPU core it detects, but doesn't take HyperThreading into account. You can change it with -j. It probably won't make it run faster, as HT is not as efficient as multi-core or SMP. You can also set the number of tasks manually with -p. It's useful if you want to keep one core for interactive tasks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Shell scripts on multiple machines&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PPSS can distribute tasks to other machines using SSH. The setup is slightly harder, but still way simpler than with typical distributed programming frameworks. All you need is:&lt;br /&gt;- Passwordless (key-based) SSH authentication. You should create accounts and keyfiles for this sole purpose. Don't use your login account.&lt;br /&gt;- Config file for PPSS with node list and parameters.&lt;br /&gt;- Optionally, SMB or NFS share with files to be processed. PPSS can also send input and get the results with scp, but unless the files are very small and the task very CPU intensive, it won't have much sense. All the gains from parallel processing would be eaten up by the time it takes to distribute the files.&lt;br /&gt;&lt;br /&gt;I haven't tested it yet, you can &lt;a href="http://code.google.com/p/ppss/wiki/DistributedPPSS"&gt;see the explanation&lt;/a&gt; and &lt;a href="http://code.google.com/p/ppss/wiki/Manual2"&gt;read the manual&lt;/a&gt; on PPS website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8364390208333094903?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8364390208333094903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/parallel-processing-in-shell-scripts.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8364390208333094903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8364390208333094903'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/03/parallel-processing-in-shell-scripts.html' title='Parallel processing in shell scripts'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_I5KwSSiP_FY/S44N4ldZZII/AAAAAAAAAFY/6O4V2pSbRNw/s72-c/ppss.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4157703377465175499</id><published>2010-02-15T09:56:00.002+01:00</published><updated>2010-02-15T09:59:27.473+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='alacricity'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>Virtualization news: KVM, Xen, AlacricityVM, VirtualBox</title><content type='html'>&lt;a href="http://thread.gmane.org/gmane.comp.emulators.kvm.devel/43718"&gt;Numerous changes to KVM&lt;/a&gt; got into a mainline Linux kernel. Some are - as usual - performance improvements. Also, other software can now use CPU virtualization extensions when KVM module is loaded, but not in use. This should greatly decrease a number of people complaining about their VirtualBox or VMware not using VT-d, who didn't notice their distribution auto-loaded kvm.ko module.&lt;br /&gt;&lt;br /&gt;Novell, the company behind OpenSuSE, is in process of switching from Xen to &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/alacricity.html"&gt;AlacricityVM&lt;/a&gt;, a version of KVM designed for lower I/O latency, as their default hypervisor. Recently they tried to get it included in the kernel. Unfortunately, the result was flame war between AlacrityVM developer Gregory Haskins and some KVM developers and Linus saying "no" due to various reasons. Main reason being not enough interest outside of AlacricityVM developers group, kind of obvious considering an early, generally unusuable stage of AlacricityVM.&lt;br /&gt;&lt;br /&gt;VirtualBox released version 3.1.4. It's only a bugfix release, &lt;a href="http://www.virtualbox.org/wiki/Changelog"&gt;see changelog for details&lt;/a&gt;.&amp;nbsp; Seeing a long list of bugs, I'm wondering why I've never encountered any of them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4157703377465175499?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4157703377465175499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/virtualization-news-kvm-xen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4157703377465175499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4157703377465175499'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/virtualization-news-kvm-xen.html' title='Virtualization news: KVM, Xen, AlacricityVM, VirtualBox'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4625417277078694458</id><published>2010-02-10T10:06:00.000+01:00</published><updated>2010-02-10T10:06:43.048+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer goes open source - again</title><content type='html'>In November 2009 &lt;a href="http://virtually-a-machine.blogspot.com/2009/11/xenserver-opensourced.html"&gt;Citrix released source code for XAPI&lt;/a&gt;. This time they made available &lt;a href="http://www.citrix.com/lang/English/lp/lp_1688623.asp"&gt;almost full source for XenServer&lt;/a&gt;. Almost - High Availibility component and XenCenter management console remain closed. Citrix is clearly following a proven developement model: give your product for free, then use the power of the community to enhance it and make profits from commercial add-ons and services. Both the company and the community will benefit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4625417277078694458?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4625417277078694458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/xenserver-goes-open-source-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4625417277078694458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4625417277078694458'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/xenserver-goes-open-source-again.html' title='XenServer goes open source - again'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2815992893559983294</id><published>2010-02-09T11:13:00.002+01:00</published><updated>2010-08-12T20:11:45.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filesystems'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Amazon S3 gets versioning support</title><content type='html'>You can now enable versioning feature for a bucket. Each time you replace (or delete) a file, an old version is stored along a new one. When you retrieve a file, you get the newest version by default, but you can specifically request another one.&lt;br /&gt;&lt;br /&gt;If you've ever used a version control system like CVS or Subversion, the concept will be familiar to you. If not, think of it as an undo operation for the filesystem - how easy it will be to recover from software or user error? Just remember to implement a scheme to prune old versions - normal S3 storage charges apply.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aws.typepad.com/aws/2010/02/amazon-s3-enhancement-versioning.html"&gt;See this entry&lt;/a&gt; on Amazon Web Services Blog for details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2815992893559983294?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2815992893559983294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/amazon-s3-gets-versioning-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2815992893559983294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2815992893559983294'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/amazon-s3-gets-versioning-support.html' title='Amazon S3 gets versioning support'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1481712459578879902</id><published>2010-02-09T08:41:00.002+01:00</published><updated>2010-02-09T08:41:41.460+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen.org pamphlet in Polish</title><content type='html'>My another tiny contribution to Xen Project - a &lt;a href="http://blog.xen.org/index.php/2010/02/08/xen-org-pamphlet-available-in-polish/"&gt;translated pamphlet&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1481712459578879902?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1481712459578879902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/xenorg-pamphlet-in-polish.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1481712459578879902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1481712459578879902'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/xenorg-pamphlet-in-polish.html' title='Xen.org pamphlet in Polish'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5642104988870178300</id><published>2010-02-08T15:33:00.000+01:00</published><updated>2010-02-08T15:33:32.761+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris for Linux admins - part 3: Blastwave</title><content type='html'>I've already written about &lt;a href="http://virtually-a-machine.blogspot.com/2010/02/solaris-for-linux-admins-part-2-package.html"&gt;Solaris package management&lt;/a&gt;. Today, more details about Blastwave - software repository for Solaris which comes with a tool that works a lot like Apt or Yum. Enabling Blastwave takes a few minutes and several simple steps. Note that half of them deals with package signing. If you don't care about security, you can skip them (but then, get off my Internet before you become a zombie PC).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. Install pkgutil&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;pkgadd -d http://blastwave.network.com/csw/pkgutil_`/sbin/uname -p`.pkg &lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;2. Fetch the catalog&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;/opt/csw/bin/pkgutil --catalog &lt;/blockquote&gt;Note: you should probably add /opt/csw/bin to your $PATH. From now on I'll assume you did that and omit the /opt/csw/bin part from the commands.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;3. Install required software to check package signatures&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_I5KwSSiP_FY/S3Agc1o8cII/AAAAAAAAAFQ/yYUOLq71ZBI/s1600-h/solaris-gpg.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="381" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/S3Agc1o8cII/AAAAAAAAAFQ/yYUOLq71ZBI/s400/solaris-gpg.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;pkgutil --install gnupg textutils &lt;/blockquote&gt;You'll notice it'll also fetch dependencies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4. Get Blastwave package signing key&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;gpg --keyserver pgp.mit.edu --recv-keys A1999E90&lt;/blockquote&gt;Note: don't trust me, check the key ID on &lt;a href="http://www.blastwave.org/"&gt;Blastwave website&lt;/a&gt;. It might have changed. Or I might be tricking you into installing malware.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;5. Set the key as trusted&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;gpg --edit-key A1999E90&lt;/blockquote&gt;Enter &lt;b&gt;trust&lt;/b&gt;, than &lt;b&gt;5&lt;/b&gt; and &lt;b&gt;quit&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;6. Enable signature verification&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Edit /opt/csw/etc/pkgutil.conf. Uncomment the lines:&lt;br /&gt;&lt;blockquote&gt;use_gpg=true&lt;br /&gt;use_md5=true&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;7. Download catalog again&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;8. That's it&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;You can now install the software the way you'd do with apt-get or yum, for example:&lt;br /&gt;&lt;blockquote&gt;pkgutil --install mc&lt;/blockquote&gt;(personally, I think any Unix is much more user friendly with Midnight Commander)&lt;br /&gt;&lt;blockquote&gt;pkgutil --remove [package name] &lt;/blockquote&gt;will remove a package with all dependencies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5642104988870178300?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5642104988870178300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/solaris-for-linux-admins-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5642104988870178300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5642104988870178300'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/solaris-for-linux-admins-part-3.html' title='Solaris for Linux admins - part 3: Blastwave'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_I5KwSSiP_FY/S3Agc1o8cII/AAAAAAAAAFQ/yYUOLq71ZBI/s72-c/solaris-gpg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4419888609297586703</id><published>2010-02-05T09:35:00.000+01:00</published><updated>2010-02-05T09:35:04.304+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris for Linux admins - part 2: package management</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_I5KwSSiP_FY/S2MFf-zHFOI/AAAAAAAAAFA/i1x8Fbao1v0/s1600-h/solaris+update+manager.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_I5KwSSiP_FY/S2MFf-zHFOI/AAAAAAAAAFA/i1x8Fbao1v0/s320/solaris+update+manager.png" /&gt;&lt;/a&gt;&lt;/div&gt;Unlike most Linux distributions, Solaris doesn't provide an all-purpose package manager. Instead, you use separate tools:&lt;br /&gt;- to add/remove Sun-provided software&lt;br /&gt;- to update the system,&lt;br /&gt;- to add/remove software from external repositories&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;They come in two flavours, text and graphical. Let's start with the latter.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;I want my G-U-I&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If your system runs X, you can use graphical package managers. In Utilities menu, there's an Update Manager. It works automatically unless the package requires manual intervention during update process, in which case it will be marked as "download only" (sorry, no screenshot, I already updated my system). If it happens, see patch description - sometimes it says it should only be installed in single-user mode or in some circumstances it should not be installed at all. When you're ready, run "patchadd" with the path to patch spool and the patch ID, for example:&lt;br /&gt;&lt;blockquote&gt;patchadd /var/spool/patch/121431-44&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_I5KwSSiP_FY/S2MF-nqKrmI/AAAAAAAAAFI/RBLNJDEL260/s1600-h/solaris+product+registry.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/S2MF-nqKrmI/AAAAAAAAAFI/RBLNJDEL260/s320/solaris+product+registry.png" /&gt;&lt;/a&gt;&lt;/div&gt;There's also a GUI for package management, although you can't find it in the menu. Type "prodreg" in the terminal to run it. The tool will generally just run pkgrm/pkginst (see below) in the terminal, but might be useful for navigating a list of installed software. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Update from the command line&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The update process is simple:&lt;br /&gt;&lt;blockquote&gt;smpatch analyze&lt;br /&gt;smpatch download&lt;br /&gt;smpatch update&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;bash-3.00# smpatch analyze&lt;br /&gt;119281-22 CDE 1.6_x86: Runtime library patch for Solaris 10&lt;br /&gt;bash-3.00# smpatch download&lt;br /&gt;119281-22 has been validated.&lt;br /&gt;bash-3.00# smpatch update&lt;br /&gt;Installing patches from /var/sadm/spool...&lt;br /&gt;119281-22 has been applied.&lt;br /&gt;/var/sadm/spool/patchpro_dnld_2010.01.29@15:41:11:CET.txt has been moved to /var/sadm/spool/patchproSequester/patchpro_dnld_2010.01.29@15:41:11:CET.txt&lt;br /&gt;/var/sadm/spool/patchpro_dnld_2010.01.29@15:42:03:CET.txt has been moved to /var/sadm/spool/patchproSequester/patchpro_dnld_2010.01.29@15:42:03:CET.txt&lt;/blockquote&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Managing system software&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There's a number of commands starting with "pkg" that deal with packages. The most important are:&lt;br /&gt;&lt;b&gt;pkgadd&lt;/b&gt; - installs a package from a specified file&lt;br /&gt;&lt;b&gt;pkgchk&lt;/b&gt; - checks installation of a package&lt;br /&gt;&lt;b&gt;pkginfo&lt;/b&gt; - list of known packages&lt;br /&gt;&lt;b&gt;pkgrm&lt;/b&gt; - removes a package&lt;br /&gt;&lt;br /&gt;These tools behave like dpkg or rpm, not the high-level Linux package managers APT or Yum. Which means: they will print out dependency info, but won't resolve anything automatically, also pkgadd can install a package from a file or URL, but won't find it for you. Package names always start with a vendor's prefix, Sun uses SUNW.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's try removing a package. I have a default install on my testbed VM with lots of software I'll never use. Let's get rid of RealPlayer.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;bash-3.00# pkginfo | grep realpl&lt;br /&gt;MOZ17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUNWrealplayer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RealPlayer media application&lt;br /&gt;MOZ17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUNWrealplayer-l10n-de&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RealPlayer media application - l10n-de files&lt;br /&gt;MOZ17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUNWrealplayer-l10n-fr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RealPlayer media application - l10n-fr files&lt;br /&gt;MOZ17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUNWrealplayer-l10n-pl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RealPlayer media application - l10n-pl files&lt;/blockquote&gt;There's a main package and three translations.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;bash-3.00# pkgrm SUNWrealplayer&lt;br /&gt;&lt;br /&gt;The following package is currently installed:&lt;br /&gt;&amp;nbsp;&amp;nbsp; SUNWrealplayer&amp;nbsp; RealPlayer media application&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (i386) 10.0.6.1358,REV=10.2.3.2006.03.21.05.47&lt;br /&gt;&lt;br /&gt;Do you want to remove this package? [y,n,?,q] y&lt;br /&gt;&lt;br /&gt;## Removing installed package instance &lt;sunwrealplayer&gt;&lt;br /&gt;## Verifying package &lt;sunwrealplayer&gt; dependencies in global zone&lt;br /&gt;WARNING:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The &lt;sunwrealplayer-l10n-de&gt; package depends on the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; package currently being removed.&lt;br /&gt;WARNING:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The &lt;sunwrealplayer-l10n-fr&gt; package depends on the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; package currently being removed.&lt;br /&gt;WARNING:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The &lt;sunwrealplayer-l10n-pl&gt; package depends on the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; package currently being removed.&lt;br /&gt;Dependency checking failed.&lt;br /&gt;&lt;br /&gt;Do you want to continue with the removal of this package [y,n,?,q] y&lt;br /&gt;## Processing package information.&lt;br /&gt;## Removing pathnames in class &lt;none&gt;&lt;br /&gt;/usr/share/pixmaps/realplay.png&lt;br /&gt;/usr/share/pixmaps &lt;shared not="" pathname="" removed=""&gt;&lt;br /&gt;/usr/share/mimelnk/video/x-3gpp2.desktop&lt;br /&gt;/usr/share/mimelnk/video/vnd.rn-realvideo.desktop&lt;br /&gt;[...]&lt;br /&gt;/usr/bin/realplay&lt;br /&gt;/usr/bin &lt;shared not="" pathname="" removed=""&gt;&lt;br /&gt;## Updating system information.&lt;br /&gt;&lt;br /&gt;Removal of &lt;sunwrealplayer&gt; was successful.&lt;/sunwrealplayer&gt;&lt;/shared&gt;&lt;/shared&gt;&lt;/none&gt;&lt;/sunwrealplayer-l10n-pl&gt;&lt;/sunwrealplayer-l10n-fr&gt;&lt;/sunwrealplayer-l10n-de&gt;&lt;/sunwrealplayer&gt;&lt;/sunwrealplayer&gt;&lt;/blockquote&gt;&lt;br /&gt;We can clearly see how these tools (don't) deal with dependencies. They have to be uninstalled manually:&lt;br /&gt;&lt;blockquote&gt;bash-3.00# pkgrm SUNWrealplayer-l10n-de SUNWrealplayer-l10n-fr SUNWrealplayer-l10n-pl&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;High level package manager&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The prodreg software I mentioned before also works as a CLI tool. With a proper magic you can for example uninstall a package with all the dependent software. Using it is a pain in a certain body part. Getting the right package name or UUID requires a long process of "prodreg browse". I'm not going to cover it here, see &lt;a href="http://docs.sun.com/app/docs/doc/817-1985"&gt;Solaris Basic Administration Guide&lt;/a&gt; if you need it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Other software&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are several external repositories with tons of software, generally the same as for Linux. The most popular is &lt;a href="http://www.blastwave.org/"&gt;Blastwave&lt;/a&gt;. It even comes with a &lt;b&gt;proper&lt;/b&gt; package manager (one that behaves like Apt or Yum). It downloads the software, deals with dependencies and packages are protected by MD5 checksum and GPG signature. The tool is called pkgutil. Setting it up properly requires a few simple steps, so I'll post it as a separate entry.&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4419888609297586703?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4419888609297586703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/solaris-for-linux-admins-part-2-package.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4419888609297586703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4419888609297586703'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/02/solaris-for-linux-admins-part-2-package.html' title='Solaris for Linux admins - part 2: package management'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_I5KwSSiP_FY/S2MFf-zHFOI/AAAAAAAAAFA/i1x8Fbao1v0/s72-c/solaris+update+manager.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2818342101639361001</id><published>2010-01-29T10:14:00.000+01:00</published><updated>2010-01-29T10:14:42.151+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>New Xen Documentation</title><content type='html'>Xen documentation team is pretty busy lately. They have just created or updated several useful Wiki pages: overview, Xen kernels (that one is great!) common problems, best practices and others. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.xen.org/index.php/2010/01/28/new-xen-documentation/"&gt;See the full list&lt;/a&gt; on Xen blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2818342101639361001?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2818342101639361001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/new-xen-documentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2818342101639361001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2818342101639361001'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/new-xen-documentation.html' title='New Xen Documentation'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3781824038984296004</id><published>2010-01-27T15:44:00.001+01:00</published><updated>2010-01-27T15:44:40.590+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Solaris for Linux admins - part 1: introduction</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/S2BQ1RozxaI/AAAAAAAAAEw/yRyYnnzetBM/s1600-h/solaris0.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="302" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/S2BQ1RozxaI/AAAAAAAAAEw/yRyYnnzetBM/s400/solaris0.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;I'm working on an experimental virtualized cluster. It's a complex setup involving - in addition to a number of Linux machines - one Solaris box. This system was always popular in academia and we have several full-time Solaris administrators, but I don't want to bother them every time I need to make a small change. It's time to refresh what I know about Solaris and learn more.&lt;br /&gt;&lt;br /&gt;I've used Linux as my main OS for over ten years. I also have some experience with other Unix systems - Solaris included - but I'm far from the level of familiarity I have with Linux. There are some notable, sometimes annoying differences in location of files, command parameters and underlying concepts, I need to use man or other docs way more often than with Linux. I decided to write down what I learned to piece together my knowledge and to create a handy reference for myself. If you'll find it useful too, that's an added bonus.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Filesystem layout&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;At a first glance, filesystem in Solaris looks like a mess. After a full install there are about 50 directories or symlinks in /usr, some of which clearly shouldn't be there (e.g. /usr/spool), /var and / are not much better. The reason is Solaris users really value backwards compatibility. Directories in Linux conform to Filesystem Hierarchy Standard. Whenever it is updated, there are backward compability symlinks for a year or two, then they get dropped. In Solaris you can use the same paths as in 1985 BSD od 1993 SunOS - or 2010 Linux, for that matter. &lt;br /&gt;&lt;br /&gt;One other difference is that software is often divided by vendor, technology or usage. On Linux, almost all executables land in /usr/bin, their libraries in /usr/lib and other files in /usr/share. In Solaris, you have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;/usr/ for the usual stuff&lt;/li&gt;&lt;li&gt;/usr/css for Sun's development tools&lt;/li&gt;&lt;li&gt;/usr/dt, /usr/gnome, /usr/openwin for desktop environments (/usr/dt is for CDE - no idea why)&lt;/li&gt;&lt;li&gt;/usr/jdk, /usr/java, /usr/perl5 for Java and Perl&lt;/li&gt;&lt;li&gt;/usr/ucb* for BSD utils (ucb stands for University of California Berkeley)&lt;/li&gt;&lt;li&gt;/usr/sfw for GNU apps (sfw stands for Sun Freeware, I think there's a company policy for using misleading directory names)&lt;/li&gt;&lt;/ul&gt;And a dozen or two others. Oh, and software installed from Blastwave (which is often the most used) goes into /opt/csw.&lt;br /&gt;&lt;br /&gt;Some claim it's more tidy. Others think it's a pain in the ass and I'm one of them:&lt;br /&gt;- You have to put dozen directories in your $PATH.&lt;br /&gt;- Often you end up with 2 or 3 versions of the same tool (eg. one from Sun, other from BSD or GNU and another from Blastwave). Sun's remedy? Most GNU tools have names starting with "g" (e.g. grep is from Sun, ggrep is GNU).&lt;br /&gt;&lt;br /&gt;There's also no /root directory. Superuser's home is /. That's because you're not supposed to login as root. If you really want to, you can create it and modify /etc/passwd.&lt;br /&gt;&lt;br /&gt;See more details &lt;a href="http://www.cuddletech.com/blog/pivot/entry.php?id=562"&gt;in this entry&lt;/a&gt;. The whole Ben Rockwood's blog is worth a read.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Init system - SMF&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;System startup, on the other hand, is an area that Sun's got right. Some Linux distros, lead by Ubuntu, are migrating to a new init system called upstart. Others still use SystemV scripts. And don't even get me started on Slackware. Solaris has already converted to a new model called SMF - &lt;b&gt;Service Management Facility&lt;/b&gt;. It has all the features planned for upstart and much more:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;parallel startup,&lt;/li&gt;&lt;li&gt;dependencies - e.g. service A will always start after service B&lt;/li&gt;&lt;li&gt;failed daemons are automatically restarted&lt;/li&gt;&lt;li&gt;ability to control a specific service can be delegated to a non-root user&lt;/li&gt;&lt;li&gt;snapshots of service configurations&lt;/li&gt;&lt;li&gt;debugging and logging features&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Quick intro:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Enabling/disabling the service: &lt;/b&gt;svcadm [enable|disable] [service name]&lt;br /&gt;&lt;b&gt;Service status: &lt;/b&gt;svcs [service name]&lt;br /&gt;&lt;b&gt;List of services&lt;/b&gt; (both running and disabled): svcs -a&lt;br /&gt;&lt;br /&gt;More details at &lt;a href="http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.jsp"&gt;Sun Bigadmin website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Shell&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Another annoying weakness for me and praised historical compatibilty for others. Default shell on Solaris is the old-style Bourne shell with no command history, no tab completion, no nothing. First thing I do on Solaris is &lt;br /&gt;&lt;blockquote&gt;usermod -s /usr/bin/bash root&lt;br /&gt;&lt;/blockquote&gt;You may find warnings on the web not to do it. Some people say it'd break scripts, others think /bin/sh is safer, because it's statically linked. Feel free to mock them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;scripts have a #!/bin/sh line and don't care about login shell,&lt;/li&gt;&lt;li&gt;Solaris 10 is smart enough to fall back to /bin/sh if bash doesn't work. And sh is not even static anymore:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/S2BRA6j5IsI/AAAAAAAAAE4/eb89lQuB8sQ/s1600-h/solaris.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/S2BRA6j5IsI/AAAAAAAAAE4/eb89lQuB8sQ/s400/solaris.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3781824038984296004?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3781824038984296004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/solaris-for-linux-admins-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3781824038984296004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3781824038984296004'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/solaris-for-linux-admins-part-1.html' title='Solaris for Linux admins - part 1: introduction'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/S2BQ1RozxaI/AAAAAAAAAEw/yRyYnnzetBM/s72-c/solaris0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-497636688091007189</id><published>2010-01-26T11:45:00.002+01:00</published><updated>2010-08-12T20:03:40.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Fedora goes towards KVM, away from Xen</title><content type='html'>Fedora 13 (to be released in May 2010) will add some interesting features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Kernel acceleration for KVM networking&lt;/b&gt; (off by default, considered unstable)&lt;/li&gt;&lt;li&gt;Stable PCI addreses, shared network interfaces&lt;/li&gt;&lt;li&gt;&lt;b&gt;Enhanced VNC&lt;/b&gt; access to guests - tunnelling audio otput and serial console&lt;/li&gt;&lt;li&gt;Better authentication and encryption support in libvirt&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Most of these only work with KVM. Another new tool will enable automatic migration from Xen to KVM. Xen dom0 support is planned "if it's supported by the mainstream kernel". Read: it won't be available.&lt;br /&gt;&lt;br /&gt;While I welcome these additions to KVM, I think it's a pity that Xen support is gradually phased out from the main Linux distributions. What can you do if you have servers without hardware virtualization support, but otherwise completely fine?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Buy new servers and send the old ones to a growing heap of electronic junk in some 3rd world country.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Spend hours compiling and configuring the software yourself.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Use on a few distros that still supports Xen - if you can live with 2.6.18 kernel. I think that now we're only left with Scientific Linux and Debian.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://www.virtualization.info/2010/01/fedora-13-to-simplify-migration-from.html"&gt;www.virtualization.info/2010/01/fedora-13-to-simplify-migration-from.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-497636688091007189?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/497636688091007189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/fedora-goes-towards-kvm-away-from-xen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/497636688091007189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/497636688091007189'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/fedora-goes-towards-kvm-away-from-xen.html' title='Fedora goes towards KVM, away from Xen'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4680334122101731278</id><published>2010-01-25T13:46:00.001+01:00</published><updated>2010-08-12T20:06:27.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Howto: two Firebirds on one Linux box</title><content type='html'>Don't know if anyone ever needs such a crazy setup, but here it goes. I needed to run a software that requires Firebird 2.x. Nothing special, it's available in my distribution (Ubuntu). I also had to run another app that needs Firebird 1.5. That's where it started to get complicated:&lt;br /&gt;&lt;br /&gt;- Firebird 1.5 is not available in Ubuntu - I can use vendor-provided binaries, but...&lt;br /&gt;&lt;br /&gt;- They're only 32-bit, my box is amd-64&lt;br /&gt;&lt;br /&gt;- There's no official support for running two versions of Firebird on one machine.&lt;br /&gt;&lt;br /&gt;One solution would be to use a virtual machine. That way I would be compliant with a title of this blog. But I only needed these RDBMSes occasionally, maybe once a month, never both versions simultaneously. Also this machine is short on disk space. I didn't want to waste few GB on another copy of an operating system with all the necessary tools and libraries. After half an hour of meddling, I managed to get both versions on the same system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium; font-weight: bold;"&gt;I. Prerequisites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;aptitude install ia32-libs&lt;/span&gt;&lt;br /&gt;Required for Firebird 1.5, if you're on a 64-bit system and you haven't already installed 32-bit libraries&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Install old version of libstdc++&lt;/span&gt;&lt;br /&gt;Required for Firebird 2. Karmic doesn't have it anymore, &lt;a href="http://packages.ubuntu.com/jaunty/libstdc++5"&gt;get one from Jaunty&lt;/a&gt; and install with&lt;br /&gt;&lt;pre&gt;sudo dpkg -i libstdc++5*deb&lt;/pre&gt;&lt;br /&gt;3. Create a file&lt;span style="font-weight: bold;"&gt; /etc/ld.so.conf.d/firebird.conf&lt;/span&gt; with the following contents:&lt;br /&gt;&lt;pre&gt;/opt/firebird-1.5/lib&lt;br /&gt;/opt/firebird-2/lib&lt;br /&gt;/opt/firebird/lib&lt;br /&gt;&lt;/pre&gt;These directories don't exist yet, but they will be created soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium; font-weight: bold;"&gt;II. Firebird 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Get Firebird 2.1&lt;/span&gt; from &lt;a href="http://www.firebirdsql.org/"&gt;firebirdsql.org&lt;/a&gt;&lt;br /&gt;You'll need the right version for your architecture (64 or 32 bit), &lt;span style="font-weight: bold;"&gt;superserver, compressed tarball&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2. Unpack it somewhere and &lt;span style="font-weight: bold;"&gt;run install.sh&lt;/span&gt;&lt;br /&gt;If at any point you get an error starting like this:&lt;br /&gt;&lt;pre&gt;ld: Unable to load shared library&lt;/pre&gt;stop the installation with Ctrl-C, run 'sudo ldconfig' and try installing again.&lt;br /&gt;&lt;br /&gt;3. Firebird asks for a &lt;span style="font-weight: bold;"&gt;password for sysdba&lt;/span&gt; (admin) user. &lt;br /&gt;Old versions used a default password 'masterkey' and some poorly written software relies on it. Don't use it if your application is exposed to the internet.&lt;br /&gt;&lt;br /&gt;4. The software is now installed in /opt/firebird. Subsequent installation of Firebird 1.5 would overwrite it. We need to &lt;span style="font-weight: bold;"&gt;rename it&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;sudo mv /opt/firebird /opt/firebird-2&lt;br /&gt;sudo mv /etc/init.d/firebird /etc/init.d/firebird-2&lt;br /&gt;&lt;/pre&gt;Sometimes Firebird installer doesn't put the init.d script in the right place. You can find the script in /opt/firebird-2/misc/firebird.init.d.debian. Copy it to /etc/init.d and rename to firebird-2.&lt;br /&gt;&lt;br /&gt;5. Use your favourite text editor on /etc/init.d/firebird-2 and &lt;span style="font-weight: bold;"&gt;replace the line&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;FIREBIRD=/opt/firebird&lt;/pre&gt;with&lt;br /&gt;&lt;pre&gt;FIREBIRD=/opt/firebird-2&lt;/pre&gt;&lt;br /&gt;6. Run '&lt;span style="font-weight: bold;"&gt;sudo ldconfig&lt;/span&gt;' again.&lt;br /&gt;&lt;br /&gt;7. &lt;span style="font-weight: bold;"&gt;Test the init script&lt;/span&gt;.&amp;nbsp; &lt;br /&gt;&lt;pre&gt;/etc/init.d/firebird-2 stop&lt;/pre&gt;should stop the database, 'ps aux | grep firebird' would return nothing (or just the grep itself).&lt;br /&gt;&lt;pre&gt;/etc/init.d/firebird-2 start&lt;/pre&gt;should start it, the command would return two processes, fbguard and fbserver&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-weight: bold;"&gt;III. Firebird 1.5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Stop Firebird 2&lt;/span&gt; if it's running at the moment.&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Get Firebird 1.5&lt;/span&gt; from &lt;a href="http://www.firebirdsql.org/"&gt;firebirdsql.org&lt;/a&gt;&lt;br /&gt;You'll need the version called &lt;span style="font-weight: bold;"&gt;Superserver&lt;/span&gt; for Linux &lt;span style="font-weight: bold;"&gt;(NPTL&lt;/span&gt; threading model), compressed tarball.&lt;br /&gt;&lt;br /&gt;3. Unpack it somewhere and &lt;span style="font-weight: bold;"&gt;run install.sh&lt;/span&gt;&lt;br /&gt;If at any point you get an error starting like this:&lt;br /&gt;&lt;pre&gt;ld: Unable to load shared library&lt;/pre&gt;stop the installation with Ctrl-C, run 'sudo ldconfig' and try installing again.&lt;br /&gt;&lt;br /&gt;4. Like with version 2, Firebird asks for a &lt;span style="font-weight: bold;"&gt;password for sysdba&lt;/span&gt; (admin) user. &lt;br /&gt;An application bad enough to require such and old RDBMS probably also uses a default password. Mine does.&lt;br /&gt;&lt;br /&gt;5. The software is now installed in /opt/firebird. Since we're not going to install any more versions, we could leave it here, but then an upgrade to Firebird 2 would overwrite it. Better &lt;span style="font-weight: bold;"&gt;rename it&lt;/span&gt; too. Steps are the same.&lt;br /&gt;&lt;pre&gt;sudo mv /opt/firebird /opt/firebird-1.5&lt;br /&gt;sudo mv /etc/init.d/firebird /etc/init.d/firebird-1.5&lt;br /&gt;&lt;/pre&gt;Replace /opt/firebird with /opt/firebird-1.5 in /etc/init.d/firebird-1.5&lt;br /&gt;&lt;br /&gt;6. Run '&lt;span style="font-weight: bold;"&gt;sudo ldconfig&lt;/span&gt;' and &lt;span style="font-weight: bold;"&gt;test the init script&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4680334122101731278?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4680334122101731278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/howto-two-firebirds-on-one-linux-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4680334122101731278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4680334122101731278'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/howto-two-firebirds-on-one-linux-box.html' title='Howto: two Firebirds on one Linux box'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3865899759709443383</id><published>2010-01-21T11:51:00.002+01:00</published><updated>2010-01-21T11:52:55.827+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen.org overview slides</title><content type='html'>I've joined the effort to provide Xen docs in other languages. Here's my tiny contribution - &lt;a href="http://www.slideshare.net/xen_com_mgr/xenorg-overview-polish"&gt;xen.org overview slides&lt;/a&gt; in Polish.&lt;br /&gt;&lt;div id="__ss_2956846" style="text-align: left; width: 425px;"&gt;&lt;a href="http://www.slideshare.net/xen_com_mgr/xenorg-overview-polish" style="display: block; font-family: Helvetica,Arial,Sans-serif; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 12px 0pt 3px; text-decoration: underline;" title="Xen.org Overview Polish"&gt;Xen.org Overview Polish&lt;/a&gt;&lt;object height="355" style="margin: 0px;" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=xenoverviewpolish-100120091409-phpapp02&amp;stripped_title=xenorg-overview-polish" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=xenoverviewpolish-100120091409-phpapp02&amp;stripped_title=xenorg-overview-polish" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="font-family: tahoma,arial; font-size: 11px; height: 26px; padding-top: 2px;"&gt;View more &lt;a href="http://www.slideshare.net/" style="text-decoration: underline;"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/xen_com_mgr" style="text-decoration: underline;"&gt;Stephen Spector&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3865899759709443383?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3865899759709443383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/xenorg-overview-slides.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3865899759709443383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3865899759709443383'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/xenorg-overview-slides.html' title='Xen.org overview slides'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3684128263579545930</id><published>2010-01-19T16:08:00.001+01:00</published><updated>2010-08-12T20:08:38.172+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Free academic journals on HPC</title><content type='html'>I've just found out these Springer journals offering free access to most or all of the content:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.springerlink.com/content/111140/?p=93f51e4eb089445a90fe28a20683ce47&amp;amp;pi=0"&gt;Journal of Grid Computing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springerlink.com/content/0885-7458"&gt;International Journal of Parallel Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springerlink.com/content/0920-8542"&gt;The Journal of Supercomputing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;There's more, but these 3 were useful to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3684128263579545930?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3684128263579545930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/free-academic-journals-on-hpc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3684128263579545930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3684128263579545930'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2010/01/free-academic-journals-on-hpc.html' title='Free academic journals on HPC'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5848541103754529161</id><published>2009-12-04T11:52:00.001+01:00</published><updated>2009-12-04T11:53:41.539+01:00</updated><title type='text'>Experimental Xen and Ubuntu. Part 2: hypervisor</title><content type='html'>This is second part of a two-part HOWTO. See &lt;a href="http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-1.html"&gt;Experimental Xen and Ubuntu. Part 1: kernel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this part we're going to compile the hypervisor and tools. You can install Ubuntu-provided binaries if you're happy with an older version. In that case, jump to Grub2 configuration. I'll again assume your compilation directory is ~/src.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Warning: &lt;/b&gt;You're about to install an experimental software. It might not work. The instructions might be outdated. In fact, I wrote this Howto over the course of 3 days and I had to update them. Use at your own risk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;0. Prerequisites&lt;/h3&gt;You'll need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; An hour or two&lt;/li&gt;&lt;li&gt;Some more development tools and libraries in addition to what you've already installed in part 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;aptitude install mercurial xorg-dev python-dev zlib1g-dev python-openssl python-pam libssl-dev uuid-dev bcc bison flex checkinstall&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;1. Get ACPICA&lt;/h3&gt;You'll need one more tool: Intel's ACPI Component Architecture compiler. It's not in the distribution. Download it from &lt;a href="http://acpica.org/downloads/"&gt;http://acpica.org/downloads/&lt;/a&gt; to ~/src, then:&lt;br /&gt;&lt;pre&gt;cd ~/src&lt;br /&gt;tar -xvzf acpica-unix*.tar.gz&lt;br /&gt;cd acpica*/compiler&lt;br /&gt;make&lt;br /&gt;sudo chown root.root iasl&lt;br /&gt;sudo mv iasl /usr/local/bin&lt;br /&gt;&lt;/pre&gt;There's no "make install", so you need to use last two lines to put the binary in place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Get the sources&lt;/h3&gt;Download latest Xen from repository into your compilation directory.&lt;br /&gt;&lt;pre&gt;hg clone http://xenbits.xensource.com/xen-unstable.hg&lt;br /&gt;&lt;/pre&gt;To update the sources later, use:&lt;br /&gt;&lt;pre&gt;cd ~/src/xen-unstable.hg&lt;br /&gt;hg pull&lt;br /&gt;hg update&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Compile hypervisor and tools&lt;/h3&gt;&lt;pre&gt;cd xen-unstable.hg&lt;br /&gt;make xen&lt;br /&gt;make tools&lt;br /&gt;&lt;/pre&gt;Do not use "make all" or you'll also get another kernel and docs (which require TeX and take ages to compile). &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4. Create packages&lt;/h3&gt;Now you're supposed to to type "make install". That would put the compiled files into right places, but without any traces in your package system and without easy way to uninstall. There's a "make uninstall" target, but not guaranteed to work. So I decided to make a primitive .deb with checkinstall. It won't have all the features of a real deb package: proper dependency information, pre/post install scripts etc. But it works. &lt;br /&gt;&lt;pre&gt;sudo checkinstall make install-xen&lt;br /&gt;sudo checkinstall make install-tools&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SxjpkjSwPgI/AAAAAAAAAEk/riwDnRfd2_8/s1600-h/xen-install.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SxjpkjSwPgI/AAAAAAAAAEk/riwDnRfd2_8/s400/xen-install.png" /&gt;&lt;/a&gt;Checkinstall will ask you a few questions. Set version number to 3.5 (anything numeric will do, but autodetected unstable.hg won't). Set the package name and "provides" to "xen-hypervisor" for the first package, "xen-utils" (&lt;b&gt;not xen-tools!&lt;/b&gt;) for the second.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="clear:left"&gt;5. Install packages&lt;/h3&gt;&lt;pre&gt;cd ~/src/xen-unstable.hg&lt;br /&gt;sudo dpkg -i xen-* system_1-2_all.deb &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;6. Update your Grub2 configuration&lt;/h3&gt;You'll need to boot Xen instead of Linux. Our primitive package won't modify Grub2 configuration. Create file /etc/grub.d/08_xen, make it executable and insert the following contents:&lt;br /&gt;&lt;pre&gt;#!/bin/sh &lt;br /&gt;&lt;br /&gt;cat &amp;lt;&amp;lt; EOF &lt;br /&gt;menuentry "Xen 3.5 / Ubuntu, 2.6.31.6-xen1" { &lt;br /&gt;    insmod ext2 &lt;br /&gt;    set root=(hd0,1) &lt;br /&gt;    multiboot /boot/xen-3.5.gz &lt;br /&gt;    module /boot/vmlinuz-2.6.31.6-xen1 dummy=dummy dom0_mem=1024M root=/dev/sda1 ro &lt;br /&gt;    module /boot/initrd.img-2.6.31.6-xen1 &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;EOF&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Substitute root=(hd0,1)  and root=/dev/sda1 with the right information (get one from /boot/grub/grub.cfg). Provide the right path for the Xen kernel you compiled with the previous Howto. Note the argument "dummy=dummy" for the Linux kernel - it's needed because some versions of Grub2 swallow the first argument. Command "insmod ext2" is also correct for ext3 and ext4. &lt;br /&gt;You should also change /etc/default/grub and comment the lines starting with GRUB_HIDDEN_TIMEOUT. It'll make Grub2 display menu and wait for a few seconds. This way, it'll be easier to select another entry if the default won't boot. When you're ready, run: &lt;br /&gt;&lt;pre&gt;update-grub&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;7. Run Xen daemon at boot&lt;/h3&gt;&lt;pre&gt;update-rc.d xend defaults&lt;br /&gt;update-rc.d xendomains defaults&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Troubleshooting&lt;/h2&gt;Unfortunately, chances of getting an unbootable system are high. My advice is to narrow down the problem. Try installing the Ubuntu-provided hypervisor or another kernel. Try updating and compiling again the kernel or Xen, new changes are commited every day. Search &lt;a href="http://lists.xensource.com/"&gt;Xen mailing lists&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5848541103754529161?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5848541103754529161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5848541103754529161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5848541103754529161'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-2.html' title='Experimental Xen and Ubuntu. Part 2: hypervisor'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_I5KwSSiP_FY/SxjpkjSwPgI/AAAAAAAAAEk/riwDnRfd2_8/s72-c/xen-install.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8785662620011482954</id><published>2009-12-02T11:28:00.004+01:00</published><updated>2009-12-02T11:32:45.048+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Extra Apt repositories in Ubuntu</title><content type='html'>&lt;p&gt;&lt;br /&gt;Ubuntu contains thousands of packages in standard repositories, but some useful software is not included, usually for licensing reason. It's convenient to install other apps the same way you use for Ubuntu - with Synaptic, aptitude or whatever your favourite package manager is. That's when extra repositories are useful. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Using extra repository requires two things:&lt;br /&gt;&lt;br /&gt;- adding a repository URL to apt's configuration - by convention, each repository gets it's own file in /etc/apt/sources.list.d&lt;br /&gt;&lt;br /&gt;- adding a package signing key, so APT won't complain about untrusted source.&lt;br /&gt;&lt;br /&gt;You can use GUI or command line for that, I prefer the latter. See https://help.ubuntu.com/community/Repositories/Ubuntu for instructions on using GUI.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Be warned&lt;/b&gt; that unofficial repositories are not supported by Ubuntu and may contain lower quality software. Although the ones below usually don't. Here are the repos I add on my machines.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;MediBuntu&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;The single most useful repo. It contains &lt;b&gt;multimedia codecs&lt;/b&gt; that didn't make it to official system due to licensing. Other software includes Skype and Google Earth.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;echo "deb http://packages.medibuntu.org/ karmic free non-free" | sudo tee -a /etc/apt/sources.list.d/medibuntu.list&lt;br /&gt;sudo apt-get update &amp;&amp; sudo apt-get install medibuntu-keyring&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The last line will warn you unverified package.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;GetDeb&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Large collection of various packages. Highlights: Flock browser, Cinepaint movie editor, Ubuntu Tweak.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -&lt;br /&gt;echo "deb http://archive.getdeb.net/ubuntu karmic-getdeb apps" | sudo tee -a /etc/apt/sources.list.d/getdeb.list&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tip:&lt;/b&gt; if you installed Flock, you might want to use Firefox plugins (not extensions - plugins are Flash Player, Java, Adobe Reader etc.) in it. Just use this two lines:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd /usr/share/flock/plugins&lt;br /&gt;sudo ln -s /usr/lib/firefox-addons/plugins/* .&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;VirtualBox&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My choice for &lt;a  href="http://virtually-a-machine.blogspot.com/2009/10/run-windows-on-linux-with-virtualbox.html"&gt;desktop virtual machine&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;wget -q -O- http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc  | sudo apt-key add -&lt;br /&gt;echo "deb http://download.virtualbox.org/virtualbox/debian karmic non-free" | sudo tee -a /etc/apt/sources.list.d/virtualbox.list&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What's next?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After adding repositories, update your package list:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get update&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then you can view the new packages in Synaptic or aptitude. I always start with:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo aptitude install ubuntu-restricted-extras&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It gives you codecs, Java plugin, Flash player and MS fonts, all with one command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8785662620011482954?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8785662620011482954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/extra-apt-repositories-in-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8785662620011482954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8785662620011482954'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/extra-apt-repositories-in-ubuntu.html' title='Extra Apt repositories in Ubuntu'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-255352462278730628</id><published>2009-12-01T09:44:00.006+01:00</published><updated>2009-12-04T12:22:53.421+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Experimental Xen and Ubuntu. Part 1: kernel</title><content type='html'>&lt;p&gt;&lt;br /&gt;Xen status in &lt;a href="http://virtually-a-machine.blogspot.com/search/label/ubuntu"&gt;Ubuntu&lt;/a&gt; is strange. There are packages for hypervisor and utils, there are even some addon tools. Ubuntu runs as a Xen guest flawlessly. However, there's no kernel supporting dom0 (privileged domain, you can think of it as a host operating system) in Ubuntu, which makes hypervisor useless.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Many users resolved the problem by borrowing a Xen kernel from Debian. It's also easy to download binary Xen distribution with the kernel included. But official Xen kernel is still 2.6.18. It's as old as Windows Vista! I wouldn't want to use something that ancient. Luckily, Xen maintainers provide a patch for every new kernel release - see &lt;a href="http://wiki.xensource.com/xenwiki/XenParavirtOps"&gt;Xen Wiki on PVOPS kernel&lt;/a&gt; for details. Installation is relatively easy and you can even make a deb package.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;While you're at it, you can also compile the newest, shiniest Xen hypervisor and get all the &lt;a href="http://virtually-a-machine.blogspot.com/2009/09/xen-news.html"&gt;exciting features&lt;/a&gt;. It's not as straightforward as kernel installation, but it's not a rocket science either.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This two part HOWTO guides you through the installation of the latest Xen on Ubuntu. Part 1 deals with the kernel. Part 2 is about the hypervisor and tools. You can install Ubuntu-provided binaries if you're happy with an older version and skip to Grub2 configuration.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;0. Prerequisites&lt;/h3&gt;&lt;br /&gt;You'll need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;an hour or two&lt;/li&gt;&lt;li&gt;some experience with kernel compilation&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;a way to restore your system if it won't boot&lt;/span&gt;&lt;/li&gt;&lt;li&gt;compiler, development libraries, git client:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;sudo aptitude install kernel-package git-core libncurses5-dev&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Create source directory&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Prepare a directory for compilation, e.g. $HOME/src. DO NOT use /usr/src/linux, use non-system directory and don't compile as root. Note it has nothing to do with Xen, it's just the right way to compile kernel, although many people get it wrong. See Greg Kroah-Hartman's great book "Linux Kernel in a Nutshell" for details.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I'll assume you use ~/src. Substitute whatever you wish. You'll need about 1.5 GB of disk space.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Get the sources&lt;/h3&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;cd ~/src&lt;br /&gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Configure the kernel - the important stuff&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;For convenience, I copied the standard Ubuntu kernel config to use as a base, it's in /boot/config-2.6.31-15-general. Put it in ~/src/linux-2.6-xen and rename to .config.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Go to your new kernel source directory and use "make menuconfig" or your preferred method of kernel configuration. You only really need one change:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Processor type and features  ---&amp;gt; Paravirtualized guest support  ---&amp;gt; Enable Xen privileged domain support&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Another modification you might want is &lt;span style="font-weight: bold;"&gt;"Local version"&lt;/span&gt; from "General setup". Add something like "-xen1". This way if you need another try, you'll get a package with a different name.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4. Configure the kernel - the unimportant tweaks&lt;/h3&gt;&lt;br /&gt;While you're at it, you can also tweak some features for better performance. Some quick modifications:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set the processor type to exact type you have instead of a generic one.&lt;/li&gt;&lt;li&gt;Disable all setting with debugging, profiling or probe in their name (especially from "Processor type and features" and "Kernel hacking").&lt;/li&gt;&lt;li&gt;Disable unusual hardware from "Processor type and features". That goes directly into the kernel, so reducing clutter here might help.&lt;/li&gt;&lt;li&gt;I don't bother with the drivers. They go into modules anyway and have no impact on your runtime performance, they onlymake your kernel compilation last longer. I'd rather have my computer spend extra 30 minutes compiling then have myself spend 30 minutes turning off drivers. You can however quickly disable whole groups, like Packet Radio or Video4Linux if you're sure you don't need them.&lt;/li&gt;&lt;li&gt;From "Security options", disable SELinux and Tomoyo if you don't use it.&lt;/li&gt;&lt;li&gt;Disable all KVM options. You can't use two hypervisors at the same time anyway.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;5. Compile your kernel the Debian/Ubuntu way&lt;/h3&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;make-kpkg --rootcmd fakeroot --initrd kernel_image&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;This might be a good time to go for lunch.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;6) Install your package&lt;/h3&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;dpkg -i [name of your kernel package]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Try rebooting. The kernel supports Xen dom0 and domU, but it runs on real hardware as well.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-255352462278730628?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/255352462278730628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/255352462278730628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/255352462278730628'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-1.html' title='Experimental Xen and Ubuntu. Part 1: kernel'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8996612633721552783</id><published>2009-11-26T13:09:00.001+01:00</published><updated>2009-11-26T13:09:36.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Papers on CUDA</title><content type='html'>Some new scientific papers by the GPU computing community. By the way, I highly recommend adding &lt;a href="http://gpgpu.org/feed"&gt;GPGPU feed&lt;/a&gt; to your RSS reader if you're interested in this subject. That's where I get most of my news.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mathema.tician.de/software/pycuda"&gt;PyCuda&lt;/a&gt;&amp;nbsp; is an open-source framework written in Python for generating CUDA code. It isolates you from tedious details of CUDA. Most programmers&amp;nbsp; would find Python much more comfortable to work with. There is a scientific paper on PyCuda: &lt;a href="http://arxiv.org/abs/0911.3456"&gt;GPU Run-Time Code Generation for High-Performance Computing&lt;/a&gt;. Lots of tutorials for beginners in the net, just ask your search engine. I even &lt;a href="http://www.python.rk.edu.pl/w/p/pycuda-dostep-do-platformy-nvidia-cuda-w-pythonie/"&gt;found one in Polish&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;CheCUDA is a checkpoint/restart tool for CUDA applications. Checkpointing is a known method in long-running scientific computations: periodically write the state to the disk and if your software crashes, system needs to be restarted or the job migrated to another machine, you don't have to start from the beginning. Until now, there was no checkpointing tool for GPU computing. See &lt;a href="http://www.sc.isc.tohoku.ac.jp/%7Etacky/papers/htakizawa_updas2009.pdf"&gt;this paper&lt;/a&gt; by Hiroyuki Takizawa, Katuto Sato, Kazuhiko Komatsu, and Hiroaki Kobayashi for details.&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8996612633721552783?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8996612633721552783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/papers-on-cuda.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8996612633721552783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8996612633721552783'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/papers-on-cuda.html' title='Papers on CUDA'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4960093792666544184</id><published>2009-11-24T10:06:00.002+01:00</published><updated>2010-08-12T20:06:45.773+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>...flock together</title><content type='html'>First experimental post from Flock.&lt;br /&gt;&lt;br /&gt;Time to get more Web 2.0. I'm not the one who falls for the latest buzzword. But this one is 5 years old, so I might give it a chance.&lt;br /&gt;&lt;br /&gt;&lt;div class="flockcredit" style="color: #cccccc; font-size: x-small; text-align: right;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4960093792666544184?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4960093792666544184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/flock-together.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4960093792666544184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4960093792666544184'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/flock-together.html' title='...flock together'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2712714585157808378</id><published>2009-11-20T12:16:00.010+01:00</published><updated>2010-08-12T20:11:03.304+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Data visualization 101</title><content type='html'>For the last few weeks I've been reading on data visualization in my spare time. The concept is ubiquitous: it's used in business (reports and presentations), science and technology, newspapers, magazines, even daily life: look at your cellphone, it has a battery and signal indicator. I bet you can see at least ten examples of chart, map or timeline from the place where you seat (and that's without going to another website). The reason is obvious: we humans are much better in processing graphical then numerical data. There's high chance that someday you'll have to prepare a chart of some sort.&lt;br /&gt;&lt;br /&gt;Yet visualization is often misunderstood and applied poorly. Take this spreadsheet chart:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SwZ9Hl9mYpI/AAAAAAAAAEM/DRqr8fPz5ek/s1600/ch-bad1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5406145972107895442" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SwZ9Hl9mYpI/AAAAAAAAAEM/DRqr8fPz5ek/s400/ch-bad1.png" style="cursor: pointer; height: 272px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;The standard template has too much clutter. Notice the grey background reducing contrast. That makes heavy grid lines necessary, but they're yet another form of visual clutter. It also looks dull. Most people who want to make their graphs more interesting does it by applying 3D effects and gradients making  it even less readable.&lt;br /&gt;&lt;br /&gt;What's the right solution? If you need&lt;span style="font-weight: bold;"&gt; precision&lt;/span&gt; (e.g. in scientific p&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/SwZ7pONevNI/AAAAAAAAAD0/mc6jiNNoyiM/s1600/ch-good.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5406144350824348882" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/SwZ7pONevNI/AAAAAAAAAD0/mc6jiNNoyiM/s400/ch-good.png" style="cursor: pointer; float: right; height: 284px; margin: 0pt 0pt 10px 10px; width: 400px;" /&gt;&lt;/a&gt;aper), follow this simple guidelines:&lt;br /&gt;- Reduce clutter. Remove backrounds, borders, as much grid as you can - imagine you're trying to save on ink.&lt;br /&gt;- In bar graph, try spacing the bars and keeping them close, see what works best. There's no rule.&lt;br /&gt;- If you only have one series of data, remove legend. If you have more, consider labeling directly on the graph.&lt;br /&gt;- Colors should mean something. Use it to distinguish one series from the other or the outllier from the rest of samples. Or use color intensity to show value. Don't ever make every sample in a series a different color for no reason.&lt;br /&gt;Surprisingly, it'll look better and definitely it'll make easier to compare values.&lt;br /&gt;&lt;br /&gt;The example here is only about 10 seconds of clicking away from the default. Although it's far from perfect, it's already much better.&lt;br /&gt;&lt;br /&gt;If you value &lt;span style="font-weight: bold;"&gt;aesthetics&lt;/span&gt; more than precision (e.g. for a newspaper or advertising), use anything but the standard template. Consider infographics: want to chart the real estate market? Use the drawing of the house for you&lt;a href="http://4.bp.blogspot.com/_I5KwSSiP_FY/SwZ-aSbGTlI/AAAAAAAAAEc/q9jHzsnRPIU/s1600/ch-good2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5406147392792055378" src="http://4.bp.blogspot.com/_I5KwSSiP_FY/SwZ-aSbGTlI/AAAAAAAAAEc/q9jHzsnRPIU/s400/ch-good2.png" style="cursor: pointer; float: left; height: 115px; width: 400px;" /&gt;&lt;/a&gt;r graph. Or use maps, possibly with satellite imaging or in 3D isometric view. The further you go from the old, boring chart, the better it'll look. But don't overdo it or the readers won't grasp your idea. There's a similar problem in science - some forms of visualization work great for people with the right background (e.g. in statistics), but others won't understand them at all.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Want to know more?&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.juiceanalytics.com/writing/"&gt;www.juiceanalytics.com/writing/&lt;/a&gt; - Great practical advice on designing graphs, presentation and dashboards.&lt;br /&gt;&lt;a href="http://www.visualcomplexity.com/vc/"&gt;www.visualcomplexity.com/vc/&lt;/a&gt; - Lots of stunning examples.&lt;br /&gt;&lt;a href="http://www.edwardtufte.com/tufte/"&gt;www.edwardtufte.com/tufte/&lt;/a&gt; - A renowned expert on data vizualition, inventor of &lt;a href="http://en.wikipedia.org/wiki/Sparkline"&gt;sparkline&lt;/a&gt;, author of many articles and books.&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/3540330364"&gt;Handbook of Data Visualization &lt;/a&gt;- More on the scientific side, but first chapters offer loads of general knowledge.&lt;br /&gt;&lt;a href="http://oreilly.com/catalog/9780596514556"&gt;Visualizing data&lt;/a&gt; - Next one on my reading list (or more likely glancing through list). Judging by the table of contents, that should have been my starting point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2712714585157808378?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2712714585157808378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/data-visualization-101.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2712714585157808378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2712714585157808378'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/data-visualization-101.html' title='Data visualization 101'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_I5KwSSiP_FY/SwZ9Hl9mYpI/AAAAAAAAAEM/DRqr8fPz5ek/s72-c/ch-bad1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6044207987858327698</id><published>2009-11-16T15:18:00.002+01:00</published><updated>2009-11-16T15:30:17.888+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>VirtualBox 3.1.0 adds live migration</title><content type='html'>New VirtualBox, now in beta, adds live migration (and &lt;a href="http://forums.virtualbox.org/viewtopic.php?f=15&amp;amp;t=24458"&gt;calls it teleportation&lt;/a&gt; for no apparent reason). This is standard feature for server hypervisors like Xen and KVM, but something new for desktop products. Correct me if I'm wrong, but I think VirtualBox is the first. This might not be that useful for workstation as it is for servers, but I can see some uses: collaboration on developing a system or moving the system from development to production.&lt;br /&gt;&lt;br /&gt;Other important feature in this release is redesigned snapshot system. It is now possible to &lt;span style="font-weight: bold;"&gt;restore to any snapshot&lt;/span&gt; instead of only the last one. This, on the other hand, is really useful. I have a Windows guest and instead of reinstalling once every few months, I just revert to a last good state. Saves me hours on installing software, updating and configuring.&lt;br /&gt;&lt;br /&gt;There's also improved hardware support, including &lt;span style="font-weight: bold;"&gt;2D acceleration&lt;/span&gt; for Windows guests. Note it's a beta release with some known problems (ironically, in the area of snapshots). I've just upgraded my setup (Linux 64-bit hosts without VT, Windows XP guest) and it works fine, your mileage may vary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6044207987858327698?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6044207987858327698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/virtualbox-310-adds-live-migration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6044207987858327698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6044207987858327698'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/virtualbox-310-adds-live-migration.html' title='VirtualBox 3.1.0 adds live migration'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3947993362706515830</id><published>2009-11-10T10:51:00.000+01:00</published><updated>2009-11-10T10:52:00.560+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><title type='text'>Eucalyptus 1.6.1 available</title><content type='html'>New release of Eucayptus got some interesting features. At last it's possible to manage a cloud consisting of multiple clusters. Support for dynamic DNS and monitoring tools Nagios and Ganglia was added. It also fixes numerous bugs and promises better stability. &lt;a href="http://open.eucalyptus.com/wiki/ChangeLog_v1.6"&gt;See changelog&lt;/a&gt; for more details. I didn't have time to upgrade my setup yet (I'd have to upgrade Debian first), but it sure looks interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3947993362706515830?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3947993362706515830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/eucalyptus-161-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3947993362706515830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3947993362706515830'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/eucalyptus-161-available.html' title='Eucalyptus 1.6.1 available'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1315997172341030111</id><published>2009-11-05T21:17:00.003+01:00</published><updated>2009-11-05T21:20:49.191+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer opensourced</title><content type='html'>I've already &lt;a href="http://virtually-a-machine.blogspot.com/2009/10/citrix-has-just-announced-its-going-to.html"&gt;written about Citrix opensourcing XenServer&lt;/a&gt;. The &lt;a href="http://blog.xen.org/index.php/2009/11/03/xapi-toolstack-release-details/"&gt;source code for XAPI is now released&lt;/a&gt;. Xen developers are working on providing better interoperability between both versions of Xen. Join if you can! See &lt;a href="http://wiki.xensource.com/xenwiki/XAPI_Developer_Guide"&gt;Developer's Guide&lt;/a&gt; and XAPI &lt;a href="http://lists.xensource.com/archives/html/xen-api/2009-11/threads.html"&gt;mailing list&lt;/a&gt; for details.&lt;br /&gt;&lt;br /&gt;I look forward for the day when I can ditch Xen Center and use libvirt-based software to manage all virtualization platforms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1315997172341030111?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1315997172341030111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/xenserver-opensourced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1315997172341030111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1315997172341030111'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/xenserver-opensourced.html' title='XenServer opensourced'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2148961872771726325</id><published>2009-11-01T17:32:00.004+01:00</published><updated>2010-08-12T20:00:59.466+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><title type='text'>Ant for system administration</title><content type='html'>Ant is a popular build tool, especially for Java development. What most people don't realize is it can be used to automate other tasks. Lately I started using it for system administration purposes. Don't get me wrong, I'm not saying it should replace good old fashioned scripts. On the contrary, I estimate that I use simple bash scripts for 90% of the tasks, real languages like Python or PHP for 9%, remaining 1% is everything else, including Ant. And even this jobs I could do with other tool. But if a 10-line buildfile does the job of 100-line Python script, I'll go with the simpler solution.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 180%; font-weight: bold;"&gt;What sysadmin tasks can you do with Ant?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ant has support for:&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;File operations&lt;/span&gt;, like copy, delete, move, mkdir, chown, chmod. Useful as a part of a more complicated task. If you only need file operations, shell script is way easier to write.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Archives:&lt;/span&gt; usual like tar, gzip, bzip2, zip and few others, including rpm.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Network-related:&lt;/span&gt; sending email, remote execution with SSH and telnet, FTP and SCP client, HTTP client (with ant-contrib)&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Revision control systems:&lt;/span&gt; CVS built-in, many (if not all) others with a plugin&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 180%; font-weight: bold;"&gt;When I use Ant?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found two tasks for which Ant excels. Both are often needed in modern environments - with virtualization and cloud platforms in place, one administrator often controls hundreds of systems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Uploading files to remote systems&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ant supports FTP and SCP. Nothing special, except it's easy to send only modifled files. Obviously with ordinary script you can read the timestamps, store them somewhere and compare them yourself, but it's more tedious. Here's an FTP example:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;"&gt;&lt;span style="color: #004a43;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #004a43;"&gt;xml&lt;/span&gt; &lt;span style="color: #004a43;"&gt;version&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #008c00;"&gt;"1.0"&lt;/span&gt; &lt;span style="color: #004a43;"&gt;encoding&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"UTF-8"&lt;/span&gt;&lt;span style="color: #004a43;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;project&lt;/span&gt; &lt;span style="color: #274796;"&gt;name&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;whatever&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;default&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;ftpexample&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt;  &lt;span style="color: #274796;"&gt;name&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;ftpexample&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;ftp&lt;/span&gt; &lt;span style="color: #274796;"&gt;server&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;www.example.com&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;userid&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;admin&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;password&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;YourVerySecretPassword&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;passive&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;depends&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;verbose&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;remotedir&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;/wherever/I/want &lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;binary&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;fileset&lt;/span&gt; &lt;span style="color: #274796;"&gt;dir&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;/source/directory&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;defaultexcludes&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;fileset&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;ftp&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;project&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Let's go through the example, skipping obvious lines.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;depends="yes"&lt;/span&gt;  - only send modifiles files. Yes, it's that simple.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;verbose="yes"&lt;/span&gt; - print names of the transfered files.&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;defaultexcludes="yes"&lt;/span&gt; - exclude backups (filenames ending with ~), CVS and SVN directories and the like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Running remote commands on multiple systems&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ant can run tasks in parallel and track dependencies between tasks (i.e. before running task2, make sure task1 was finished). Ant can run commands remotely with SSH or telnet. Combine the two and you get a simple way of writing a distributed glue code. As an example, we'll check numbers of messages in Postfix queue on several servers.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;"&gt;&lt;span style="color: #004a43;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #004a43;"&gt;xml&lt;/span&gt; &lt;span style="color: #004a43;"&gt;version&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #008c00;"&gt;"1.0"&lt;/span&gt; &lt;span style="color: #004a43;"&gt;encoding&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"UTF-8"&lt;/span&gt;&lt;span style="color: #004a43;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;project&lt;/span&gt; &lt;span style="color: #274796;"&gt;name&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;remoteexample&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;default&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;all&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt;  &lt;span style="color: #274796;"&gt;name&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;checkservers&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;parallel&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;sshexec&lt;/span&gt; &lt;span style="color: #274796;"&gt;host&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;server1.example.com&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;username&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;exampleuser&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;trust&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;keyfile&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;${user.home}/.ssh/id_rsa&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;outputproperty&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;out1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;command&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;find /var/spool/postfix/deferred  -type f -print | wc -l&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;sshexec&lt;/span&gt; &lt;span style="color: #274796;"&gt;host&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;server2.example.com&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;username&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;exampleuser&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;trust&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;yes&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;keyfile&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;${user.home}/.ssh/id_rsa&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;outputproperty&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;out2&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #274796;"&gt;command&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;find /var/spool/postfix/deferred  -type f -print | wc -l&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;parallel&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt; &lt;span style="color: #274796;"&gt;name&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;all&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #274796;"&gt;depends&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;checkservers&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;echo&lt;/span&gt; &lt;span style="color: #274796;"&gt;message&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;${out1}&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;echo&lt;/span&gt; &lt;span style="color: #274796;"&gt;message&lt;/span&gt;&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;${out2}&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #a65700;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;target&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #a65700;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #5f5035;"&gt;project&lt;/span&gt;&lt;span style="color: #a65700;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Two caveats: &lt;/span&gt;&lt;br /&gt;- Ant has built-in support for SSH. If you run it on Linux, it will not follow your usual configuration in ~/.ssh. You need to provide all required parameters in the buildfile, like the path to keyfile in the example above.&lt;br /&gt;- If you run the above example, you'll notice the output looks like this:&lt;br /&gt;&lt;blockquote&gt;all:&lt;br /&gt;[echo] find /var/spool/postfix/deferred  -type f -print | wc -l : 2&lt;br /&gt;[echo] find /var/spool/postfix/deferred  -type f -print | wc -l : 0&lt;/blockquote&gt;&lt;br /&gt;The command you ran is a part of the outputproperty. It's a known bug of Ant, local exec doesn't behave that way. It was fixed lately, but the new build is not available yet. If you want to process the return value (e.g. sum the outputs), you either have to filter the command out or compile Ant from subversion. Tried both ways and filtering in the shell script is the easier one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;The downsides of Ant&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;project default="all" name="remoteexample"&gt;&lt;target name="checkservers"&gt;&lt;parallel&gt;&lt;target depends="checkservers" name="all"&gt;Ant requires Java. Not a problem if you need it anyway, but JRE is a little too big to install just for one or two scripts.&lt;/target&gt;&lt;/parallel&gt;&lt;/target&gt;&lt;/project&gt;&lt;/li&gt;&lt;li&gt;&lt;project default="all" name="remoteexample"&gt;&lt;target name="checkservers"&gt;&lt;parallel&gt;&lt;target depends="checkservers" name="all"&gt;Ant buildfile.xml has a completely different syntax than a script. You don't write a sequence of commands. Instead, you declare what you want to achieve and what it requires using simple XML syntax. Still, it only takes an hour or two to grasp the concept and start writing buildfiles.&lt;/target&gt;&lt;/parallel&gt;&lt;/target&gt;&lt;/project&gt;&lt;/li&gt;&lt;/ul&gt;&lt;project default="all" name="remoteexample"&gt;&lt;target name="checkservers"&gt;&lt;parallel&gt;&lt;target depends="checkservers" name="all"&gt;&lt;br /&gt;&lt;/target&gt;&lt;/parallel&gt;&lt;/target&gt;&lt;/project&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2148961872771726325?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2148961872771726325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/ant-for-system-administration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2148961872771726325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2148961872771726325'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/11/ant-for-system-administration.html' title='Ant for system administration'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6085888033250600643</id><published>2009-10-28T21:36:00.005+01:00</published><updated>2010-08-12T20:02:29.858+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Shrink your logs with 7zip</title><content type='html'>A busy server generates gigabytes of logfiles. Law requires to store some of them for years. I was once hired as a consultant by a company operating several Linux servers. One of my task was to increase capacity of a log archive. I proposed to shrink logfiles instead and saved the company the cost of extra disk and a few hours of downtime.&lt;br /&gt;&lt;br /&gt;Logs are very redundant, which means they can be compressed efficiently. Standard Linux way is to use logrotate, which compresses old logs with gzip. For example, my typical daily Squid access.log turns from 2 GB into mere 50 MB. Can we do even better?&lt;br /&gt;&lt;br /&gt;With 7zip we can. This useful tool supports several archive formats: zip, arj, rar and it's own, extremaly efficient LZMA algorithm. The downside: it's also painfuly slow and much more CPU intensive. Quick comparison on a small 52 MB sample of logs, using maximum compression setting in 7zip:&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;br /&gt;&lt;/th&gt;&lt;th&gt;gzip&lt;/th&gt;&lt;th&gt;7zip&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;archive size:&lt;/td&gt;&lt;td&gt;4.5MB  &lt;/td&gt;&lt;td&gt;2.5MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;compress time:&lt;/td&gt;&lt;td&gt;1.8s &lt;/td&gt;&lt;td&gt;38.4s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;decompress time:&lt;/td&gt;&lt;td&gt;0.7s &lt;/td&gt;&lt;td&gt;0.9s&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Over 20x slower! That explains why 7zip is not used for on-the-fly compression. But old logfiles are only written once and cutting the storage requirements almost in half is worth the hassle.&lt;br /&gt;&lt;br /&gt;In the setup I got, every server rotated the logs daily and kept 7 days of gzipped files. Once a week, a cron job downloads them to a central log archive (not a separate machine, just some space on one of the servers), to a directory named by the date.  Here's  /etc/cron.weekly/log-archive:&lt;br /&gt;&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;"&gt;&lt;span style="color: dimgrey;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; &lt;span style="color: #40015a;"&gt;/home/log&lt;/span&gt;-archive&lt;br /&gt;BASEDIR&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: black;"&gt;`date &lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: #0000e6;"&gt;'+%Y.%m.%d'&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: black;"&gt;`&lt;/span&gt;&lt;br /&gt;mkdir $BASEDIR&lt;br /&gt;mkdir $BASEDIR&lt;span style="color: #40015a;"&gt;/server1&lt;/span&gt;&lt;br /&gt;mkdir $BASEDIR&lt;span style="color: #40015a;"&gt;/server2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: dimgrey;"&gt;# put more servers here and use real names&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; $BASEDIR&lt;span style="color: #40015a;"&gt;/server1&lt;/span&gt;&lt;br /&gt;rsync  &lt;span style="color: #44aadd;"&gt;-a&lt;/span&gt; -R &lt;span style="color: #44aadd;"&gt;-e&lt;/span&gt; ssh log@server1&lt;span style="color: #808030;"&gt;:&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;'`find /var/log -name "*.gz"`'&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; server2&lt;br /&gt;rsync  &lt;span style="color: #44aadd;"&gt;-a&lt;/span&gt; -R &lt;span style="color: #44aadd;"&gt;-e&lt;/span&gt; ssh log@server2&lt;span style="color: #808030;"&gt;:&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;'`find /var/log -name "*.gz"`'&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: dimgrey;"&gt;# more servers here...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://www.tumus.com/linux/log-download"&gt;[download script]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The script uses SSH key-based authentication for password-less login. User "log" on each server has read privileges to all logfiles. You can use root, but this way is safer.&lt;br /&gt;Now, let's process the logs. All we need is a another simple script:&lt;br /&gt;&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;"&gt;&lt;span style="color: dimgrey;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: dimgrey;"&gt;# decompress gzipped files and compresses them again with 7z&lt;/span&gt;&lt;br /&gt;&lt;span style="color: dimgrey;"&gt;# set to maximum compression&lt;/span&gt;&lt;br /&gt;&lt;span style="color: dimgrey;"&gt;# recursively recompresses directory tree&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;function&lt;/span&gt; recompress_file&lt;span style="color: purple;"&gt;(&lt;/span&gt;&lt;span style="color: purple;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: purple;"&gt;{&lt;/span&gt;&lt;br /&gt;filename&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: black;"&gt;`basename &lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: black;"&gt; &lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: #0000e6;"&gt;'.gz'&lt;/span&gt;&lt;span style="-moz-background-inline-policy: continuous; background: none repeat scroll 0% 0% rgb(255, 255, 232); color: black;"&gt;`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"    &lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$filename&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;nice &lt;span style="color: #44aadd;"&gt;-n&lt;/span&gt; &lt;span style="color: #008c00;"&gt;19&lt;/span&gt; gunzip &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;nice &lt;span style="color: #44aadd;"&gt;-n&lt;/span&gt; &lt;span style="color: #008c00;"&gt;19&lt;/span&gt; 7z a -bd -mx&lt;span style="color: #808030;"&gt;=&lt;/span&gt;&lt;span style="color: #008c00;"&gt;9&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$filename&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;.7z"&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$filename&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;  &lt;span style="color: #e34adc;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #40015a;"&gt;/dev/null&lt;/span&gt; &amp;amp;amp&lt;span style="color: purple;"&gt;;&lt;/span&gt;&amp;amp;amp&lt;span style="color: purple;"&gt;;&lt;/span&gt; rm &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$filename&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: purple;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;function&lt;/span&gt; recompress_dir&lt;span style="color: purple;"&gt;(&lt;/span&gt;&lt;span style="color: purple;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: purple;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"in &lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: maroon; font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: #808030;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;ext&lt;span style="color: #808030;"&gt;=&lt;/span&gt;${i&lt;span style="color: dimgrey;"&gt;##*.}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #808030;"&gt;[&lt;/span&gt; &lt;span style="color: #44aadd;"&gt;-d&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$i&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;recompress_dir &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$i&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;elif&lt;/span&gt; &lt;span style="color: #808030;"&gt;[&lt;/span&gt; $ext &lt;span style="color: #44aadd;"&gt;=&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;'gz'&lt;/span&gt; &lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;recompress_file &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$i&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;cd&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #808030;"&gt;[&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;!&lt;/span&gt; &lt;span style="color: #44aadd;"&gt;-d&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt; &lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"Usage: &lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$0&lt;/span&gt;&lt;span style="color: #0000e6;"&gt; directory_to_recompress"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: #008c00;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;recompress_dir &lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://www.tumus.com/linux/log-recompress"&gt;[download script]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's see how it works. Function recompress_dir iterates over all entries in the specified directory. If a given entry is a subdirectory, it recursively calls itself on it. You've probably heard it's better to avoid recursion in bash, but directory traversal is an exception - it works correctly (provided your directory tree is sane; you can check recursion level if you want to be extra safe) and greatly simplifies the script. For all files with extension .gz (multiple extensions like apache.log.2.gz work fine, only the last one counts), it calls recompress_file. This function is even simpler: gunzip, 7zip, delete uncompressed file. I used quotes around arguments everywhere in case a filename containts spaces.&lt;br /&gt;&lt;br /&gt;Parameters for 7z:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;a&lt;/span&gt; - Add files to archive. Only one file in our case, but 7zip works like zip or rar, multiple files are possible.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;-bd&lt;/span&gt; - Disable percentage indicator. We redirect output to /dev/null anyway.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;-mx=9&lt;/span&gt; - Sets compression level to maximum. Lower levels are faster, but we're here for maximum storage savings.&lt;/li&gt;&lt;/ul&gt;Compression algorithm is not set, so default LZMA will be used. I also set 7z to the lowest possible priority with "nice -n 19". I don't care how long the job takes, as long as it's less than a week when the next one starts. And it's better to leave CPU to other processes. Incidentally, 7zip supports parallel processing. With LZMA it uses 2 threads on an SMP system. My server had 4 CPU cores, which left half of the processing power to other jobs (like, serving websites and stuff).&lt;br /&gt;&lt;br /&gt;Save this file as /usr/local/sbin/log-recompress. Than, to automatically process new logs, append one line to /etc/cron.weekly/log-archive:&lt;br /&gt;&lt;blockquote&gt;/usr/local/sbin/log-recompress /home/log-archive/$BASEDIR&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;What about the old logs? I created several files like this:&lt;br /&gt;&lt;blockquote&gt;cd /home/log-archive/ &amp;amp;&amp;amp; log-recompress 2009.02.11 &amp;amp;&amp;amp; log-recompress 2009.02.18 &amp;amp;&amp;amp; log-recompress 2009.02.25&lt;/blockquote&gt;&lt;br /&gt;Saved them as log-job1, log-job2 etc. Next, I used at to run them for a few nights in the row:&lt;br /&gt;&lt;blockquote&gt;at -f log-job1 23:00 24 Sep&lt;br /&gt;at -f log-job2 23:00 25 Sep&lt;br /&gt;at -f log-job3 23:00 26 Sep&lt;br /&gt;...&lt;/blockquote&gt;&lt;br /&gt;With nice -n 19 I could probably run them any time, but just to be sure I've chosen low utilization hours. Each night the server processed about 6 GB of logs shrinking them by 2.5 GB. In the end I got enough disk space for about 2 years worth of logfiles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6085888033250600643?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6085888033250600643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/shrink-your-logs-with-7zip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6085888033250600643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6085888033250600643'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/shrink-your-logs-with-7zip.html' title='Shrink your logs with 7zip'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-2123285255746000885</id><published>2009-10-27T16:56:00.003+01:00</published><updated>2010-08-12T20:08:51.627+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>EC2 news: MySQL service, High-Memory instances</title><content type='html'>Several annoucements from Amazon&lt;br /&gt;&lt;br /&gt;Since November 1st, all types of EC2 instances will be slightly cheaper. For example, small Linux VM dropped down from 10 to 8.5 cents per hour. Only the largest Windows instance is now above $1.&lt;br /&gt;&lt;br /&gt;Amazon also introduced two new instance types called &lt;span style="font-weight: bold;"&gt;High-Memory:&lt;/span&gt;  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Double Extra Large:&lt;/span&gt; 34.2 GB memory, 13 ECU (4 virtual cores with 3.25 ECU each), 850 GB storage, 64-bit platform&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Quadruple Extra Large:&lt;/span&gt; 68.4 GB memory, 26 ECU (8 virtual cores with 3.25 ECU each), 1690 GB storage, 64-bit platform.&lt;/li&gt;&lt;/ul&gt;Pretty impressive. But they need a new naming scheme or in a few years we'll get "Enormously Extra 64x Huge".&lt;br /&gt;&lt;br /&gt;A new service made it into a public beta: &lt;span style="font-weight: bold;"&gt;Relational Database Service&lt;/span&gt;. Basically, it's an EC2 instance with preconfigured MySQL database. Notable features include scalability and snapshoting. Until now, you had a choice of running your own MySQL on EC2 instance (with all administrative burden) or using Amazon SimpleDB, incompatible with most existing apps. RDS made it easier to quickly deploy a LAMP application. For long-term use, you still should probably configure your own database server. RDS instances are more expensive than ordinary VMs and you're also billed for data transfer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-2123285255746000885?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/2123285255746000885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/ec2-news-mysql-service-high-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2123285255746000885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/2123285255746000885'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/ec2-news-mysql-service-high-memory.html' title='EC2 news: MySQL service, High-Memory instances'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8931384867569356164</id><published>2009-10-24T13:33:00.003+02:00</published><updated>2009-10-24T13:38:13.983+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer and Xen again</title><content type='html'>Citrix has just announced it's going to completely &lt;a href="http://www.virtualization.info/2009/10/citrix-to-fully-open-source-xenserver.html"&gt;open source XenServer&lt;/a&gt;. Not only the hypervisor, which shares most code with normal Xen anyway, but also administrator's console.&lt;br /&gt;&lt;br /&gt;That's good news, but I'm still not convinced XenServer is better than ordinary Xen for my use. What I particularly don't like is that it uses completely different API and administration tools. Xen has &lt;span style="font-weight: bold;"&gt;xm, xend&lt;/span&gt; and high-level tools built on top of them. XenServer has &lt;span style="font-weight: bold;"&gt;xe&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;XAPI&lt;/span&gt;. Neither is clearly better or worse than the other, the problem is they're different. Not only it means you need to learn two sets of commands if you want to manage both, it also means that XenServer won't work with &lt;a href="http://virtually-a-machine.blogspot.com/search/label/eucalyptus"&gt;Eucalyptus&lt;/a&gt; and the like.&lt;br /&gt;&lt;br /&gt;Simple example - few days ago I spent way too much time figuring out how to connect to virtual machines's console in XenServer without using XenCenter. With xen, it's as simple as "xen console [vm number]". With XenServer, the procedure takes 3 steps and is never mentioned in the docs. Citrix want you to use XenCenter for everything, if you just physically sit at the server and don't have any Windows machine nearby - well, sucks to be you. Luckily, I was able to find answer in the forums:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. List your virtual machines to get VM id:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;xe vm-list&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;2. Match your VM id with domain id&lt;/span&gt; (why XenServer uses two types of ids, one of them painfully long, remains a mystery):&lt;br /&gt;&lt;blockquote&gt;list_domains&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;3. Run the console&lt;/span&gt;, you have to use full path:&lt;br /&gt;&lt;blockquote&gt;/usr/lib/xen/bin/xenconsole [dom_id]&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8931384867569356164?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8931384867569356164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/citrix-has-just-announced-its-going-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8931384867569356164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8931384867569356164'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/citrix-has-just-announced-its-going-to.html' title='XenServer and Xen again'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1865961782928191761</id><published>2009-10-21T12:16:00.008+02:00</published><updated>2009-12-02T11:28:27.594+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>Run Windows on Linux with VirtualBox</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7owP66xbI/AAAAAAAAADc/LqA9aEidxzI/s1600-h/vbox2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 295px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7owP66xbI/AAAAAAAAADc/LqA9aEidxzI/s400/vbox2.png" alt="" id="BLOGGER_PHOTO_ID_5395005319241450930" border="0" /&gt;&lt;/a&gt;In my previous &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/xen-vs-kvm-and-rest-of-world.html"&gt;comparison of virtualization platforms&lt;/a&gt; I wrote I prefered VMware Player for home use. Not any more. Few weeks ago I installed the newest &lt;a class="zem_slink" href="http://www.virtualbox.org/" title="VirtualBox" rel="homepage"&gt;VirtualBox&lt;/a&gt; on my Ubuntu laptop. Turned out it now provides the same ease of use and performance, stability seems even a bit better (although I didn't have much problems with VMware either). Unlike VMware Player, it has a built in support for creating VMs. You can also save snapshots and restore the VM to previous state - very useful with Windows VMs and test/development environments. What's more, VirtualBox is open source. I'm quite pragmatic, given a choice of a better closed source product and inferior but free alternative, I'd go for closed source. But if all other metrics are equal, open source is a nice bonus.&lt;br /&gt;&lt;br /&gt;Installing VirtualBox on Ubuntu takes only a few minutes. Hardware virtualization support is not required, but if it's available, your VM will run much faster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;0. Uninstall VMware&lt;/span&gt; (skip this step if you don't have it)&lt;br /&gt;I didn't need VMware anymore, so I removed it with:&lt;blockquote&gt;sudo vmware-uninstall &lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;1. Add apt re&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;pository for Virtual Box. &lt;/span&gt;&lt;br /&gt;That way, you'll get automatic upgrades in future.&lt;blockquote&gt;wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -&lt;br /&gt;sudo echo 'deb http://download.virtualbox.org/virtualbox/debian jaunty non-free' &gt; /etc/apt/sources.list.d/virtualbox.list&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;2. Install packages&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;sudo aptitude update&lt;br /&gt;sudo aptitude install virtualbox-3.0 dkms&lt;/blockquote&gt;That will also install a C compiler and a  whole bunch of packages related to kernel development, unless you already had them. They are necessary to compile Virtual Box kernel modules. Don't worry, it happens automatically.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Add yourself to vboxusers group&lt;/span&gt;&lt;br /&gt;Users who want to run Virtual Box have to be in vboxusers group. Type the command:&lt;blockquote&gt;sudo adduser igor vboxusers&lt;/blockquote&gt;replacing "igor" with your username.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Run Virtu&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;alBox&lt;/span&gt;&lt;br /&gt;You can either type VirtualBox in your terminal or find it in the system menu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Click "New"&lt;/span&gt;&lt;br /&gt;Set some options. Give your machine large RAM, but leave enough for your host system. Another important option is &lt;span style="font-weight: bold;"&gt;storage type&lt;/span&gt;. You have a choice between:&lt;br /&gt;- Fixed size: if you choose 10 GB, it will occupy 10 GB even if most of the disk drive is empty.&lt;br /&gt;- Dynamically expanding: will save disk space, but make your VM slower.&lt;br /&gt;I only use this VM occasionally, so I went with dynamic.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7jjSHoV1I/AAAAAAAAACU/W6HPWitDpG4/s1600-h/vbox3.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 196px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7jjSHoV1I/AAAAAAAAACU/W6HPWitDpG4/s200/vbox3.png" alt="" id="BLOGGER_PHOTO_ID_5394999598935201618" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7lRaFhUlI/AAAAAAAAACk/J7GQsAqPWl0/s1600-h/vbox4.png"&gt;&lt;img style="cursor: pointer; width: 189px; height: 200px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7lRaFhUlI/AAAAAAAAACk/J7GQsAqPWl0/s200/vbox4.png" alt="" id="BLOGGER_PHOTO_ID_5395001490859446866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;6. Configure sound&lt;/span&gt;&lt;br /&gt;For Ubuntu host, the best choice is PulseAudio.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7kmfWZImI/AAAAAAAAACc/HF3OP-1mo_I/s1600-h/vbox5.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 152px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7kmfWZImI/AAAAAAAAACc/HF3OP-1mo_I/s200/vbox5.png" alt="" id="BLOGGER_PHOTO_ID_5395000753538015842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. Install Windows&lt;/span&gt;&lt;br /&gt;Put your Windows CD in the drive. Run your VM, then from Devices menu, select Mount CD/DVD-ROM / Host Drive. Another option is to use .iso file (CD image).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7mPmLkjRI/AAAAAAAAACs/fvKK9iU0a_I/s1600-h/vbox6.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 131px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7mPmLkjRI/AAAAAAAAACs/fvKK9iU0a_I/s200/vbox6.jpg" alt="" id="BLOGGER_PHOTO_ID_5395002559257939218" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I5KwSSiP_FY/St7mPobiHDI/AAAAAAAAAC0/BirZaqinkM8/s1600-h/vbox7.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 132px;" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/St7mPobiHDI/AAAAAAAAAC0/BirZaqinkM8/s200/vbox7.png" alt="" id="BLOGGER_PHOTO_ID_5395002559861759026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8. Activate Windows&lt;/span&gt;&lt;br /&gt;You do have a genuine copy, right?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7mP3dygHI/AAAAAAAAAC8/0qSP3y14RFA/s1600-h/vbox10.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 169px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7mP3dygHI/AAAAAAAAAC8/0qSP3y14RFA/s200/vbox10.png" alt="" id="BLOGGER_PHOTO_ID_5395002563897753714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9. Install Guest Additions&lt;/span&gt;&lt;br /&gt;VirtualBox comes with a set of drivers and utilities that make your VM run much faster. They also provide some convenience features:&lt;br /&gt;- your mouse automatically switches between host and guest system,&lt;br /&gt;- the clipboard is shared,&lt;br /&gt;- full screen and seamless mode.&lt;br /&gt;I highly recommend installing them. You'll get a warning the driver is not signed by Microsoft, but you can safely ignore it.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7mQJTVm8I/AAAAAAAAADE/AmmKP5lML6M/s1600-h/vbox11.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 198px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/St7mQJTVm8I/AAAAAAAAADE/AmmKP5lML6M/s200/vbox11.png" alt="" id="BLOGGER_PHOTO_ID_5395002568685755330" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7mQdWxqvI/AAAAAAAAADM/-g-2nBSHlVA/s1600-h/vbox12.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 162px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/St7mQdWxqvI/AAAAAAAAADM/-g-2nBSHlVA/s200/vbox12.png" alt="" id="BLOGGER_PHOTO_ID_5395002574068886258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset class="zemanta-related"&gt;&lt;legend class="zemanta-related-title"&gt;Related articles by Zemanta&lt;/legend&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://jkontherun.com/2009/07/01/multiple-os-software-virtualbox/"&gt;Improved VirtualBox 3.0 Runs Multiple Operating Systems Simultaneously&lt;/a&gt; (jkontherun.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.theregister.co.uk/2009/10/19/sun_virtualbox_308/"&gt;Sun tunes its VirtualBox&lt;/a&gt; (theregister.co.uk)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://gizmodo.com/5383982/how-to-virtualize-any-os-for-free"&gt;How To: Virtualize Any OS For Free [How To]&lt;/a&gt; (gizmodo.com)&lt;/li&gt;&lt;/ul&gt;&lt;/fieldset&gt;  &lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/38c5e54c-ccbc-4a8a-9eac-502577c3c8c5/" title="Reblog this post [with Zemanta]"&gt;&lt;img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=38c5e54c-ccbc-4a8a-9eac-502577c3c8c5" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1865961782928191761?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1865961782928191761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/run-windows-on-linux-with-virtualbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1865961782928191761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1865961782928191761'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/run-windows-on-linux-with-virtualbox.html' title='Run Windows on Linux with VirtualBox'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/St7owP66xbI/AAAAAAAAADc/LqA9aEidxzI/s72-c/vbox2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4257463029277455415</id><published>2009-10-21T12:08:00.005+02:00</published><updated>2010-08-12T20:07:42.536+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Zemanta</title><content type='html'>&lt;div class="zemanta-img" style="display: block; float: right; margin: 1em; width: 250px;"&gt;&lt;a href="http://www.flickr.com/photos/79989800@N00/2516113621"&gt;&lt;img alt="Blog better using Zemanta" src="http://farm3.static.flickr.com/2354/2516113621_7b86f4fc75_m.jpg" style="border: medium none; display: block;" /&gt;&lt;/a&gt;&lt;span class="zemanta-img-attribution"&gt;Image by &lt;a href="http://www.flickr.com/photos/79989800@N00/2516113621"&gt;chucks&lt;/a&gt; via Flickr&lt;/span&gt;&lt;/div&gt;I've just installed &lt;a class="zem_slink" href="http://www.zemanta.com/" rel="homepage" title="Zemanta"&gt;Zemanta&lt;/a&gt;: a Firefox extensions that aids blog posting by automatically finding relevant contents: images, related articles etc. I'll give it a try for a few days and see if it's useful. I suppose with blog like mine - highly technical and specialized - it's relatively easy to decide what's relevant. For the sake of experiment, I'll include some links from Zemanta in that very post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset class="zemanta-related"&gt;&lt;br /&gt;&lt;br /&gt;&lt;legend class="zemanta-related-title"&gt;Related articles by Zemanta&lt;/legend&gt;&lt;br /&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.netsetters.nl/?p=42"&gt;Zemanta, using shared data&lt;/a&gt; (netsetters.nl)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://retechworld.wordpress.com/2009/09/29/top-10-firefox-browser-add-ons/"&gt;Top 10 FireFox Browser Add-Ons&lt;/a&gt; (retechworld.wordpress.com)&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://restaurantsocialmedia.blogspot.com/2009/09/reblog-from-fohbohcom-testing-zemanta.html"&gt;reBlog from fohboh.com: Testing Zemanta to enhance your blogs - FohBoh&lt;/a&gt; (restaurantsocialmedia.blogspot.com)&lt;/li&gt;&lt;/ul&gt;&lt;/fieldset&gt;&lt;div class="zemanta-pixie" style="height: 15px; margin-top: 10px;"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/77150133-1bb9-46e7-8a88-238beeb41b82/" title="Reblog this post [with Zemanta]"&gt;&lt;img alt="Reblog this post [with Zemanta]" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=77150133-1bb9-46e7-8a88-238beeb41b82" style="border: medium none; float: right;" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4257463029277455415?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4257463029277455415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/zemanta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4257463029277455415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4257463029277455415'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/zemanta.html' title='Zemanta'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2354/2516113621_7b86f4fc75_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5976551705323888201</id><published>2009-10-07T16:54:00.003+02:00</published><updated>2010-08-12T20:07:16.434+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Hosted Xen</title><content type='html'>Xen usual mode of work is Type 1 or abre metal hypervisor - your computer boots into Xen, which then runs another operating system (usually Linux) into a first, specially privileged virtual machine. This is typical server way, it gives better security and performance, but it's harder to setup.&lt;br /&gt;&lt;br /&gt;Now you can also run an experimental version called Hosted Xen (HXEN for short). Currently it runs on Windows or MacOS X. You can download &lt;a href="http://www.xen.org/download/HostedXen/release/hxen-091005-src.tar.bz2"&gt;source&lt;/a&gt; and &lt;a href="http://www.xen.org/download/HostedXen/release/hxen-091005-x86.tar.bz2"&gt;binary&lt;/a&gt; version  from the &lt;a href="http://www.xen.org/products/projects.html"&gt;Xen Projects&lt;/a&gt; website  and read the &lt;a href="http://blog.xen.org/index.php/2009/10/07/new-hosted-xen-release-available/"&gt;announcement on Xen Blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Why would you want a hosted Xen? One reason that comes to mind is using the same VM image and similar setup on your workstation for testing and on the server for production.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5976551705323888201?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5976551705323888201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/hosted-xen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5976551705323888201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5976551705323888201'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/hosted-xen.html' title='Hosted Xen'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-711235387636482612</id><published>2009-10-05T19:39:00.003+02:00</published><updated>2010-08-12T20:09:13.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='nvida'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Nexus: a GPU development environment from Nvidia</title><content type='html'>Another interesting &lt;a href="http://www.nvidia.com/object/pr_nexus_093009.html"&gt;announcement from Nvidia&lt;/a&gt;: a release of Nexus, integrated CPU/GPU software development environment for Visual Studio. Nexus is aimed both on game developers and programmers interested in general-purpose GPU computing. It contains several tools that help to analyze performance of both CPU and GPU programs:&lt;br /&gt;- source code debugger,&lt;br /&gt;- Nexus Analyzer, a tool that shows GPU and CPU events on a single timeline,&lt;br /&gt;- Nexus Graphic Inspector, tool that works on frames rendered with Direct3D.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FLQuqXhlx40&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FLQuqXhlx40&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GUI should be familiar to all Visual Studio programmers. I, not being one of them, won't have much use of Nexus, but I certainly welcome a new addidtion to a GPU computing toolbox. Nexus public beta will be &lt;a href="http://developer.nvidia.com/object/nexus.html"&gt;available for download&lt;/a&gt; in a few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-711235387636482612?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/711235387636482612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/nexus-gpu-development-environment-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/711235387636482612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/711235387636482612'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/10/nexus-gpu-development-environment-from.html' title='Nexus: a GPU development environment from Nvidia'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8921404219469844515</id><published>2009-09-29T17:23:00.007+02:00</published><updated>2009-09-30T10:33:47.727+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Open source Xen vs. XenServer</title><content type='html'>So, I &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/xen-vs-kvm-and-rest-of-world.html"&gt;already convinced&lt;/a&gt; you to choose Xen hypervisor for your servers. Great. Now you're wondering whether to choose a community-supported Xen or commercial (but free of charge) XenServer? The usual answer is: it depends.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Similarities&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Both projects share most of the code. Xen is developed as an open source project, but Citrix - the company behind the XenServer - is the main contributor. Once a year or so, the current version of Xen is bundled with some additional software, tested thouroghly and branded as XenServer. You should get the same performance from both versions. With open source Xen, you can run the bleeding-edge development version with more features, but doing so on a production server is a really bad idea. XenServer is a complete product, open source Xen is more like a component - only coupled with your Linux distribution and some additional software it will provide a full solution. In short - more work to set it up properly, but more flexibility.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;XenServer pros&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The best point of XenServer is &lt;span style="font-weight: bold;"&gt;extremally easy setup&lt;/span&gt;. You can have y&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SsItIVfLfbI/AAAAAAAAACE/DkvT9j4tPQM/s1600-h/xenserver.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 222px;" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SsItIVfLfbI/AAAAAAAAACE/DkvT9j4tPQM/s400/xenserver.png" alt="" id="BLOGGER_PHOTO_ID_5386917725518658994" border="0" /&gt;&lt;/a&gt;our software installed and virtual machines running in literally 10 minutes. Advanced features like live migration don't take much longer. All you have to do is:&lt;br /&gt;- download 2 CDs  - base installer and Linux guest support.&lt;br /&gt;- install them, following on-screen instructions, on as many servers as you like - the installer looks just like the one in RedHat&lt;br /&gt;- install XenCenter management console on a Windows(!) workstation,&lt;br /&gt;and you're ready to go. You can put all your servers in one group and manage them centrally. Live migration only requires a shared network storage. Spawning a new VM is just a few clicks, as is snapshoting, suspending/restoring and other typical administration tasks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;XenServer cons&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Starting with &lt;span style="font-weight: bold;"&gt;minor issues&lt;/span&gt;: XenCenter management console only works on Windows. Many sysadmins prefer to work with Linux, but there's usually a Windows machine somewhere, so it's not a big deal. Upgrade process is awkward -&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SsItbybNvNI/AAAAAAAAACM/m_H-DerqDUA/s1600-h/xencenter.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 268px;" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SsItbybNvNI/AAAAAAAAACM/m_H-DerqDUA/s400/xencenter.png" alt="" id="BLOGGER_PHOTO_ID_5386918059704171730" border="0" /&gt;&lt;/a&gt; you can only do it from XenCenter. I wish Citrix used something like Yum or apt-get, so it could be initiatied from the server or in many cases completely automated. On the plus side, it's easy to perform a rolling upgrade: migrate your VMs out of the box you're upgrading to other machines, upgrade it, restart, move machines back, empty another box, repeat until done. XenServer doesn't use xm tool familar to many sysadmins. It uses xe instead as a CLI interface. It has more features, but a different syntax - yet another thing to learn.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Middle-weight problem&lt;/span&gt;: XenServer only works on 64-bit CPUs. New servers are usually 64-bit anyway, but many companies have few year old servers which are completely fine, except they're 32-bit. Mine has.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The biggest drawback &lt;/span&gt; of XenServer is it's closed nature. &lt;span style="font-weight: bold;"&gt;Open source Xen management tools don't work with Xen Server&lt;/span&gt;. That includes provisioning apps like xen-tools, all monitoring tools based on RedHat's libvirt and goes up to private cloud systems. XenServer offers it's own management tools: command-line xe, text-mode menu system &lt;span style="font-weight: bold;"&gt;xsconsole&lt;/span&gt; and GUI XenCenter (pictured above). If you're not satisfied with them, tough luck. Many advanced or even not-so-advanced features like e-mail alerts are possible with community Xen, but blocked in XenServer unless you buy Citrix Essentials license. There are also some 3rd party products that would give you more features. Neither them nor Citrix Essentials offer as much as Eucalyptus or Nimbus. Of course, also neither of them requires 2 weeks to learn and setup properly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;What to choose?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you only want to run a few servers for typical business app (none of private cloud fancy stuff) and all of them are 64-bit, XenServers is a great choice. It will save you many days of work. Otherwise, you have no choice but to run community Xen. Choose wisely, because it's not easy to switch. Converting VM image between these versions of Xen is &lt;a href="http://forums.citrix.com/thread.jspa?messageID=1390361"&gt;complicated manual process&lt;/a&gt;. In fact, it's easier to migrate a physical server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;More info on XenServer:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.xensource.com/"&gt;Citrix website&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www-01.ibm.com/redbooks/community/display/REDP4480/Citrix+XenServer"&gt;IBM Redbook article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8921404219469844515?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8921404219469844515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/open-source-xen-vs-xenserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8921404219469844515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8921404219469844515'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/open-source-xen-vs-xenserver.html' title='Open source Xen vs. XenServer'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_I5KwSSiP_FY/SsItIVfLfbI/AAAAAAAAACE/DkvT9j4tPQM/s72-c/xenserver.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8019663532937780071</id><published>2009-09-29T17:10:00.007+02:00</published><updated>2010-08-12T20:01:11.069+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvida'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Graphic cards will finally be useful</title><content type='html'>Nvidia just released first public version of OpenCL drivers for Windows, Linux and MacOS. OpenCL is a standard for writing parallel software that can run on GPUs, ordinary x86 CPUs, Cell CPUs and specialized hardware like DSPs.&lt;br /&gt;&lt;br /&gt;In addition, Nvidia provides &lt;span style="font-weight: bold;"&gt;OpenCL Visual Profiler&lt;/span&gt;. This tool allows to see&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/SsIlR8Ir3eI/AAAAAAAAAB8/jlvNxcLD5sA/s1600-h/clprof.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5386909094419095010" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/SsIlR8Ir3eI/AAAAAAAAAB8/jlvNxcLD5sA/s400/clprof.png" style="cursor: pointer; float: right; height: 330px; margin: 0pt 0pt 10px 10px; width: 400px;" /&gt;&lt;/a&gt; what functions takes the most time to execute and find bottlenecks. Linux version of Visual Profiler is certified on RHEL only, but I ran it succesfully on Debian. Read release notes before installing, there's one tricky step involving LD_LIBRARY_PATH. Visual Profiler only runs on Nvidia hardware at the moment. If you ever tried to find why your GPU program doesn't run as fast as it should, you know how hard it was without that tool.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; I've played a bit with Visual Profiler and it looks really useful. I particularly like one feature: timing how much it takes to copy data between GPU memory and system memory. It's often the biggest bottleneck.&lt;br /&gt;&lt;br /&gt;That is, in my opinion,  the&lt;span style="font-weight: bold;"&gt; biggest breakthtrough in the short history of GPU computing&lt;/span&gt;. Just one month ago, when I &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/turning-your-video-card-into.html"&gt;first wrote about this subject&lt;/a&gt;, I said that lack of high-lever tools and incompatible implementations are the biggest barriers of adoption. OpenCL specification was already available since late 2008. ATI was the first major vendor who adopted it and dropped it's own technology. Few days after my post later Apple released MacOS X Snow Leopard, the first operating system to support OpenCL. Nvidia, the biggest player, was falling behind. Today it still supports CUDA library, but adds OpenCL support as well. This technology &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/gpu-computing-revisited.html"&gt;will be implemented in Windows 7&lt;/a&gt; and is already available for Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;In short, we can now use the same language on:&lt;/span&gt;&lt;br /&gt;- 3 most important operating systems,&lt;br /&gt;- GPUs by 2 biggest vendors, in addition to x86 and Cell Broadband Engine&lt;br /&gt;The tool support is light years from what we have for ordinary CPUs, but it's getting closer every month. For maximum performance, you still have to tweak your code to your hardware, but the amount of low-level worked was significantly reduced. I think we're getting very close to a GPU-accelerated Photoshop or video encoder.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;More info:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.khronos.org/developers/library/overview/opencl_overview.pdf"&gt;OpenCL overview&lt;/a&gt; (PDF)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Downloads (require free registration):&lt;/span&gt;&lt;br /&gt;- &lt;a href="http://developer.nvidia.com/object/get-opencl.html"&gt;Nvidia&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://developer.amd.com/GPU/ATISTREAMSDKBETAPROGRAM/"&gt;ATI/AMD&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Both contain compiler, libraries, documentation and sample code. Only Nvidia provides visual profiler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8019663532937780071?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8019663532937780071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/graphic-cards-will-finally-be-useful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8019663532937780071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8019663532937780071'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/graphic-cards-will-finally-be-useful.html' title='Graphic cards will finally be useful'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/SsIlR8Ir3eI/AAAAAAAAAB8/jlvNxcLD5sA/s72-c/clprof.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7319599468226877700</id><published>2009-09-28T18:08:00.006+02:00</published><updated>2009-10-06T13:03:28.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><title type='text'>Eucalyptus. 6: Troubleshooting</title><content type='html'>&lt;span style="font-size:180%;"&gt;Eucalyptus: troubleshooting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;1. Are the nodes present?&lt;/span&gt;&lt;br /&gt;Command:  &lt;span style="font-weight: bold;"&gt;  euca-describe-availibility-zones verbose&lt;/span&gt;&lt;br /&gt;(on any client) will show types of VMs and registered nodes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;AVAILABILITYZONE        proba2    UP localhost&lt;br /&gt;AVAILABILITYZONE        |- vm types     free / max   cpu   ram  disk&lt;br /&gt;AVAILABILITYZONE        |- m1.small     0002 / 0002   1    128     2&lt;br /&gt;AVAILABILITYZONE        |- c1.medium    0002 / 0002   1    256     5&lt;br /&gt;AVAILABILITYZONE        |- m1.large     0000 / 0000   2    512    10&lt;br /&gt;AVAILABILITYZONE        |- m1.xlarge    0000 / 0000   2   1024    20&lt;br /&gt;AVAILABILITYZONE        |- c1.xlarge    0000 / 0000   4   2048    20&lt;br /&gt;AVAILABILITYZONE        |- node1        certs[cc=true,nc=true] @ Thu Aug 20 13:31:43 CEST 2009&lt;br /&gt;AVAILABILITYZONE        |- node2        certs[cc=true,nc=true] @ Thu Aug 20 13:31:43 CEST 2009&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;If you can't see a node, login to your Cloud Controller, deregister the node and register it again:&lt;br /&gt;&lt;blockquote&gt;euca_conf -delnode node_ip&lt;br /&gt;euca_conf -addnode node_ip&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2. Are the virtual machines running?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;euca-describe instances&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Machines that are just starting will have the status "pending". If Eucalyptus fails to run them, they show up as "terminated" for a few seconds. Admin will see the machines belonging to all users.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;RESERVATION     r-53C80A43      admin   default&lt;br /&gt;INSTANCE        i-41630842      emi-9F770FB8    0.0.0.0 0.0.0.0 terminated      mykey   0               m1.small 2009-08-20T11:25:57+0000 proba2  eki-90581388                    monitoring-false&lt;br /&gt;INSTANCE        i-467607D0      emi-9F770FB8    0.0.0.0 0.0.0.0 terminated      mykey   1               m1.small 2009-08-20T11:25:57+0000 proba2  eki-90581388&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;3. Log files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;They're in /var/log/eucalyptus. Careful, they're very verbose. Grep is your friend.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;4. 32 or 64 bits?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eucalyptus doesn't check if the image you're uploading is 32 or 64 bit. You need to provide the right information yourself. Uploading a 64-bit image to a 32-bit only system is a common mistake.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;5. Double-check IDs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Or make it triple. It's easy to make a mistake. You'll probably want to write scripts soon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;6. Can you run your VM manually?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check with ordinary Xen installation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;7. Check your /etc/fstab&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eucalyptus uses /dev/sda1 as a root device, sda2 for swap and sda3 for "ephemeral" (empty filesystem you can use for temporary files). If you converted your existing Xen image, you might have something else, like /dev/xvda1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;8. Error message: certificate has expired&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is usually caused by invalid timezone. Eucalyptus only works correctly if the controllers use UTC. Try this command: &lt;span style="font-weight: bold;"&gt;ln -sf /usr/share/zoneinfo/UTC /etc/localtime&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7319599468226877700?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7319599468226877700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-7-troubleshooting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7319599468226877700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7319599468226877700'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-7-troubleshooting.html' title='Eucalyptus. 6: Troubleshooting'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1178872538435612180</id><published>2009-09-26T18:54:00.006+02:00</published><updated>2010-08-12T20:14:44.416+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='downgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Howto: downgrade Ubuntu Karmic to Jaunty</title><content type='html'>Today, something unrelated to HPC and virtualization. Few weeks ago I upgraded my system to Ubuntu Karmic (9.10) alpha. I thought, 2 months before release date, it would be fairly stable. Well, I was wrong and some days later I had to downgrade it back to Jaunty (9.03). Upgrading is usually well-tested and quite simple process, but there's no official, one true way to downgrade an Ubuntu system. Turned out it required some manual tweaking. I hope this howto will help others with similar problems.&lt;br /&gt;&lt;br /&gt;I based it on this 4 year old post about &lt;a href="http://ryandaigle.com/articles/2005/10/31/listing-downgrading-unstable-testing-debian-packages"&gt;debian downgrade&lt;/a&gt; and added some stuff specific to Ubuntu Karmic and Jaunty.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Caution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Using this guide, you may completely screw up your system. Especially all the &lt;span style="font-weight: bold;"&gt;commands with "--force" option are dangerous&lt;/span&gt;. I ended up with a usable system because I have years of experience with Linux, so I knew what I was doing. Or I was lucky. Either way, it worked for me, no guarantee it will work for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Prerequisites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You will need:&lt;br /&gt;- about an hour (more if you aren't lucky to sit on a very fast connection),&lt;br /&gt;- about 3GB free disk space,&lt;br /&gt;- root account unlocked (if you haven't done it before, do "passwd root" now),&lt;br /&gt;- a way to connect to the internet without Network Manager if you find yourself without X. I'll show how to manually connect through wired LAN later. Alternatively, you should be able to use Ubuntu CD, but I didn't try this way.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;First steps&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Edit your &lt;span style="font-weight: bold;"&gt;/etc/apt/sources.list&lt;/span&gt; file and everything in /etc/apt/sources.list.d&lt;br /&gt;Replace every occurence of "karmic" with "jaunty".&lt;br /&gt;&lt;br /&gt;2. Edit &lt;span style="font-weight: bold;"&gt;/etc/apt/preferences&lt;/span&gt;, create the file if it doesn't exist. Enter the following lines:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Package: *&lt;br /&gt;Pin: release a=jaunty&lt;br /&gt;Pin-Priority: 1001&lt;br /&gt;&lt;br /&gt;Package: *&lt;br /&gt;Pin: release a=karmic&lt;br /&gt;Pin-Priority: 600&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;3. Type "sudo su -" to drop into a root shell, so you won't have to use sudo on every command.&lt;br /&gt;&lt;br /&gt;4. Run "apt-get update"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;The Big Cycle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, you will need to repeat it a few times&lt;br /&gt;&lt;br /&gt;5. Run: &lt;span style="font-weight: bold;"&gt;apt-get dist-upgrade&lt;/span&gt;. This will inform you it has to downgrade/install/remove hundreds of packages. However, something &lt;span style="font-weight: bold;"&gt;WILL&lt;/span&gt; break in the middle of the process.&lt;br /&gt;&lt;br /&gt;6. When the upgrade is interrupted, try: &lt;span style="font-weight: bold;"&gt;apt-get -f install&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;7. If it didn't help, see what package is causing the problem and why it can't install properly. Usually that's because the package tries to overwrite the file also owned by another package. This situation is handled properly during upgrades, but sometimes apt fails to resolve it when downgrading. However, it will spill the name of the package. At that point, you should probably install it by hand, using dpkg and full path to the package, eg.:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dpkg -i --force-all /var/cache/apt/archives/apturl_0.3.3ubuntu1_all.deb&lt;/span&gt;&lt;br /&gt;Note that it will only downgrade this single package, you have to run "apt-get -f install" to resolve dependencies next.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8. Other possible problems:&lt;/span&gt;&lt;br /&gt;- One package complained about the lack of "mktemp". I installed it using "apt-get install mktemp".&lt;br /&gt;- I had issues with config files from one package. I completely uninstalled it with "dpkg --purge" and installed it back with "apt-get install", reverting it to the right version and default configuration.&lt;br /&gt;- One package was installed incorrectly event though apt thought it was fine. I reinstalled it with "apt-get --reinstall install libkrb53". Luckily it almost never happen, but if it does, it's damn hard to spot. Text mode programs will complain to the terminal about a missing library, but GUI software or daemons will just write it to a logfile somewhere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9. When "apt-get -f install" doesn't show any unresolved dependencies or unconfigured packages, do "&lt;span style="font-weight: bold;"&gt;apt-get autoremove&lt;/span&gt;". This will remove all the libraries that were required by a Karmic version of some package, but now aren't needed anymore when you downgraded them to Jaunty.&lt;br /&gt;&lt;br /&gt;10. Go back to the the beginning of the cycle. Repeat until all packages are downgraded, then reboot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Fixing Jaunty&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;11. Karmic uses completely new init system. As usual, upgrade from Jaunty works fine, downgrade doesn't. After reboot, I found that some of my daemons weren't running. Turned out some scripts in /etc/init.d were replaced with the symlinks, now leading to nowhere. Proper scripts were installed with ".dpkg-new" appended to their name. Fix it like this:&lt;br /&gt;&lt;blockquote&gt;cd /etc/init.d&lt;br /&gt;mv cron.dpkg-new cron&lt;/blockquote&gt;Repeat for all files ending with dpkg-new&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;12. I also found my system with unusable X. Mouse and keyboard were locked on the login screen. After some googling, I found that &lt;a href="https://bugs.launchpad.net/ubuntu/+source/hal/+bug/335297"&gt;this issue&lt;/a&gt; struck more people, not necessarily during downgrade. Solution:&lt;br /&gt;- reboot in &lt;span style="font-weight: bold;"&gt;single user mode&lt;/span&gt; (or you can do that before rebooting in Jaunty, just to be sure)&lt;br /&gt;- I normally use WLAN and Network Manager, without X i resorted to wired network that I brought up with "&lt;span style="font-weight: bold;"&gt;ifconfig eth0 up; dhclient eth0&lt;/span&gt;". If eth0 doesn't work for you, try eth1, eth2 etc.&lt;br /&gt;- Remove some packages with: &lt;span style="font-weight: bold;"&gt;dpkg --purge --force-all hal udev xserver-xorg dbus&lt;/span&gt;&lt;br /&gt;- Install them back with: &lt;span style="font-weight: bold;"&gt;apt-get -f install&lt;/span&gt;&lt;br /&gt;Probably I didn't have to reinstall all 4 packages, but I didn't bother checking which one it was.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Possible improvements&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to keep some packages from karmic, you could enter them in /etc/apt/preferences like this:&lt;br /&gt;&lt;blockquote&gt;Package: zim&lt;br /&gt;Pin: release a=karmic&lt;br /&gt;Pin-Priority: 1001&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1178872538435612180?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1178872538435612180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/howto-downgrade-ubuntu-karmic-to-jaunty.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1178872538435612180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1178872538435612180'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/howto-downgrade-ubuntu-karmic-to-jaunty.html' title='Howto: downgrade Ubuntu Karmic to Jaunty'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1642238864978375377</id><published>2009-09-22T13:05:00.010+02:00</published><updated>2009-10-06T13:01:22.693+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><title type='text'>Eucalyptus. 5: Creating and running VMs</title><content type='html'>&lt;span style="font-size:180%;"&gt;What you need to know&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• VM images are stored in &lt;span style="font-weight: bold;"&gt;Walrus&lt;/span&gt; - a storage subsystem of Eucalyptus cloud controller.&lt;br /&gt;• Walrus is divided into several areas called &lt;span style="font-weight: bold;"&gt;buckets&lt;/span&gt;.&lt;br /&gt;• Objects inside Walrus are identified by a bucket name and object name (think: path and filename).&lt;br /&gt;• To make your VM image available in Eucalyptus, you need to &lt;span style="font-weight: bold;"&gt;register&lt;/span&gt; it. If you want to delete it, you should deregister it first.&lt;br /&gt;• That means that storing object is a &lt;span style="font-weight: bold;"&gt;3 step process: create, upload, register&lt;/span&gt;.&lt;br /&gt;• A registered object gets a &lt;span style="font-weight: bold;"&gt;unique identifier&lt;/span&gt;. Eucalyptus (non-Walrus) commands use this identifiers instead of filenames.&lt;br /&gt;• There are &lt;span style="font-weight: bold;"&gt;3 types of objects&lt;/span&gt;: kernel, root filesystem and initrd (the last one is optional).&lt;br /&gt;&lt;table class="zramkami" cellsppacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Example ID&lt;/th&gt;&lt;th&gt;    Where stored&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;kernel&lt;/td&gt;&lt;td&gt;     eki-C5881420&lt;/td&gt;&lt;td&gt;     kernel-bucket&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;initial ramdisk&lt;/td&gt;&lt;td&gt;     eri-C5985326&lt;/td&gt;&lt;td&gt;     initrd-bucket&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;root filesystem&lt;/td&gt;&lt;td&gt;     emi-C4581434&lt;/td&gt;&lt;td&gt;     image-bucket&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;• You can assign kernel and initrd to a filesystem image, otherwise Eucalyptus will use a default one. You can also choose another kernel/ramdisk at runtime. Multiple filesystems can use the same kernel and initrd.&lt;br /&gt;• Each image can be stored as either&lt;span style="font-weight: bold;"&gt; 64-bit (default) or 32-bit&lt;/span&gt; (forced with -r i386 when creating).&lt;br /&gt;• At runtime, in addition to root filesystem, each VM will also get a &lt;span style="font-weight: bold;"&gt;swap and ephemeral partition&lt;/span&gt;. The latter is an empty filesystem to store temporary files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;Adding a new VM image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I assume the client is configured according to "&lt;a href="http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-4-client-configuration.html"&gt;Eucalyptus client configuration&lt;/a&gt;" post. I also assume you already created a Xen filesystem image, for example with xen-tools or by modyfing a pre-existing image. It's a good practice to check the image using local Xen installation first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Adding kernel image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-bundle-image -i /boot/vmlinuz-2.6.26-2-xen-686 --kernel true -r i386&lt;br /&gt;euca-upload-bundle -b kernel-bucket -m /tmp/vmlinuz-2.6.26-2-686.manifest.xml&lt;br /&gt;euca-register kernel-bucket/vmlinuz-2.6.26-2-686.manifest.xml&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Description:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• -r i386 switch means we create a 32-bit image. Omit it for 64-bit.&lt;br /&gt;• -i in euca-bundle-image is followed by a path to a kernel file. We use the same filename (without directories!) in the next steps.&lt;br /&gt;• euca-bundle-image stores temporary files in /tmp - watch out for free space! You can change location with -d /some/where/else&lt;br /&gt;• euca-register will return Eucalyptus Kernel ID (eki-xxxxx). We'll need it later to assign to filesystem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Adding initrd image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-bundle-image -i /boot/initrd.img-2.6.26-2-xen-686.bak --ramdisk true -r i386&lt;br /&gt;euca-upload-bundle -b initrd-bucket  -m /tmp/initrd.img-2.6.26-2-xen-686.bak.manifest.xml&lt;br /&gt;euca-register initrd-bucket/initrd.img-2.6.26-2-xen-686.bak.manifest.xml&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Description:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• The commands are very similar to what we used before. Differences: –ramdisk instead of –kernel in bundle-image, bucket name in the next two.&lt;br /&gt;• euca-register will return Eucalyptus Ramdisk ID (eri-xxxxx). We'll need it later to assign to filesystem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Adding filesystem image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-bundle-image -i vm-proba.img  -d ~/tmp --kernel eki-6D2D12A0 --ramdisk eri-632C1665 -r i386&lt;br /&gt;euca-upload-bundle -b image-bucket -m ~/tmp/vm-proba.img.manifest.xml&lt;br /&gt;euca-register image-bucket/vm-proba.img.manifest.xml&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Description:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• vm-proba.img is a filesystem image I created with xen-tools.&lt;br /&gt;• kernel and ramdisk parameters of bundle-image are IDs we get from euca-register in the previous steps.&lt;br /&gt;• euca-bundle-image will store a&lt;span style="font-weight: bold;"&gt; few GBs of temporary files&lt;/span&gt;. I don't have that much space in /tmp, so I pointed it to ~/tmp with -d switch.&lt;br /&gt;• euca-register will return Eucalyptus Machine Identifier (emi-xxxxx). We will use it to run a VM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Running virtual machines&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A running machine is called an instance in Eucalyptus lingo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Starting&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-run-instances -k &lt;span style="font-weight: bold;"&gt;keyfile&lt;/span&gt; &lt;key&gt; -n &lt;span style="font-weight: bold;"&gt;number emi-identifier&lt;/span&gt;&lt;number&gt; &lt;machine&gt;&lt;/machine&gt;&lt;/number&gt;&lt;/key&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-run-instances -k mykey -n 2 emi-9F0C0FAC&lt;/blockquote&gt;&lt;br /&gt;Number of instances defaults to 1 if ommited.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Checking&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-describe-instances&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Example output:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt; RESERVATION    r-3F820853    admin    default&lt;br /&gt;INSTANCE    i-4E22077A    emi-9EFE0FB2    0.0.0.0    0.0.0.0    running     mykey     0     m1.small     2009-08-26T14:33:22.292Z     proba2     eki-C5881420     eri-6384166E&lt;br /&gt;RESERVATION    r-4A7B0A09    admin    default&lt;br /&gt;INSTANCE    i-43AD0888    emi-9EFE0FB2    0.0.0.0    0.0.0.0    pending     mykey     0     m1.small     2009-08-26T14:36:09.046Z     proba2     eki-C5881420     eri-6384166E&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;running&lt;/span&gt; is obviously a working instance, &lt;span style="font-weight: bold;"&gt;pending&lt;/span&gt; - will run in a moment, Eucalyptus is moving files around, &lt;span style="font-weight: bold;"&gt;shutting-down&lt;/span&gt; - in the process of halting the system, &lt;span style="font-weight: bold;"&gt;terminated&lt;/span&gt; - that shows for a few seconds after shutdown.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Stopping&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;euca-terminate-instances &lt;span style="font-weight: bold;"&gt;instance-id&lt;/span&gt;&lt;instance&gt; &lt;another&gt; &lt;/another&gt;&lt;/instance&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;euca-terminate-instances i-30FE0671&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;System will be cleanly halted, running all the usual shutdown scripts first.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Listing and removing images in Walrus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; euca-describe-images&lt;br /&gt;euca-deregister &lt;span style="font-weight: bold;"&gt;id&lt;/span&gt;&lt;eucalyptus&gt;&lt;br /&gt;euca-delete-bundle -b &lt;span style="font-weight: bold;"&gt;bucket_name&lt;/span&gt; &lt;bucket&gt; -p &lt;span style="font-weight: bold;"&gt;file_name&lt;/span&gt;&lt;file&gt;&lt;/file&gt;&lt;/bucket&gt;&lt;/eucalyptus&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1642238864978375377?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1642238864978375377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-5-creating-and-running-vms.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1642238864978375377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1642238864978375377'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-5-creating-and-running-vms.html' title='Eucalyptus. 5: Creating and running VMs'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3510418441950795603</id><published>2009-09-21T14:09:00.004+02:00</published><updated>2009-10-06T13:05:29.809+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Eucalyptus. 4: client configuration</title><content type='html'>I assume you want to use Eucalyptus tools. You can also use Amazon EC2 API and AMI tools instead. Installation instruction is for Debian/x86, everything else would work on every Linux distribution.&lt;br /&gt;&lt;br /&gt;1. Unpack the tools somewhere and enter the directory:&lt;br /&gt;&lt;blockquote&gt;tar -xvzf  euca2ools-1.0-lenny-i386.tar.gz&lt;br /&gt;cd euca2ools-1.0-lenny-i386&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;2. Add the directory to APT and install the tools:&lt;br /&gt;&lt;blockquote&gt;echo deb file://${PWD} ./ &gt;&gt; /etc/apt/sources.list&lt;br /&gt;apt-get update&lt;br /&gt;apt-get install euca2ools&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;3. You need to install client certificates. I'll use admin credentials in the example (they allow you to interact with other users' VMs), you can also install regular user's certificates the same way. Fire up your web browser and enter URL: https://ip.of.cloud.controller:8443/  &lt;span style="font-weight: bold;"&gt;Note: HTTPS&lt;/span&gt;, not HTTP.&lt;br /&gt;&lt;br /&gt;4. Login with your username and password, click &lt;span style="font-weight: bold;"&gt;Credentials&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Download Certificate.&lt;/span&gt; Download file euca2-admin-x509.zip to your home direcory.&lt;br /&gt;&lt;br /&gt;5. Issue commands:&lt;br /&gt;&lt;blockquote&gt;cd&lt;br /&gt;mkdir .euca&lt;br /&gt;mv euca2-admin-x509.zip .euca&lt;br /&gt;cd .euca&lt;br /&gt;unzip euca2-admin-x509.zip&lt;br /&gt;. eucarc&lt;br /&gt;echo '. ~/.euca/eucarc' &gt;&gt; ~/.bashrc&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;6. Client tools should now be able to connect to the controller. Check with&lt;span style="font-weight: bold;"&gt; euca-describe-availability-zones verbose&lt;/span&gt;. It should display something similar to this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;AVAILABILITYZONE    proba2      UP localhost&lt;br /&gt;AVAILABILITYZONE    |- vm types    free / max   cpu   ram  disk&lt;br /&gt;AVAILABILITYZONE    |- m1.small    0001 / 0002   1    128     2&lt;br /&gt;AVAILABILITYZONE    |- c1.medium    0001 / 0002   1    256     5&lt;br /&gt;AVAILABILITYZONE    |- m1.large    0000 / 0000   2    512    10&lt;br /&gt;AVAILABILITYZONE    |- m1.xlarge    0000 / 0000   2   1024    20&lt;br /&gt;AVAILABILITYZONE    |- c1.xlarge    0000 / 0000   4   2048    20&lt;br /&gt;AVAILABILITYZONE    |- node1    certs[cc=true,nc=true] @ Wed Aug 26 13:21:28 UTC 2009&lt;br /&gt;AVAILABILITYZONE    |- node2    certs[cc=true,nc=true] @ Wed Aug 26 13:21:28 UTC 2009&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;7. Just one step remaining: you need a keypair to encrypt your communication with the controller. Type the command, using &lt;span style="font-weight: bold;"&gt;any name you like in place of "mykey"&lt;/span&gt;:&lt;br /&gt;&lt;blockquote&gt;euca-add-keypair mykey &gt; mykey.private&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3510418441950795603?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3510418441950795603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-4-client-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3510418441950795603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3510418441950795603'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-4-client-configuration.html' title='Eucalyptus. 4: client configuration'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3856168919011366588</id><published>2009-09-21T14:00:00.007+02:00</published><updated>2009-10-06T13:05:06.268+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Eucalyptus. 3: Initial configuration</title><content type='html'>1. Login to you Cloud Controller box. Register Cluster Controller with Cloud Controller using:&lt;br /&gt;&lt;blockquote&gt;euca_conf -addcluster &lt;span style="font-weight: bold;"&gt;clustername&lt;/span&gt; &lt;clustername&gt; &lt;clustername&gt; localhost&lt;/clustername&gt;&lt;/clustername&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;clustername&lt;/span&gt; is whatever name you choose.&lt;br /&gt;&lt;br /&gt;2. You need to be able to login from Cluster Controller to Node Controller without passwords, using username eucalyptus on both sides. Eucalyptus shoud set it up automatically, but in my experience it sometimes failed to do that. It's better to send SSH keys manualy, they're already generated. On your Cluster Controller, enter commands:&lt;br /&gt;&lt;blockquote&gt;su - eucalyptus&lt;br /&gt;scp .ssh/id_rsa.pub root@[ip of the node]&lt;ip&gt;&lt;ip of="" the="" node=""&gt;&lt;/ip&gt;&lt;/ip&gt;&lt;/blockquote&gt;&lt;br /&gt;Repeat the last command for all the nodes.&lt;br /&gt;&lt;br /&gt;3. Login to all Node Controllers and issue commands:&lt;br /&gt;&lt;blockquote&gt; mkdir -p ~eucalyptus/.ssh&lt;br /&gt;cat id_rsa.pub &gt;&gt; ~eucalyptus/.ssh/authorized_keys&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;4. Test your setup - login to Cluster Controller and type:&lt;br /&gt;&lt;blockquote&gt;su - eucalyptus&lt;br /&gt;ssh [ip of the node]&lt;ip&gt;&lt;ip of="" the="" node=""&gt;&lt;/ip&gt;&lt;/ip&gt;&lt;/blockquote&gt;&lt;br /&gt;If you can login to node that way without being asked for a password, everything's fine.&lt;br /&gt;&lt;br /&gt;5. On your cloud controller:&lt;blockquote&gt;euca_conf -addnode &lt;ip&gt; &lt;ip of="" the="" node=""&gt;&lt;/ip&gt;&lt;/ip&gt;[ip of the node]&lt;/blockquote&gt;&lt;br /&gt;Repeat for all the nodes.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I5KwSSiP_FY/SrdsvPCqSQI/AAAAAAAAAB0/sGxTd-sXzts/s1600-h/eucalyptus.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 312px;" src="http://4.bp.blogspot.com/_I5KwSSiP_FY/SrdsvPCqSQI/AAAAAAAAAB0/sGxTd-sXzts/s400/eucalyptus.jpg" alt="" id="BLOGGER_PHOTO_ID_5383891438292060418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;6. Run a web browser and enter URL: https://ip.of.cloud.controller:8443/  &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ote: HTTPS&lt;/span&gt;, not HTTP.&lt;br /&gt;&lt;br /&gt;7. Your username and password is "admin", you need to change it after first login.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3856168919011366588?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3856168919011366588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-3-initial-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3856168919011366588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3856168919011366588'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-3-initial-configuration.html' title='Eucalyptus. 3: Initial configuration'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_I5KwSSiP_FY/SrdsvPCqSQI/AAAAAAAAAB0/sGxTd-sXzts/s72-c/eucalyptus.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5586751284042808478</id><published>2009-09-16T15:36:00.003+02:00</published><updated>2009-09-16T15:46:18.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='clusters'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Eucalyptus. 2: Server installation</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Installing Eucalyptus (using Xen as a hypervisor) on Debian Lenny&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Howto based on &lt;a href="http://open.eucalyptus.com/wiki/EucalyptusInstallationDebianLenny_v1.5.2"&gt;open.eucalyptus.com/wiki/EucalyptusInstallationDebianLenny_v1.5.2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Prerequisites&lt;/span&gt;&lt;br /&gt;1. All Eucalyptus  controllers use loop devices extensively. By default, Linux limits the number of loop devices to 8. To increase it, edit /etc/modprobe.d/whatever_file_ending_with.conf and add line:&lt;br /&gt;&lt;blockquote&gt;options loop max_loop=64&lt;/blockquote&gt;2. All controllers need to have the time synchronized. Make sure you use Network Time Protocol:&lt;br /&gt;&lt;blockquote&gt;aptitude install ntp&lt;/blockquote&gt;&lt;br /&gt;3. Some client tools fail to connect if nodes use any timezone other then UTC (note: it's not enough to set your hardware clock to UTC). Run a command:&lt;br /&gt;&lt;blockquote&gt;ln -sf /usr/share/zoneinfo/UTC /etc/localtime&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Node Controllers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Install Xen:&lt;br /&gt;&lt;blockquote&gt;aptitude install linux-image-xen-686 xen-hypervisor-3.2-1-i386&lt;/blockquote&gt;2. Check Xen configuration. We'll start with the basic network setup (bridging), you can switch to Eucalyptus-managed mode later. Make sure /etc/xen/xend-config.sxp contains the following lines:&lt;blockquote&gt;&lt;br /&gt;(xend-http-server yes)&lt;br /&gt;(xend-unix-server yes)&lt;br /&gt;(xend-unix-path /var/lib/xend/xend-socket)&lt;br /&gt;(xend-address localhost)&lt;br /&gt;(network-script network-bridge)&lt;br /&gt;(vif-script vif-bridge)&lt;br /&gt;(dom0-min-mem 196)&lt;br /&gt;(dom0-cpus 0)&lt;br /&gt;(vncpasswd '')&lt;/blockquote&gt;&lt;br /&gt;3. Restart your machine, make sure Xen is running (xm list show Domain 0).&lt;br /&gt;&lt;br /&gt;4. Unpack eucalyptus-1.5.2-lenny-i386.tar.gz somewhere and enter the directory:&lt;br /&gt;&lt;blockquote&gt;tar -xvzf eucalyptus-1.5.2-lenny-i386.tar.gz&lt;br /&gt;cd eucalyptus-1.5.2-lenny-i386&lt;/blockquote&gt;&lt;br /&gt;5. Add this directory to APT by running:&lt;br /&gt;&lt;blockquote&gt;echo deb file://${PWD} ./ &gt;&gt; /etc/apt/sources.list&lt;br /&gt;apt-get update&lt;/blockquote&gt;&lt;br /&gt;6. Eucalyptus docs suggest to run aptitude install eucalyptus-nc, but that would install other virtualization methods we won't need. My solution is the following:&lt;br /&gt;    • run aptitude&lt;br /&gt;    • press "/" and type "eucalyptus"&lt;br /&gt;    • navigate to eucalyptus-nc, select it with "+"&lt;br /&gt;    • press "g", aptitude will show list of suggested packages to install,&lt;br /&gt;    • deselect qemu and kvm by pressing "-" on them&lt;br /&gt;    • press "g" again&lt;br /&gt;7. Aptitude will warn you that packages don't come from the trusted source. Ignore the warning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Cloud and Cluster Controller&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Unpack eucalyptus-1.5.2-lenny-i386.tar.gz somewhere and enter the directory:&lt;br /&gt;&lt;blockquote&gt;tar -xvzf eucalyptus-1.5.2-lenny-i386.tar.gz&lt;br /&gt;cd eucalyptus-1.5.2-lenny-i386&lt;/blockquote&gt;2. Add this directory to APT by running:&lt;br /&gt;&lt;blockquote&gt;echo deb file://${PWD} ./ &gt;&gt; /etc/apt/sources.list&lt;br /&gt;apt-get update&lt;/blockquote&gt;&lt;br /&gt;3. Install Java. For some strange reasons, Eucalyptus recommends having 2 versions: OpenJDK and Sun's JRE. You also need to install CA certificates unless you already have them:&lt;br /&gt;&lt;blockquote&gt;apt-get install openjdk-6-jdk ca-certificates sun-java6-jre&lt;/blockquote&gt;&lt;br /&gt;4. There's a small bug with SSL certificates in Java package, easy to fix with this simple commands:&lt;br /&gt;&lt;blockquote&gt;mkdir -p /etc/ssl/certs/java/&lt;br /&gt;ln -sf /etc/java-6-sun/security/cacerts /etc/ssl/certs/java/cacerts&lt;/blockquote&gt;&lt;br /&gt;5. Eucalyptus docs suggest to run aptitude install eucalyptus-cc eucalyptus-cloud, but that would install a bunch of GCJ packages we won't need and that may even screw up your setup (haven't checked if they do). My solution is the following:&lt;br /&gt;    • run aptitude&lt;br /&gt;    • press "/" and type "eucalyptus"&lt;br /&gt;    • navigate to eucalyptus-cc, select it with "+", same with eucalyptus-cloud&lt;br /&gt;    • press "g", aptitude will show list of suggested packages to install,&lt;br /&gt;    • deselect all packages with "gcj" in their name by pressing "-" on them&lt;br /&gt;    • press "g" again&lt;br /&gt;6. Aptitude will warn you that packages don't come from the trusted source. Ignore the warning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5586751284042808478?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5586751284042808478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-2-server-installation.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5586751284042808478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5586751284042808478'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-2-server-installation.html' title='Eucalyptus. 2: Server installation'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3799838561198028206</id><published>2009-09-16T15:32:00.002+02:00</published><updated>2009-09-16T15:36:07.236+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>GPU computing re-revisited</title><content type='html'>There was a &lt;span style="font-weight: bold;"&gt;conference&lt;/span&gt; on parallel processing and applied mathematics in Wroclaw (where I live), GPU computing was one of the most prominent topics. The presentations in PDF format are available at &lt;a href="http://gpgpu.org/ppam2009"&gt;gpgpu.org/ppam2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another interesting place is Claudio Albanese's website &lt;a href="http://www.level3finance.com/"&gt;www.level3finance.com&lt;/a&gt;. As the domain suggests, dr Albanese uses &lt;span style="font-weight: bold;"&gt;GPUs for financial computations&lt;/span&gt;, but many of his articles apply to other areas as well.&lt;br /&gt;&lt;br /&gt;If you know the open-source &lt;span style="font-weight: bold;"&gt;statistic software R&lt;/span&gt;, you can rapidly get started with GPU computing. A library provides GPU-accelerated equivalents to the most common R functions. The tests suggests 50-100x speedups are possible, check for yourself: &lt;a href="http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/"&gt;brainarray.mbni.med.umich.edu/brainarray/rgpgpu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, a company called Hoopoe (&lt;a href="http://www.hoopoe-cloud.com/"&gt;www.hoopoe-cloud.com&lt;/a&gt;) provides several interesting solutions. One of them is &lt;span style="font-weight: bold;"&gt;GPU cloud &lt;/span&gt;- you can run your CUDA (nVidia) or OpenCL (ATI) programs on their hardware. For a limited time, the service is free. They're also the authors of very useful libraries - &lt;span style="font-weight: bold;"&gt;CUDA bindings&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;for Java and .NET&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;OpenCL bindings for .NET&lt;/span&gt;. All of these allow you to write GPU-accelerated programs more easily. As an added bonus, your software will work on Windows, Linux and MacOS/X (using Mono instead of .NET) without changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3799838561198028206?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3799838561198028206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/gpu-computing-re-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3799838561198028206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3799838561198028206'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/gpu-computing-re-revisited.html' title='GPU computing re-revisited'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-5200359408069726126</id><published>2009-09-15T19:01:00.002+02:00</published><updated>2009-09-15T19:07:31.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Eucalyptus. 1: Introduction</title><content type='html'>For a few months I've been working with &lt;a href="http://open.eucalyptus.com/"&gt;Eucalyptus&lt;/a&gt;. I found it to be very promising, yet still somewhat incomplete platform. I decided to share my experiences. This is and introductory post, others will be howtos for specific tasks.&lt;br /&gt;&lt;br /&gt;Eucalyptus is an open-source &lt;span style="font-style: italic;"&gt;cloud computing platform&lt;/span&gt; designed to closely resemble (from the user's point of view) Amazon EC2. Standard Amazon tools can work with Eucalyptus and vice versa. This allows for very interesting setups: hybrid systems using both local and public VMs.&lt;br /&gt;&lt;br /&gt;Eucalyptus started as a university project in 2008. In the beginning of 2009, it got commercial support. As you can see, the project is in the early phase. And yet there already some large scale deployments, with most famous being &lt;span style="font-weight: bold;"&gt;Ubuntu Public Cloud&lt;/span&gt;. Other noteworthy user of Eucalyptus is NASA. The project progresses at a rapid rate, in a few weeks we can expect a new version with more features.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;• Mostly (not 100%) &lt;span style="font-weight: bold;"&gt;compatible with EC2&lt;/span&gt;.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Works with Xen and KVM&lt;/span&gt;, can use hardware virtualization support but doesn't require it. Note: I will only cover Xen setup in the howtos.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Multi-user&lt;/span&gt; setup. Users can create their own VMs without administrator's intervention.&lt;br /&gt;• Security groups: VMs within one group can communicate with each other, but groups are separated (not only by IP subnetwork, but also by VLAN!). Default is one security group per user, you can create more or share a group if you like.&lt;br /&gt;• Fully scriptable.&lt;br /&gt;• Authentication by X.509 certificates.&lt;br /&gt;• Open source, easy to customize and modify.&lt;br /&gt;• Relatively easy (for such complex system) installation&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Cons:&lt;/span&gt;&lt;br /&gt;• Sometimes incomplete documentation.&lt;br /&gt;• Some planned functionality is still missing, namely: multi-cluster grids, ability to restart controller.&lt;br /&gt;• Requires custom scripting for many typical administration tasks. This should also change in the new release.&lt;br /&gt;• Some small, but annoying issues. For example, you should use the same Linux distribution on all controllers (note: not VMs, they can run anything your hypervisor supports); controller timezone should be set to ETC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Eucalyptus from the user's perspective&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First time user needs to login to a web interface and request an account. After administrator's approval (this is the only part that requires human interaction), she downloads a personal certificate. User also has to install client software: either Eucalyptus euca2ools, Amazon's EC2 API/AMI tools or a GUI client, eg. &lt;a href="http://www.ec2dream.com/"&gt;EC2Dream&lt;/a&gt;. Whatever the choice, the software has to be configured by providing the certificate plus all the URLs, usernames etc.&lt;br /&gt;&lt;br /&gt;From that point, user can begin working with the system. There are commands for:&lt;br /&gt;- running a new instance of virtual machine,&lt;br /&gt;- stopping a running instance,&lt;br /&gt;- configuring instances (eg. assigning network resources, security groups),&lt;br /&gt;- storing, retrieving and moving around files inside Eucalyptus storage service,&lt;br /&gt;- creating and modifying VM images.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;They work exactly the same for EC2 and Eucalyptus.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Architecture of Eucalyptus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eucalyptus system consists of 3 parts:&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Cloud controller&lt;/span&gt; - to manage the whole installation.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Cluster controller&lt;/span&gt; - in future, it will be possible to divide the installation into several clusters. Cluster is a group of machines connected to the same LAN, cloud can be distributed. However, current version (1.5.2) doesn't support it yet. For now, cloud controller and cluster controller has to be the same host.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Node controller&lt;/span&gt; - on each physical machine that will run VMs.&lt;br /&gt;&lt;br /&gt;The client only interacts with cloud controller, which then sends commands and reads replies from the nodes. Note that for a publicly available cloud, you only need a public IP address on a cloud controller.&lt;br /&gt;&lt;br /&gt;Eucalyptus uses a &lt;span style="font-weight: bold;"&gt;storage service&lt;/span&gt; called &lt;span style="font-weight: bold;"&gt;Walrus&lt;/span&gt; - an open source software using the same public API as &lt;span style="font-weight: bold;"&gt;Amazon S3&lt;/span&gt;. All VM images are initially stored in Walrus in compressed and encrypted form (Walrus can temporarily cache unencrypted version for performance reasons). Images can be either private (readable only for the user who stored it) or public. Whenever the client requests to run a new instance, the controller decrypts the VM image and sends it the node. Node controller then stores it on a local disk and attempts to run it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Is EC2 API the right choice for you?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The system closely follows EC2, which can be a disadvantage in some scenarios:&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;VM instances are treated as disposable resources&lt;/span&gt;. If they fail, it's up to the user to respawn them. Whenever they are shut down, all the data is lost (you have to use S3/Walrus for persistent storage). There's no support for failover (although the user can made one inside the VM), migration etc.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Node controllers store VMs on local disks.&lt;/span&gt; Obviously, you can use a network drive instead, but Eucalyptus will be unaware of it. Even if you mount the same volume on both node and cloud controller, Eucalyptus will still copy the files from one machine to the other. This can severely affect your network performance if you spawn a lot of VMs.&lt;br /&gt;• Some systems allow to configure VMs while deploying them, but Eucalyptus doesn't care at all about what's hapenning inside the VM. It's an intentional design choice: it's a multi-user cloud, so VM configuration is a user's job. If you need a centrally-configured system of interoperating VMs, there might be other choices. Eucalyptus allows for that, but doesn't provide any support.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is, however, one major advantage of using EC2 comptabile platform: ability to create a &lt;span style="font-weight: bold;"&gt;hybrid cloud system&lt;/span&gt;. Sure, you need to write your custom scripts to deploy VMs. But once you have them, switching from local to EC2 resources and back is a matter of a few shell variables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-5200359408069726126?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/5200359408069726126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-1-introduction.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5200359408069726126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/5200359408069726126'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/eucalyptus-1-introduction.html' title='Eucalyptus. 1: Introduction'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6212622906710575951</id><published>2009-09-11T12:16:00.001+02:00</published><updated>2009-09-11T12:18:46.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Unified cloud API</title><content type='html'>I've already written about blurring the border between &lt;a href="http://virtually-a-machine.blogspot.com/2009/09/private-clouds-are-coming.html"&gt;cloud-based and private servers&lt;/a&gt;. EC2-compatible platforms, like Eucalyptus, do exactly that. RedHat's project &lt;a href="http://deltacloud.org/"&gt;Deltacloud&lt;/a&gt;  goes a step further.&lt;br /&gt;&lt;br /&gt;Deltacloud will provide unified, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;RESTful&lt;/a&gt; API for Amazon EC2, RedHat Enterprise Virtualisation, VMware ESX and RackSpace. First two are already available. Deltacloud Portal is a web interface for Deltacloud.&lt;br /&gt;&lt;br /&gt;As a famous aphorism of David Wheeler goes: All problems in computer science can be solved by another level of indirection. VMware won't let go of it's API, nor will EC2. Other vendors might do that, but only if market forces them. The only solution is to wrap all the APIs in another layer that presents a common interface. Deltacloud also promises the interface won't change even if the underlying API is upgraded. If you need to run scripts that can manage both local and distributed VMs, Deltacloud seems like a good idea.&lt;br /&gt;&lt;br /&gt;(disclaimer: I didn't try it yet, but it's on my agenda)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6212622906710575951?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6212622906710575951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/unified-cloud-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6212622906710575951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6212622906710575951'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/unified-cloud-api.html' title='Unified cloud API'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7393168414779884291</id><published>2009-09-06T11:09:00.002+02:00</published><updated>2009-09-06T11:14:46.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Xen News</title><content type='html'>This summer wasn't much of a holiday season for Xen developers. In the last two months, I saw many exciting changes around this platform and more are coming.&lt;br /&gt;&lt;br /&gt;• Xen 3.4.1 and 3.3.2 were released, after a series of release candidates. Just maintenance realeses without important new features.&lt;br /&gt;• Xen users FAQ was updated. It's a good idea to skim this file regularly, the solutions are very useful.&lt;br /&gt;• A series of &lt;a href="http://blog.xen.org/index.php/category/xen-development/"&gt;video interviews with developers&lt;/a&gt; have been posted on Xen Blog&lt;br /&gt;• Dozens of &lt;a href="http://wiki.xensource.com/xenwiki/RecentChanges"&gt;new and updated howtos&lt;/a&gt; on Xen Wiki, see&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These are changes that every user can see, but more interesting stuff happens under the hood - in the development version, or soon-to-come &lt;span style="font-weight: bold;"&gt;Xen 4&lt;/span&gt;. New features include:&lt;br /&gt;• &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/virtual-switches.html"&gt;Virtual switch&lt;/a&gt;. I had it covered in a separate post.&lt;br /&gt;• Ability to &lt;span style="font-weight: bold;"&gt;restart dom0 without affecting VMs&lt;/span&gt;. Read: smooth upgrades without the need to migrate all VMs elsewhere.&lt;br /&gt;• Much better graphics support, both device-indepented way (for better compatibility) and device-dependent (for performance). How about a remote gaming or virtual 3D design workstation?&lt;br /&gt;• Xen Cloud Platform. Again, covered elsewhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7393168414779884291?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7393168414779884291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/xen-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7393168414779884291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7393168414779884291'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/xen-news.html' title='Xen News'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8211341318866980772</id><published>2009-09-06T11:05:00.003+02:00</published><updated>2009-09-06T11:09:36.128+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='eucalyptus'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>Private clouds are coming</title><content type='html'>I've been reading news form WMworld for the last few days. Announcements are somewhat vague and cloudy (pun intented), but after filtering out all marketing buzz with obligatory Whatever-as-a-Service, there's a lot of interesting information. I believe it's a beginning of a new paradigm: private cloud.&lt;br /&gt;&lt;br /&gt;Today we see &lt;span style="font-weight: bold;"&gt;two main uses for virtualizatio&lt;/span&gt;n. One is inside the company datacenter: &lt;span style="font-weight: bold;"&gt;server consolidation&lt;/span&gt;. The other is &lt;span style="font-weight: bold;"&gt;cloud computing&lt;/span&gt;, with Amazon EC2 being the most prominent example. Which means you can either deploy a new service on your own machine or on a public one, but you have to decide beforehand and it's hard to switch.&lt;br /&gt;&lt;br /&gt;Now the two are beginning to blend. Both Citrix (the company behind Xen) and VMware are launching new initiatives called &lt;span style="font-weight: bold;"&gt;Xen Cloud Platform (XCP) &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;VMware vCloud Express&lt;/span&gt;. They promise exciting new features, including ability to live-migrate VM between your own server and the cloud! In addition XCP will contain &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/virtual-switches.html"&gt;Virtual Switch&lt;/a&gt; I wrote about a few days ago and it will&lt;span style="font-weight: bold;"&gt; run virtual machines created by other systems, including VMwar&lt;/span&gt;e.&lt;br /&gt;&lt;br /&gt;One of the possible uses is extending your hardware base to cover for temporary flukes. Most of the time you use your own servers, having the benefit of a fast LAN and not being charged for traffic/CPU time. When you need more resources for a few hours, offload some jobs to external systems. It's possible today, but requires careful planning, experienced admins and lots of scripting now. Soon it will become easier and more common.&lt;br /&gt;&lt;br /&gt;I've been playing with a similar setup for a few weeks now with a software called Eucalyptus. It's an open-source but commercial-backed system compatible with EC2. Basically, it allows you to setup your own system that has most of EC2 features (sans billing) and works with the same client tools. Some users made really cool stuff with it. My favourite example is automated build and test system. Very common thing in software development companies that traditionally requires buying several servers. In that case however, Eucalyptus runs it's instances on developers' workstations, using minimal amount of resources. When they need more power (eg. a new release is coming), they add some EC2 instances.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8211341318866980772?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8211341318866980772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/private-clouds-are-coming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8211341318866980772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8211341318866980772'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/09/private-clouds-are-coming.html' title='Private clouds are coming'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8721862801959094930</id><published>2009-08-26T19:43:00.001+02:00</published><updated>2009-08-26T19:46:15.677+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='i/o'/><title type='text'>Updated drivers for Xen and KVM</title><content type='html'>RedHat released a new version of drivers for Windows guests running on KVM - available at&lt;br /&gt;&lt;a href="http://www.linux-kvm.org/page/WindowsGuestDrivers/Last_WHQLed_drivers"&gt;http://www.linux-kvm.org/page/WindowsGuestDrivers/Last_WHQLed_drivers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also Windows drivers  for Xen were updated recently - download site &lt;a href="http://www.meadowcourt.org/downloads/"&gt;http://www.meadowcourt.org/downloads/&lt;/a&gt;. Be careful, these are experimental.&lt;br /&gt;&lt;br /&gt;These drivers greatly increase performance of Windows guests by paravirtualizing some operations. It's not the same as complete paravirtualization possible for Linux guests, but much better then nothing. Beware, the new version is considered experimental.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8721862801959094930?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8721862801959094930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/updated-drivers-for-xen-and-kvm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8721862801959094930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8721862801959094930'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/updated-drivers-for-xen-and-kvm.html' title='Updated drivers for Xen and KVM'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-6995014535069575606</id><published>2009-08-26T19:39:00.002+02:00</published><updated>2009-08-26T19:43:18.213+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>Virtual switches</title><content type='html'>Directing traffic between VMs and physical interfaces can get quite complicated. For a simple setup with several VMs, the usual bridge configuration works fine. This is exactly like the physical network with a simple hub. But for complex scenario on a physical network you would use managed switches supporting VLANs, spanning tree, link aggregation, monitoring , maybe even some QoS or security features. Virtual networks need virtual switches.&lt;br /&gt;&lt;br /&gt;VMware already got it. The built-in solution is not much better than a simple bridge of Xen, but you can buy a really powerfull &lt;a href="http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9902/data_sheet_c78-492971.html"&gt;Cisco Nexus 1000V&lt;/a&gt;. In addition to having more features, it also uses standard Cisco interface familiar to most network administrators. With Nexus your virtual networks behave like a part of your physical network. Anything you might need - VLAN separation for security, IGMP snooping for directing multicast traffic, High Availibility, you name it - is there. Let's say, VM1 and VM2 need to use one VLAN, while VM3, 4 and 5 use another. Can you spread them around your physical network and still assure they will connect to the right network &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; the network traffic won't get anywhere it's not supposed to? With a mixture of virtual and physical switches it's possible.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I5KwSSiP_FY/SpVzovPWYtI/AAAAAAAAABk/_Lous4mZGA0/s1600-h/vswitch-generic.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 229px;" src="http://4.bp.blogspot.com/_I5KwSSiP_FY/SpVzovPWYtI/AAAAAAAAABk/_Lous4mZGA0/s320/vswitch-generic.png" alt="" id="BLOGGER_PHOTO_ID_5374328874049364690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The biggest selling point is blurring the border between the virtual and physical world. When all your network appliances are configured and monitored centrally, you don't really care if you're really dealing a huge box with humming fans or a piece of software running on a hypervisor. Just like it happened with the servers.&lt;br /&gt;&lt;br /&gt;Xen is still missing a virtual switch. Not for long. The new software called &lt;a href="http://openvswitch.org/"&gt;OpenVSwitch&lt;/a&gt;  is going to be included in the next release. How does it compare to Cisco?&lt;br /&gt;• It supports various virtualization platforms, at the moment&lt;span style="font-weight: bold;"&gt; Xen (both community version and Xen Server), KVM and VirtualBox&lt;/span&gt;. Possibly even VMware in future. There aren't, as far as I know, any technical reasons not to support VMware, only political (VMware is closely cooperating with Cisco).&lt;br /&gt;• It's free. Nexus 1000V is most definitely not.&lt;br /&gt;• At the moment it's not as feature rich. The most requested functions (VLANs, per-VM policy and ability to monitor intra-VM traffic) are already there. More will come, the project&lt;br /&gt;• Due to it's open nature, it will easilly interoperate with various hardware and software appliances.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-6995014535069575606?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/6995014535069575606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/virtual-switches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6995014535069575606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/6995014535069575606'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/virtual-switches.html' title='Virtual switches'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_I5KwSSiP_FY/SpVzovPWYtI/AAAAAAAAABk/_Lous4mZGA0/s72-c/vswitch-generic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-3578174513380044606</id><published>2009-08-23T12:16:00.005+02:00</published><updated>2010-08-12T20:03:14.187+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='nvida'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>GPU computing revisited</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/SpEZlle1eoI/AAAAAAAAABc/6BbLBIXo3Jc/s1600-h/Slide2_5F00_101D2220.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5373103963937012354" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/SpEZlle1eoI/AAAAAAAAABc/6BbLBIXo3Jc/s320/Slide2_5F00_101D2220.jpg" style="cursor: pointer; float: right; height: 180px; margin: 0pt 0pt 10px 10px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;Just a few days ago I wrote about &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/turning-your-video-card-into.html"&gt;computations on video cards&lt;/a&gt;. Looks like this technology will be built into Windows 7. Developers will have a new API called DirectX DirectCompute.&lt;br /&gt;&lt;br /&gt;Nvidia promises improvement in performance of multimedia and graphics applications. Technically it's possible, but quick look at the developer documentation shows there's nothing really new. GPU programming will continue to be a daunting tasks, which will discourage many programmers. I'm still waiting for the day when it becomes as easy as ordinary programming.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://windowsteamblog.com/blogs/partner/archive/2009/08/22/gpu-computing-and-windows-7.aspx"&gt;GPU computing and Windows 7&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nvidia.com/object/directcompute.html"&gt;DirectCompute&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-3578174513380044606?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/3578174513380044606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/gpu-computing-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3578174513380044606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/3578174513380044606'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/gpu-computing-revisited.html' title='GPU computing revisited'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/SpEZlle1eoI/AAAAAAAAABc/6BbLBIXo3Jc/s72-c/Slide2_5F00_101D2220.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-1009188855857555053</id><published>2009-08-20T19:51:00.003+02:00</published><updated>2009-08-21T11:30:32.891+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='clusters'/><title type='text'>High-Performance Computing as a Service</title><content type='html'>Will HPCaaS be a new addition to the well-known family of cloud buzzwords: SaaS, PaaS, IaaS? A San Francisco-based company Penguin Computing offers &lt;a href="http://www.penguincomputing.com/POD/HPC_as_a_service"&gt;on-demand access to a supercomputing cluster&lt;/a&gt;. Unlike in the usual cloud techniques, tasks are executed on the physical machines which use typical cluster technologies, like low-latency Infinband interconnects and high-speed storage.&lt;br /&gt;&lt;br /&gt;Notable features:&lt;br /&gt;• In addition to hardware, the offer includes service of of HPC experts.&lt;br /&gt;• Nodes are optionally equipped with &lt;a href="http://virtually-a-machine.blogspot.com/2009/08/turning-your-video-card-into.html"&gt;Tesla&lt;/a&gt; units.&lt;br /&gt;• Data can be send and received in two ways: usual, over the internet (I almost wrote: traditional) or by fedexing the hot-swappable 2TB hard drives. Looks funny at a first glance, but it's the fastest way to send really large amounts of data.&lt;br /&gt;&lt;br /&gt;Businesses which only occasionally need HPC can find this offer interesting. Hard core users of clusters, like pharmaceuticals corporations or video animation companies would probably keep using in-house facilities, but for them it's a good way to temporarily increase processing power.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-1009188855857555053?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/1009188855857555053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/high-performance-computing-as-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1009188855857555053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/1009188855857555053'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/high-performance-computing-as-service.html' title='High-Performance Computing as a Service'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-637449575519351855</id><published>2009-08-20T19:01:00.007+02:00</published><updated>2010-08-12T20:07:04.487+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='clusters'/><category scheme='http://www.blogger.com/atom/ns#' term='i/o'/><title type='text'>A cluster of mobile phones?</title><content type='html'>An emerging trend in datacenters today is &lt;span style="font-style: italic;"&gt;Green IT&lt;/span&gt;. An ordinary user running a PC or laptop, or even a business with few dozens of them dont't think much about energy they consume. But a server room can easilly exceed 1 MW of power draw. Add another MW for air conditioners or your equipment will melt under its own heat.&lt;br /&gt;&lt;br /&gt;No wonder that in every technical magazine and conference I see articles about new technologies aiming to reduce power consumption in large installations. Possibilities are countless. For example, unused hardware in cluster nodes can be powered off and CPUs scaled down, like in laptops. By properly aligning data, we can even power off some disks in the storage devices (google for MAID: Massive Array of Idle Disks). Simple redesign of a rack can greatly reduce the cost of cooling. And so on.&lt;br /&gt;&lt;br /&gt;There's a limit on how far we can go if we decide to stay within today's architecture. What are other options? Browsing the archives of &lt;a href="http://www.usenix.org/events/usenix08/tech/"&gt;Usenix Technical Summit&lt;/a&gt; looking for something else, I accidentally found a talk by Adrian Cockcroft about using mobile hardware for supercomputing. Why it's a good idea? He gives a simple analogy.&lt;br /&gt;&lt;br /&gt;In the 80's and 90's, the speed of PCs improved much faster then their bigger cousins. Today most servers don't run PA-RISC or SPARC anymore, they use the same x86 architecture as the home computers. We even almost forgot about special supercomputer or mainframe CPUs, it's better to throw in a bunch of Athlons or Xeons. But for the last few years, PC hasn't been the fastest growing child anymore. Mobile hardware used in smartphones and PDAs is improving at much higher rate. It seems likely that in a few years, for a given amount of processing power, we'll have an option of using 100 PCs or 500 smartphones. And these units were designed with low power consumption in mind.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_I5KwSSiP_FY/So2MyAxjimI/AAAAAAAAABU/YEHGuSJ2jAA/s1600-h/Picture+5.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5372104721352067682" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/So2MyAxjimI/AAAAAAAAABU/YEHGuSJ2jAA/s400/Picture+5.png" style="cursor: pointer; float: right; height: 259px; margin: 0pt 0pt 10px 10px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;A group of enthusiast picked up this idea called millicomputing and built several systems. The most interesting is MilliCluster. It consists of 14 ARM CPUs running at 1 GHz. Each has it's own 256 MB RAM and 4 GB Flash. They're interconnected with USB, external connection is dual gigabyte Ethernet. Peak power usage is 20 W, idle only 3 W! I suppose the Ethernet port is responsible for half of the idle power consumption. Need more processing power? 8 millicluster fit easily into single 1U rack module, together with PSU and some networking hardware.&lt;br /&gt;&lt;br /&gt;Today it's just a proof-of-concept. You don't get the most bang-for-the-buck with mobile CPUs (although you get the most bang-for-the-watt). Theoretical performance can be impressive, but it's in form of numerous low-speed nodes, connected with relatively slow network. That's acceptable for some type of problems (think SETI@Home, Boinc and other distributed projects), but a huge issue for others. However, it's a system built by enthusiast with of-the-shelf technology like USB. My guess is the proper internal bus would really boost the system like this. Don't worry about the number of CPUs. Ordinary PCs get more cores every year, the software we'll have to make more use of parallel architecture anyway.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://millicomputing.blogspot.com/2007/06/enterprise-millicluster.html"&gt;Adrian Cockroft's blog&lt;/a&gt; for more information and news.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;(Image from Adrian Cockroft's presentation published under Creative Commons Attribution Share-Alike 2.5)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-637449575519351855?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/637449575519351855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/cluster-of-mobile-phones.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/637449575519351855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/637449575519351855'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/cluster-of-mobile-phones.html' title='A cluster of mobile phones?'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/So2MyAxjimI/AAAAAAAAABU/YEHGuSJ2jAA/s72-c/Picture+5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4131317699105390851</id><published>2009-08-19T20:17:00.005+02:00</published><updated>2009-09-29T17:20:53.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpgpu'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='nvida'/><category scheme='http://www.blogger.com/atom/ns#' term='cuda'/><title type='text'>Turning your video card into a supercomputer</title><content type='html'>Using &lt;acronym title="Graphics Processing Unit"&gt;GPU&lt;/acronym&gt;s for computation is not a new idea. Actually, games have been doing that for years. Older video cards only accelerated functions directly related to displaying images, but they were given more features every year. Today, most of the 3D processing and even some game physics calculation are done by GPUs. They outperform CPUs for this kind of tasks because of their massively paralell (&lt;acronym title="Single Instruction stream, Multiple Data streams"&gt;SIMD&lt;/acronym&gt;) architecture: same operations are made on numerous variables at a time.&lt;br /&gt;&lt;br /&gt;Which is basically what scientist do with their clusters and grids. No wonder someone came with the idea of using GPU for the same purpose. At first, programmers were using tricks like disguising their code as OpenGL. Later, Nvidia and ATI provided libraries for generic-purpose calculations. First time I read about it, I was really excited: they promised supercomputer-like performance on a cheap video card. Turns out it's not that bright.&lt;br /&gt;&lt;br /&gt;At my institute we tested Nvi&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SoxCTbBZcPI/AAAAAAAAABE/U4aob_p4Mkg/s1600-h/NvidiaTesla.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 110px;" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SoxCTbBZcPI/AAAAAAAAABE/U4aob_p4Mkg/s320/NvidiaTesla.jpg" alt="" id="BLOGGER_PHOTO_ID_5371741356984725746" border="0" /&gt;&lt;/a&gt;dia CUDA library with several cards, both ordinary GeForce and special purpose &lt;a href="http://en.wikipedia.org/wiki/Nvidia_Tesla"&gt;Tesla&lt;/a&gt; units like the one pictured. &lt;span style="font-weight: bold;"&gt;Disclaimer:&lt;/span&gt; I haven't done much work with that technology, my colleagues have. Most of what I wrote here is based on their experience. What do they say?&lt;br /&gt;&lt;br /&gt;• Programming a GPU looks like a trip to the past. You have to deal with low-level stuff like registers, buses and memory locations. Compiler won't do that for you.&lt;br /&gt;• Some operations are blazingly fast, but only when using registers. Mostly your GPU will waste it's clock cycles waiting for the data.&lt;br /&gt;• GPUs are optimised for single-precision arithmetic without some standard features like NaN (see &lt;a href="http://en.wikipedia.org/wiki/IEEE_754"&gt;Wikipedia article on floating point&lt;/a&gt; if you don't know what it means). Scientific calculations mostly use double precision arithmetic and require all standard features. CUDA supports them, but at the great performance penalty.&lt;br /&gt;• The overhead of copying data between CPU and GPU sometimes eats up all the benefits of faster calculation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Still, in some applications they saw about &lt;span style="font-weight: bold;"&gt;20x performance increase&lt;/span&gt; compared to CPU. That obviously depends on what hardware you use, but generally you get the similar rate if you compare high-end Xeon to Tesla and entry-level CPU to cheap GeForce.&lt;br /&gt;&lt;br /&gt;Will it have an impact on ordinary users? Maybe. If GPU vendors provide better tools, we'll see this technology used more often. Some typical home applications can be parallelized. Imagine encoding a video file 20x faster than now. Or an image processing software, like Gimp or Photoshop, could use it to speed up operations. But I don't suppose many developers would like to spend hours tweaking their RAM-to-registers loading code. Assembler is rarely used on ordinary CPUs, because the compiler can do the same job good enough, sometimes even better than human. We need the same for GPUs, otherwise the technology won't be used outside the small realm of scientific computations.&lt;br /&gt;&lt;br /&gt;Lots of information on this technology can be found in Wikipedia, see:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/GPGPU"&gt;http://en.wikipedia.org/wiki/GPGPU&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/CUDA"&gt;http://en.wikipedia.org/wiki/CUDA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4131317699105390851?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4131317699105390851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/turning-your-video-card-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4131317699105390851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4131317699105390851'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/turning-your-video-card-into.html' title='Turning your video card into a supercomputer'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_I5KwSSiP_FY/SoxCTbBZcPI/AAAAAAAAABE/U4aob_p4Mkg/s72-c/NvidiaTesla.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7946580826291708376</id><published>2009-08-18T19:08:00.003+02:00</published><updated>2010-02-15T09:58:13.162+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alacricity'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='i/o'/><title type='text'>Alacricity</title><content type='html'>The world of Linux virtualization solutios doesn't get any less active. Just a few weeks ago we got an interesting addition. &lt;a href="http://developer.novell.com/wiki/index.php/AlacrityVM"&gt;Alacricity&lt;/a&gt; is a project that aims to provide much faster I/O for virtual machines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://virtually-a-machine.blogspot.com/2009/08/filesystem-performance-on-xen.html"&gt;I/O performance in VMs&lt;/a&gt; is noticably slower compared to real machines. My favourite hypervisor Xen works great for pure-CPU workloads, computations takes maybe 0.1% longer compared to native machine, but it gets noticably worse when doing lots of network or disk activity. For a typical server environment it usually causes about 5-10% decrease in performance, acceptable, but improvements are always welcome. However, form some tasks, like high performance file server, it gets much worse. I/O issue is also one of the major obstacles of adopting virtualization in cluster environments. After all, nobody wants to invest millions (literally!) in high-bandwidth, low-latency &lt;a href="http://en.wikipedia.org/wiki/InfiniBand"&gt;InfiniBand&lt;/a&gt; or 10G Ethernet interconnects to waste it all on virtualization overhead. Then there are also real-time systems in which every nanosecond counts.&lt;br /&gt;&lt;br /&gt;AlacricityVM is based on KVM, but introduces a new I/O fabric called Virtual-Bus. It greatly reduces the layers of indirection, thus allowing for greatly increased thoughput and - what's even more important for High-Performance Computing - greatly reduced latency. See &lt;a href="http://developer.novell.com/wiki/images/7/74/Vbus-introduction.pdf"&gt;Vbus introduction pdf&lt;/a&gt; if your interested technical details and the &lt;a href="http://lwn.net/Articles/345296/"&gt;article on lwn.net&lt;/a&gt; for general info.&lt;br /&gt;&lt;br /&gt;The project is at en early stage, definitely not ready for production environments. I'm looking forward till it's mature, I'll probably make a test deployment in a few months. Judging by the information I've read, it can really be a breakthrough. I mostly use Xen, but it might be a reason to switch (good thing I tend to use hypervisor-agnostic management tools). It's also quite possible for the technology to be integrated into Xen - didn't try it, but it seems possible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7946580826291708376?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7946580826291708376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/alacricity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7946580826291708376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7946580826291708376'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/alacricity.html' title='Alacricity'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-7694854457405875258</id><published>2009-08-18T19:05:00.003+02:00</published><updated>2010-08-12T20:01:27.468+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filesystems'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='i/o'/><title type='text'>Filesystem performance on Xen</title><content type='html'>Few days ago I decided to test filesystem performance on Xen. I read lots of Linux fs benchmarks, but none of them concerned domU. My thought was: Xen I/O performance is noticably worse than native and differences between filesystems might be amplified.&lt;br /&gt;&lt;br /&gt;I won't give you all the details, I didn't even recorded them. My aim was to get some hints about which technology should I choose, not the exact numbers. I ran some real-life workloads, which have an obvious disadvantage: they weren't designed to test any particular component in isolation. Fine for me, I wanted to know if a particular fs would let me do my work faster, not if it looked better in the benchmark.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Filesystems I checked:&lt;/span&gt;&lt;br /&gt;All mounted with noatime:&lt;br /&gt;• ext3 created with default options&lt;br /&gt;• ext3 with dir_index,&lt;br /&gt;• ext3 with data=ordered, writeback or journal&lt;br /&gt;• JFS with default options&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why I didn't check some of the others:&lt;/span&gt;&lt;br /&gt;• btrfs, ext4 - not stable enough,&lt;br /&gt;• reiserfs - I had very bad experience in the past (severe data loss) and I'm not giving it a second chance,&lt;br /&gt;• XFS - known for poor unlink performance.&lt;br /&gt;&lt;br /&gt;My main test was several tasks running &lt;span style="font-weight: bold;"&gt;in parallel&lt;/span&gt;, I was interested in total execution time. They were using files of different sizes, from few hundred B to few dozens MB and also doing intensive CPU work. I specifically didn't try to compensate for external factors like caches. The conclusion was suprising: there was &lt;span style="font-weight: bold;"&gt;no signifacant difference&lt;/span&gt;. And, if any fs performed better, it was ext3 with default options, but the differences were below 1%. One exception was ext3 with dir_index, which was noticably slower.&lt;br /&gt;&lt;br /&gt;I was astounded. I've seen so many benchmarks, performance tuning howtos, even flamewars. Turned out that old, boring ext3 without any meddling was the best choice. I always chose it anyway, for stability and compatibility. I knew if anything go wrong, all data recovery tools work with ext3. It has it's shortcomings, especially very long fsck time on large partitions, but there's always a tradeoff.&lt;br /&gt;&lt;br /&gt;I also tried a low level test - &lt;a href="http://www.coker.com.au/bonnie++/"&gt;bonie++&lt;/a&gt;. This time I could see some differences. Generally, each FS or option performed slightly better in one place and worse in the other. If your needs are specialized, eg. you use millions of small files or few very large ones, you need low seek time and don't care much about latency or vice versa, it might be worth to try. For a general-purpose machine, all these strong and weak points seemed to had compensated for each other. My advice, if you still want to find the fastest fs, use a simulated workload instead of low-level benchmark.&lt;br /&gt;&lt;br /&gt;There werse also significant (10-20%) differences between the runs of bonie++. I also tried the same test (ext3/defaults only) on a real machine. The results not only were better, but also more similar on each run. The "real-life" test finished about 20% faster.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Xen reliability&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On a slightly related note, one of my spare VMs has been running crashme for days. Nothing happened. The test could have failed for 3 reasons: bug in Linux kernel, Xen hypervisor or hardware issue, but all components worked flawlessly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-7694854457405875258?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/7694854457405875258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/filesystem-performance-on-xen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7694854457405875258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/7694854457405875258'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/filesystem-performance-on-xen.html' title='Filesystem performance on Xen'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-8566953180352097958</id><published>2009-08-14T17:17:00.012+02:00</published><updated>2009-12-04T12:26:16.737+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Xen vs. KVM vs. the rest of the world</title><content type='html'>No website about Xen can be considered complete without an opinion on this topic. KVM got included into the Linux kernel and is considered the right solution by most distributions and top Linux developers, including Linus Thorvalds himself. This made many people think Xen is somehow inferior or is on the way to decline. The truth is, these solutions differ both in terms of underlying technology and common applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How Xen works&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Xen not only didn't make it to the main tree of the Linux kernel. It doesn't even run on Linux, although it looks like it. It's a&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;bare metal hypervisor&lt;/span&gt; (or: &lt;span style="font-style: italic;"&gt;type 1 hypervisor&lt;/span&gt;)- a piece of software that runs directly on hardware. If you install a Xen package on your normal Linux distribution, after rebooting you will see Xen messages first. It will then boot your existing system into a first, specially privileged virtual machine called &lt;span style="font-style: italic;"&gt;dom0.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This makes the process quite complex. If you start experimenting with Xen and at first attempt make your machine unbootable, don't worry - it happened to many people, including Yours Truly. You can also download &lt;a href="http://www.xensource.com/"&gt;Xen Server&lt;/a&gt; - commercial, but free distribution of Xen which comes with a simple to use installer, a specially tailored, minimal Linux system in dom0 and enterprise-class management tools. I'll write some more about diffences between XenServer and "community" Xen in a few days.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It also means you won't be able to manipulate VMs using ordinary Linux tools, e.g. stop them with &lt;span style="font-style: italic;"&gt;kill&lt;/span&gt; and monitor with &lt;span style="font-style: italic;"&gt;top&lt;/span&gt;. However, Xen comes with some great management software and even greater 3rd-party apps are available (be careful, some of them don't work with Xen Server). They can fully utilize interesting features of Xen, like storing snapshots of VMs and live-migration between physical servers.&lt;br /&gt;&lt;br /&gt;Xen is also special for its use of technology called &lt;a href="http://en.wikipedia.org/wiki/Paravirtualization"&gt;paravirtualization&lt;/a&gt;.&lt;span style="font-style: italic;"&gt; &lt;/span&gt;In short, it means that the guest operating systems knows it runs on a virtualized system. There is an obvious downside: it needs to be specially modified, although with open source OSes that's not much of an issue. But there's also one very important advantage: speed. &lt;span style="font-weight: bold;"&gt;Xen delivers almost native performance&lt;/span&gt;. Other virtualization platforms use this approach in a very limited way, usually in form of a driver package that you install on a guest systems.&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;This&lt;span style="font-style: italic;"&gt; &lt;/span&gt;improves the speed compaired to completely non-paravirtualized system, but is still far from what can be achieved with Xen.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;How KVM works&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;KVM runs inside a Linux system, not above it - it's called &lt;span style="font-style: italic;"&gt;type 2&lt;/span&gt;, or &lt;span style="font-style: italic;"&gt;hosted hypervisor&lt;/span&gt;. This has several significant implications. From technical point of view, it makes it easier to deploy and manage, no need for special boot-time support; but it also makes it harder to deliver good performance. From political point of view, Linux developers view it as superior to Xen because it's a part of the system, not an outside piece of software.&lt;br /&gt;&lt;br /&gt;KVM requires CPU with hardware virtualization support. Most new server, desktop and laptop processors from Intel and AMD work with KVM. Older CPUs or low-power units for netbooks, PDAs and the like lack this feature. Hardware-assisted virtualization makes it possible to run an unmodified operating system with an adequate speed. Xen can do it too&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;although this feature is mostly used to run Windows or other proprietary guests. Even with hardware support, pure virtualization is still much slower than paravirtualization.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Rest of the world&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Some VMware server platforms and Microsoft Hyper-V are bare-metal hypervisors, like Xen. VMware's desktop solutions (Player, Workstation) are hosted, as well as QEMU, VirtualBox, Microsoft Virtual PC and pretty much everything else. None of them employ a full paravirtualization, although they sometimes offer drivers improving the performance of guest systems.&lt;br /&gt;&lt;br /&gt;KVM only runs on machines with hardware virtualization support. Some enterprise platforms have this requirement too. VirtualBox and desktop versions of VMware work on CPUs lacking virtualization support, but the performance is greatly reduced.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;What shoud you choose?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;For the server, grid or cloud&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to run Linux, BSD or Solaris guests, nothing beats the paravirtualized performance of &lt;span style="font-weight: bold;"&gt;Xen&lt;/span&gt;. For Windows and other proprietary operating systems, there's not much difference &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW6QZbZpdI/AAAAAAAAAAk/L656oHHpxTU/s1600-h/virt-manager.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 241px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW6QZbZpdI/AAAAAAAAAAk/L656oHHpxTU/s320/virt-manager.jpg" alt="" id="BLOGGER_PHOTO_ID_5369902921575671250" border="0" /&gt;&lt;/a&gt;between the platforms. Performance and features are similar.&lt;br /&gt;&lt;br /&gt;In the beginning &lt;span style="font-weight: bold;"&gt;KVM&lt;/span&gt; lacked live migration and good tools. Nowadays most open source VM management applications (like virt-manager on the screenshot) support both Xen and KVM. Live migration was added in 2007.  The whole system is considered stable, although some people still have reservations and think it's not mature enough. Out of the box support in leading Linux distributions is definitely a good point.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VMware&lt;/span&gt; is the most widespread solutions - as they proudly admit, it's used by &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; companies from Fortune 100. Main disadvantage is poor support from open source community. If free management software from VMware is not enough for you, you usually have no choice but to buy a commercial solution - and they don't come cheap. Expect to pay several thousand $ per server or even per CPU.&lt;br /&gt;&lt;br /&gt;My subjective choice would be: 1 - Xen, 2 - KVM, 3 - VMware ESXi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;For the personal computer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While &lt;span style="font-weight: bold;"&gt;Xen&lt;/span&gt; is my first choice for the server, it would be very far on the list of "best desktop virtualization platforms". One reason is poor support for power management. It slowly improves, but still I wouldn't install Xen on my laptop. Also the installation method is more suitable for server platforms, but inconvenient for the desktop.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;KVM&lt;/span&gt; falls somewhere in the middle. As a hosted hypervisor, it's easier to run. Your Linux distribution probably already supports it. Yet, it lacks some user-friendliness of true desktop solutions and if your CPU doesn't have virtualization extensions, you're out of luck.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VMware Player&lt;/span&gt; (free of charge, but not open source) is extremaly easy to use, when you want to run VMs prepared by somebody else (hence the name Player - nothing to do with games). Creating a new machine requires editing configuration file or external software (eg. this &lt;a href="http://www.easyvmx.com/"&gt;web-based VM creator&lt;/a&gt;). What I really like is convenient hardwa&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW3Oixw23I/AAAAAAAAAAc/binHtGPdSYk/s1600-h/vmware-hardware.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 141px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW3Oixw23I/AAAAAAAAAAc/binHtGPdSYk/s320/vmware-hardware.jpg" alt="" id="BLOGGER_PHOTO_ID_5369899591190764402" border="0" /&gt;&lt;/a&gt;re management (see screenshot) - just one click to decide if your USB drive belongs to host or guest operating system, another to mount ISO image as guest's DVD-ROM. Another feature is easy file sharing between guest and host. Player's bigger brother is&lt;span style="font-weight: bold;"&gt; VMware Workstation&lt;/span&gt; (about $180). It comes with the ability to create new VMs as well as some other additions. Due to the number of features it slightly harder to use, but still very user-friendly.&lt;br /&gt;&lt;br /&gt;VMware offers special drivers for guest operating systems. They are bundled with Workstation, for Player they have to be downloaded separately (or you can borrow them from Workstation,  even demo download - license allows it).  They are especially useful if you want to run Windows guest, even on older CPUs without hardware assist it's quite responsive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VirtualBox&lt;/span&gt; comes close to VMware. It also has the desktop look&amp;amp;feel and runs on non-hardware-assisted platforms. Bundled &lt;span style="font-style: italic;"&gt;guest additions&lt;/span&gt; improve performance of virtualized systems. Sharing files and hardware is easy - but not that easy. Overall, in both speed and features, it comes second.&lt;br /&gt;&lt;br /&gt;My subjective choice: 1 - VMware Player or Workstation, 2 - VirtualBox, 3 - KVM&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-color:red"&gt;EDIT: &lt;/span&gt;I later found out that new version of &lt;a href="http://virtually-a-machine.blogspot.com/2009/10/run-windows-on-linux-with-virtualbox.html"&gt;VirtualBox is superior to VMware Player&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;What other people think?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Read some more comparisons:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.gridvm.org/xen-vs-kvm.html"&gt;Xen vs. KVM at gridvm.org&lt;/a&gt; (very interesting site, by the way)&lt;/li&gt;&lt;li&gt;&lt;a href="http://balajirrao.wordpress.com/2008/06/25/xen-vs-kvm/"&gt;Xen vs. KVM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://itknowledgeexchange.techtarget.com/server-virtualization/xen-vs-kvm-the-pros-and-cons-from-linuxworld-2007/"&gt;Xen vs. KVM from LinuxWorld 2007&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-8566953180352097958?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/8566953180352097958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/xen-vs-kvm-and-rest-of-world.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8566953180352097958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/8566953180352097958'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/xen-vs-kvm-and-rest-of-world.html' title='Xen vs. KVM vs. the rest of the world'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW6QZbZpdI/AAAAAAAAAAk/L656oHHpxTU/s72-c/virt-manager.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3833634700318167346.post-4066202499966570819</id><published>2009-08-10T15:03:00.006+02:00</published><updated>2009-08-15T10:41:26.101+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Why virtualize servers? 10 reasons.</title><content type='html'>People who didn't experience the benefits of virtualization often ask what's the big deal. The often repeated argument about consolidation is flawed: after all, instead of running 10 VMs, each serving a single app, you can have one multi-purpose server. Having only one system to maintain means less work. True? Not quite. There are reasons for separating applications in either physical or virtual computers. The first option is clearly too expensive in so many ways (not only initial costs, but also power, cooling, space, maintenance) and VMs even have some advantages over real computers.&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I5KwSSiP_FY/SoW7-FHXkWI/AAAAAAAAAA0/cPtv1bwj9AI/s1600-h/screen.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 293px; height: 320px;" src="http://3.bp.blogspot.com/_I5KwSSiP_FY/SoW7-FHXkWI/AAAAAAAAAA0/cPtv1bwj9AI/s320/screen.jpg" alt="" id="BLOGGER_PHOTO_ID_5369904805908549986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;1. Isolation&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I believe it is possible to have a machine serving HTTP, FTP, DNS, SMTP, POP, IMAP, 2 types of SQL and 5 types of application servers in addition to doing its own resource monitoring and intrusion detection. I used to have boxes doing 80% of that and obviously I could have just installed another app. But the whole setup is barely maintainable. Debugging a problem becomes extremely difficult, when you have to filter out all the irrelevant information. Upgrades are nightmare. There's no way of writing a comprehensive SELinux policy. And worst of all, one misbehaving app using to many resources can bring the whole system to it's knees. Yes, you can impose some limits by PAM, but not on all the resources and anyway, you can't predict anything, especially when customers are allowed to run their applications.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;2. Security&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;On a multi-purpose server, a security hole in one application exposes all the others. An attacker who gained access using an exploit on a web application can than read your mail or alter your DNS zones. All the modern operating systems have some ways of preventing that. Applications can be isolated by running with different UIDs or using chroot jails. That has never been enough to stop the intruders. After an intrusion, you usually have no option but to reinstall the machine from scratch or at least restore a backup and hope it doesn't contain any rootkits.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;A successful attack on a virtual server is much less devastating. If you followed the advice of having a single-purpose machine, there are no other applications on that system, no tools that malicious user can use to his advantage. If you want to investigate, suspend the VM and resume it on another machine without a network connection. Restoring the attacked machine is a matter of minutes (you DO have snapshots of your VMs, right?).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;And that's provided you didn't avoid an intrusion in the first place. Single purpose machines are way easier to harden. You can check which binaries are run and which files are read and disallow everything else with ACLs. If you know it's only going to run a web application, just filter all the ports except HTTP.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;3. Dealing with software incompatibility&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Sometimes it's impossible to run 2 apps on the same machine. They can rely on a different version of a library  or other component. Or they both need to use the same TCP port. Commercial apps on an open-source system tend to cause problems. They are less configurable, often expect to be installed in a specific place, sometimes require a specific OS distribution. It's easiest to have a separate system for them. There are workarounds, but they make your setup even more messy, hard to test and to maintain.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;4. Maintaining legacy systems&lt;/strong&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW7UMBqFkI/AAAAAAAAAAs/K4nPrpAg5ew/s1600-h/legacy.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 226px;" src="http://2.bp.blogspot.com/_I5KwSSiP_FY/SoW7UMBqFkI/AAAAAAAAAAs/K4nPrpAg5ew/s320/legacy.jpg" alt="" id="BLOGGER_PHOTO_ID_5369904086209140290" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Another issue are legacy servers running in many companies. Nobody dares to touch them, because the last guy who knew how they work retired last century. They run a different operating system that you never even heard of. They have small hardware requirements, but where you can get replacement parts for that 486? These machines are prime candidates for virtualization.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;5. Easier software upgrades&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Now that you have single-purpose machines, upgrading became much easier, but that's not the end of good news. You don't have to upgrade your critical business server in-place. Just create a new virtual machine, install a new version and test it thoroughly. When it's done, switch the virtual plug.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;6. Easier hardware upgrades&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Upgrading hardware has never been easier. Hypervisor exposes the same set of devices on every box (unless you configured it to give a VM a direct access to a specific hardware, which you shouldn't do without a good reason), that means no worries with the device drivers. When you need more processing power, plug another server and migrate some VMs from the old ones. Popular hypervisors Xen and VMWare allow a live migration with almost none downtime (usually below 100 ms).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;7. High availability&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;HA installations used to be found only in the richest companies and even there only for the mission-critical servers. After all, you had to double all your hardware, also doubling your power, cooling and space expenses. Not any more.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;With VMS, you can take snapshots. You can live migrate. You can suspend them, at which point they use virtually (pun intended) no resources, but they can be quickly resumed. I think you get the image now: all you need to run a HA installation is some more planning and configuration in the beginning.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;8. Dealing with increased load&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The peek load of the server is usually orders magnitude higher than the standard load. With traditional server, you had to buy one that can sustain peek traffic (meaning: expensive hardware, more power draw). Or buy one that's right for your day-do-day needs and hope nobody mentions your website on slashdot or digg. VMs, as usual, give you more choices. You can migrate them around your physical servers to balance the load. You can suspend some VMs to give more resources to the others. If your infrastructure is compatible with public clouds (eg. Amazon EC2), you can rent some processing power for a negligible cost.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I5KwSSiP_FY/SoW83uFjQoI/AAAAAAAAAA8/Rna6vcGHLA8/s1600-h/storage.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_I5KwSSiP_FY/SoW83uFjQoI/AAAAAAAAAA8/Rna6vcGHLA8/s320/storage.jpg" alt="" id="BLOGGER_PHOTO_ID_5369905796159324802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;9. Backup and restore&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Backup is always simple, whether in a virtual of physical environment. After some initial configuration, it happens automatically. It's restoring that's difficult.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Restoring a traditional server is a long, manual process. Hours of downtime, during which both IT and financial people develop ulcers. It's also hard to test, which means the test is often postponed indefinitely until a disasters strikes, at which point you find out restore procedure fails. With VMs, you can save a complete snapshot (disk and RAM image) of a running server. Restoring is a matter of copying the image to the right place. Testing restore? Just start another VM.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;10. Testing new software&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In a typical corporate environment, all machines are already put to a good use. If you need one for a test deployment, it takes a lot patience, paperwork and begging to get it. If you need several machines to test a networking app, your completely screwed. Not any more. Creating a new VM is a matter of minutes. You don't need high performance for a test, which means you can squeeze dozens of VMs on one box.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3833634700318167346-4066202499966570819?l=virtually-a-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://virtually-a-machine.blogspot.com/feeds/4066202499966570819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/why-virtualize-servers-10-reasons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4066202499966570819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3833634700318167346/posts/default/4066202499966570819'/><link rel='alternate' type='text/html' href='http://virtually-a-machine.blogspot.com/2009/08/why-virtualize-servers-10-reasons.html' title='Why virtualize servers? 10 reasons.'/><author><name>igor</name><uri>http://www.blogger.com/profile/05718842318333765786</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I5KwSSiP_FY/SoW7-FHXkWI/AAAAAAAAAA0/cPtv1bwj9AI/s72-c/screen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
