สอน LVM (Logical Volume Manager) จัดการ Disk บน Linux 2026

LVM คืออะไร?

LVM (Logical Volume Manager) คือระบบจัดการ Disk บน Linux ที่ช่วยให้ขยาย ย่อ และจัดการ Partition ได้ยืดหยุ่นกว่าการใช้ Partition แบบดั้งเดิม LVM เป็นมาตรฐานใน Enterprise Linux Server แทบทุกที่

LVM Architecture

# =============================================
# LVM 3 Layers:
# =============================================
#
# Physical Volume (PV):
# → Disk จริง เช่น /dev/sda, /dev/sdb
# → หรือ Partition เช่น /dev/sda1
# → เป็น Layer ล่างสุด
#
# Volume Group (VG):
# → รวม PV หลายตัวเข้าด้วยกัน
# → เหมือน "Pool" ของ Disk Space
# → ตัวอย่าง: vg_data (รวม sda + sdb)
#
# Logical Volume (LV):
# → แบ่งออกจาก VG
# → เหมือน Partition ที่ยืดหยุ่น
# → สามารถขยาย/ย่อได้ตลอด
# → ตัวอย่าง: lv_home, lv_var
#
# Disk → PV → VG → LV → Filesystem
# /dev/sda → pv1 ┐
#                 ├→ vg_data → lv_home → /home (ext4)
# /dev/sdb → pv2 ┘          → lv_var  → /var  (ext4)

สร้าง LVM จากศูนย์

# =============================================
# Step 1: สร้าง Physical Volume (PV)
# =============================================
# ตรวจสอบ Disk:
lsblk
fdisk -l

# สร้าง PV:
pvcreate /dev/sdb
pvcreate /dev/sdc

# ตรวจสอบ PV:
pvs
pvdisplay

# =============================================
# Step 2: สร้าง Volume Group (VG)
# =============================================
# สร้าง VG ชื่อ vg_data จาก 2 PV:
vgcreate vg_data /dev/sdb /dev/sdc

# ตรวจสอบ VG:
vgs
vgdisplay vg_data

# =============================================
# Step 3: สร้าง Logical Volume (LV)
# =============================================
# สร้าง LV ขนาด 50GB:
lvcreate -n lv_home -L 50G vg_data

# สร้าง LV ใช้พื้นที่ 80% ของ VG:
lvcreate -n lv_data -l 80%VG vg_data

# สร้าง LV ใช้พื้นที่ที่เหลือทั้งหมด:
lvcreate -n lv_backup -l 100%FREE vg_data

# ตรวจสอบ LV:
lvs
lvdisplay

# =============================================
# Step 4: สร้าง Filesystem และ Mount
# =============================================
mkfs.ext4 /dev/vg_data/lv_home
mkdir -p /home
mount /dev/vg_data/lv_home /home

# เพิ่มใน /etc/fstab (Mount ถาวร):
echo '/dev/vg_data/lv_home /home ext4 defaults 0 2' >> /etc/fstab

ขยาย LV (Extend) — ที่ใช้บ่อยที่สุด

# =============================================
# Scenario: /home เต็ม ต้องขยาย
# =============================================
#
# ตรวจสอบพื้นที่เหลือใน VG:
vgs
# VG        #PV #LV  Free
# vg_data     2   3  20G    ← เหลือ 20GB

# ขยาย LV เพิ่ม 10GB:
lvextend -L +10G /dev/vg_data/lv_home

# ขยาย LV ใช้พื้นที่เหลือทั้งหมด:
lvextend -l +100%FREE /dev/vg_data/lv_home

# ขยาย Filesystem ให้ตรงกับ LV:
# สำหรับ ext4:
resize2fs /dev/vg_data/lv_home

# สำหรับ XFS:
xfs_growfs /home

# ทำ 2 ขั้นตอนในคำสั่งเดียว:
lvextend -r -L +10G /dev/vg_data/lv_home
# -r = resize filesystem อัตโนมัติ

# ตรวจสอบ:
df -h /home

เพิ่ม Disk ใหม่เข้า VG

# =============================================
# Scenario: Disk เต็ม เพิ่ม Disk ใหม่
# =============================================
#
# 1. เพิ่ม Disk ใหม่ (เช่น /dev/sdd):
pvcreate /dev/sdd

# 2. เพิ่ม PV เข้า VG:
vgextend vg_data /dev/sdd

# 3. ตรวจสอบ VG (พื้นที่เพิ่มขึ้น):
vgs

# 4. ขยาย LV ที่ต้องการ:
lvextend -r -L +100G /dev/vg_data/lv_data

# จบ! ไม่ต้อง Unmount, ไม่ต้อง Downtime

LVM Snapshot — Backup ก่อนเปลี่ยนแปลง

# =============================================
# LVM Snapshot:
# =============================================
# Snapshot = "ภาพถ่าย" ของ LV ณ เวลาที่กำหนด
# ถ้าเปลี่ยนแล้วพัง → Restore กลับได้!
#
# สร้าง Snapshot:
lvcreate -s -n lv_home_snap -L 5G /dev/vg_data/lv_home
# -s = snapshot
# -L 5G = พื้นที่สำหรับเก็บ Changes (ไม่ใช่ขนาด LV)

# ตรวจสอบ Snapshot:
lvs

# Restore จาก Snapshot (ถ้าพัง):
umount /home
lvconvert --merge /dev/vg_data/lv_home_snap
mount /home

# ลบ Snapshot (ถ้าไม่ต้องการ):
lvremove /dev/vg_data/lv_home_snap

LVM Thin Provisioning

# =============================================
# Thin Provisioning:
# =============================================
# จัดสรรพื้นที่แบบ "จ่ายเมื่อใช้"
# → สร้าง LV 100GB แต่ใช้จริงแค่ 20GB
# → ประหยัด Disk Space
#
# สร้าง Thin Pool:
lvcreate --type thin-pool -n tp_data -L 200G vg_data

# สร้าง Thin LV (Over-Provisioning ได้!):
lvcreate --type thin -n lv_vm1 -V 100G --thinpool tp_data vg_data
lvcreate --type thin -n lv_vm2 -V 100G --thinpool tp_data vg_data
lvcreate --type thin -n lv_vm3 -V 100G --thinpool tp_data vg_data
# → รวม 300GB แต่ Pool มีแค่ 200GB
# → ใช้จริงเท่าที่เขียน

# ตรวจสอบ Usage:
lvs -a

คำสั่ง LVM ที่ใช้บ่อย

คำสั่ง หน้าที่
pvs / pvdisplay ดู Physical Volumes
vgs / vgdisplay ดู Volume Groups
lvs / lvdisplay ดู Logical Volumes
pvcreate สร้าง PV
vgcreate / vgextend สร้าง/ขยาย VG
lvcreate สร้าง LV
lvextend -r ขยาย LV + Filesystem
lvreduce ลดขนาด LV (ระวัง!)
lvremove ลบ LV
lvcreate -s สร้าง Snapshot

สรุป: LVM สำหรับ Linux Admin

LVM เป็นเครื่องมือจัดการ Disk ที่ยืดหยุ่นที่สุดบน Linux ช่วยให้ขยาย Filesystem ได้โดยไม่ต้อง Downtime เพิ่ม Disk ใหม่ได้ง่าย และสร้าง Snapshot สำหรับ Backup ก่อนเปลี่ยนแปลง ทุก Enterprise Linux Server ควรใช้ LVM เป็นมาตรฐาน

.

.
.
.

จัดส่งรวดเร็วส่งด่วนทั่วประเทศ
รับประกันสินค้าเคลมง่าย มีใบรับประกัน
ผ่อนชำระได้บัตรเครดิต 0% สูงสุด 10 เดือน
สะสมแต้ม รับส่วนลดส่วนลดและคะแนนสะสม

© 2026 SiamLancard — จำหน่ายการ์ดแลน อุปกรณ์ Server และเครื่องพิมพ์ใบเสร็จ

SiamLancard
Logo
Free Forex EA — XM Signal · SiamCafe Blog · SiamLancard · Siam2R · iCafeFX
iCafeForex.com - สอนเทรด Forex | SiamCafe.net
Shopping cart