Virt manager добавить диск
If you really want to add a physical device or physical partition as virtual drive to your virtual machine, then these insttructions are for you.
WARNING. Be sure you know what you are doing. If your host operating system and the virtual machine access the same partition with write access, DATA LOSS will occur. Never try to boot your host operating system in a virtual machine!
- Find the physical drive or physical partition you want to add. I recommend the following way. The id-name includes the vendor name and model name of the device and that gives a good hint that it is actually the device you are looking for. The end of each line gives you the link to the block device, which you may be more familiar with.
$ ls -l /dev/disk/by-id/
insgesamt 0
lrwxrwxrwx 1 root root 9 23. Jul 21:05 ata-Crucial_CT256MX100SSD1_14360D295569 -> ../../sda
lrwxrwxrwx 1 root root 10 23. Jul 21:05 ata-Crucial_CT256MX100SSD1_14360D295569-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23. Jul 21:05 ata-Crucial_CT256MX100SSD1_14360D295569-part2 -> ../../sda2…
2. Add the device or partition to your existing virtual machine. In virt-manager, open the virtual machine window.
Click on the light bulb to bring up the virtual hardware details. Then select Add Hardware at the bottom.
We want to add a storage, and as device type choose Disk Device. Choose the radio button labelled “Select or create custom storage”. In the corresponding text input field, paste the name of the physical device or partition that you chose before. Set the Bus type to your liking, usually SATA or IDE are a good choice. Click finish and the physical device is added.
25.05.2020
VyacheslavK
CentOS, KVM, Linux
комментариев 7
Virt-Manager – графическая консоль для управления виртуальными машинами KVM от компании Red Hat. С помощью Virt-Manager можно, создавать, редактировать, запускать и останавливать виртуальные машины на гипервизоре KVM. Можно выполнять настройку параметров виртуальных машин, что значительно упрощает работу по сравнению с управлением KVM из интерфейса командной строки.
В статье мы рассмотрим установку Virt-Manager на сервер с KVM, типовые задачи управления виртуальными машинами в графической консоли и покажем, как использовать virt-manager из Windows-клиента.
Virsh: команды управления виртуальной машиной KVM
Первый вопрос, который возникает у начинающего администратора KVM: как увидеть созданные виртуальные машины, как остановить, запустить и удалить их. Для управления ВМ в KVM из консоли можно использовать утилиту virsh (использует libvirt API). С помощью утилиты virsh можно выполнить практически все операции с виртуальными машинами KVM.
Как видно из скриншота, в первом случае отключенная ВМ не была отображена.
Еще несколько команд по получению различной информации о виртуальной машине:
Типовые проблемы с Virt-Manager
Во время изучения интерфейса virt-manager, я столкнулся с несколькими ошибками и решил описать их в статье. Первая ошибка, с которой я столкнулся, вышла на стадии создания новой виртуальной машины:
Система ругается на отсутствие файла, который скорее всего должен быть создан при установке KVM на сервер, но в моем случае он отсутствовал. Решился вопрос, созданием файла:
После этого нужно перезапустить сервис libvirtd:
Следующая ошибка ожидала меня сразу же на следующем шаге установки:
Чтобы решить эту проблему и возможно последующие другие, нужно установить пакет qemu-kvm-tools:
После выполненных действий, виртуальная машина создалась без ошибок, и я смог выполнить установку гостевой операционной системы на ней.
Управлять KVM через virt-manager очень удобно. Вы значительно сократите время на выполнение рядовых операций с виртуальными машинами, а также сможете подключиться к ним из Windows.
20.02.2021
VyacheslavK
KVM, Linux
комментариев 7
В этой статье мы поговорим об изменении размера дисков виртуальной машины KVM, рассмотрим используемые форматы виртуальных дисков. Покажем, как правильно увеличить диск виртуальной машины в гипервизоре KVM на Linux без потери данных, а также обсудим варианты уменьшения размеров дисков.
KVM: добавление сетевой карты для виртуальной машины
Попрьуем добавить дополнительный сетевой интерфейс для ВМ. Сначала проверим, какие сетевые интерфейсы созданы на хосте:
У меня на KVM сервере создана одна виртуальная машина, с одним сетевым интерфейсом. К br0 нам нужно прикрепить еще один виртуальный сетевой интерфейс. Выполните команды:
Проверьте, что у ВМ появился дополнительный сетевой интерфейс:
После первого сетевого интерфейса добавьте следующие строки:
Сохраните файл и запустите ВМ. Остальную конфигурацию, KVM добавит сам (mac address и тд).
В данной статье мы затронули основные моменты, которые могут вам понадобиться при управлении виртуальными машинами KVM из консоли Linux сервера. В следующей статье мы рассмотрим управление виртуальными машинами через графический менеджер virt-manager.
Недавно было высказано мнение, что Virtualbox фуфло и нет никакого смысла в нем даже для запуска Windows в качестве гостя.
Я задумался, и решил пропробовать поднять Windows 10 гость через Virt Manager.
И уперся в казалось бы, простейший вопрос - как создать shared папку? Кто использует винду на KVM, подскажите, как вы делаете.
ИТАК, РЕШЕНИЕ. Со встроенной в qemu самбой. Есть в треде, но там пропущен один пункт и оно не работает. Здесь - полное.
Создаем виртуальную машину с Win10 в Virt Manager, все по дефолту.
Удаляем сетевую карту (дефолтную) из оборудования.
Включаем редактирование XML в настройках Virt Manager, переходим на вкладку XML и добавляем:
И одновременно с этим - именно одновременно! Иначе никакие изменения сохраняться не будут! Меняем /path/to/folder на свой путь.
- Теперь сетевая карта и QXL устройство окажутся на одном слоте PCI, устраняем этот конфликт. Находим кусок и заменяем slot=«0x01» на slot=«0x03», как в примере ниже.
7.После этого в винде:
Проводник -> Этот компьютер -> Подключить сетевой диск
ВАЖНО. Чтобы был доступ не только на чтение, qemu должен иметь права на работу с расшаренной папкой. А через Virt Manager он запускается по умолчанию не от имени текущего пользователя! (В отличие от прямого запуска qemu_system из консоли, как многие тут любят, и с чем проблемы нет).
Исправляем это в /etc/libvirt/qemu.conf
где username, groupname это ваш текущий пользователь и группа, которому принадлежит расшариваемая папка!
Плюс к этому - есть способ через Virtio FS, расписан тут. Подключает папку как локальный диск, без всякой самбы, и с высокой производительностью. Но - там какие-то заморочки с правами на запись, я пока не разобрался, и в этом случае перестает работать Выключить -> Сохранить (состояние виртуалки).
Вот ссылка на источник, из которого брался процесс настройки для этого случая
А кто неосилятор - тот может запустить системную самбу, вместо встроенной в Qemu и порадоваться красивому костылизму.
Потому что я за 10 лет попыток так и не понял этот кошмар с однострочником на полэкрана.
Я уже давно понял, что не для меня. К сожалению я давно вышел из возраста, когда на десктопе запускал софт из консоли командами на полэкрана. А теперь мне работать надо, а ее страдать херотой. Благо, любая другая вириуалка элементарно работает без этого маразма с невозможностью за 2 дня полключить папку.
А вообще, я не понимаю в упор почему вы гордитесь совершенно бесполезными знаниями и умениями, и считаете обладание ими каким-то достижением. На самом деле это деградация, болото из-за которого линукс в той заднице на десктопе где ему с таким подходом к софту и место.
Бридж на kvm по умолчанию такой, что гость и хост друг друга не видят. Так что надо не лениться и проверить.
Я не осилил qemu/kvm + samba, простите меня. На самом деле я хороший.
И все. Не надо таких нервов.
Я не знаю как еще объяснить. Мне не нужна самба (в гробу я ее видел кстати, но сейчас не об этом), мне нужна папка с хоста на госте.
Если для этого внутри автоматически при запуске виртуалки запускается самба и все само работает через нее - это меня устраивает. А поднимать самбу ради виртуалки я не вижу смысла. К тому же меня от ее конфигов тошнит.
А как это поможет? Я и так через virt manager делаю.
Да осиль уже. Черт бы побрал этот развратный виртуал-бокс!
Нет, я в целом понял как сделать, даже несколько вариантов. Проблема в том, что они не должны заметно проигрывать виртуалбоксу, иначе смысл.
Вот -net user,smb= отлично подходит, но жто не работает.
А вот это уже крайне интересно. Спасибо!
А вот это уже крайне интересно
Аллилуйя! Ну коль ты уже коснулся мизинцем qemu/kvm, то устанавливай виртуалки в lvm тома. Не смей! Не смей использовать qcow образы. И тогда ты поймешь, сын, за что так любят qemu/kvm.
А самба-то стоит? А каталог как указан? Вообще ж не видно, что и как ты запускаешь.
Вот как запускается через virt manager, это из его лога.
Ставлю на то, что эта опция отключает запуск smbd.
Но это не точно.
Ох блин, действительно в этом дело! Все заработало.
ls-h
Что я сделал. Пусть изначально у нас виртуалка в Virt Manager для Win10 с настройками по умолчанию.
- Я удалил сетевую карту (дефолтную) из оборудования.
- В XML добавил:
После этого в винде:
Проводник -> Этот компьютер -> Подключить сетевой диск
James_Holden ★★ ( 24.10.20 19:50:54 )
Последнее исправление: James_Holden 24.10.20 19:52:05 (всего исправлений: 1)
Спасибо. В принципе у меня на хосте samba есть и с ней вышло даже проще, чем с отдельной в qemu. С NFS тоже без проблем прошло, одну строку в конфиг и права на директорию поменять. Но меня больше всего заинтересовал вариант через virtio. Кстати, у тебя какая версия qemu? На Arch, по идеи, должна быть свежая и virtio-fs должно заработать. Скорость там однозначно больше, чем по samba или NFS. И, насколько я понимаю, шара будет выглядеть как локальный диск.
Ну вот, это же совсем другое дело! Ну почему никто из защитников KVM и опускателей VirtualBox ни в одном треде сразу не мог об этом сказать.
post-factum
Ведь это отличный, самый адекватный и удобный способ иметь общие папки! Не требуется никакой самбы, ни встроенной, ни внешней. Вообще красота, и диск как локальный - а в VirtualBox он сетевой, с сопутствующими проблемами.
У меня qemu 5.1.0. Все настроил, все работает, единственное - пишут что с 5.0 можно без NUMA, но Virt Manager без NUMA не дает сделать конфиг, пришлось с ней.
Итак, начнем утреннее воскресное богослужение секты Пердоликов Черной Консоли (ПКЧ).
Раскомментируем memory_backing_dir по дефолту в /etc/libvirt/qemu.conf
В XML конфиге модифицируем тег CPU, чтобы стало так
- В блок добавляем, заменяем путь на свой. Я добавлял через GUI устройство «файловая система», затем в XML добавил строчку . Перед этим должна быть добавлена NUMA, иначе Virt Manager выдает ошибку.
Запускаем винду. В диспетчере устройств появится устройство хранения данных без драйвера. Нажимаем «Обновить драйвер», подсовываем папку viofs/w10/amd64 с iso образа VirtIO (в Arch Linux этот iso ставится пакетом AURа). Ставится драйвер, появляется устройство VirtIO FS.
Папку viofs/w10/amd64 с iso диска копируем куда-нибудь, например в C:\Program Files.
Создаем службу, которая будет монтировать диск. В консоли Администратора (cmd запущенная от имени администратора) вводим
Запускаем эту службу, либо перезагружаем винду. В «Этот компьютер» появится диск с содержимым шареной папки.
Во имя редхата, Торвальдса и святого RMS, админь!
Радость оказалась несколько преждевременной.
Во-первых, какие-то непонятки с правами - из винды доступ «только чтение». Ну это я думаю можно решить если разобраться.
Главное - с virtio-fs не работает функция «сохранить состояние виртуалки», которая для меня ключевая. Поэтому возвращаюсь на вариант со встроенной самбой.
Нет, все. Пошло это чертово корявое уродство нахрен! Это недоразумение создано только лишь чтобы издеваться над людьми.
Все эти шаги, которые я расписывал - они больше не работают. Не знаю почему. Не вносятся изменения в XML больше в этом дебильном Virt Manager. Все сношу и остаюсь на Virtualbox.
Всему же есть предел, два дня долбиться из-за элементарной функции которая должна делаться одной кнопкой и просто все это время потратить впустую…
Я тебе virtiofs не предлагал потому, что оно довольно сырое. Даже чтобы завести его удобно только с линуксами, нужно поиметь боль.
Юзай самбу и не болей.
Так я не могу юзать самбу - теперь изменения в XML, которые я делал для встроенной самбы - не вносятся. Хотя вот только что они вносились. Ну и зачем я все это расписывал как дурачок… Люди почитают, у них ничего не получится и только плеваться будут.
Запускать отдельную самбу - это бл%:?% не серьезно. Мне не нужна самба на ноутбуке. Мне нужна шареная папка. Долбаная папка, и я уже два дня блина пытаюсь это сделать! Вашу мать…
Запускать виртуалки из консоли либо скриптами на десктопе - я могу написать что это, но меня забанят. Хотя, пусть забанят, надоело все это дерьмо.
А мне вот интересно, чем ваш менеджмент там занимается?
Ну реально, ну вот, ну кааак? Ну даже если набрать самых дешевых индусов на оценку пользовательских качеств программных продуктов, чтобы они сравнили virt manager с конкурентами и написали предложения по улучшению.
Они же там войну и мир напишут за малые деньги и за короткий срок, если менеджеры не доверяют фидбеку от простых смертных.
А чо ты истеришь? Наслушался тут экспертов с красными глазами? (Это не про пост-фактума, это про «евангелистов» из интерентов, которые вещают о небывалых высотах качествах и легкости освоения линукса.
А так да. самый простой выход и дешевый по времени - прочитать туториал про самбу. Я тоже начал читать, а потом психанул откатился назад на винду. И тут как из союза в какой техасский супермаркет прилетел в 1987 году.
самый простой выход и дешевый по времени - прочитать туториал про самбу
Ответ неверный. Самый простой выход - установить виртуалбокс. Там все это делается одной кнопкой и используется мной более 10 лет без нареканий.
Я тоже начал читать, а потом психанул откатился назад на винду.
Я про линукс ничего вообще-то не пишу. У меня линукс как основная система используется 16 лет как. Так что я бы попросил без подобных предложений.
Все претензии тут даже не к KVM и qemu, которые сами по себе - отличные приложения, особенно на серверах, а к Virt Manager.
Но как альтернативу виртуалбоксу я рассматриваю только Virt Manager. Консольные утилиты и баш скрипты вместо виртуалбокса - это просто вызывает у меня гомерический хохот. У меня тут не сервер и не хостинг, вообще-то. Это ноутбук, и софт на нем должен быть соответствующий - десктопный. Благо, в линуксе в таком софте недостатка нет.
Да ну его в зад. Я уже понял что все это фуфло, для виртуалки с виндой на десктопе лучше виртуалбокс.
Ох, вот и тема про похороникс и Х сервер появилась. Но блин, как его развивать, если ломается наглухо обратная совместимость, например, с карточками 2010 года, которые винда переваривает вполне сносно, с их DX10.
Это очень хорошо, что только патчат и патчат, иначе пришлось бы топать за непоняттно чем.
Если ты о красношапке, то мы ж заабандонили виртманагер ☺. Теперь все на cockpit.
Я понимаю, что хочется клац-клац и збс, но чем твоё клац-клац в виртуалбоксе отличается от моего alt+enter для нового терминала, ctrl+r для поиска и «win»+enter чтобы запустить именно тот скрипт для виртуалки, который виндовый, — я не знаю. КМК, у меня выйдет быстрее даже.
Сравни клац-клац с состоянием когда нет ни скрипта, ни знания как его написать.
У VB кстати тоже есть консольный интерфейс. Некоторые вещи, например конверсия образов, делаются только через него
Midael ★★★★★ ( 25.10.20 14:27:33 )
Последнее исправление: Midael 25.10.20 14:29:35 (всего исправлений: 1)
Да очень просто, ты этим занимаешься каждый день, а когда как баран пришел раз в год, увидел новые ворота и оппаньки, оно работает не так, как ожидается и как привык.
Не ну а зачем я тогда свой скрипт публикую?
И зачем сюда захожу, когда спрашивают? Ведь спрашивают же.
Во-первых, любой шаг в сторону от уже настроенного ранее выливается в чтение манов, правку скриптов, а потом окажется с ошибкой ввел, разбираешься, исправляешь и так по кругу. А потом оказывается что оно вообще не работает, вот как у меня сегодня. Зачем это надо, если есть интуитивно-понятный GUI.
Во-вторых, дело не заканчивается на запуске виртуалки. Виртуалбокс имеет кучу GUI элементов для работы с уже запущенной, включения-выключения оборудования на лету, проброса устройств, индикации активности устройств, причем даже не сворачивая окно виртуалки. В Virt Manager я даже не понял как свернуть окно не выходя из полноэкранного режима.
В третьих, виртуалбокс предоставляет пусть корявое, но 3D ускорение на виртуалке даже с виндой и даже с DirectX без всякого проброса видеокарты, которой у меня во-первых нет, во-вторых возможности проброса нет.
В четвертых, виртуалбокс хранит настройки и образы простым, понятным и предсказуемым образом, все вместе в соответствующей папке в /home/user/. При необходимости она просто копируется и переносится на другую машину, и опа оттуда запускается виртуалка. Пока я нашел XML конфиги создаваемые libvirt у меня маты кончились. А образы дисков еще в другом, совершенно не ожидаемом месте оказались.
То есть я пока вообще не понял, а какие преимущества оно предоставляет на десктопе чтобы всерьез рассматривать переход с виртуалбокса, который выигрывает по всем пунктам, кроме проброса видюх.
Это ж не просто так взял и пришёл, когда кто-то прислал. ТС самому захотелось. А захотелось — получай.
Ой да пожалуйста, если нравится. Я ж не агитирую. Меня спросили — я ответил ☺. Жизнь есть и в другом месте тоже.
Не ну а зачем я тогда свой скрипт публикую?
Это очень характерный пример. Вот беру я этот скрипт - и что? И ничего. Мне надо его переписать под свои реалии. А для этого надо полностью заранее знать, как пишется скрипт, знать все опции qemu. Но если я это знаю, мне не нужен чужой скрипт.
Ну дык это, вот твои знания и используют. Но не все же знаю, что ты на ЛОРе обитаешь :)))
Короче, у вас там путают корпорации, где на 1 задачу - одна голова с руками и малый бизнес с его попрыгунами-контракторами, типа нашего Шульмана.
KVM: добавление диска в виртуальную машину
В одной из наших статей, мы описывали процесс расширения и уменьшения дисков виртуальных машин в KVM. Но мы не описывали вариант по добавлению дополнительного диска.
Сначала нужно создать дополнительный файл диска для виртуальной машины:
Вместо qcow2 вы можете указать нужный формат диска, так же нужно указать путь до файла. У меня хранилище для дисков /vz/disk/.
После этого, можно добавить устройство виртуального диска к самой ВМ:
Остановите и запустите ВМ, проверьте что получилось:
Как видим, диск добавлен. После данных манипуляций, на виртуальной машине нужно разметить этот диск под ваши нужды.
Использование Virt-Manager для управления виртуальными машинами KVM
Щелкнув ПКМ по виртуальной машине, вы можете выключить, перезагрузить, включить ВМ.
Далее я хочу изменить директорию для хранения файлов виртуальных машин, так как основное место на диске при установке операционной системы на сервере с KVM, я отдал под директорию VZ. Чтобы поменять стандартную директорию, перейдите в меню “Edit -> Connection Details”.
В открывшемся окне, нужно перейти во вкладку “Storage”. Для создания нового пула, нужно остановить работу текущего и после чего удалить его:
После установки пула, кнопка удаления станет активна:
Теперь можно создать пул в нужной вам директории или разделе:
После этого, у меня стал активным мой основной раздел для файлов ВМ:
Либо просто удалить первоначальную директорию и создал симлинк на нужный раздел:
Теперь можно попробовать создать новую виртуальную машину KVM. Ниже я прикреплю ряд скриншотов, на которых по шагам будет все более-менее понятно. В конце опишу весь процесс создания машины.
- При нажатии кнопки на первом скриншоте, запускается процесс создания новой виртуальной машины KVM;
- Затем указываем, откуда запускать установку ОС на виртуальной машине. Я использовал локальный ISO образ с дистрибутивом CentOS 8;
- Далее настраиваются ресурсы виртуальной машины: количество памяти и vCPU, размер виртуального диска (при необходимости его можно будет расширить или уменьшить), имя, и указываем сеть;
- После создания ВМ к ней сразу будет примонтирован установочный образ ОС, который указали при создании.
Чтобы изменить ресурсы или какие-то параметры уже созданной машины, вам нужно выделить ее и нажать кнопку “Open”. В открывшемся меню нажмите на лампочку и у вас откроется список параметров виртуальной машины KVM.
Чтобы добавить новый сервер KVM, выполните следующее “File -> Add Connection” и заполните данные в открывшемся окне:
Red Hat Linux изменила статус virt-manager в RHEL 8 на deprecated, и возможно в следующих релизах OC этот пакет будет недоступен. Вместо него предлагается использовать веб интерфейс Cockpit. Однако на данный момент в модуле управления KVM в Cockpit пока нет хватает всех необходимых функций, доступных в virt-manager.
Как уменьшить размер виртуального диска в KVM?
В своей работе, ранее я довольно часто сталкивался с данным вопросом, но к сожалению, безболезненно уменьшить диск на виртуальной машине в KVM нельзя! Единственный приемлемый размер уменьшения размер диска виртуальной машины KVM на физическом хранилище – его сжатие через конвертацию.
В интернете фигурирует много статей, якобы благодаря которым вы можете уменьшить размер диска на виртуальной машине, но это не работает.
Я приведу несколько примеров, на которые я натыкался и которые лично мною были проверены.
Уменьшение KVM диска с помощью утилиты qemu
На ряде ресурсов описаны действия, выполняемые с помощью утилиты qemu. В них предлагается уменьшить размер диска виртуальной машины с помощью команды:
qemu-img resize /путь_до_диска -5G — уменьшаем диск на 5G
Или такой вариант с указанием конкретного размера:
qemu-img resize /путь_до_диска 25G — указываем размер диска в 25G
Что происходит после выполнения данной команды? Запускаем сервер и конечно система не грузится:
Я пробовал сначала уменьшить раздел из-под системы с помощью утилиты fdisk, но в таком случае, система так же перестает загружаться, даже если вы пропустите шаг уменьшения диска с физического сервера и это логично. Раздел который мы уменьшаем, системный и соответственно ОС перестает загружаться, так как при уменьшении диска, информация по всей видимости уничтожается.
Уменьшение виртуального диска с подменой образа
Уже не такой распространенный в инструкциях вариант — это уменьшение диска, с подменой на старый. То есть, вы создаете новую виртуальную машину с нужным вам размером диска. После чего, подменяете старый образ диска в новый образ и судя по описанию статей в разных источниках, это работает. Я так же сделал проверку и это сломало файловую систему, как и в первом варианте. Я приведу пример команды:
virt-resize /старый_образ_диска /новый_образ_диска
Приводились так же варианты, с конвертацией диска с формата raw в формат qcow2, НО я изначально создаю машины в данном формате и объясню почему.
Форматы дисков KVM и сжатие диска в qcow2 формате
В самом начале статьи, я упомянул про эти два формата.
raw – в переводе «сырой». Преимущество формата, максимальная производительность, универсальность формата. Минусов масса, основные это:
- Диск занимает все дисковое пространство на физическом сервере, которое ему выделили;
- Нельзя создать снапшоты.
Qcow2 – это родной формат гипервизора QEMU, а так же QEMU-KVM. Это максимально удобный формат виртуального диска из всех поддерживаемых в KVM. Образ диска увеличивается по мере накопления данных на виртуальной машине, поддерживаются снапшоты.
Чем хорош формат qcow2? Вам в принципе не нужно уменьшать размер виртуального диска, так как диск занимает на сервере, ровно столько, сколько места там занято. Если же у вас данные на сервере постоянно перезаписываются и бывает такое, что диск «распух», его можно с легкостью сжать. Рассмотрим такой вариант. Я забью нулями некоторое дисковое пространство и после чего удалю файл:
dd if=/dev/zero of=/mytempfile
rm -rf /mytempfile
При проверке с сервера, образ диска сначала весил 2.4G после чего расширился до 5.9G:
То есть после удаления информации на виртуальной машине, диск обратно не сжался. Чтобы файл диска получил актуальный размер, я использую следующий метод:
Бэкапим файл диска, останавливаем виртуальную машину и после чего выполняем следующие действия:
qemu-img convert -O qcow2 /старый_образ /новый_образ
После чего можно проверить размеры двух дисков:
Как видим, размер сжатого диска 1.6G. Переименуем новый образ диска в нужный нам и запустим виртуальную машину:
Контрольная проверка с сервера:
Способ рабочий. За все время его использования, ни разу файловая система на виртуальной машине не умирала. Но настоятельно рекомендую перед подобными работами, создавать копию диска, если не хотите потерять данные.
Это все, что я хотел в данной статье рассказать. Если у кого-то из посетителей сайта есть рабочий способ по уменьшению диска на KVM, именно уменьшения (не сжатие) и именно рабочий, предлагайте свои варианты и я обязательно их протестирую.
Предыдущая статья Следующая статья
Virt-Manager: графическая консоль управления KVM
Резервное копирование виртуальных машин в KVM
Управление числом vCPU и ядер в виртуальной машине
Управление виртуальными машинами KVM из консоли
На самом деле в своей работе и ext4 пробовали уменьшать, получилось то, что получилось выше)
Ни разу нормально ничего не уменьшилось. Посыл раздела по уменьшению был такой: куча статей с вариантами уменьшения диска, которые гробят систему. А некоторые в принципе не срабатывают даже, непонятно тестируют ли вообще люди то, о чем пишут. Да и с образом в формате qcow2 смысла уменьшать разделы не вижу, лишние нервы. Есть vds не занимает место, то пусть и будет там раздел хоть на 100Гб) На днях еще раз проверю с ext4 и отпишусь, но последний раз это окончилось плачевно.
Виртуалка с диском на 1000гб будет делать бэкапы гораздо дольше чем со 100гб
fstrim на kvm тоже работает, но замечал, что не всегда диск виртуальной машины сжимается в актуально состояние, поэтому приходится конвертацию делать.
Господа. Ваша ошибка с fdisk’ом в том, что вы не уменьшили файловую систему. Уменьшать надо сначала ФС, потом раздел, а потом уже диск. Проблема конкретно с xfs — да, она не уменьшается напрямую. Для остальных есть абсолютно рабочий способ уменьшить диск, многократно проверенный. Повторюсь, это для файловых систем, нормально поддерживающих изменение размера в минус. Даже если это qcow2 — добавьте конвертацию в тип raw, и все работает и с ext[234], и c ntfs.
Для ntfs проще всего, там уменьшение ФС и раздела за один шаг — 1) сжать раздел в консольной оснастке diskmgmt.msc, лучше, чтобы он был несколько меньше конечного объема диска, так не пострадает «хвост» файловой системы. 2) если это qcow/qcow2 — преобразовать в raw (qemu-img convert -p -O raw /»путь к текущему диску» /»путь к новому диску»). 3) уменьшить размер raw диска настолько, чтобы он был несколько больше суммы размеров ваших разделов на нем (если не сделали разделы меньше желаемого объема — см п.1) — той же утилитой (qemu-img resize «/путь к raw-диску» -«размер уменьшения»). 4) меняем в конфигурации виртуалки «/путь к диску qcow» на «/путь к диску raw» и, соответственно, тип диска. 5) пробуем запуск ОС. Если работает (у меня еще не было случаев, чтобы не сработало), то можем удалять старый диск qcow и затем, по желанию, конвертировать назад из raw в qcow(2) с изменением настроек виртуалки. 6) опять заходим в diskmgmt.msc и расширяем раздел до новой границы.
Плюсы — всегда есть старая копия диска до предыдущей операции. Минусы — нужно дополнительное место на диске.
В случае с ext[234] — все то же самое, только вместо diskmgmt и сжатия раздела — resize2fs. Однако, стоит заметить, если ФС примонтирована, лучше этого не делать. Или отмонтировать, если это некритичный для работы раздел, либо загрузиться с live-системы и сделать это, например, если это root
По поводу того, зачем разные форматы — вот так работает 100%, т.е. диск raw отлично меняет свой размер, если вы позаботились о размере ФС (в случае уменьшения). Кроме того, он быстрее на 10% и нет варианта, что вы отдали всем виртуалкам в сумме больше диска, чем у вас есть. Но тут нужно для себч решить — нужны ли эти 10% производительности или снапшоты, которых raw не поддерживает. С другой стороны, если у вас образы лежат на любой структуре, поддерживающей снапшоты (zfs, lvm, та же xfs) — может и не нужен qcow. Вот только смешивать на одном разделе хоста образы в разных форматах не рекомендую: если не уследите за разрастанием qcow-дисков, будет беда. Машины с qcow-дисками при невозможности расшириться дальше просто станут на паузу, а машины с, например, raw-дисками в «тонких» lvm при невозможности расшириться или записать на диск, исковеркают свою ФС и упадут.
Добавлю свои 5 коп.: Если после увеличения размера образа свободное место не отражается в VM c Windows Server, а перезагрузка VM затруднительна, то можно решить проблему командой DISKPART RESCAN
04.03.2020
VyacheslavK
CentOS, KVM, Linux
Комментариев пока нет
В предыдущей статье мы рассмотрели установку гипервизора KVM и создание виртуальной машины. В рамках одной статьи, мы не смогли охватить все нюансы управления виртуальными машинами, а затронули лишь их часть. Сегодня, мы постараемся рассказать все об управлении виртуальными машинами из консоли сервера: как изменить параметры ВМ, добавить дополнительные устройства и рассмотрим основные команды, которые используются для администрирования виртуальных машин KVM.
Увеличение диска виртуальной машины KVM
Расширение виртуального диска со стороны KVM
Для того, чтобы проводить работы с диском, виртуальная машина должна быть отключена, иначе мы не сможем что-либо сделать. Рассмотрим пример с увеличением диска размер которого изначально был 20Гб.
Чтобы посмотреть параметры диска виртуальной машины KVM, воспользуйтесь командой:
qemu-img info /путь_до_диска
Вывод команды будет примерно такой:
Мы видим, что у нас есть два поля которые указывают на размер, это virtual_size и disk_size:
- virtual_size – размер виртуального диска, указанный при создании или расширении диска (в этом примере максимальный размер диска – 20 Гб);
- disk_size — размер файла диска в текущий момент, т.е. сколько сейчас занимает образ диска места на физическом сервере (относится только к формату qcow). В нашем пример виртуальный диск занимает всего 1,6 Гб на хранилище.
И сразу о форматах. Я рекомендую при создании виртуальных машин на KVM использовать формат диска qcow2, а не raw. Чуть позже я объясню почему.
Если сразу проверить вывод информации об образе диска, мы увидим, что он расширился:
Часть работы мы сделали, но требуется и проведение работ со стороны виртуальной машины в гостевой ОС. Далее мы покажем, как увеличить размер диска в гостевых CentOS 7 и Windows Server 2012.
Если вы планируете добавить дополнительный виртуальный диск для ВМ на KVM гипервизоре, используются qemu-img и virsh.
Расширение раздела в виртуальной машине с Linux CentOS
После расширения диска со стороны сервера, нужно запустить виртуальную машину и подключиться к ней по ssh. Все работы будут проводиться с помощью утилиты управления разделами жестких дисков fdisk.
После подключения к серверу, проверяем наличие нашего дополнительно подключенного места:
На скриншоте видно, раздел /dev/vda2 имеет размер 20Gb, а доступное место на диске у нас больше.
Подправим этот момент и расширим раздел /dev/vda2 до максимального объема:
После чего нам нужно сделать рестарт виртуальной машины и выполнить команду для применения расширения диска:
В итоге мы получили расширенный раздел /dev/vda2. Теперь по порядку, что именно мы сделали:
- fdisk /dev/vda — запустили утилиту fdisk подключившись к разделу /dev/vda
- /d — удаляем раздел, по умолчанию это раздел 2 который нам и нужен, поэтому в следующем пункте жмем просто Enter
- /n – создаем новый раздел, в следующем пункте так же просто жмем Enter или вводим p, далее Enter так как создаваемый раздел по умолчанию будет 2.
- При указании первого и последнего сектора так же жмем просто Enter, если мы хотим расширить раздел до максимума, если вы хотите указать конкретный размер, в последнем секторе указывайте размер диска как указано в меню +size Размер не может быть меньше, чем был ранее!
- /w — применяем наши настройки.
После перезагрузки проверим диск командой:
В некоторых источниках для выполнения данной процедуры указывают команду:
Но с файловой системой xfs это не работает!
Работы по расширению диска на виртуальной машине с ОС CentOS 7 закончены.
Увеличение диска в гостевой Windows Server
Подключаемся к виртуальной машине через rdp или VNC и выполняем работы по расширению диска.
Хотелось бы добавить, что перед процедурой расширения диска для виртуальной машины, я советую выполнять резервное копирование самого диска. Остановите виртуальную машину и скопируйте образ диска в директорию для бэкапа или в любую директорию, в которой есть свободное место. Если в ходе работ, что-то пойдет не так, вы всегда сможете вернуть образ виртуального диска из бэкапа.
Управление KVM через virt-manager из Windows
Для удалённого подключения к virt-manager с Windows компьютера, вам понадобится следующее ПО:
- Putty – ssh клиент
- Xming – порт сервера для ОС Windows.
Откройте Putty, перейдите в Connection—>SSH—X11. Включите опцию “Enable X11 Forwarding“.
Теперь на вкладке Session, укажите адрес KVM сервера, имя сессии, укажите порт и сохраните подключение.
Чтобы из Windows удаленно подключаться к KVM серверу через virt-manager, используется следующий порядок:
- Сначала запускаете Xming;
- Запускаете сохраненную сессию Putty с опцией X11 Forwarding;
- Подключаетесь к virt-manager.
После включения Xming у вас в трее должен светиться значок X:
Далее запустите Putty, и после авторизации на сервере, выполните:
Через несколько секунд у вас должно открыться окно управления virt-manager и окно дополнительной авторизации, где нужно ввести данные для подключения к серверу:
После авторизации вы должны увидеть список виртуальных машин.
Установка Virt-Manager в Linux
Прежде всего нужно установить необходимые пакеты из базового репозитория на сервере с KVM (в нашем примере сервер KVM установлен на Linux CentOS). Выполните следующую команду yum (или dnf):
Чтобы удаленно подключаться к virt-manager с Windows-компьютера, нужно дополнительно настроить SSH. Откройте файл sshd_config:
Включите следующие параметры:
Перезапустите сервис sshd:
Добавление памяти и vCPU виртуальной машине KVM
В консоли KVM вы можете добавить или уменьшить ресурсы процессора и памяти, выделенные для ВМ двумя способами:
Если виртуальная машина запущена, ее нужно остановить:
Теперь с помощью virsh изменим количество виртуальных процессоров до 6 (vCPU):
— количество ядер процессора
Но при применении этой команды, у меня сразу же появилась ошибка:
Мы не можем установить количество ядер процессора, больше, чем максимальное количество. Чтобы увеличить максимальное количество ядер ВМ, выполните команду:
Повторите первую команду и запустите виртуальную машину:
Проверим количество процессоров в настройках ВМ: овленное количество процессоров:
Аналогичным образом добавим память виртуальной машине:
Все по той же причине, сразу же вышла ошибка:
Увеличим максимальное значение памяти::
Теперь можно увеличить память ВМ.
Перед всеми изменениями не забывайте останавливать ВМ, а после запускать ее.
Также вы можете изменить ресурсы ВМ KVM через ее конфигурационный XML файл. Можно изменить файл в режиме онлайн или же сделав бэкап XML файла ВМ, изменить его и применить к виртуальной машине.
Отредактируем XML файл ВМ в онлайн режиме:
В открывшемся редакторе vi внесите изменения, нажав кнопку “Insert”.
Например, зададим для ВМ 2 ядра и 1Гб памяти:
Сохраните изменения в файле и перезапустите ВМ:
Проверьте настройки ВМ:
Тоже самое можно сделать, сделав бэкап XML файла:
Измените нужные вам параметры, сохраните файл и примените к виртуальной машине:
Иногда при изменении конфигурационного файла ВМ в онлайн режиме назначенные ресурсы сбрасываются после перезагрузки. В этом случае выполните остановку виртуальной машины и после этого просто запустите ее.
Читайте также: