บทความนี้ขอแนะนำ LVM (Logical Volume Management) มาใช้ในการแก้ปัญหาเนื้อที่ในการเก็บข้อมูลไม่เพียงพอ ซึ่งลินุกซ์ส่วนใหญ่ตอนนี้จะมี LVM มาให้ด้วยอยู่แล้ว และถ้าตอนติดตั้ง OS เลือกแบบ Create default layout นั้น โปรแกรมติดตั้งก็จะเลือกใช้ LVM บน disk partition แต่ละอันที่แบ่งให้เลย ทำให้สะดวกต่อการใช้งาน แล้วเราก็สามารถมาปรับ ลด แก้ไข ขนาดในการเก็บข้อมูลของแต่ละส่วนได้
เนื่องจากความต้องการในการเก็บไฟล์ข้อมูลเพิ่มขึ้นตลอดเวลา จนบางครั้งทำให้ผู้ดูแลระบบยากต่อการวางแผนว่าจะแบ่งส่วนการเก็บไฟล์ (disk partition) อย่างไร ในบางครั้งดูเหมือนจะเผื่อพื้นที่ฮาร์ดดิสก์สำหรับเก็บข้อมูลส่วนต่างๆ เพียงพอแล้ว แต่ใช้ไปไม่นานพื้นที่บางส่วนถูกใช้ไป 100% แล้ว เก็บข้อมูลเพิ่มต่อไปอีกไม่ได้
ดั้งเดิมการเก็บไฟล์ของลินุกซ์จะอยู่เก็บในรูปแบบ filesystem (เช่น ext2, ext3) ซึ่งอยู่บน disk partition อันใดอันหนึ่ง เช่น
/ บน /dev/sda1 ขนาด 20 GigaBytes
/var บน /dev/sda3 ขนาด 20 GigaBytes
/home บน /dev/sda4 40 GigaBytes
สมมติว่าใช้ไปซักพัก /home ถูกใช้จนเต็ม 100% อาจเนื่องจากผู้ใช้งานมีการเก็บไฟล์เยอะมาก แต่ /var ซึ่งใช้เก็บ log file ของระบบถูกใช้ไปแค่ 1 GigaBytes เท่านั้นเหลือพื้นที่อีกตั้ง 19 GigaBytes ที่ไม่ถูกใช้งาน
กรณีเช่นนี้ การที่จะเพิ่มขนาดของ /home นั้น ยุ่งยากพอสมควร อาจจะต้องปิดเครื่องแล้วนำฮาร์ดดิสก์อีกตัวมาต่อเพิ่มเข้าไป แล้วจัดการย้ายข้อมูลไปมา ขยายขนาดของ disk partition สำหรับ /home เพิ่มขึ้น ซึ่งไม่ใช่งานที่ง่ายเลย แล้วก็ใช้เวลาพอสมควร ที่สำคัญในช่วงที่แก้ปัญหาอยู่นี้ผู้ใช้งานจะไม่สามารถใช้งาน server ได้เลย
ส่วนประกอบของ LVM
ส่วนประกอบหลักๆ ของ LVM จะมีอยู่สามส่วนคือ
Physical Volume (PV)
ในส่วนนี้ก็คือส่วนของฮาร์ดดิสก์จริงๆ ที่เราจะใช้ในการเก็บข้อมูล เราสามารถใช้ฮาร์ดดิสก์เพื่อทำเป็น Physical Volume ได้สองแบบ แบบแรกใช้ทีเดียวทั้งก้อนเลยเช่นทั้งก้อน /dev/sda หรือจะเป็นแบบที่สองคือทำทีละ disk partitionเช่น /dev/sda1, /dev/sda2 ตามคำเอกสาร LVM HOWTO แล้วเขาแนะนำเป็นแบบที่สองคือแบ่งเป็น partition ก่อนแล้วค่อยทำเป็น Physical Volume
Volume Group (VG)
จะทำหน้าที่รวบรวม Physical Volume ต่างๆ เข้าด้วยกันเพื่อมองเป็นก้อนๆ เดียว เช่นรวม /dev/sda1, /dev/sdb1, /dev/sdc1 ซึ่งทำถูกทำเป็น Physical Volume แล้ว นำมาเข้าด้วยกันเป็น Volume Group ที่ชื่อ VG0
Logical Volume (LV)
เป็นก้อนย่อยๆ ที่แบ่งมาจาก Volume Group นั่นเอง เช่นเมื่อเราสร้าง Volume Group ที่ชื่อ VG0 ขึ้นมาแล้วเราก็นำมาแบ่งย่อยอีกทีนึงเช่นเป็น LV0_home สำหรับใช้เป็น /home ของระบบ LV0_var สำหรับใช้เป็น /var เป็นตัน
หลังจากแบ่งเป็น Logical Volume แล้ว เราก็สามารถนำมา Volume นั้นมา format เป็น filesystem ตามที่เราต้องการได้เช่น ext2, ext3 เพื่อนำมา mount เป็น /home, /var อีกที
ตอนต่อไปเราจะมาพูดถึงคำสั่งที่ใช้ในการคอนฟิกกัน…
ข้อมูลอ้างอิง