Kvm подключение физического диска
Как добавить дополнительное дисковое хранилище в гостевую ОС на виртуальную машину KVM с командой virsh в операционной системе Linux?
Вы можете легко добавить дополнительные жесткие диски в KVM домене/виртуальной машине, чтобы получить увеличенное пространство для хранения данных гостя. В этом учебном пособии показано, как добавить дополнительное дисковое хранилище в виртуальную машину KVM, используя опцию командной строки virsh в Linux.
Ниже приведены шаги по добавлению файлового хранилища (образа диска) в виртуальную машину с помощью команды virsh в Linux:
Шаг 3 – Разбиение диска на виртуальной машине
Теперь у гостя с именем «ubuntu-box1» есть устройство на жестком диске, называемое /dev/vdb . Зайдите в вашу виртуальную машину и введите следующую команду для проверки того же самого:
Примеры возможных выводов данных:
Затем запустите fdisk для нового устройства:
Введите n для нового раздела. Введите p для основного раздела. Выберите номер доступного раздела 1. Введите первый цилиндр по умолчанию, нажав Enter. Выбрать весь диск можно, нажав Enter. Наконец, введите p для проверки нового раздела. Введите w, чтобы записать изменения и выйти. Пример сеанса из команды fdisk.
Рисунок 01: Разделение диска с помощью команды fdisk на виртуальной машине.
Чтобы отформатировать новый раздел с файловой системой ext4, введите:
Примеры возможных выводов данных:
Рисунок 02: Форматирование /dev/vdb1 как ext4
Наконец, вам нужно создать монтируемую директорию:
И смонтируйте диск для гостя:
Отредактируйте файл /etc/fstab
И обновите его следующим образом, чтобы /dev/vdb1 постоянно монтировались после перезагрузки:
Сохраните и закройте файл. Теперь у вас есть гостевая виртуальная машина, которая имеет дополнительное виртуализированное файловое хранилище в системе на базе KVM Linux.
Занимался на днях переносом виртуальных машин с обычного kvm гипервизора на proxmox. На исходном гипервизоре диски виртуальных машин были в формате qcow2. Я решил заодно сконвертировать диски из qcow2 в lvm и написать заметку об этом, чтобы не забыть.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курcе по администрированию MikroTik. Автор курcа, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Для тех, кто не знает, в чем разница между разными форматами дисков в гипервизоре KVM, предлагаю почитать об этом в моей статье на тему бэкапа виртуальных машин kvm. В общем случае, сконвертировать диски qcow2 в lvm можно следующим образом. Сначала преобразуем их в raw формат с помощью qemu-img.
Далее raw образ переносим на новый сервер. На нем же к виртуальной машине подключаем новый диск из lvm хранилища такого же размера, как raw образ. Далее в консоли proxmox выполняем конвертацию в lvm с помощью обычного dd.
Все то же самое можно сделать одной командой на новом сервере, перенеся туда диск в формате qcow2.
Последняя команда qemu-img будет работать медленнее, чем dd из предыдущего примера. Каким способом конвертировать - решать вам. Не забудьте изменить путь к lvm разделу. В моем случае он /dev/pve/vm-102-disk-0, у вас имя группы томов может быть другим, не pve.
Я описал общий случай для любого гипервизора KVM. Но конкретно в proxmox это можно сделать проще. Если вам нужно конвертировать qcow2 в lvm на этом же хосте, то достаточно просто через web интерфейс выбрать Move disk и указать в качестве storage хранилище с LVM. Proxmox сам конвертирует диск с помощью того же qemu-img.
Если вы выполняете, как и я, перенос виртуальной машины с одного сервера на другой, то действуйте так:
- Переносим qcow2 диск со старого гипервизора на новый.
- На новом создаем виртуальную машину, подключаем к ней диск любого размера на обычном хранилище в виде директории.
- Запоминаем имя этого диска и удаляем его. Вместо него переносим диск со старого гипервизора и указываем ему такое же имя.
- Запускаем виртуалку на новом сервере, убеждаемся, что она работает, выключаем.
- Через web интерфейс proxmox переносим диск на storage с lvm. Proxmox сам выполнит конвертацию.
Я по такой схеме переносил как linux машины, так и windows. Проблем не было. Единственное, надо не забыть зайти через консоль в windows машину и проверить сетевые настройки. Нужно будет заново настроить сеть, иначе по rdp не подключиться. После переноса сетевой адаптер поменяется.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите подробнее программу ссылке.
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
и я надеялся получить горячее добавление к гостю, выполнив это в оболочке virsh:
XML-определение домена становится:
Как видите, имя драйвера становится неправильным, оно должно быть driver name='qemu' как существующий vda диск. Я пытался с, --drive=qemu но он утверждает, что это не поддерживается.
Во-вторых, я только «вижу» только что добавленный диск, как только перезагружаю виртуальную машину с Ubuntu 10.04.4 LTS. Как я могу сделать диск "горячим подключением"? Я хочу, чтобы виртуальная машина «увидела» новый диск сразу же без перезагрузки.
Несвязанное предложение, используйте qemu-img вместо dd - его аргументы более естественны и делают то же самое: qemu-img create test.img 5G
Я хотел бы начать с примечания, которое вы должны избегать virsh attach-disk с его ограниченным количеством опций. Вместо этого я бы предложил указать точный формат диска, который вы предпочитаете, в отдельном временном XML-файле или с помощью приложения с графическим интерфейсом virt-manager (для последнего пропустите первый шаг).
Создайте временный файл с определением диска, как показано ниже.
настроить свойства в соответствии с вашей ситуацией
Совет: загляните в свою текущую конфигурацию домена XML и скопируйте оттуда раздел.
Теперь, прежде чем добавлять диск в текущий домен, убедитесь, что необходимые модули ядра hotplug загружены в гостевую систему.
Некоторые дистрибутивы Linux, такие как недавние CentOS / RHEL / Fedora, имеют встроенное ядро. В этом случае проверьте CONFIG_HOTPLUG_PCI_ACPI . Если это так y , то все готово, и вы можете пропустить этот шаг.
Попробуйте добавить эти два модуля, /etc/modules если вы хотите, чтобы они загружались при загрузке по умолчанию.
Добавьте диск к работающей виртуальной машине, используя
При желании добавьте --persistent возможность, чтобы Libvirt обновлял определение XML домена «постоянный».
Наконец, проверьте в гостевой системе, был ли диск действительно вставлен «горячим» подключением. Ядро должно быть запущено, что можно проверить с помощью dmesg :
В приведенном выше примере я добавил диск как vdb с двумя разделами в таблице разделов.
Я установил виртуальную машину под управлением Windows XP на своем ноутбуке Ubuntu. Используя virt-manager приложение с графическим интерфейсом, я могу вставить компакт-диск в дисковод, перейти в «Детали» → «IDE CDROM 1» и нажать Connect кнопку. Затем компакт-диск становится доступным в моей виртуальной машине.
Как я могу сделать то же самое через командную строку? Очевидно, я бы тоже хотел отключиться от командной строки.
Примечание: я могу запустить виртуальную машину из командной строки, используя virsh start testbed (testbed - это имя домена / виртуальной машины).
Если при создании виртуальной машины вы не указали CDROM, вы можете подключить устройство даже к работающему домену (виртуальной машине), выполнив следующую команду:
Если вы уже определили CDROM, но он указал на образ ISO, по моему опыту, вы все равно можете запустить ту же команду. hdc Часть должна соответствовать блочному устройству , которое вы имеете в testbed виртуальной машине.
Когда вы хотите снова указать на ISO-образ, вы заменяете /dev/sr0 имя файла на хосте, что-то вроде
Документация предлагает использовать virsh update-device , но создание XML-определения более трудоемко:
Если вы занимаетесь этим, сохраните что-то подобное в файл (скажем ~/cdrom-real.xml ), а затем запустите:
Похоже, это то, что я хочу; Я проверю как можно скорее (не могу в данный момент). Спасибо в любом случае.
Да, это так. Вы также знаете, как отсоединить устройство? Я пытался virsh detach-disk testbed hdc , но я получил error: unsupported configuration: This type of device cannot be hot unplugged .
Устройства IDE действительно не поддерживают горячее подключение. detach-disk не работает для остановленной виртуальной машины. Чтобы полностью удалить CD, вам нужно использовать его, virsh edit testbed когда машина остановлена, и удалить disk элемент, определяющий компакт-диск. Если вы не являетесь vi экспертом export EDITOR=nano в области редактирования , выполните перед выполнением команды редактирования.
Я приму ваш ответ. Дело в том, что если устройство подключено к тестовой виртуальной машине, и я запускаю тестовый стенд без вставленного диска, тестовый стенд не подходит, и мне нужно открыть графический интерфейс виртуального менеджера и сначала отключить устройство. Вот почему в своем вопросе я заявил, что тоже хочу отключить устройство.
Используйте команду virsh qemu-monitor-command, чтобы передать команды извлечения и изменения на qemu.
Сначала используйте «информационный блок», чтобы получить имя устройства qemu для вашего компакт-диска.
Так что в моем случае меня интересует drive-ide0-0-0 . Чтобы изменить диск, сделайте это:
Команда "информационный блок" приводит к ошибке для меня: "ошибка: внутренняя ошибка не может проанализировать информационный блок json: лексическая ошибка: недопустимый символ в тексте json."
Кажется, синтаксис должен был измениться из-под меня. Клянусь, это сработало, когда я это написал. Я опробовал синтаксис, предложенный в ответе Джо Хусса, и теперь он работает. Я обновил свой ответ.
Что касается вышеприведенной команды «info block», то правильный способ ее вызова такой:
Я проходил через проигрыватель BluRay, который не работал правильно, если я не проходил через него другим способом. Вот как я это сделал на основе этой статьи.
Найти номер SCSI:
Отредактируйте домен XML и добавьте это:
Мне пришлось заставить XML быть принятым, поскольку virsh edit дал ошибки, просто нажмите i, а затем перезагрузите vm, чтобы протестировать.
mount -t iso9660 / dev / sr0 / media
Вы можете использовать любое устройство, установленное для вашего компакт-диска в каталоге / dev. Также / dev / cdrom - это ссылка на соответствующее устройство в большинстве систем Linux. Параметр -t относится к типу устройства, которое вы монтируете, а iso9660 - универсальный тип для носителя cdrom.
Точка монтирования может быть любой, что вы хотите, просто убедитесь, что она существует.
Um. Вот как я могу смонтировать компакт-диск в хосте. Хорошо моя ошибка «Как подключить устройство cdrom к домену / виртуальной машине kmm / qemu?». Обратите внимание, что этот ответ совершенно бесполезен, поэтому вам следует либо отредактировать его, либо удалить его.
KVM (или Kernel-based Virtual Machine) — это программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).
Настройка
Просмотрим список физических дисков на хост-сервере:
На жестком диске sda установлена ОС, его не трогаем, а вот на sdb создаем раздел на все свободное место диска с файловой системой ext4: (более подробно про следующие операции можно почитать здесь)
Выбираем диск для редактирования
Создаем новый раздел
Создаем файловую систему ext4 на всем свободном месте диска /dev/sdb
Создаем точку монтирования нашего жесткого диска для файлов виртуальных машин:
Многие советуют отключить вообще Selinux, однако мы выберем иной путь. Мы настроим его правильно.
Если выполнение этой команды не будет успешным, надо установить дополнительный пакет. Сначала узнаем, какой пакет предоставляет данную команду
После этого снова:
Смонтируем раздел /dev/sdb1 в /guest_images
Отредактируем файл /etc/fstab для того, чтобы при перезагрузке хост-сервера раздел с ВМ монтировался автоматически
Шаг 2 – Прикрепите диск к виртуальной машине
Прежде чем присоединить диск к вашей виртуальной машине, узнайте имя текущего диска. Войдите в вашу виртуальную машину и введите следующую команду:
Примеры возможных выводов данных:
Таким образом, моя виртуальная машина имеет /dev/vda с размером 40 ГБ. Чтобы подключить вновь созданный образ ubuntu-box1-vm-disk1-5G , вы должны использовать /dev/vdb . Если у вас уже есть диск /dev/vdb , вам нужно изменить vdb на свободное устройство, например /dev vdc , и так далее. Чтобы прикрепить диск к виртуальной машине, под названием ubuntu-box1 используйте следующий синтаксис.
Например, прикрепите образ диска ‘/var/lib/libvirt/images/ubuntu-box1-vm-disk1-5G’ в качестве виртуального диска к виртуальной машине/домену с именем «ubuntu-box1» и обновите XML-файл домена для нового диска (введите команду на хосте):
Примеры возможных выводов данных:
Будьте Осторожны : С помощью всего нескольких нажатий клавиш fdisk может уничтожить часть или весь ваш жесткий диск или рабочий раздел. Убедитесь, что вы используете правильные имена устройств с помощью команды fdisk.
Шаг 1 – Создайте новый образ диска
Введите следующую команду на хосте KVM для создания нового образа диска под названием ubuntu-box1-vm-disk1-5G с размером 5G:
Или вы можете использовать команду dd для создания предварительно выделенного файла, для этого выполните:
Вы только что создали команду qemu-img или dd для создания нового необработанного образа диска размером 5 ГБ. Образ диска называется ubuntu-box1-vm-disk1-5G :
Примеры возможных выводов данных:
Установка
Проверяем, поддерживает ли CPU аппаратную виртуализацию:
Если вывод не пустой, значит — процессор поддерживает аппаратную виртуализацию. Кому интересно, все действия выполнялись на конфигурации Intel Xeon Quad Core E3-1230 3.20 GHz / 8GB / 2x 1TB.
Устанавливаем KVM и библиотеки виртуализации:
Запускаем сервис KVM
Смотрим, загружен ли модуль KVM
Должны получить вывод:
В данном случае видим, что загружен модуль kvm_intel, так как произволитель CPU — Intel.
Проверка подключения к KVM
Должны получить вывод:
Устанока и настройка (qemu-kvm libvirt-bin)
Некоторые замечания относительно формата qcow2
Формат образа необработанного диска выставлен по умолчанию. Преимущество этого формата заключается в простоте и легкости экспорта для всех других эмуляторов. Однако, формат изображения QEMU (qcow2) — самый универсальный формат. Если вам нужно сделать снимки виртуальной машины или выпонить AES-шифрование. Попробуйте формат qcow2. Синтаксис будет выглядеть следующим образом.
Читайте также: