สามารถปรับขนาดดิสก์ออนไลน์ด้วย KVM ได้หรือไม่


15

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

สิ่งเดียวที่ฉันค้นพบจนถึงตอนนี้ (แต่ยังไม่ได้ทดสอบ) คือความสามารถในการเสียบดิสก์ลงในเครื่อง ถ้าฉันไปเส้นทางนี้ฉันสามารถเพิ่มดิสก์ใหม่ไปยังกลุ่มวอลุ่ม LVM บนเกสต์และจากนั้นขยายโลจิคัลวอลุ่มที่เลือก ข้อเสียที่ใหญ่ที่สุดของวิธีนี้คือเมื่อเวลาผ่านไปเราอาจพบว่าแขกที่มีดิสก์เสมือนจำนวนตัวแปร พื้นที่ดิสก์ "ของจริง" จะถูกมอบให้กับโฮสต์เหนือ SAN ดังนั้นเราจึงสามารถเพิ่มพื้นที่ให้กับโฮสต์ได้ทุกเมื่อ


(และ "ใช่" เป็นไปได้)
poige

คำตอบ:


4

ฉันคิดว่าคุณกำลังทำสิ่งที่คุณพูดถ้าคุณต้องการทำโดยไม่ทำให้เครื่องพัง

ทำไมไม่เพียงแค่ให้ LUNs เสมือนเครื่องถูกต้องจาก SAN และจัดการพื้นที่ที่นั่น? วิธีนี้ใช้ได้ผลดีกว่าถ้าคุณต้องการใช้ฟีเจอร์เช่นการย้ายข้อมูลสดอย่างไรก็ตาม

KVM ขึ้นอยู่กับ QEMU ดังนั้นการสนับสนุนรูปแบบภาพทั้งหมดมาจากโครงการนั้น นี่คือวิธีปรับขนาดรูปแบบที่หลากหลายที่ Qemu / KVM รองรับ แต่ฟอรัม Qemu น่าจะเหมาะสำหรับถามคำถามนี้ถ้าคุณไม่ได้รับคำตอบที่ชัดเจนเลย

ตัวเลือกอื่นที่อาจไม่เหมาะคือการใช้ qcow2 ที่มีขนาดใหญ่มากหรือรูปแบบภาพกระจัดกระจายอื่น ๆ สำหรับไดรฟ์ ดังนั้นคุณสามารถให้ไดรฟ์ขนาดเล็กสำหรับแต่ละระบบสำหรับ OS และอิมเมจขนาดใหญ่สำหรับข้อมูลภายใต้ LVM อย่างน้อยก็จะทำให้จำนวนไดรฟ์เสมือน / ภาพที่คุณต้องจัดการ แต่การจัดเตรียมแบบบางนี้อาจเป็นปัญหา แต่ถ้าคุณทำสิ่งนี้กับเครื่องจักร 1,000 เครื่องและทุกคนจะนำคุณไปสู่พื้นที่ว่างที่พวกเขาเห็น

XEN ฉันเชื่อว่าปัจจุบันมีข้อ จำกัด เช่นเดียวกัน


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

การจัดเตรียมแบบบางอาจมีค่าใช้จ่ายสูงเนื่องจากการแตกแฟรกเมนต์เช่นกัน
wazoox

15

ฉันรู้ว่าเป็นคำถามเก่า แต่ฉันพบในขณะที่ googling สำหรับการแก้ปัญหาและหวังว่ามันจะช่วยคนอื่น

สำหรับวันนี้มันเป็นไปได้ที่จะปรับขนาดฮาร์ดไดรฟ์ในเครื่อง ฉันพบวิธีการทำงานที่นี่:

https://bugzilla.redhat.com/show_bug.cgi?id=648594

ต้องดำเนินการตามขั้นตอนต่อไปนี้:

  1. ค้นหาชื่อไฟล์และชื่ออุปกรณ์ KVM ของฮาร์ดไดรฟ์ที่คุณต้องการปรับขนาด:

    root@vhstage02:/data# virsh dumpxml test | xpath -e /domain/devices/disk
    Found 2 nodes in stdin:
    -- NODE --
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2" />
      <source file="/data/test.img" />
      <backingStore />
      <target dev="vda" bus="virtio" />
      <alias name="virtio-disk0" />
      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
    </disk>
    -- NODE --
    <disk type="file" device="cdrom">
      <driver name="qemu" type="raw" />
      <source file="/data/images/debian-8.2.0-amd64-netinst.iso" />
      <backingStore />
      <target dev="hda" bus="ide" />
      <readonly />
      <alias name="ide0-1-1" />
      <address type="drive" controller="0" bus="1" target="0" unit="1" />
    </disk>
    

สิ่งที่น่าสนใจสำหรับเราคือดิสก์ คุณควรมองหาsourceและaliasบล็อก สำหรับผมชื่อไฟล์และชื่อนามแฝงtest.img virtio-disk0สำหรับชื่อนี้คุณจะต้องผนวกรวมdrive-เพื่อรับชื่อไดรฟ์ qemu

  1. ตอนนี้เราปรับขนาดไดรฟ์โดยใช้จอภาพ qemu:

    virsh qemu-monitor-command test block_resize  drive-virtio-disk0  100G --hmp
    

โปรดทราบว่ามีการใช้ชื่อไฟล์โดยไม่มีนามสกุล. img และไดรฟ์ - ถูกเพิ่มเข้าไปในชื่อแทนดิสก์ 100G คือขนาดผลของไดรฟ์ที่เราต้องการ

  1. ลงชื่อเข้าใช้เครื่องและตรวจสอบว่าขนาดจริงมีการเปลี่ยนแปลง:

    root@test:~# fdisk -l
    
    Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x7e6e7f71
    
    Device     Boot  Start       End   Sectors  Size Id Type
    /dev/vda1  *      2048    499711    497664  243M 83 Linux
    /dev/vda2       501758 167770111 167268354 79.8G  5 Extended
    /dev/vda5       501760 167770111 167268352 79.8G 8e Linux LVM
    

แค่นั้นแหละ! ตอนนี้คุณสามารถสร้างพาร์ติชันใหม่หรือปรับขนาดพาร์ทิชันที่มีอยู่


1
ขอบคุณที่กลับมาและเพิ่มคำตอบนี้! ทำให้สิ่งต่าง ๆ ง่ายกว่าแบบเดิมมาก
Dave Sherohman

4

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

นี่คือคำอธิบายที่ดีสำหรับการขยายภาพ แม้ว่ามันจะต้องปิดตัวลง แต่คุณก็สามารถหยุดทำงานได้เพียงไม่กี่นาทีโดยเฉพาะอย่างยิ่งถ้าคุณหลีกเลี่ยงตัวเลือก --nonsparse อิมเมจและ dd ดิสก์ gparted ไปยังไฟล์ iso และติดตั้งในเกสต์ KVM ล่วงหน้า หวังว่านี่จะช่วยได้


2
ปัญหาไม่ได้เกี่ยวข้องกับ KVM จริงๆ จาก Linux คุณไม่สามารถปรับขนาดดิสก์ที่คุณบูทได้ มันใช้กับอาร์เรย์ RAID แบบฟิสิคัลด้วย
wazoox

3

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

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

หลังจากเสียบในดิสก์ใหม่คุณเพิ่มลงใน LVM ด้วย vgextend ใช้ pvmove เพื่อย้ายรูทไปยังดิสก์ใหม่ใช้ lvextend และปรับขนาด 2fs เพื่อขยายโลจิคัลวอลุ่มและระบบไฟล์ตามลำดับจากนั้นใช้ vgreduce เพื่อลบดิสก์เก่าออกจากโวลุ่ม กลุ่ม. เมื่อถอดวอลลุ่มเก่าออกแล้วสามารถถอดปลั๊กออกได้

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

หมายเหตุ: resize2fs ยังสามารถย่อขนาดระบบไฟล์


0

เป็นไปไม่ได้ atm แต่ afaik เป็นคุณสมบัติที่อยู่ระหว่างการพัฒนา สิ่งที่คุณสามารถทำได้คือการเชื่อมต่อกับเป้าหมาย iSCSI จาก VM และจัดการพื้นที่บนเป้าหมายนั้นในฝั่ง SAN


คุณไม่ได้ตอบคำถามด้วยคำตอบที่เขาสามารถใช้ได้
พ.ค.

@ David: และสิ่งที่ทำให้คุณคิดอย่างนั้นและแม้แต่ downvote คำตอบของฉันได้อย่างไร คำตอบของฉันไม่ให้วิธีแก้ปัญหาเฉพาะหน้าได้อย่างไร
dyasny

คุณระบุว่า "ไม่สามารถทำเงินได้ ... " จากนั้นก็บอกเขาถึงคุณลักษณะที่ไม่สามารถทำได้ในขณะนี้ (ตอนนี้เกือบสองปีต่อมามันอาจจะแตกต่างกัน - แต่คำตอบนี้ไม่ได้พูดอย่างนั้น)
พ.ค.

1
ดังนั้นสองปีที่แล้วฉันควรจะบอกเขาว่า "มันจะเป็นไปได้ในสองปี"? ฉันดูเหมือนผู้เผยพระวจนะกับคุณหรือไม่? ตอนนั้นฮ็อตปลั๊กกำลังอยู่ระหว่างการพัฒนาและนั่นคือสิ่งที่ฉันพูด จากนั้นฉันเสนอวิธีการอื่นในการดึงที่เก็บข้อมูลแนบกับ VM ซึ่งจะเป็นอิสระจากชุดคุณลักษณะ qemu ทั้งหมด ไม่เคยระบุว่ามันเป็นวิธีการเท่านั้น แต่มันเป็นวิธี
dyasny

ตอนนี้ฉันเข้าใจแล้ว ... ฉันได้แก้ไขคำตอบของคุณเพื่อแสดงเจตนาของคุณได้ดียิ่งขึ้น
พ.ค.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.