เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 3

ในตอนสุรปนี้ จะเพิ่มผลลัพธ์จากการรันคำสั่ง sysbench เพื่อทดสอบ fileio ทั้งการอ่านและเขียนไฟล์แบบ sequential, random

ก่อนการรัน sysbench เพื่อทดสอบ ต้องสร้างไฟล์ (prepare) ใน mount point ของ filesystem ที่ต้องการทดสอบ เช่นถ้า mount ไว้ที่ /mnt/lv0/ ต้อง cd เข้าไปในพาธนี้แล้วรันคำสั่ง

[root@fc10-disk ~]# cd /mnt/lv0/
[root@fc10-disk lv0]# sysbench --test=fileio prepare

Sequential Read test (seqrd) รันคำสั่ง

[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=seqrd run

Sequential Write test (seqwr) รันคำสั่ง

[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=seqwr run

Random Read test (rndrd) รันคำสั่ง

[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=rndrd run

Random Write test (rndwr) รันคำสั่ง

[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=rndwr run

ผลลัพธ์การรันคำสั่ง dd ในตอนที่ผ่านมา จะใกล้เคียงกับการรัน Sequential Write test

ตารางสรุปผลการทดสอบ

/dev/sdc1 /dev/sdd1 mdadm linear mdadm stripe LVM linear LVM stripe
xfs (blocks) 195,263,012 195,263,012 390,585,600 390,585,344 390,578,176 390,577,152
dd (MB/s) 52.00 47.10 52.70 96.50 51.80 94.80
seqrd (MB/s) 58.08 60.71 57.71 115.78 58.22 104.64
seqrw (MB/s) 43.76 38.96 46.89 85.04 47.92 84.15
rndrd (MB/s) 3.92 3.96 3.92 4.34 3.97 4.31
rndwr (MB/s) 0.61 0.69 2.88 2.08 2.91 2.08

คงไม่สรุปใดๆ ทั้งสิ้น เกี่ยวกับผลลัพธ์ที่ได้ ว่าคอนฟิก mdadm หรือ lvm เร็วกว่ากัน เพราะตัวเลขออกมาใกล้เคียงกัน อีกทั้งการทดสอบนี้ อาจไม่ตรงกับหลักการทางสถิติ เช่น ทดลองรันไม่กี่ครั้ง หรือในขณะที่รันทดสอบอาจมี process อื่นๆ ในเครื่องรันขึ้นมาทำงาน (ทั้งๆ ที่พยายามลดให้เหลือน้อยที่สุดแล้ว) และด้วยคุณสมบัติของ mdadm และ LVM ที่แตกต่างกัน ทางเลือกคงขึ้นอยู่กับลักษณะการใช้งานของแต่ละเครื่องว่าเป็นอย่างไร …

แต่…ถ้าให้เลือก ความเห็นส่วนตัว ผมเลือก LVM ครับ ;)

ข้อมูลอ้างอิง

1 thought on “เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 3”

  1. lvm มันทำ stripe ไม่ได้กรณีที่ pv เหลือพื้นที่ไม่เท่ากัน ตัวอย่างที่ผมเจอคือ มี HDD 3 ตัว ตัวแรกก็ลง root ไปปรกติ เหลือ พื้นที่ว่างแล้วค่อยมาทำ pv (sda3) ส่วนอีก 2 ลูก ก็ทำ pv หมด (sdb1,sdc1) พอจะเอามา stripe 3 ลูกเพื่อความเร็วมันไม่ยอม ได้แค่ 2 (ตอน lvcreate ไม่ error แต่ขนาดที่มันยอมให้ทำคือ 2 ลูกหลังรวมกัน)
    ส่วน mdadm ไม่มีปัญหาอะไร

Leave a Reply