Ubuntu, Google, and the Future of Linux. And rsync too.
There's a provocatively titled article by Robert Strohmeyer over at PC World that professes "The Future of Linux is Google". It waxes prophetically about how Google will eventually dominate all that is Linux and Open Source, and that "it's time for the Linux world to rally". It starts off with a nod to Ubuntu, with the author telling us he used to believe Ubuntu (and Canonical) was destined to lead Linux into the mainstream. The reason I can't seem to get this one out of my mind is because of the whole rallying thing; the idea that Google is now Linux's great hope and that we should all rally behind Google. Forget about Ubuntu and the others. Google is where it's at, even if Chrome doesn't officially exist yet. Seemingly seconds after the article's publication, Chrome OS because available for download, as if fate were doffing its cap to Google's power. It's interesting reading and I do recommend that you check it out.
But let's be honest though. Without Linux, Google might not have grown into the powerhouse you see today. I'm not saying it wouldn't have been a successful company, just not as successful. It sure as hell wouldn't be as profitable as it is if its option was to hand out individual license payments to Microsoft for each and every server it deployed. For the sake of brevity, I won't even start on Linux's obvious superiority as a server OS when compared to Windows.
Conservative estimates from Wikipedia suggest that Google has more than 450.000 servers in its global supermegagigantic cluster. Meanwhile, an article over at Pandia quotes a Gartner Invest estimate of 1 million servers; with multicore instances and virtual machines taken into account, that number is apparently closer to 3 million. With Google deploying an additional 100,000 servers per quarter, and given that this last article is from July 2007, I can extrapolate and say that Google now has some 2 million servers, not counting all those cores and virtual machines.
Whatever the real number is (Google's not saying), one fact is indisputable. Running Linux and open source has saved Google an enormous amount of cash. Running Linux has allowed Google the means to create custom, finely tuned systems, optimized for its business and technological needs. It has also given Google the power to develop, and play with, many different applications from which to increase its already considerable *ahem* monetary assets. Building your business around Linux and Open Source software isn't just about saving on license costs either. In doing so, Google can take advantage of a formidable army of enormously talented and dedicated developers in the FOSS community at large (a pause while I acknowledge that the FOSS community also benefits from Google's largesse, so there is most definitely give and take.)
Those applications, by the way, just keep coming. Gmail. Google Maps. Google Calendar. Google Earth. Android on cell phones and other mobile devices. The nascent Chrome OS is yet another example of Google using Linux to provide the next generation of cloud-based applications and power future netbooks.
The real truth here is that Linux is the future of Google, along with its present, and its past. Linux has helped Google, in part at least, to become the powerhouse we both love and fear.
So where does that leave Ubuntu? Right where it is with all the potential is already has. Same for the other Linux vendors.
Chrome OS is a cloud-based application delivery platform, built for a very specific purpose, namely those little netbooks. Your data and the heart of the applications in Chrome OS live in Google's cloud. A lot of people will be very happy with that. There are, however, countless other applications that aren't suited to the cloud-based model. Applications that can only realistically live on the desktop (at least for the foreseeable future). Desktop Linux, and Ubuntu by extension, will continue to thrive there and to evolve into something even greater than what it is today. Chrome competes with Microsoft where Microsoft is, er, softest. The cloud.
On the desktop, Ubuntu (along with other Linux distributions), is still the best alternative to the expensive, proprietary, virus-infested, patent-laden, troublesome operating system that currently controls the vast majority of desktops. Oops, that last part was supposed to be my inside voice.
Okay, enough Google. Backups.
Last week, I told you about my NAS purchase, and my desire to explore desktop applications for backing up your Ubuntu computer. From the administrative interface of my Buffalo NAS, I created a network share that I could access with the different systems in my office. It's an SMB share so that it can also be accessed from Windows if needs arise. I then permanently mount those shares as network file systems (though not NFS) on my Kubuntu Karmic system. This I do from the command line; actually, it runs from my rc.local boot script.
/bin/mount -t cifs -o uid=marcel,gid=marcel -o username=marcel,password=secretpassword //bvault/marcel /mnt/vault
Because I am mounting a cifs type filesystem, I previously had to install the smbfs package (sudo apt-get install smbfs). The uid and gid flags give the mounted file systems permissions that allow me to store creation and modification time information, useful for a backup. I can have, and in fact do have, several mounted shares depending on whether this is for backups, or for storing music or videos. In this case, vault just happens to be the name I give to the folder where I store my backups.
The first application I want to share with you is actually a command line application, though what I actually want to do is show off some of the friendlier graphical applications (and I will do that starting next week). Since most of them will use rsync, I'll spend this week giving you a quick overview of how rsync works.
rsync -av local_folder remote_folder
Using my own data vault to back up my Ubuntu User folder, I might see something like this.
$rsync -av Issue3 /mnt/vault/ubuntu_user sending incremental file list Issue3/ Issue3/Issue 3 Remote Control.odt Issue3/Issue 3 Remote Control.txt Issue3/Remote_Desktop_Preferences.png Issue3/create_invitation.png Issue3/email_invitation.png Issue3/gnome_clients_connected.png Issue3/gnome_from_kde.png Issue3/kde_from_gnome.png Issue3/krdc_options.png Issue3/krdc_viewing_gnome.png Issue3/krfb_configure.png Issue3/krfb_incoming.png Issue3/nx_configure.png Issue3/nx_connect.png Issue3/nx_remote_centos.png Issue3/personal_invitation.png Issue3/recursive_gnome.png Issue3/remote_menu.png Issue3/view_desktop_allow.png Issue3/vinaigre_authenticate.png Issue3/vinaigre_connect.png Issue3/vinaigre_start.png sent 5232421 bytes received 434 bytes 1162856.67 bytes/sec total size is 5230173 speedup is 1.00
Easy. For rsync to be a really useful engine though, it should be able to delete files. After all, if you are mirroring a folder (or folders), it stands to reason that you want the mirror to represent exactly what is on the original. If files have been deleted, you want them deleted on the backup as well. We make this magic happen with the --delete flag. I'll start by deleting the image for vinaigre_start.png from the local folder.
$rsync -av --delete Issue3 /mnt/vault/ubuntu_user sending incremental file list Issue3/ deleting Issue3/vinaigre_start.png sent 699 bytes received 16 bytes 1430.00 bytes/sec
That's it. Both folders, including my local folder and the remotely mounted folder, are in sync.
Next week, I'll get graphical on you. Promise.
Feel free to try this at home.
Until next time . . .