ค้นหาเว็บไซต์

จัดการดิสก์การจัดการโลจิคัลวอลุ่มหลายตัวโดยใช้ Striping I/O


ในบทความนี้ เราจะดูว่าโลจิคัลวอลุ่มเขียนข้อมูลลงดิสก์อย่างไรโดยการแยก I/O การจัดการโลจิคัลวอลุ่มมีหนึ่งในคุณสมบัติเจ๋งๆ ที่สามารถเขียนข้อมูลบนดิสก์หลายตัวได้โดยการสตริป I/O

LVM Striping คืออะไร?

การสไทรพ์ LVM เป็นหนึ่งในคุณสมบัติที่จะเขียนข้อมูลบนดิสก์หลายตัว แทนที่จะเขียนอย่างต่อเนื่องบนฟิสิคัลวอลุ่มเดียว

คุณสมบัติของการสตริป
  1. มันจะเพิ่มประสิทธิภาพของดิสก์
  2. บันทึกจากการเขียนซ้ำอย่างหนักลงในดิสก์แผ่นเดียว
  3. การเติมดิสก์สามารถลดลงได้โดยใช้การสตริปบนดิสก์หลายตัว

ในการจัดการโลจิคัลวอลุ่ม หากเราจำเป็นต้องสร้างโลจิคัลวอลุ่ม ส่วนขยายจะได้รับการแมปกับกลุ่มวอลุ่มและฟิสิคัลวอลุ่มโดยสมบูรณ์ ในสถานการณ์เช่นนี้ หากหนึ่งใน PV (Physical Volume) เต็ม เราจำเป็นต้องเพิ่มส่วนขยายเพิ่มเติมจากฟิสิคัลวอลุ่มอื่น แทนที่จะเพิ่มส่วนขยายให้กับ PV เราสามารถชี้โลจิคัลวอลุ่มของเราเพื่อใช้การเขียน I/O ของฟิสิคัลวอลุ่มเฉพาะได้

สมมติว่าเรามีไดรฟ์ สี่ดิสก์ และชี้ไปที่ฟิสิคัลวอลุ่มสี่ตัว หากแต่ละฟิสิคัลวอลุ่มมีความสามารถ 100 I/O โดยสมบูรณ์ กลุ่มวอลุ่มของเราจะ ได้ 400 ฉัน/O

หากเราไม่ได้ใช้ วิธีการสไทป์ ระบบไฟล์จะเขียนทั่วทั้งฟิสิคัลวอลุ่มพื้นฐาน ตัวอย่างเช่น ข้อมูลบางส่วนที่เขียนลงในฟิสิคัลวอลุ่ม 100 I/O จะถูกเขียนไปยัง PV แรก (sdb1) เท่านั้น หากเราสร้างโลจิคัลวอลุ่มพร้อมตัวเลือกแถบในขณะที่เขียน จะมีการเขียนไปยังทุกๆ สี่ไดรฟ์โดยการแยก 100 I/O นั่นหมายความว่าทุกๆ สี่ไดรฟ์จะได้รับ 25 I/O ต่อไดรฟ์

ซึ่งจะดำเนินการแบบ Round Robin หากจำเป็นต้องขยายโลจิคัลวอลุ่มตัวใดตัวหนึ่ง ในสถานการณ์นี้ เราไม่สามารถเพิ่ม 1 หรือ 2 PV ได้ เราต้องเพิ่ม pvs ทั้งหมด 4 เพื่อขยายขนาดโลจิคัลวอลุ่ม นี่เป็นหนึ่งในข้อเสียเปรียบในฟีเจอร์สไทรพ์ จากนี้เราสามารถรู้ได้ว่าในขณะที่สร้างโลจิคัลวอลุ่ม เราจำเป็นต้องกำหนดขนาดสไทรพ์เดียวกันให้กับโลจิคัลวอลุ่มทั้งหมด

การจัดการโลจิคัลวอลุ่มมีคุณสมบัติเหล่านี้ซึ่งเราสามารถแยกข้อมูลไปยัง pv หลายรายการพร้อมกันได้ หากคุณคุ้นเคยกับโลจิคัลวอลุ่ม คุณสามารถไปที่การตั้งค่าแถบวอลุ่มลอจิคัลได้ หากไม่เป็นเช่นนั้น คุณจะต้องทราบเกี่ยวกับพื้นฐานการจัดการโลจิคัลวอลุ่ม อ่านบทความด้านล่างเพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการจัดการโลจิคัลวอลุ่ม

ความต้องการ

  1. ตั้งค่าพื้นที่เก็บข้อมูลดิสก์ LVM ที่ยืดหยุ่นใน Linux - ตอนที่ 1
  2. วิธีขยาย/ลด LVM ใน Linux - ตอนที่ II
การตั้งค่าเซิร์ฟเวอร์ของฉัน

ฉันใช้ Centos6.5 ในการออกกำลังกาย ขั้นตอนเดียวกันนี้สามารถใช้ได้ใน RHEL, Oracle Linux และการกระจายส่วนใหญ่

Operating System :	CentOS 6.5
IP Address :		192.168.0.222
Hostname : 		tecmint.storage.com

การจัดการโลจิคัลวอลุ่มโดยใช้ Striping I/O

เพื่อวัตถุประสงค์ในการสาธิต ฉันใช้ฮาร์ดไดรฟ์ 4 ตัว โดยแต่ละไดรฟ์มีขนาด 1 GB ฉันจะแสดงสี่ไดรฟ์ให้คุณดูโดยใช้คำสั่ง 'fdisk' ดังที่แสดงด้านล่าง

fdisk -l | grep sd

ตอนนี้เราต้องสร้างพาร์ติชันสำหรับฮาร์ดไดรฟ์ทั้ง 4 ตัว sdb, sdc, sdd และ sde โดยใช้ '< คำสั่งfdisk' หากต้องการสร้างพาร์ติชัน โปรดปฏิบัติตามคำแนะนำ ขั้นตอน #4 ที่ให้ไว้ใน ส่วนที่ 1 ของบทความนี้ (ลิงก์ที่ให้ไว้ด้านบน) และตรวจสอบให้แน่ใจว่าคุณเปลี่ยนประเภทเป็น LVM (8e) ขณะสร้างพาร์ติชัน

หลังจากที่คุณสร้างพาร์ติชันสำเร็จแล้ว ตอนนี้ให้ก้าวไปข้างหน้าเพื่อสร้างฟิสิคัลวอลุ่มโดยใช้ไดรฟ์ทั้ง 4 ตัวนี้ สำหรับการสร้าง PV ให้ใช้คำสั่ง 'pvcreate' ดังที่แสดง

pvcreate /dev/sd[b-e]1 -v

เมื่อสร้าง PV แล้ว คุณสามารถแสดงรายการได้โดยใช้คำสั่ง 'pvs'

pvs

ตอนนี้เราจำเป็นต้องกำหนดกลุ่มวอลุ่มโดยใช้ฟิสิคัลวอลุ่มทั้ง 4 ตัวนี้ ที่นี่ ฉันกำลังกำหนดกลุ่มวอลุ่มของฉันด้วยขนาดที่ขยายจริง (PE) 16MB โดยมีกลุ่มวอลุ่มชื่อ vg_strip

vgcreate -s 16M vg_strip /dev/sd[b-e]1 -v

คำอธิบายของตัวเลือกข้างต้นที่ใช้ในคำสั่ง

  1. [b-e]1 – กำหนดชื่อฮาร์ดไดรฟ์ของคุณ เช่น sdb1, sdc1, sdd1, sde1
  2. -s – กำหนดขนาดขอบเขตทางกายภาพของคุณ
  3. -v – รายละเอียด

ถัดไป ตรวจสอบกลุ่มวอลุ่มที่สร้างขึ้นใหม่โดยใช้

vgs vg_strip

หากต้องการรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับ VG ให้ใช้สวิตช์ '-v' ด้วยคำสั่ง vgdisplay มันจะให้ฟิสิคัลวอลุ่มทุกตัวแก่เราซึ่งทั้งหมดใช้ใน vg_strip b> กลุ่มวอลุ่ม

vgdisplay vg_strip -v

กลับมาที่หัวข้อของเรา ตอนนี้ในขณะที่สร้างโลจิคัลวอลุ่ม เราจำเป็นต้องกำหนดค่าแถบ วิธีการเขียนข้อมูลในโลจิคัลวอลุ่มของเราโดยใช้วิธีแถบ

ที่นี่ ฉันกำลังสร้างโลจิคัลวอลุ่มในชื่อ lv_tecmint_strp1 ที่มีขนาด 900MB และจะต้องอยู่ในกลุ่มวอลุ่ม vg_strip และฉัน ฉันกำลังกำหนดเป็น 4 แถบ หมายความว่าข้อมูลเขียนลงในโลจิคัลวอลุ่มของฉัน โดยจะต้องตัดเป็น 4 PV

lvcreate -L 900M -n lv_tecmint_strp1 -i4 vg_strip
  1. -L – ขนาดวอลุ่มลอจิคัล
  2. -n – ชื่อโลจิคัลวอลุ่ม
  3. -i –ลายทาง

ในภาพด้านบน เราจะเห็นว่าขนาดแถบเริ่มต้นคือ 64 KB หากเราต้องกำหนดค่าแถบของตัวเอง เราสามารถใช้ -I ( ทุนฉัน) เพียงเพื่อยืนยันว่าสร้างโลจิคัลวอลุ่มแล้ว ให้ใช้คำสั่งต่อไปนี้

lvdisplay vg_strip/lv_tecmint_strp1

คำถามต่อไปคือ เราจะรู้ได้อย่างไรว่าแถบนั้นเขียนไปที่ 4 ไดรฟ์? ที่นี่เราสามารถใช้คำสั่ง 'lvdisplay' และ -m (แสดงการแมปของโลจิคัลวอลุ่ม) เพื่อตรวจสอบ

lvdisplay vg_strip/lv_tecmint_strp1 -m

หากต้องการสร้างขนาดสไทรพ์ที่เรากำหนดไว้ เราจำเป็นต้องสร้างโลจิคัลวอลุ่มหนึ่งตัวที่มีขนาด 1GB โดยใช้ขนาดสไทรพ์ที่ฉันกำหนดเองที่ 256KB ตอนนี้ ผมจะทำการสไทรพ์บน PV เพียง 3 ตัวเท่านั้น ที่นี่เราสามารถกำหนดได้ว่า pv ตัวไหนที่เราอยากจะสไทรพ์

lvcreate -L 1G -i3 -I 256 -n lv_tecmint_strp2 vg_strip /dev/sdb1 /dev/sdc1 /dev/sdd1

จากนั้น ให้ตรวจสอบขนาดแถบและแถบที่มีปริมาตรเท่าใด

lvdisplay vg_strip/lv_tecmint_strp2 -m

ถึงเวลาที่จะใช้ตัวทำแผนที่อุปกรณ์ สำหรับสิ่งนี้เราใช้คำสั่ง 'dmsetup' เป็นเครื่องมือการจัดการโลจิคัลวอลุ่มระดับต่ำที่ใช้จัดการอุปกรณ์โลจิคัลที่ใช้ไดรเวอร์ตัวทำแผนที่อุปกรณ์ เราสามารถดูข้อมูล lvm ได้โดยใช้คำสั่ง dmsetup เพื่อทราบว่าแถบใดขึ้นอยู่กับไดรฟ์ใด

dmsetup deps /dev/vg_strip/lv_tecmint_strp[1-2]

ที่นี่เราจะเห็นว่า strp1 ขึ้นอยู่กับ 4 ไดรฟ์ และ strp2 ขึ้นอยู่กับ 3 อุปกรณ์

หวังว่าคุณจะได้เรียนรู้แล้วว่าเราสามารถวิเคราะห์วอลุ่มลอจิคัลเพื่อเขียนข้อมูลได้อย่างไร สำหรับการตั้งค่านี้ เราจะต้องรู้เกี่ยวกับพื้นฐานของการจัดการโลจิคัลวอลุ่ม ในบทความถัดไป ฉันจะแสดงให้คุณเห็นว่าเราสามารถโยกย้ายในการจัดการโลจิคัลวอลุ่มได้อย่างไร จนกว่าจะถึงตอนนั้น โปรดติดตามการอัปเดตและอย่าลืมแสดงความคิดเห็นอันมีค่าเกี่ยวกับบทความนี้