วันอังคารที่ 31 มกราคม พ.ศ. 2555

Logical Volume Management (LVM)




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

Physical Volumes (PV)
เป็นส่วนที่เรานำเอาฮาร์ดดิสก์ทั้งลูก  เช่น /dev/sdb หรือ แค่บางพาติชั่น เช่น /dev/sdb1 เพื่อทำเป็น Physical Volumes

Virtiual Group (VG)
เป็นส่วนที่เรานำเอาฮาร์ดดิสก์ที่ถูกทำเป็น Physical Volumes แล้ว มารวมอยู่ในกลุ่มเดียวกัน

Logical Volumes (LV)
เป็นส่วนที่เราสามรถทำการแบ่งพื้นที่จาก Virtiual Group นำไปใช้งานได้

หัวข้อที่จะนำมารีวิวมีดังนี้ครับ
  1. การสร้าง Partition สำหรับ LVM
  2. การสร้าง Physical Volumes
  3. การสร้าง Virtual Group
  4. การสร้าง Logical Volumes
  5. การ Format Logical Volumes
  6. การ Mount ให้กับ Directory
  7. การขยายขนาดของ Logical Volumes
  8. การลดขนาดของ Logical Volumes
  9. การลบ Logical Volumes

---------------------------------------------------------------------------------------------------------------------------

การเตรียมการ
  1. เตรียม HDD 2 ลูกขนาด 50 MB และ 150 MB
  2. ให้ใช้ HDD 50 MB ทั้งลูก สำหรับการทำ Physical Volumes
  3. ทำการแบ่ง HDD 150 MB เป็น 3 พาติชั่น พาติชั่นละ 50 MB และให้เอา พาร์ติชั่นที่ 1-2 นำมาทำ Physical Volumes
  4. สร้าง Virtual Group ชื่อ vg-data
  5. สร้าง Logical Volumes ดังนี้ lv-download 20 MB และ lv-backup 20MB 
  6. mount ให้กับ Directroy /download และ /data
  7. ทดลองการขยายและปรับลดพื้นที่

1.การสร้าง Partition สำหรับ LVM



1. ตรวจสอบ HDD ที่มีอยู่ด้วยคำสั่ง fdisk -l เราจะพบว่าเรามี HDD ที่ยังไม่ได้นำมาใช้งาน 2 ลูกคือ /dev/sdb ขนาด 52 MB ซึ่งเราจะนำมาทำเป็น Pysical Vulumes ทั้งลูก กับ /dev/sdc ขนาด 157 MB ซึ่งเราจะนำมาแบ่งเป็น 3 พาติชั่น พาติชั่นละ 50 MB


2. ทำการสร้างพาติชั่นบนฮาร์ดดิสก์ /dev/sdc ด้วยคำสั่ง fdisk /dev/sdc จากนั้นทำการแบ่งพาติชั่นออกเป็น 3 พาติชั่น โดยพาติชั่น 50MB


3. พาติชั่นทั้ง 3 พาติชั่นที่เราทำการแบ่งเรียบร้อยแล้ว หลังนี้เราทำ Change partition systems ID เป็น LVM ถ้าเราดู partiton table ตอนนี้เป็น System ID 83 ซึ่งเป็น ID ปกติของ Linux


4.ใช้ command m ในการเปลี่ยน system ID จากนั้นเลือกพาติชั่นที่ต้องการ และเลือกประเภทเป็น Linux LVM code 8e เสร็จแล้วใช้ command w ในการบันทึกพาติชั่น



5. ใช้คำสั่ง fdisk -l อีกครั้งเราจะพบว่า /dev/sdc ถูกแบ่งพาติชั่นเรียบร้อยแล้ว มีเฉพาะพารติชั่นที่ 3 เท่านั้นที่ไม่มี ID เป็น LVM หลังจากนี้จะเข้าสู่ขั้นตอนการทำำ Pysical Volumes

คำถามในพาร์ทนี้
  1. จำเป็นไหมทีต้องมี system id เป็น LVM ?
2.การสร้าง Physical Volumes



1.ใช้คำสั่ง pvcreate แล้วตามด้วย HDD หรือ partiotion ที่เราต้องการ เช่น /dev/sdb  , /dev/sdc1, /dev/sdc2


2. ใช้คำสั่ง pvdisplay เพื่อตรวจสอบการสร้าง Pysical Volumes



3. ให้เราทำการติดตั้งโปรแกรม LVM (GUI) ด้วยคำสั่ง yum install system-lvm-config เพื่อที่จะทำให้เรามองเห็นภาพการจัดการพื้นที่ได้ง่ายขึ้น

3.การสร้าง Virtual Group



1. ใช้คำสั่ง vgcreate vg-data /dev/sdb /dev/sdc1 เราสามารถเพิ่ม PV เข้า VG ด้วยคำสั่ง vgextend vg-data /dev/sdc2


2. ใช้คำสั่ง vgdisplay ในการตรวจสอบการสร้าง VG จะเห็นว่าใน VG นี้มีพื้นที่ 152 MB ซึ่งเป็นการรวบรวมมาจาก Physical Volumes


3. ถ้าเราลองใช้ GUI ของ LVM เราจะเห็นว่ามีการแบ่งชั้นอย่างไรใน VG เราจะเห็นว่าในชั้นของ Physical Layer นั้นมีการรวบรวมกันของ disk ได้แ่ sdb sdc1 และ sdc2 ซึ่งมีขนาด 50 MB เท่าๆกัน และในชั้นของ Logical ยังว่างเปล่า เพราะยังไม่ได้มีการจัดสรรพื้นที่ไปใช้


4.การสร้าง Logical Volumes


1.ใช้คำสั่ง lvcreate -L 20M -n lv-download vg-data และ lvcreate -L 20M -n lv-backup vg-data


2. ใช้คำสั่ง lvdisplay เพื่อตรวจสอบการสร้าง


3. ใช้ GUI ของ LVM เพื่อให้เข้าใจการแบ่งพื้นที่ เราจะเห็นว่าในชั้นของ Logical มีการแบ่งพื้นที่ให้กับ lv-download และ lv-backup อย่างละ 20 MB ที่เหลือเป็นพื้นที่ว่างที่ยังไม่ถูกจัดสรร


4. ถ้าเราลองดูใน GUI ในส่วนที่เป็น Physical เราจะเห็นว่ามีการใช้งาน Disk ในส่วนของ sdb ก่อน ขณะที่ sdc1 และ sdc 2 ยังไม่ถูกใช้งาน

คำถามในพาร์ทนี้
  1. ทำไมถึง lvcreate 30 MB ไม่ได้ ทำไมถึงต้องเป็น 32 MB?

5. การ Format Logical Volumes



1.ใช้คำสั่ง mkfs.ext3 -m 0 /dev/vg-data/lv-download และ mkfs.ext3 -m 0 /dev/vg-data/lv-backup


6. การ Mount ให้กับ Directory



1. ใช้คำสั่ง mount /dev/vg-data/lv-download /download และ mount /dev/vg-data/lv-backup /backup และตรวจสอบการ mount ด้วย df -h หรือ df -Th เพื่อดู Type ของ fomat ด้วย


คำถามในพาร์นี้คือ

  1. ทำไม Percentage ถึงเป็น 7% ทั้งๆที่ยังไม่มีไฟล์เลย และจะทำอย่างไรให้มันเป็นค่าตามความเป็นจริง ?
7. การขยายขนาด Logical Volumes



1. ใช้คำสั่ง lvextend -L +30 /dev/vg-data/lv-download เป็นการเพิ่มพื้นที่ให้กับ lv-download อีก 30 MB


2. ถ้าเราตรวจสอบด้วยคำสั่ง df -h เราจะพบว่าเนื้อที่ยังไม่ถูกปรับให้จากการเพิ่ม


3.ให้เราใช้คำสั่ง resize2fs /dev/vg-data/lv-download เพื่อเป็นการปรับปรุงพื้นที่ให้สอดคล้องกัน


4.ถ้าเราตรวจสอบจาก GUI เราจะพบว่าพื้นที่ของ lv-download มีขนาดใหญ่ขึ้น

8. การลดขนาด Logical Volumes



1.ให้ทำการ backup ข้อมูล /download จากนั้นทำการ umount /dev/vg-data/lv-download และทำการตรวจ File systems ด้วยคำสั่ง e2fsck -f  /dev/vg-data/lv-download ก่อนการ Resize / จากนั้นใช้คำสั่ง resize2fs /dev/vg-data/lv-download 30M เพื่อลดขนาดให้เหลือ 30 M


2. หลังจาก Resize เรียบร้อยแล้วให้เราทำการ reduce ใน lv-download ด้วยคำสั่ง lvreduce -L -26 vg-data/lv-download เพื่อปรับขนาดของ logical ให้เท่ากับการ resize file system



3.ใช้คำสั่ง mkfs.ext3  /dev/vg-data/lv-download เพื่อทำการ format file system อีกครั้ง จากนั้นทำการ mount  /dev/vg-data/lv-download /download  ทำการตรวจสอบการ mount ด้วย df -h

คำถามในพาร์ทนี้
  1. ทำไขนาดของ lv-download และ file systems ไม่ไปตามทิศทางเดียวกัน
  2. ถ้า file system และ lv-download มีขนาดที่แตกต่างกันจะเป็นผลเสียอะไรไหม
  3. ทำไมการปรับการ lv-download ถึงไม่สามารถปรับเป็นขนาดตรงๆได้ ปรับให้เป็น 30 ได้ 32 MB
9. การลบ Logical Volumes



1. ให้เราใช้คำสั่ง  lvremove vg-data/lv-download 



บันทึก

  1. สร้าง Pysical volumes ก่อน โดยเลือกใช้จากฮาร์ดดิสก์ หรือ พาร์ติชั่นที่ต้องการ จากนั้นใช้คำสั่ง pvcreate /dev/sdb
  2. สร้าง Virtual Group ด้วยคำสั่ง vgcreate vg-data /dev/sdb หรือ vgextend vg-data /dev/sdc1 สำหรับเพิ่มเติม
  3. สร้าง Logical Volume ตามต้องการด้วย lvcreate -L +20MB -n lv-backup vg-data
  4. การขยายขนาดของ Logical Volume ทำได้โดยใช้คำสั่ง lvextend -L +30MB vg-data/lv-backup จากนั้นทำการ Resize File systems ด้วยคำสั่ง resize2fs /dev/vg-data/lv-download
  5. การลดขนาด Logical Volume จะต้องทำการ backup ข้อมูลก่อน จากนั้นทำการ umount และใช้คำสั่ง e2fsck -f /dev/vg-data/lv-download เพื่อทำการตรวจสอบ File system จากนั้นใช้คำสั่ง Resize ขนาดลง ด้วย resize2fs /dev/vg-data/lv-download 20MB จากนั้นให้ทำการ Reduce lv-download ด้วยคำสั่ง lvreduce -L -30MB /dev/vg-data/lv-download จากนั้นทำการ format ด้วย mkfs.ext3 /dev/vg-data/lv-download แล้วค่อย mount ใช้งาน

คำสั่ง
  1. fdisk -l = ตรวจสอบฮาร์ดดิสก์ที่มีอยู่
  2. fdisk /dev/sdb = สำหรับการจัดการพาร์ติชั่นให้กับ /dev/sdb
  3. df -Th = ตรวจสอบปริมาณการใช้พื้นที่ของไฟล์ systems
  4. mkfs.ext3 = การ format แบบ ext3
  5. e2fsck -f = การตรวจสอบ file systems
  6. resize2fs = การ resize ขนาดของ file system
  7. pvcreate = สร้าง Pysical Volume
  8. pvdisplay = แสดงข้อมูลของ PV ทั้งหมด
  9. pvs = แสดงข้อมูลของ PV แบบย่อ
  10. vgcreate = สร้าง Virtual group
  11. vgextend = เพิ่มเพิ่มฮาร์ดดิสก์ที่เป็น PV แล้ว เข้ารวมด้วย
  12. lvcreate = สร้าง Logical Volume
  13. lvdisplay = แสดงข้อมูลของ LV ทั้งหมด
  14. lvreduce = ปรับลดขนาดของ LV
  15. lvextend = ปรับเพิ่มขนาดของ LV
  16. lvremove = ลบ LV ออก







ไม่มีความคิดเห็น:

แสดงความคิดเห็น