LVM thin volume explained

Written by Gionatan Danti on . Posted in Linux & Unix

User Rating:  / 2

You probably know what LVM is: is Linux's Logical Volume Manager. Its role is to give you a flexible partition scheme for your ever-increasing disk space: while standard partition (MBR or GTP style) are semi-static entries (they can be quite tricky to resize), expanding a LVM based partition is a much nicer experience.

However, while LVM's dynamic nature is a much appreciated feature, in complex situations you can find normal LVM volumes not flexible enough.

Joomla 3.3, CentOS 6 and PHP version - putting all together

Written by Gionatan Danti on . Posted in Linux & Unix

User Rating:  / 1

NOTE: these information were originally provided in a post I wrote on the Joomla forum

Many CentOS and Joomla users had a bad surprise lately: while Joomla 3.2 happily run on CentOS provided PHP packages (5.3.3), the 3.3 update strongly refuse to run on anything that PHP 5.3.10, citing security issues as the main reason. In my opinion, this is not a wise move - after all, the long-term distribution all apply custom patches and backports to their PHP version and, in this specific case, CentOS packages provide absolutely comparable security to the target 5.3.10 PHP version.

Anyway, we can do very little to change this situation: Joomla developer stated that the will not support older PHP version. So, how can we use Joomla on our beloved CentOS 6.x installations? While custom-patching Joomla's version-check functions can be tempting, this is not the best thing to do: any custom patching increase the risk of future problems, especially when updating your Joomla installation. On the other side, simply using a more up-to-date repository featuring PHP 5.4+ can not be practical: maybe you have other sites on hosted on your server, and (correctly) you don't want to introduce any possible problems for this sites, or you simply want to stick with default repositories.

Fortunately, the solution exists: say hello to "Software collections" or SCL in short.

Linux compressors comparison on CentOS 6.5 x86-64: lzo vs lz4 vs gzip vs bzip2 vs lzma

Written by Gionatan Danti on . Posted in Linux & Unix

User Rating:  / 6

File compression is an old trick: one of the first (if not the first) program capable of compressing files was “SQ”, in the early 1980s, but the first widespread, mass-know compressor probably was ZIP (released in 1989).

In other word, compressing a file to save space is nothing new and, while current TB-sized, low costs disks provide plenty of space, sometime compression is desirable because it not only reduces the space needed to store data, but it can even increase I/O performance due to the lower amount of bits to be written or read to/from the storage subsystem. This is especially true when comparing the ever-increasing CPU speed to the more-or-less stagnant mechanical disk performance (SSDs are another matter, of course).

While compression algorithms and programs varies, basically we can distinguish to main categories: generic lossless compressors and specialized, lossy compressors.

If the last categories include compressors with quite spectacular compression factor, they can typically be used only when you want to preserve the general information as a whole, and you are not interested in a true bit-wise precise representation of the original data. In other word, you can use a lossy compressor for storing an high-resolution photo or a song, but not for storing a compressed executable on your disk (executable need to be perfectly stored, bit per bit) or text log files (we don't want to lose information on text files, right?).

KVM scalability and consolidation ratio: cache none vs cache writeback

Written by Gionatan Danti on . Posted in Virtualization

User Rating:  / 4

In the latest ten years, full-virtualization technologies gained much traction. While this sometime led to an excessive virtual machines proliferation, the key concept is very appealing: as CPU performance and memory capacity relentless grow over time, why do not use this ever-increasing power to consolidate multiple operating system instances on one single, powerful server?

If done correctly (ie: without an unnecessary grow of total OS instances), this consolidation process bring considerable lower operating costs, both from electricity and maintenance/administration standpoints.

However, in order to extract good performance from virtual machines, it is imperative to correctly size the host virtualizer: CPU, disk, memory and network subsystems should all be capable to sustain the expected average workload, and also something more for the inevitable usage peeks.

KVM VirtIO paravirtualized drivers: why they matter

Written by Gionatan Danti on . Posted in Virtualization

User Rating:  / 7

As you probably already know, there are basically two different schools in the virtualiztion champ:

  • the para-virtualization one, where a modified guest OS uses specific host-side syscall (hypercall) to do its “dirty work” with physical devices
  • the full hardware virtualization one (HVM), where the guest OS run unmodified and the host system “traps” when the guest try to access a physical device

The two approach are vastly different: the former requires extensive kernel modifications on both guest and host OSes but give you maximum performance, as both kernels are virtualization-aware and so they are optimized for the typical workload they experience. The latter approach is totally transparent to the guest OS and often do not require many kernel-level changes to the host side but, as the guest OS is not virtualization aware, it generally has lower performance.