
วิธีการเพิ่มขนาดของดิสก์ในเครื่อง virtual บน Linux LVM โดยการขยายดิสก์
โดยปกติเราสร้างเครื่อง Virtual server เราจะกำหนดทรัพยากรของเครื่องตามความจำเป็นของการใช้งานโดยลักษณะของเครื่องที่เป็น Virtual server วันหนึ่งการใช้งาน Data มีมากขึ้นเรื่อย ๆ ทำให้พื้นที่มีจำกัด วันนี้เรามาดูวิธีการการสร้าง Partition ใหม่แล้วทำการรวมการทำงานกับ Partition เก่ากันครับ พูดง่าย ๆ คือการขยายพื้นที่ partition โดยการสร้าง Virtual disk ขึ้นใหม่อีกก้อนครับ
อย่างแรกเราดู Type ของ Hard disk เราก่อนด้วยคำสั่ง
fdisk –l

เราสามารถเห็นในภาพข้างบน / dev/sda5 ระบุว่าเป็น "Linux LVM" และมีหมายเลขประจำตัวของ 8e รหัสฐานสิบหก 8e แสดงให้เห็นว่ามันเป็น Linux LVM ขณะที่ 83 แสดงให้เห็นว่าเป็นพาร์ทิชัน Linux Native เราเห็นว่าเรากำลังทำงานกับ LVM เราสามารถดำเนินการเพิ่มขนาดของพาร์ทิชัน Linux Native ได้
โดยใช้คำสั่ง
df –lh

ด้านบน ข้อมูลดิสก์แสดงให้เห็นว่าตั้งค่าเริ่มต้นของเรามีเพียงหนึ่งดิสก์ 20gb ปัจจุบันซึ่งอยู่ภายใต้ Logical Path /dev/mapper/Mega-root คือ disk ที่เราต้องการขยาย คือ /dev/sda5
จากนั้นเราทำการ Crate disk บน Virtual ของเราในที่นี้ตามตัวอย่างเราสร้างเพิ่ม จาก 20G เป็น 30G
ผมขออนุญาตไม่กล่าวถึงขั้นตอนการเพิ่ม virtual disk เพราะในตัวอย่างและของผมใช้ software คนละตัวกัน
ก่อนที่เราจะดำเนินการต่อ เราจำเป็นต้องตรวจสอบว่าพื้นที่ดิสก์ที่สร้างขึ้นมาใหม่ จะถูกตรวจสอบโดยเซิร์ฟเวอร์คุณสามารถใช้ "fdisk-l" รายการดิสก์หลัก คุณมักจะเห็นว่าพื้นที่ดิสก์ที่ยังคงแสดงเป็นขนาดเดิมให้คุณ รีบูตเครื่องเซิร์ฟเวอร์เพื่อให้ Server detect ด่าที่เปลี่ยนแปลงใหม่แล้วใช้คำสั่ง fdisk –l อีกทีเพื่อตรวจสอบ

จากรูปจะเห็นได้ว่าเราทำงานอยู่บน Hard disk ก้อน /dev/sda ให้เราใช้คำสั่ง fdisk ในการสร้าง Partition ใหม่ที่ต้องการเพิ่ม โดยปกติ Partition จะที่ Primary ได้ทั้งหมดมีได้แค่ 4 Partition เท่านั้น
fdisk /dev/sda
กด n เลือกการเพิ่มพาร์ทิชันใหม่
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
กด p เพื่อเลือกเป็น Primary Partition
Command action
l logical (5 or over)
p primary partition (1-4)
จากตัวอย่าง จะมี Partition ที่มีอยู่แล้วคือ /dev/sda1 และ /dev/sda2 เพราะฉะนั้นให้เลือกเป็น 3 คือ /dev/sda3
Partition number (1-4): 3
จากนั้นให้กด Enter 2 ครั้งเพื่อกำหนดค่า default Cylinder ที่ 2611 และจบที่ค่า 3916 ในการจัดสรรค่า size Partition ที่ถูกสร้างขึ้นเรียบร้อยแล้ว
First cylinder (2611-3916, default 2611): "enter"
Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"
Using default value 3916
กด t เพื่อเปลี่ยน ID ของ Partition ในที่นี้เราเลือกเป็น 3 แล้ว
Command (m for help): t
Partition number (1-5): 3
ป้อนค่ารหัส 8e ซึ่งเป็นค่าของ Linux LVM เพื่อการ join กันกับค่า /dev/sda5 Partition
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
กด w เพื่อเขียนลงไปในตาราง Partition
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
จากนั้นออกจาก fdisk
ลองใช้ คำสั่ง fdisk –l เพื่อ list partition ดูเราจะเห็นได้มี Partiton /dev/sda3 จำนวน 10G ใหม่ขึ้นมา
fdisk -l

นี้คือการขั้นตอนการสร้าง Partition ทั้งหมดบน Virtual
จากนั้นให้ Reboot Virtual host
ไม่เช่นนั้นเมื่อเราใช้คำสั่ง pvcreate จะไม่เจอ Partition ที่สร้างขึ้น
root@Mega:~# pvcreate /dev/sda3
Device /dev/sda3 not found (or ignored by filtering).
ใช้คำสั่ง pvcreate เพื่อสร้างค่า physical volume
root@Mega:~# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
จากนั้นเราต้องยืนยันค่า Volume group ในการค่าเพิ่ม physical volume ซึ่งในแต่ละระบบไม่เหมือนกันซึ่งเราสามารถดูได้โดยใช้คำสั่ง vgdisplay ในตัวอย่างค่า VG Name จะเป็น Mega
root@Mega:~# vgdisplay
--- Volume group ---
VG Name Mega
...
VG Size 19.76 GiB
จากนั้นใช้คำสั่ง vgextend Mega /dev/sda3
root@Mega:~# vgextend Mega /dev/sda3
Volume group "Mega" successfully extended
จากนั้นใช้คำสั่ง pvscan เพื่อสแกน disk ทั้งหมด
root@Mega:~# pvscan
PV /dev/sda5 VG Mega lvm2 [19.76 GiB / 0 free]
PV /dev/sda3 VG Mega lvm2 [10.00 GiB / 10.00 GiB free]
Total: 2 [29.75 GiB] / in use: 2 [29.75 GiB] / in no VG: 0 [0 ]
ต่อไปเราจำเป็นต้อง extend ค่า Logical Volume ลงไปโดย ค่า Physical Partition ก่อนอื่นเราต้องดูค่าชื่อของ logical volume ก่อนโดยคำสั่ง lvdisplay ซึ่งค่าจะแตกต่างกันไป
root@Mega:~# lvdisplay
--- Logical volume ---
LV Name /dev/Mega/root
จากนั้นใช้คำสั่ง lvextend เพื่อเพิ่มพื้นที่ให้กับ Partition
root@Mega:~# lvextend /dev/Mega/root /dev/sda3
Extending logical volume root to 28.90 GiB
Logical volume root successfully resized
จากั้นเป็นขั้นตอนสุดท้าย คือการปรับขนาดระบบแฟ้มเพื่อที่จะสามารถใช้ประโยชน์จากพื้นที่เพิ่มเติมนี้นี้จะกระทำโดยใช้คำสั่ง resize2fs ใช้ระยะเวลาแล้วแต่จำนวนพื้นทืที่เราเพิ่ม
root@Mega:~# resize2fs /dev/Mega/root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/Mega/root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/Mega/root to 7576576 (4k) blocks.
The filesystem on /dev/Mega/root is now 7576576 blocks long.
จากนั้นใช้คำสั่ง df –h เพื่อดูพื้นที่ Partition ที่เพิ่มขึ้นครับ
df -h

ด้วยวิธีนี้ทำให้เราจะมีการเพิ่ม virtual disk โดยการสร้าง Partition ใหม่แล้วทำการ extend ค่าใหม่ไปยัง Partition เก่าได้
ที่มา อ้างอิง url: http://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/