What is LVM ?

Nareerat P.
2 min readOct 31, 2017

--

Logical Volume Management (LVM) คือระบบการจัดการพื้นที่ disk อย่างมีประสิทธิภาพ บนระบบปฏิบัติการ linux ซึ่งมีข้อดีคือ
- มีความยืดหยุ่นในการจัดสรรพื้นที่ สามารถขยาย หรือลดขนาดได้ตามความต้องการ
- สามารถกำหนดและจัดแบ่งกลุ่มพื้นที่จัดเก็บข้อมูลได้ตามความต้องการของผู้ใช้

เราจะเห็นได้ว่า LVM เป็นระบบที่มีประสิทธิภาพอย่างมากในการจัดการกับพื้นที่จัดเก็บข้อมูล แต่ไม่ว่าอย่างไรก็ตามการจะจัดการกับ disk ก้อนหนึ่งให้มีประสิทธิภาพสูงสุดนั้น สำคัญที่สุดคือความรู้ความเข้าใจของตัวผู้ใช้เอง ซึ่งในบทความนี้เราจะพาทั้งผู้ใช้ และผู้ที่พึ่งจะหัดใช้ทุกท่านไปทำความรู้จักกับระบบจัดการที่ว่ามานี้ เพื่อประสิทธิภาพในการจัดการสูงสุด ซึ่งไม่ได้มาจากระบบจัดการ แต่เกิดจากความเข้าใจและสามารถนำไปใช้งานได้อย่างเหมาะสมของตัวผู้ใช้นั่นเอง

Let’s Study : รู้จักกับองค์ประกอบของ LVM

องค์ประกอบพื้นฐานของ LVM ที่ควรรู้จักได้แก่
1.volume group (VG) คือกลุ่มของ logical volumes และ physical volumes ซึ่งนำมารวมกันเป็นกลุ่มเพื่อให้ง่ายต่อการบริหารจัดการ
2.physical volume (PV) คือส่วนของฮาร์ดดิสก์ที่ใช้จัดเก็บข้อมูล ซึ่งเราสามารถนำมาใช้ได้ทั้งก้อน คือ /dev/sda หรือทำการ partition ก่อนก็ได้ เช่น /dev/sda1, dev/sda2
3.Logical Volume (LV) เกิดจากการ partition ภายใน volume group ซึ่งเราสามารถนำไป format เป็น filesystem ตามที่เราต้องการได้ และนำไป mount ต่ออีกขั้น
4.File system คือระบบการจัดการกับไฟล์ต่างๆ ใน Partition ถ้าจะเปรียบเทียบให้เข้าใจง่ายขึ้น partition จะเหมือนกับการแบ่งหนังสือเล่มหนึ่งออกเป็นหลายๆหน้า ส่วน file system ก็คือรูปแบบของการจัดเรียงตัวอักษรในแต่ละหน้านั่นเอง

เราจะเห็นได้ว่าแต่ละองค์ประกอบนั้นมีความสัมพันธ์กัน เรียกได้ว่าเป็นองค์ประกอบของกันและกัน โดยสามารถอธิบายถึงภาพโครงสร้างของ lvm ได้ในลักษณะที่แบ่งออกเป็น layer ต่างๆดังภาพต่อไปนี้ ซึ่งจะทำให้เข้าใจถึงลักษณะของความสัมพันธ์ต่างๆมากขึ้น

https://cdn.thegeekdiary.com/wp-content/uploads/2014/10/LVM-basic-structure.png
https://cdn.thegeekdiary.com/wp-content/uploads/2014/10/LVM-basics.png

นอกจากองค์ประกอบพื้นฐานที่สำคัญแล้ว ยังมีหน่วยย่อยเล็กๆที่ควรรู้จักเพิ่มเติม ได้แก่

  • physical devices คือองค์ประกอบพื้นฐานของ physical volume โดยในแต่ละ physical volume จะประกอบด้วย physical disks เช่น /dev/sda1, dev/sda2 ซึ่งเรียกว่า physical devices นั่นเอง
  • physical extent (PE) ในแต่ละ physical volume จะถูกแบ่งออกเป็นส่วนๆอีกที เรียกว่า physical extents โดยจะมีขนาดเท่ากันกับ logical extents ภายใน volume group นั้นๆ
  • logical extent (LE) ในแต่ละ logical volume ก็จะถูกแบ่งออกเป็นส่วนๆ เช่นเดียวกับ physical volume เรียกว่า logical extents โดยจะมีขนาดเดียวกันในทุกๆ logical volumes ภายใน volume group นั้นๆ

Let’s Play : มาสร้าง Logical Volume กันเถอะ

จากนิยามต่างๆที่พูดถึงคงพอจะทำให้เกิดความเข้าใจในเรื่องของ LVM มากขึ้น ดังนั้นแล้วเราน่าจะมาลองใช้ command ง่ายๆบน linux เพื่อความเข้าใจที่มากขึ้นไปอีก ซึ่งโจทย์ก็คือ

จงสร้าง Logical volume ขนาด 512 MB ที่มีชื่อว่า /dev/vg-redhat/lv-root จาก physical disks ได้แก่ /dev/vdb1 และ /dev/vdc1

โดยก่อนที่จะทำการใดๆ ควรเช็คพื้นที่ disk ด้วย command
# df -h
และเช็คดู partition ที่มีอยู่บน harddisk ด้วย command
# fdisk -l

ขั้นที่ 1 สร้าง physical volume ซึ่งประกอบด้วย physical disks คือ /dev/vdb1 และ /dev/vdc1 ด้วย command:
# pvcreate /dev/vdb1 /dev/vdc1

Physical volume “/dev/vdb1” successfully created
Physical volume “/dev/vdc1” successfully created

และสามารถเรียกดูผลลัพธ์ได้จาก commands pvdisplay pvs และ pvscan

ขั้นที่ 2 สร้าง Volume Group ที่ชื่อว่า vg-redhat ซึ่งประกอบด้วย physical disks คือ /dev/vdb1 และ /dev/vdc1 ด้วย command:

# vgcreate vg-redhat /dev/vdb1 /dev/vdc1
Volume group “vg-redhat” successfully created

และสามารถเรียกดูผลลัพธ์ได้จาก commands vgs and vgdisplay ตามด้วยชื่อ Volume group เช่น vgs vg-redhat หรือ vgdisplay vg-redhat

และสามารถ activate/deactivate Volume group ด้วย command:

activate
# vgchange -a n vg-redhat
0 logical volume(s) in volume group “vg-redhat” now active

deactivate
# vgchange -a y vg-redhat
1 logical volume(s) in volume group “vg-redhat” now active

ขั้นที่ 3 สร้าง Logical volume ชื่อ lv-root ภายในกลุ่ม vg-redhat ซึ่งมีขนาด 512MB ได้ด้วย command:

# lvcreate -L 512M -n lv-root vg-redhat
Logical volume “lv-root” created

และสามารถเรียกดูผลลัพธ์ได้จาก commands lvdisplay, lvs และ lvscan เช่น lvs /dev/vg-redhat/lv-root, lvdisplay /dev/vg-redhat/lv-root, lvscan

--

--

Nareerat P.

A System Engineer who love art&design, like to travel, love to sleep and lazy like a cat.