วันนี้เฮี้ยนอยากลองใช้ LVM (Logical Volume Management) บน Software RAID (RAID5) ดู
โดยผมลองใน VMware นะครับ เพื่อความปลอดภัย อิอิ
VM configuration
- Fedora 9.0
- SCSI disk 8GB x 3
ขั้นที่ 1 สร้าง RAID Array ขึ้นมาก่อน โดย
1. เนื่องจากผมไม่ได้ใช้ทั้ง Disk จึงต้องแบ่ง Partition เอาครับ โดยใช้ fdisk
แบ่ง Harddisk ทั้ง 3 ลูกให้มี Partition ขนาด 1000MB (จะลอง RAID 5 จึงต้องใช้ขนาดเท่ากันเป๊ะ ๆ)
เป็น /dev/sda5, /dev/sdb5, /dev/sdc5
2. สร้าง RAID Array ชื่อ /dev/md0
[root@localhost ~]# mdadm -Cv /dev/md0 -l5 -n3 /dev/sda5 /dev/sdb5 /dev/sdc5
3. ตรวจสอบสถานะของ RAID Array ได้โดย
[root@localhost ~]# mdadm --detail /dev/md0
ขั้นที่ 2 สร้าง Logical Volume (LV) บน /dev/md0
1. กำหนดให้ /dev/md0 เป็น Physical Volume (PV) ของ LVM
[root@localhost ~]# pvcreate /dev/md0
ตรวจสอบสถานะของ PV โดย
[root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/md0 VG Name mainvolume PV Size 2.83 GB / not usable 1.88 MB Allocatable yes PE Size (KByte) 4096 Total PE 723 Free PE 685 Allocated PE 38 PV UUID WJFb6g-pLu9-43nw-Bn1F-Ki0g-PBZf-D82EYt
2. สร้าง Volume Group (VG) ชื่อ mainvolume บน PV /dev/md0
[root@localhost ~]# vgcreate mainvolume /dev/md0
ตรวจสอบสถานะของ VG โดย
[root@localhost ~]# vgdisplay --- Volume group --- VG Name mainvolume System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 2.82 GB PE Size 4.00 MB Total PE 723 Alloc PE / Size 38 / 152.00 MB Free PE / Size 685 / 2.68 GB VG UUID SeF41p-EkAk-xmNB-Wcy6-17ae-8KBl-3nHr4n
3. สร้าง Logical Volume (LV) home บน VG mainvolume
[root@localhost ~]# lvcreate -L100M -nhome mainvolume
ตรวจสอบสถานะของ LV โดย
[root@localhost ~]# lvdisplay --- Logical volume --- LV Name /dev/mainvolume/home VG Name mainvolume LV UUID vyHnOz-PR2y-fe05-0zq1-GCNE-1N5d-ocJgvG LV Write Access read/write LV Status available # open 1 LV Size 152.00 MB Current LE 38 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
4. Format LV /dev/mainvolume/home เป็น File system ตามต้องการ
[root@localhost ~]# mkfs.ext3 /dev/mainvolume/home
5. จากนั้นก็ mount และใช้งานได้เลย
[root@localhost ~]# mount /dev/mainvolume/home /data/virtualhome
ขั้นที่ 3 ทำให้ระบบ mount LV อัตโนมัติตอน boot
1. แก้ไข file /etc/mdadm.conf ให้เป็นดังนี้ เพื่อให้ Service mdmonitor เตรียม RAID Array ให้พร้อม mount
DEVICE /dev/sd* ARRAY /dev/md0 uuid=9e10ec61:bde4e7ac:90c708b4:8dd1ef17
โดยค่า uuid ดูจาก mdadm -D
2. แก้ไข /etc/fstab เพื่อให้ mount อัตโนมัติ
/dev/mainvolume/home /data/virtualhome ext3 defaults 0 0
ขั้นที่ 4 ทดลองขยายขนาดของ Logical Volume
1. unmount Logical Volume
[root@localhost ~]# umount /data/virtualhome
2. เพิ่มขนาดของ Logical Volume
[root@localhost ~]# lvresize -L 200M /dev/mainvolume/home
3. Run e2fsck บน Logical Volume ก่อน
[root@localhost ~]# e2fsck -f /dev/mainvolume/home
4. เพิ่มขนาดของ File system
[root@localhost ~]# resize2fs /dev/mainvolume/home 200M
Note: ในการเพิ่มขนาดของ Filesystem ถ้าไม่กำหนดขนาดไว้ ระบบก็จะเพิ่มให้เท่ากับ LV พอดี
5. mount เพื่อใช้งาน
[root@localhost ~]# mount /dev/mainvolume/home /data/virtualhome
ขั้นที่ 5 ทดลองเพิ่ม Device เข้ามาใน RAID Array เพื่อขยายขนาดของ Logical Volume เนื่องจากพื้นที่ใกล้เต็มแล้ว
0. แอบสร้าง Partition เพิ่มขึ้นมา 1 Partition ขนาด 1000MB (/dev/sdb6)
1. เพิ่ม Device /dev/sdb6 เข้าไปใน RAID Array /dev/md0
[root@localhost ~]# mdadm --add /dev/md0 /dev/sdb6
2. สั่ง Grow เพื่อขยายขนาดของ RAID Array
[root@localhost ~]# mdadm -G /dev/md0 -n4
เพิ่ม Disk ขนาด 1GB ยังทำน้านนาน ถ้าเพิ่ม 1TB นี่สงสัยจะได้รอเป็นสัปดาห์ – -”
3. Resize Physical Volume
[root@localhost ~]# pvresize -v -d /dev/md0
Using physical volume(s) on command line
Archiving volume group "mainvolume" metadata (seqno 10).
Resizing physical volume /dev/md0 from 723 to 964 extents.
Resizing volume "/dev/md0" to 7902336 sectors.
Updating physical volume "/dev/md0"
Creating volume group backup "/etc/lvm/backup/mainvolume" (seqno 11).
Physical volume "/dev/md0" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
4. Volume Group จะถูกขยายโดยอัตโนมัติ
5. ขยาย Logical Volume ตามวิธีในขั้นที่ 4 ได้เลย
ขอขอบคุณแหล่งความรู้ใน Internet ดังนี้ครับ
http://vuthi.blogspot.com/2005/12/mdadm-lvm-honey.html
http://www.opentle.org/th/node/8155
http://ubuntuforums.org/archive/index.php/t-348176.html
http://archives.devshed.com/forums/linux-97/pvresize-after-extending-rai…
http://itknow.exteen.com/20080621/reduce-a-non-root-lvm
http://www.tldp.org/HOWTO/LVM-HOWTO/
http://man-wiki.net/index.php/8:mdadm
http://man-wiki.net/index.php/5:mdadm.conf













