If not, you should strongly consider it. Unless, you are using ZFS, BTRFS, or other “controversial” filesystems. ZFS and BTRFS are outside of scope for this discussion but are definitely worth reviewing if you haven’t heard of them and are running Linux in your environment.
Logical Volume Manager for Linux is a proven storage technology created in 1998. It offers layers of abstraction between your storage devices in your Linux system and the filesystems that live on them. Why would you want to add an extra layer between your servers and their storage you might ask?
According to Red Hat :
“Logical Volume Management (LVM) presents a simple logical view of underlying physical storage space, such as hard drives or LUNs. Partitions on physical storage are represented as physical volumes that can be grouped together into volume groups. Each volume group can be divided into multiple logical volumes, each of which is analogous to a standard disk partition. Therefore, LVM logical volumes function as partitions that can span multiple physical disks.”
I think LVM is much easier to understand with a diagram. The above image illustrates some of the concepts involved with LVM. Physical storage devices recognized by the system can be presented as PVs (Physical Volumes). These PVs can either be the entire raw disk, or partitions, as illustrated above. A VG (Volume Group) is composed of one or more PVs. This is a storage pool, and it is possible to expand it by adding more PVs. It is even possible to mix and match storage technologies within a VG. The VG can then allocate LVs (Logical Volumes) from the pool of storage, which is seen as raw devices. These devices would then get formatted with the file system of your choice. They can grow or shrink as needed, so long as space is available in either direction for the operation.
Without LVM, many of these operations discussed above are typically offline, risky, and painful. These all amount to downtime, which we in IT like to avoid. While some may argue that the additional abstractions add unnecessary complexity, I would argue that LVM really isn’t that complicated once you get to know it. The value of using LVM greatly outweighs the complexity in my opinion.
The value proposition is even greater when using LVM on physical Linux nodes using local storage. SAN storage and virtual environments in hypervisors typically have snapshot capabilities built-in, but even those do not offer all of the benefits of LVM. It also offers another layer of protection in those instances. Alternatively, the aforementioned ZFS and BTRFS are possible alternatives, and arguably better choices depending on who you ask. However, due to the licensing (ZFS) and potential stability (BTRFS) issues, careful consideration is needed with those technologies. Perhaps those considerations are topics for a future blog…
Want to learn more? Please reach out, we’re here to help.
Strictly speaking, Linux is the kernel, or core of Linux distributions. I like to think of the Linux kernel like the base plate for Legos. It’s where all other pieces attach to.
A distribution, or “distro” for short, is a complete operating system including a kernel, packages, package managers, and everything else needed. In other words, distros are pre-assembled building block sets depending on user preference and needs. Red Hat, SUSE, and Ubuntu are examples of some of the more popular distros. There are too many others to list here, but here are some resources to give you an idea.
As a long time Linux user, I can understand why it didn’t take off as a general purpose operating system like MS Windows. There are just too many choices, differences between those choices, and perceived lack of standardization. There’s also the reputation of being difficult to use. Why then would anyone want to use Linux, instead of Microsoft Windows or Mac OS X for example? Like the number of distros, the number of Linux use cases is also very extensive, so I’ll cover just a few popular ones.
Open source software is typically free, though some commercially backed distros such as RHEL do charge subscription fees. Linux runs on many different types of hardware such as IoT devices, personal computers, networking equipment, load balancers, supercomputers, and just about anything it seems. It can run on very low end or less common hardware. This makes it perfect for IoT devices, where processing power may be limited, and cost needs to be kept down.
It also powers very high end hardware, including much of what powers “the cloud.” Servers powering the internet need a reliable operating system that can run continuously without downtime, while maintaining a high level of security. There are far fewer circumstances in which Linux based OSes require a reboot.
Though I wouldn’t recommend it for most use cases, it is certainly possible for Linux devices to run continuously for YEARS without a reboot. It is also much easier to avoid viruses and malware. This is great for web servers, databases, load balancers, routers, switches, firewalls, storage servers, virtual machine hypervisors, and many other pieces of critical IT infrastructure.
The trend to “containerize” everything has taken the world by storm. Though MS Windows containers are now an option, until recently Linux was your only option. It is a much more mature platform for containers. There is much better documentation and support for containers on Linux. It is much lighter weight which allows for much denser deployments, as well as portability.
One example of a popular container OS is Alpine Linux . ” It is built around musl libc and busybox. This makes it smaller and more resource efficient than traditional GNU/Linux distributions. A container requires no more than 8 MB and a minimal installation to disk requires around 130 MB of storage. Not only do you get a fully-fledged Linux environment but a large selection of packages from the repository.”
AI, machine learning, and deep learning are also getting a lot of attention these days. Linux offers a number of advantages in this space, including better integration with containers. There are many examples and lots of documentation to help someone building an AI project on Ubuntu for example.
Want to train your model in the cloud, but deploy at the edge to a low powered IoT device and/or container? You will likely have a much easier time, along with better and more predictable results on Linux.
If you are considering an IoT or AI project, and/or the infrastructure required to support it, Zunesis has the expertise. Schedule an assessment today, we’d love to help!