เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 2
ในตอนแรก
เปรียบเทียบ 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