Introduction to Managing Storage in Linux

This post introduces the fundamental concepts of Linux storage management, covering partitions, filesystems, LVM, and RAID. It explains how these components work together to provide flexible and reliable data storage in Linux systems.

Introduction to Managing Storage in Linux

Storage management is one of the most critical skills for any Linux administrator. Whether you're setting up a new server or maintaining an existing system, understanding how Linux handles storage will save you countless hours and prevent data disasters down the road.

Linux storage management revolves around several key components that work together to provide flexible, reliable data storage. Let's explore these fundamental building blocks that every Linux user should understand.

Understanding Linux Storage Architecture

Linux treats everything as a file, including storage devices. When you connect a hard drive, SSD, or USB stick to your system, Linux represents it as a device file in the /dev directory. For example, your first SATA drive appears as /dev/sda, the second as /dev/sdb, and so on.

To see all available storage devices on your system, use the lsblk command:

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   19G  0 part /
sdb      8:16   0  100G  0 disk 

This tree-like output shows your storage devices and their partitions, making it easy to understand your system's storage layout at a glance.

Linux Partitions: Dividing Your Storage

Partitions are logical divisions of a physical storage device. Think of them as separate rooms in a house - each partition can have its own filesystem and serve different purposes. Linux supports two main partition table formats:

  • MBR (Master Boot Record): The older standard, limited to 4 primary partitions and 2TB drives
  • GPT (GUID Partition Table): The modern standard, supporting up to 128 partitions and much larger drives

You can create and manage partitions using tools like fdisk for MBR or gdisk for GPT partitions. Here's how to view partition information:

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 41943039 39843840  19G 8e Linux LVM

Filesystems: Organizing Your Data

A filesystem determines how data is stored and organized within a partition. Linux supports numerous filesystem types, each with specific advantages:

  • ext4: The most common Linux filesystem, reliable and well-supported
  • xfs: High-performance filesystem, excellent for large files
  • btrfs: Modern filesystem with advanced features like snapshots and compression

To create a filesystem, use the mkfs command family:

$ sudo mkfs.ext4 /dev/sdb1
$ sudo mkfs.xfs /dev/sdb2

LVM Introduction: Flexible Storage Management

Logical Volume Manager (LVM) is where Linux storage management truly shines. LVM adds a layer of abstraction between your physical storage and filesystems, providing incredible flexibility for storage management.

LVM uses three main concepts:

  • Physical Volumes (PV): Your actual storage devices or partitions
  • Volume Groups (VG): Collections of physical volumes that form storage pools
  • Logical Volumes (LV): Virtual partitions carved out of volume groups

Here's how to check your LVM setup:

$ sudo pvs    # Show physical volumes
$ sudo vgs    # Show volume groups  
$ sudo lvs    # Show logical volumes

The beauty of LVM lies in its flexibility. You can easily resize logical volumes, add new physical storage to existing volume groups, and even move data between physical devices without downtime.

RAID: Protecting Your Data

RAID (Redundant Array of Independent Disks) combines multiple storage devices to improve performance, reliability, or both. Linux supports software RAID through the mdadm tool, offering several RAID levels:

  • RAID 0: Stripes data across drives for performance (no redundancy)
  • RAID 1: Mirrors data across drives for redundancy
  • RAID 5: Stripes data with parity for both performance and redundancy

You can check existing RAID arrays with:

$ cat /proc/mdstat

Mounting: Making Storage Accessible

Creating partitions and filesystems is only half the battle. To actually use your storage, you need to mount it to the filesystem hierarchy. The mount command handles this:

$ sudo mount /dev/sdb1 /mnt/data
$ df -h    # Check mounted filesystems

For permanent mounts that survive reboots, add entries to /etc/fstab.

What's Next

Now that you understand the fundamentals of Linux storage management, you're ready to dive deeper into specific areas. In our next post, we'll explore hands-on partition management with practical examples of creating, resizing, and managing partitions safely.


Linux+ study resources