เปรียบเทียบ 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

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

Leave a Reply

Your email address will not be published.