วันศุกร์, กุมภาพันธ์ 09, 2550

Logical Volumn Management (LVM)

หลายวันก่อนซื้อ HD ขนาด 320 GB มาใหม่ เพราะเนื้อที่ของ HD เก่าเริ่มเต็ม ต้องเริ่มย้ายพวกไฟล์เก่าๆ ที่ไม่ค่อยได้ใช้้ไปลง DVD กับ CD หลังๆ เริ่มขี้เกียจเลยต้องแวะไปซื้อ HD มาเพิ่มดีกว่า

สาเหตุที่ต้องใช้ LVM ก็เพราะอยากรวมเนื้อที่จาก 2 HD เข้าด้วยกัน จะได้ไม่ไปต้องไปย้านไฟล์เวลา mount point เดิมเต็ม แล้วก็ทำให้เรามีอิสระเต็มที่ในการสร้าง เปลี่ยนขนาด หรือสร้าง LV (Logical Volumn) ที่จะไปเป็นแต่ละ mount point ได้

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

สำหรับส่วนประกอบของ LVM ตามลำดับจากล่างขึ้นไปบน คือ
  • Physical Volumn (PV)
    เป็นส่วนที่เกี่ยวข้องกับดิสก์มากที่สุด ซึ่งเป็นส่วนที่ใช้เก็บข้อมูลจริง
    • Physical Extent (PE)
      ส่วนที่เก็บข้อมูลเล็กๆ ภายใน PV
  • Volumn Group (VG)
    เป็นการนำหลาย PV มารวมกลุ่มกันเพื่อให้ง่ายต่อการจัดการ
  • Logical Volumn (LV)
    • Physical Extent (PE)
      ส่วนที่เก็บข้อมูลเล็กๆ ภายใน LV



คำเตือน **ก่อนทำอย่าลืมแบกอัพข้อมูลกันไว้่ก่อนนะครับ เพราะหลังจากทำแล้วจะทำให้ข้อมูลในพาร์ติชันเดิมสูญหาย

มาเริ่มกันเลย
  • สร้าง PV
    pvcreate /dev/hda2
    <- พาร์ติชันเดิมที่ได้ย้ายข้อมูลไปเก็บที่อื่นก่อนแล้ว ซึ่งสำหรับผมคือ hdc2 ซึ่งสร้างไว้ใหญ่พอที่จะเก็บข้อมูลเดิมได้ pvcreate /dev/hda1 <- พาร์ติชันของดิสก์ฺใหม่

    ดูราละเอียดของ PV ที่สร้างด้วย
pvdisplay

  • สร้าง VG
    vgcreate datavg /dev/hda2 /dev/hdc1
    <-สร้าง VG ใหม่ โดยจะมีเนื้อทีรวมเท่ากับขนาดของ hda2 และ hdc1 รวมกัน
vgchange -a y atavg <- activate VG ดูราละเอียดของ VG ที่สร้างด้วย vgdisplay datavg

  • สร้าง Logical Volumn (LV)
    ซึ่งจะต้องมีการกำหนดขนาดที่ต้องการด้วย -l ซึ่งจะกำหนดขนาดเป็นจำนวนของ PV หรือ -L ที่กำหนดขนาดเป็นหน่วย ของไบท์หรือ k, K, m, M, g, G, t หรือ T ที่มีหน่วยเป็น กิโลบิต, กิโลไบท์, เมกกะบิต, เมกกะไบท์, กิกะบิต, กิกะไบท์, เทระบิตหรือเทระไบท์ ตามลำดับ ซึ่งสามารถดูข้อมูลได้จากคำสั่ง vgdisplay
lvcrete -l 50493 datavg -n homelv

  • ฟอร์แมต LV
    mkfs.xfs /dev/datavg/datalv

  • เมาท์ LV
    mount /dev/datavg/datalv /home
  • ย้ายข้อมูลกลับ
    จากนั้นผมก็ย้ายข้อมูลจาก hdc2 กลับไปที่ /home แล้วจัด unmount /home, สร้าง PV ใหม่} ขยายขนาด VG และขยายขนาดไฟล์ซิสเต็มด้วย
    umount /dev/hdc2
    pvcreate /dev/hdc2
    vgextend datavg /home/hdc2
    lvextend -l 50932 /dev/datavg/datalv
    xfs_growfs -D 52154368 /home


แค่นี้เราก็ได้เนื้อที่ใหม่มาอีกเยอะแล้วครับ

วันพุธ, กุมภาพันธ์ 07, 2550

ดูแล้วก็ซึ้งเล็กๆ เลย