ในตอนแรก เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 1 เราได้ทดลองใช้คำสั่ง mdadm เพื่อคอนฟิกดิสก์เป็นแบบ linear และ stripe ซึ่งให้ผลลัพธ์ความเร็วในการเขียนข้อมูลแตกต่างกัน ในตอนนี้จะลองใช้คำสั่ง LVM บ้าง เพื่อสร้างคอนฟิกแบบ linear และ stripe เพื่อเป็นการเปรียบเทียบกัน
สร้าง LVM Physical Volume และ Volume Group
ก่อนอื่นเราต้องคอนฟิกดิสก์แต่ละพารทิชั่น ทำเป็น Physical Volume และ Volume Group สุดท้ายค่อยเลือกว่าจะสร้าง Logical Volume เป็นแบบ linear หรือ stripe
[root@fc10-disk ~]# pvcreate /dev/sdc1 /dev/sdd1 Wiping software RAID md superblock on /dev/sdc1 Physical volume "/dev/sdc1" successfully created Wiping software RAID md superblock on /dev/sdd1 Physical volume "/dev/sdd1" successfully created
ตรวจสอบสถานะของ physical volume
[root@fc10-disk ~]# pvdisplay "/dev/sdc1" is a new physical volume of "186.31 GB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 186.31 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID ...
"/dev/sdd1" is a new physical volume of "186.31 GB" --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size 186.31 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID ...
คอนฟิกรวมทั้งสอง physical volume สร้างเป็น volume group เดียวกัน
[root@fc10-disk ~]# vgcreate VG_1 /dev/sdc1 /dev/sdd1 Volume group "VG_1" successfully created
ตรวจสอบสถานะของ volume group
[root@fc10-disk ~]# vgdisplay --- Volume group --- VG Name VG_1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 372.61 GB PE Size 4.00 MB Total PE 95388 Alloc PE / Size 0 / 0 Free PE / Size 95388 / 372.61 GB VG UUID ...
คำสั่ง lvcreate สร้าง logical volume แบบ linear
คอนฟิกนี้จะใช้คำสั่ง lvcreate เพื่อสร้างดิสก์สองก้อนเป็นแบบ linear ซึ่งหลักการเขียนข้อมูลจะเหมือนกันคือ ข้อมูลจะถูกเขียนลงบนตัวแรกให้เต็มก่อนแล้วค่อยเขียนตัวถัดไป
การระบุออปชั่น –extents 100%free คือให้ใช้พื้นที่ทั้งหมดของ volume group สร้างเป็น logical volume
[root@fc10-disk ~]# lvcreate --extents 100%free VG_1 --name LV_0 Logical volume "LV_0" created
ผลลัพธ์ที่ได้จะสร้าง logical volume ชื่อ /dev/VG_1/LV_0 ขึ้นมา ซึ่งเรานำมาสร้าง filesystem แล้วมา mount ใช้งานได้
รันคำสั่ง lvdisplay ตรวจสอบสถานะของดิสก์
[root@fc10-disk ~]# lvdisplay --maps
--- Logical volume ---
LV Name /dev/VG_1/LV_0
VG Name VG_1
LV UUID eOdh1C-nSw3-wLjd-fuPz-Y6HA-rNvU-nWaOfY
LV Write Access read/write
LV Status available
# open 0
LV Size 372.61 GB
Current LE 95388
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Segments --- Logical extent 0 to 47693: Type linear Physical volume /dev/sdc1 Physical extents 0 to 47693
Logical extent 47694 to 95387: Type linear Physical volume /dev/sdd1 Physical extents 0 to 47693
สร้าง filesystem เป็นแบบ xfs และ mount เข้ากับพาธที่สร้าง
[root@fc10-disk ~]# mkfs.xfs -f /dev/VG_1/LV_0 [root@fc10-disk ~]# mkdir /mnt/lv0 [root@fc10-disk ~]# mount /dev/VG_1/LV_0 /mnt/lv0
ดูขนาดของ filesystem ที่สร้างได้
[root@fc10-disk ~]# cd /mnt/lv0/
[root@fc10-disk lv0]# df -k .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VG_1-LV_0
390578176 4256 390573920 1% /mnt/lv0
ทดสอบการเขียนไฟล์ขนาด 2 GB บนคอนฟิก “linear”
[root@fc10-disk lv0]# dd if=/dev/zero of=file-2g.bin bs=1000000 count=2000
2000+0 records in
2000+0 records out
2000000000 bytes (2.0 GB) copied, 38.6144 s, 51.8 MB/s
ความเร็วที่ได้จะใกล้เคียงกับการเขียนไฟล์ลงดิสก์ก้อนเดียว
ยกเลิกการ mount ดิสก์ และลบ logical volume แบบ linear
[root@fc10-disk lv0]# cd [root@fc10-disk ~]# umount /mnt/lv0 [root@fc10-disk ~]# lvremove /dev/VG_1/LV_0 Do you really want to remove active logical volume "LV_0"? [y/n]: y Logical volume "LV_0" successfully removed
คำสั่ง lvcreate สร้าง logical volume แบบ stripe
คอนฟิกนี้จะใช้คำสั่ง lvcreate เพื่อสร้าง logical volume เป็นแบบ stripe เพื่อให้เวลาเขียนข้อมูลแยกการเขียนลงดิสก์ทั้งสองก้อนพร้อมๆ กัน ทำให้ความเร็วที่ได้เพิ่มขึ้น
ในที่นี้เราต้องระบุจำนวน stripe หรือจำนวนดิกส์ที่จะเขียนข้อมูลพร้อมๆ กัน ในที่นี้เรามี physical volume อยู่ 2 ก้อน ก็ระบุเป็นตัวเลข 2
[root@fc10-disk ~]# lvcreate --extents 100%free --stripes 2 VG_1 --name LV_0
Using default stripesize 64.00 KB
Logical volume "LV_0" created
ตรวจสอบสถานะของ logical volume แบบ stripe
[root@fc10-disk ~]# lvdisplay --maps
--- Logical volume ---
LV Name /dev/VG_1/LV_0
VG Name VG_1
LV UUID JJuw2a-4C6O-4DED-jqCO-qTRF-iDw0-VPeatg
LV Write Access read/write
LV Status available
# open 0
LV Size 372.61 GB
Current LE 95388
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 253:0
--- Segments --- Logical extent 0 to 95387: Type striped Stripes 2 Stripe size 64 KB Stripe 0: Physical volume /dev/sdc1 Physical extents 0 to 47693 Stripe 1: Physical volume /dev/sdd1 Physical extents 0 to 47693
สร้าง filesystem เป็นแบบ xfs และ mount เข้ากับพาธที่สร้างไว้
[root@fc10-disk ~]# mkfs.xfs -f /dev/VG_1/LV_0 [root@fc10-disk ~]# mount /dev/VG_1/LV_0 /mnt/lv0
ดูขนาดของ filesystem ที่สร้างได้
[root@fc10-disk ~]# cd /mnt/lv0/
[root@fc10-disk lv0]# df -k .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VG_1-LV_0
390577152 4640 390572512 1% /mnt/lv0
ทดสอบการเขียนไฟล์ขนาด 2 GB บนคอนฟิก “linear”
[root@fc10-disk lv0]# dd if=/dev/zero of=file-2g.bin bs=1000000 count=2000
2000+0 records in
2000+0 records out
2000000000 bytes (2.0 GB) copied, 21.0913 s, 94.8 MB/s
ความเร็วที่ได้ใกล้เคียงกับผลรวมของความเร็วในการเขียนข้อมูลลงดิสก์แต่ละก้อน
ยกเลิกการ mount ดิสก์ และลบ logical volume แบบ “stripe”
[root@fc10-disk lv0]# cd [root@fc10-disk ~]# umount /mnt/lv0 [root@fc10-disk ~]# lvremove /dev/VG_1/LV_0 Do you really want to remove active logical volume "LV_0"? [y/n]: y Logical volume "LV_0" successfully removed
ลบ LVM Volume Group, Physical Volume
หลังจากทดสอบเรียบร้อย ถ้าต้องการลบคอนฟิก LVM ออกสามารถทำได้ดังนี้
ใช้คำสั่ง vgremove เพื่อลบ Volume Group
[root@fc10-disk ~]# vgremove /dev/VG_1 Volume group "VG_1" successfully removed
ใช้คำสั่ง pvremove เพื่อลบ physical volume
[root@fc10-disk ~]# pvremove /dev/sdc1 /dev/sdd1 Labels on physical volume "/dev/sdc1" successfully wiped Labels on physical volume "/dev/sdd1" successfully wiped