Advanced LVM: Striping, Mirroring & Snapshot Management - Textnotes

Advanced LVM: Striping, Mirroring & Snapshot Management


Learn enterprise-grade LVM features including striped volumes, mirrored LVs, and snapshot creation for backup and recovery.

A) LVM Striping (LV Across Multiple Disks for Performance)

Striped LV increases I/O performance.

Create PVs


pvcreate /dev/sdb /dev/sdc

Create VG


vgcreate vgdata /dev/sdb /dev/sdc

Create Striped LV


lvcreate -i2 -I64 -L 10G -n lvstripe vgdata
  1. -i2 = 2 disks
  2. -I64 = stripe size 64 KB

Format & Mount


mkfs.xfs /dev/vgdata/lvstripe
mount /dev/vgdata/lvstripe /data

B) LVM Mirroring (Failover Storage)

Mirroring = real-time copy of data across disks.

Create 2 PVs


pvcreate /dev/sdb /dev/sdc
vgcreate vgmirror /dev/sdb /dev/sdc

Create Mirrored LV


lvcreate -m1 -L 5G -n lv_mirror vgmirror
  1. -m1 = 1 mirror (2 copies)

C) LVM Snapshots (Backup)

Create Snapshot


lvcreate -s -L 1G -n snap1 /dev/vgdata/lvstripe

Restore from Snapshot


lvconvert --merge /dev/vgdata/snap1

4.2) RAID Levels and Configuration

Menu Name: linux-raid-complete

Title: RAID Levels & Configuration Guide (RAID0, 1, 5, 6, 10)

Short Description: Configure software RAID using mdadm with RAID0/1/5/6/10 and understand performance vs redundancy benefits.

Tutorial

Install mdadm


dnf install mdadm

A) RAID 0 (Striping – Performance Only)


mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
mkfs.ext4 /dev/md0

B) RAID 1 (Mirroring – High Availability)


mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

C) RAID 5 (Striping + Parity)


mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

Check RAID Status


cat /proc/mdstat
mdadm --detail /dev/md0

4.3) iSCSI Storage Lab (End-to-End)

Menu Name: iscsi-storage-lab

Title: Complete iSCSI Storage Lab (Target + Initiator)

Short Description: Step-by-step practical guide to build an iSCSI storage server and connect Linux clients in an enterprise environment.

Tutorial

On Target Server

Install & Start targetcli


dnf install targetcli
targetcli

Create Backstore


/backstores/fileio create disk1 /storage/disk1.img 20G

Create iSCSI Target


/iscsi create iqn.2025-01.com.example:storage.lab

Map LUN


/iscsi/.../tpg1/luns create /backstores/fileio/disk1

Allow Initiator


/iscsi/.../tpg1/acls create iqn.client.node

On Initiator Server

Install Initiator Utils


dnf install iscsi-initiator-utils

Discover Target


iscsiadm -m discovery -t st -p <target-ip>

Login


iscsiadm -m node --login

Check Disk


lsblk

4.4) NFS Advanced Permissions

Menu Name: nfs-advanced-permissions

Title: Advanced NFS Permissions & Export Controls

Short Description: Configure NFSv4 permissions, squash options, secure exports, and client-side mount permissions.

Tutorial

Configure NFS Server

Install NFS packages


dnf install nfs-utils
systemctl enable --now nfs-server

Export Directory

Edit /etc/exports:


/data 192.168.1.0/24(rw,sync,no_root_squash)

Important Advanced Options

  1. no_root_squash → root on client = root on server
  2. root_squash → safe mode (default)
  3. sync → safe write
  4. rw → read/write

Apply changes:


exportfs -rav

NFS Client

Mount


mount -t nfs <server>:/data /mnt

Permanent Entry


echo "<server>:/data /mnt nfs defaults 0 0" >> /etc/fstab

4.5) CIFS/Samba Advanced Usage

Menu Name: samba-cifs-advanced

Title: Advanced Samba & CIFS Configuration Guide

Short Description: Configure secure SMB shares, AD authentication, permissions, and multi-user access in enterprise environments.

Tutorial

Install Samba


dnf install samba samba-common

Configure Share

Edit /etc/samba/smb.conf:


[finance]
path = /finance
browseable = yes
writable = yes
valid users = @finusers
create mask = 0770
directory mask = 0770

Set Permissions


groupadd finusers
chown :finusers /finance
chmod 770 /finance

Set Samba Password


smbpasswd -a muni

Start Service


systemctl enable --now smb nmb

Windows Client Access

Open Run:


\\<server-ip>\finance

Linux CIFS Mount

Install tools:


dnf install cifs-utils

Mount:


mount -t cifs //<server>/finance /mnt -o username=muni