Чи можливий розмір диска в Інтернеті за допомогою KVM?


15

Ми використовуємо KVM для віртуалізації Linux на кількох проектах. На сьогодні все йде добре. Але однією з наших вимог є можливість додати дискового простору до запущеного гостя, не перезавантажуючи його та не переводячи його в режим офлайн. Чи можливо це за допомогою КВМ?

Єдине, що я до цього часу знайшов (але ще не перевіряв) - це можливість гарячого підключення дисків до машини. Якщо я йду цим маршрутом, я завжди можу додати новий диск до групи томів LVM у гості, а потім продовжити вибраний логічний том. Найбільшим недоліком такого підходу є те, що з часом ми можемо виявити, що гості мають змінну кількість віртуальних дисків. "Справжній" простір на диску буде надаватися хосту через SAN, тому ми завжди можемо додавати більше хосту для хоста.


(І "Так", можливо.)
poige

Відповіді:


4

Я думаю, ти застряг робити те, що ти згадав, якщо хочеш це зробити, не знімаючи автомат.

Чому б просто не дати віртуальним машинам LUN відключити SAN і не управляти цим простором? Це краще працює, якщо ви хочете використовувати такі функції, як жива міграція.

KVM базується на QEMU, тому вся підтримка формату зображення походить від цього проекту. Ось хороший спосіб змінити розмір різних форматів, які підтримують Qemu / KVM. Але форум Qemu був би хорошим місцем, щоб задати це питання, якщо ви не отримаєте жодних твердих відповідей.

Інший варіант, який може бути не ідеальним, - це використовувати дійсно великий qcow2 або інший розріджений формат зображення для накопичувачів. Таким чином, ви можете надати кожній машині невеликий привід для ОС та велике розріджене зображення для даних під LVM. Це хоча б збереже кількість віртуальних дисків / зображень, якими вам доведеться керувати. Але це невелике забезпечення може бути проблемою, хоча якщо ви зробите це на 1000 машинах, і кожен забирає вас на вільне місце, яке вони бачать.

Я вважаю, що XEN має однакові обмеження в даний час.


У подальшому розгляді, мабуть, спосіб зберігання SAN-пам’яті всередині самого гостя, як ви згадуєте, - це можливо. І дякую також за додаткову інформацію.
Eil

Тонке забезпечення може бути дорогим і через фрагментацію.
wazoox

15

Я знаю, що це давнє запитання, але я знайшов його, гукаючи за рішенням, і сподіваюся, що він може допомогти комусь іншому.

На сьогоднішній день це є можливим , щоб змінити розмір жорсткого диска на комп'ютері. Тут я знайшов робочий шлях:

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
Дякуємо, що повернулися та додали цю відповідь! Робить речі набагато простішими, ніж старий спосіб робити це.
Дейв Шерохман

4

AFAIK, це неможливо - ви можете додавати нові образи диска, і, як ви вказуєте, ви також можете додати нові зображення до обсягу LVM, але для того, щоб змінити розмір активного завантажувального образу диска, вам потрібно мати змогу закрити його вниз та відредагуйте розділи.

Ось гарне пояснення для розширення зображення. Хоча це вимагає відключення, ви, ймовірно, можете піти лише за кілька хвилин простою, особливо якщо уникнути опції зображення --nonsparse image та заздалегідь увімкнути диск gparted до iso-файлу та змонтувати гостя KVM. Сподіваюсь, це допомагає.


2
Проблема насправді не стосується KVM; з Linux ви просто не можете змінити розмір диска, з якого ви завантажилися. Це стосується і фізичних масивів RAID.
wazoox

3

Можливо переміщення системи Linux між дисками під час роботи. Обмеження полягає в тому, що ви не можете змінювати розділи на диску, на якому використовуються розділи .

Для цього ваша коренева файлова система повинна бути на LVM, це часто означає, що вам потрібно мати окрему завантажувальну файлову систему (це не важливо, але це просто полегшує роботу)

Після підключення нового диска ви додаєте його до LVM за допомогою vgextend, використовуєте pvmove для переміщення коренів на новий диск, використовуєте lvextend та resize2fs для розширення логічного обсягу та файлової системи відповідно, а потім використовуєте vgreduce для видалення старого диска з гучності групи. Після вилучення старого гучності можна відключити шнур живлення.

Для простого випадку у вас є крихітний диск для завантажувальної файлової системи, до якого ніколи не потрібно торкатися. Але якщо це самостійно, його легко відключити, від'єднати від мережі, підключити новий і відновити завантажувальний диск, не зупиняючи систему. (просто не збивайтесь, поки ви це робите)

Примітка: resize2fs також може скорочувати файлові системи.


0

Не можливо атм, але afaik - це особливість, що розробляється. Натомість ви можете підключитися до цілі iSCSI від VM та керувати простором для цієї цілі на стороні SAN.


Ви не відповіли на запитання відповіддю, яку він може використати.
Май

@David: а що змушує тебе це думати і навіть спростовувати мою відповідь? Як моя відповідь не забезпечує вирішення проблеми?
діасний

Ви заявили "Неможливо атм ...", потім сказали йому про функцію, яка наразі неможлива. (Зараз, майже через два роки, це може бути інакше - але ця відповідь не говорить про це.)
травня 12

1
Тож два роки тому я мав би сказати йому "це буде можливо через два роки"? Чи схожий я на тебе пророка? Тоді розробка гарячого підключення була саме такою, що я сказав. Тоді я запропонував інший підхід до отримання сховища до VM, який був би незалежним від усього набору функцій qemu. Ніколи не вказано , що це єдиний підхід, але це шлях.
діасний

Зараз я розумію ... Я відредагував вашу відповідь, щоб краще показати ваш намір.
травня 12
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.