Установка и настройка гипервизора KVM на CentOS
В данной статье мы рассмотрим установку и базовую настройку гипервизора KVM на сервере под управлением Linux CentOS. Покажем, как создать виртуальную машину в KVM, изменить ее настройки, установить гостевую операционную систему и основные команды управления ВМ.
KVM (Kernel-based Virtual Machine) средство виртуализации в среде Linux, которое использует аппаратную виртуализацию на базе Intel VT или AMD SVM. С помощью KVM вы можете создавать изолированные виртуальные машины с собственным виртуальным аппаратным обеспечением: сетевыми картами, дисками, видеокартами и другими устройствами. На виртуальные машины можно уставить любую ОС (не только Linux).
Установка KVM в CentOS
При настройке KVM на сервере, нужно начать с проверки вашего процессора. Нужно узнать, поддерживает ли аппаратную виртуализацию CPU, установленный на вашем сервере. Из консоли сервера, выполните команду:
# cat /proc/cpuinfo | egrep «(vmx|svm)»
Если ваш процессор поддерживает технологию VT-x, у вас должен быть примерно такой вывод:
Если же команда ничего не выдала, но ваш процессор точно поддерживает виртуализацию, проверьте, вохможно данная опция отключена в BIOS сервера. Ищите параметры “Intel Virtualization Technology” или “SVM MODE”.
На моем сервере поддержка данной технологии включена, поэтому можно приступать к установке необходимых компонентов в CentOS через пакетный менеджер yum/dnf:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
- qemu-kvm – сам гипервизор KVM;
- libvirt – библиотеки управления вирилизацией;
- virt-install – команды для управления виртуальными машинами KVM.
На сервер будет установлено большое количество пакетов, следите, чтобы у вас не возникло ошибок в процессе установки.
Теперь нужно добавить сервис libvirtd в автозагрузку и запустить его:
# systemctl enable libvirtd
# systemctl start libvirtd
Проверьте, загрузились ли модули ядра kvm_intel и kvm:
[root@localhost /]# lsmod | grep kvmЕсли у вас ничего не выводится, перезагрузите сервер и проверьте повторно.
Настройка сети в KVM
Теперь создадим каталоги, в которых будут храниться диски виртуальных машин и iso образы:
Чтобы созданные виртуальные машины имели доступ в интернет, нам нужно настроить сеть через bridge. Для этого потребуется пакет bridge-utils, проверьте установлен ли он в Linux командой:
# rpm -qa | grep bridge-utils
Если нужно, установите его:
# yum install bridge-utils -y
После установки пакетов для KVM, в системе появился сетевой интерфейс virbr0:
Чтобы создать сетевой мост(bridge), нужно настроить файл конфигурации для сетевого интерфейса сервера:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak – делаем бэкап файла
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — открываем для редактирования
Удалите все содержимое и замените на следующее:
В вашем случае, имя интерфейса может отличаться (смотрите через команду ip a).
После чего создайте файл:
Где укажите свои данные: IP-адрес сервера и основной шлюз. После правки конфигурационных файлов сетевых интерфейсов нужно перезапустить есервис:
# service network restart
Чтобы проверить состояние bridge, используйте команду:
Последним шагом нужно настроить перенаправление сетевого трафика:
# echo -e «net.ipv4.ip_forward=1» >> /etc/sysctl.conf && sysctl -p
Теперь перезапустите сервис libvirtd:
# service libvirtd restart
На этом базовая настройка KVM закончена, можно создать виртуальную машину.
KVM: создание виртуальной машины
Перед созданием виртуальной машины, я скачал образ CentOS 8 с официального зеркала в директорию /vz/iso:
# cd /vz/iso && wget https://mirror.yandex.ru/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso
Чтобы создать новую виртуалную машину KVM, выполните:
virt-install -n test-centos \
—noautoconsole \
—network=bridge:br0 \
—ram 2048 —arch=x86_64 \
—vcpus=4 —cpu host —check-cpu \
—disk path=/vz/disk/test-centos.img,size=32 \
—cdrom /vz/iso/CentOS-8.1.1911-x86_64-dvd1.iso \
—graphics vnc,listen=IP,password=123456789 \
—os-type linux —os-variant=rhel7 —boot cdrom,hd,menu=on
- test-centos — имя ВМ;
- noautoconsole – после создания не нужно подключаться к консоли виртуальной машины автоматически;
- network – тип сети(в нашем случае bridge);
- ram — количество оперативной памяти в ВМ;
- vcpus – количество ядер процессора (настройка vCPU в KVM);
- disk – виртуальный диск, path – путь до диска. size – объем (в дальнейшем его можно расширить/уменьшить);
- сdrom – виртуальный cdrom, в который монтируется iso образ для установки гостевой ОС;
- graphics — параметры подключения к машине с помощью графической консоли. Мы подключаемся через VNC, поэтому в listen указывает IP сервера, где создали ВМ и пароль для подключения в консоли виртуальной машины (password).
Чтобы ВМ загружалась автоматически, выполните:
# virsh autostart test-centos
Подключение к ВМ на KVM через VNC, установка ОС
Чтобы подключиться к виртуальной машине через VNC, нам нужно узнать порт, на котором она работает:
[root@local vz]# virsh vncdisplay test-centos0 означает, что порт для подключения по VNC 5900, если у вас будет другой результат, просто прибавляйте к 5900 цифру, которую выдаст вам команда.
Для подключения по VNC к серверам, я использую утилиту TightVNC. Запустите ее и укажите IP-адрес сервера и VNC порт, который мы узнали ранее (через двойное двоеточие).
Нажмите “Connect”, в открывшемся окне укажите пароль, который задали при создании ВМ. Если все сделали верно, у вас откроется консоль сервера, на которой запущена установка CentOS (или другой ОС, образ которой вы смонтировали).
Если у вас на сервере установлен файервол, откройте сетевые порты для VNC 5900-5910 в firewalld/iptables, этого количества должно хватить. После установки гостевой ОС на виртуальную машину, запустите ВМ с консоли сервера:
Чтобы выключить виртуальную машину KVM, используйте команду:
# virsh shutdown test-centos
Чтобы вывести список всех зарегистрированных виртуальных машин KVM:
Если вы предпочитаете графической управление, можете испольховат графическую консоль KVM — virt-manager.
На этом базовая настройка сервера для KVM и создание виртуальной машины окончено. На KVM можно создать неограниченное количество виртуальных машин, все зависит от ресурсов вашего сервера и ваших потребностей.
Установка и настройка KVM на CentOS 6.7 x64
В этой записке описана установка и базовая настройка гипервизора KVM на CentOS 6.7 x64.
Цель установки: получить сервер виртуализации, на котором будут крутится две гостевые системы Windows и Linux.
С помощью виртуализации, один мощный физический сервер, может запускать виртуальные сервера (гостевые системы) разного рода назначения, например:
- Доменный контроллер
- Почтовый сервер
- Шлюз в интернет
- Файловый сервер для общих папок
- Программная АТС
- СЭД
- Система учета 1С
- и т. д.
Виртуализация имеет следующие преимущества:
- Экономия электроэнергии
- Легкое резервное копирование виртуальных машин
- Простое восстановление виртуальной машины из резервной копии
- Консолидация — управление всеми виртуальными серверами сидя только за одним физическим
- Высокая доступность и отказоустойчивость — если у вас есть в наличии 4 или 5 серверов
При настройке KVM для нормальной работы и более лучшей производительности требуется использовать:
- Планировщик «deadline» на хосте где запущен KVM и «noop» в гостевых ОС.
- LVM тома для хранения виртуальных машин
- Специальные драйвера «virtio» в гостевых системах для жесткого диска и сетевой платы
- Рейд массив или ISCSI устройство с быстрыми HDD или SSD с большим IOPS
- Демон ntp для точного времени
- ОС семейства Red Hat.
1. Установка CentOS 6.7 x64 и создание программного рейд массива
1.2. Выбор режима установки
1.3. Проверка установочного диска на чтение
1.4. Первое окно установки
1.5. Выбор языка интерфейса установщика
1.6. Выбор раскладки клавиатуры
1.7. Выбор типа дискового устройства
1.8. Задание имени хоста
1.9. Выбор часового пояса
1.10. Задание пароля учетной записи Супер Администратора — root
1.11. Выбор предпочитаемого типа установки
1.12. Окно для создания разделов на дисках
1.13. Создание разделов на системном жестком диске 80 Гбайт
1.14. Создание программного рейд массива из двух дисков 250Гб
1.15. Выбор жесткого диска и установка CentOS
2. Настройка сетевого адаптера сервера
2.1. Отключение selinux и iptables
3. Установка KVM
3.1. Подготовка хранилище для виртуальных машин
3.3. Настройка сетевого моста
3.4. Создание гостевых виртуальных машин
3.5. Доступ к созданным виртуальным машинам через VNC
3.6. Графическое управление машинами через Virtual Machine Manager
3.7. Резервное копирование образов виртуальных машин
3.8. Восстановление виртуальной машины из резервной копии
Все начинается с банальной установки операционной системы, это можно было пропустить, но так как при установке ОС делается программный массив, я не стал обделять вниманием этот важный этап. Важно, чтобы виртуальные гостевые машины работали в рейд массиве. Это ускоряет работу из за быстрого считывания данных с одновременно двух работающих жестких дисков, а также позволяет защитить данные в случае поломки одного из дисков в массиве.
Конфигурация сервера на который будет установлена ОС:
CPU Phenom II X4 955\RAM 4Gb\HDD1 80Gb\HDD2 250Gb\HDD3 250Gb
Как видим, у нас процессор поддерживает аппаратную виртуализацию. Конечно памяти мало, желательно чтобы ее было примерно 32Гб или 16Гб, а может даже больше. Ну и конечно лучше ставить ОЗУ с ECC, это может избавить Вас от не понятных глюков. По процессору, желательно чтобы был «камень» многоядерный (4 и более) и высокочастотный. Например наша 1С все еще использует одно ядро, и на ее работу влияет частота процессора, поэтому CPU должен быть с частотой 3 гГц и выше.
По дисковой подсистеме, если у вас маленькая компания, сойдут обычные жесткие диски большого объема 2 или 4 Тб, можно купить так называемые серверные версии (Western Digital WD RE, Hitachi Ultrastar или Seagate Constellation ES). Хотя в моем сервере работают обычные Samsung с оборотами 7200/мин. На резвость работы влияет ключевой параметр жестких и твердотельных дисков под названием IOPS, то есть количество операций ввода/вывода в секунду которые дисковое устройство может обработать.
Лучше конечно же использовать iSCSI устройство под хранилище виртуальных машин, которое связывают с сервером гипервизором посредством 10 Гбитного сетевого соединения, разумеется это все стоит не малых денег, поэтому данный вариант не рассматривается в записке. Хотя возможно в будущем будет новая записка описывающая систему виртуализации с использованием 4-х или 5-и серверов. Такое решение предлагает отказоустойчивость вкупе с высокой доступностью, такой вариант подойдет для крупной компании, чего не скажешь о текущем standalone (автономном) KVM сервере о котором идет речь в записке. По этой записке был поднят один реальный сервер, который по сей день трудится в компании с численностью сотрудников 10 человек. Иногда у меня появляется страшная мысль на счет этого сервера: А вдруг сервер сгорит?
Чтобы не приходило такое счастье в ваш мозг: не жалейте денег, делайте все по уму, раз решили внедрить виртуализацию у себя в компании. Хотя бы посмотрите на систему виртуализации oVirt или Proxmox, и начните правильно организовывать виртуальные машины.
Поэтому, чтобы ваши нервы были целы и не было лишних опасений, лучше настроить отказоустойчивость этого самого элемента (сервера). Для организации такой системы, вам потребуется как минимум 4 сервера или лучше даже 5 (можно больше). Рассмотрим пример с 4 серверами, кратко напишу про схему работы системы виртуализации в таком случае:
- Выделим два сервера под хранилище данных (СХД). На каждом таком сервере должны быть установлены по два жестких диска для рейд массива уровня 1 — зеркалирования. Далее через DRBD или GlusterFS надо связать эти два сервера СХД чтобы они реплицировали данные зеркального массива между собой. Для обеспечения высокой доступности на эти сервера необходимо установить HeartBeat, чтобы он автоматически выбирал master или slave СХД в случае не доступности одного или другого. На таких серверах нужно создать LVM тома под каждую виртуальную машину — гостя.
- Выделим два сервера под виртуализацию для гипервизоров KVM. Это уже получается 4 сервера, для настройки отказоустойчивости за место HeartBeat здесь можно применить Pacemaker, чтобы он автоматически активировал нужный сервер виртуализации KVM при недоступности одного из двух.
Чтобы не настраивать в ручную такие сервисы как DRBD, HeatBeat и Pacemaker, существует готовая система виртуализации по имени oVirt. Рекомендую ознакомиться с данной системой.
1. Установка CentOS 6.7 x64 и создание программного рейд массива
Прежде чем приступить установите на ваш сервер операционную систему CentOS 6 x32, образ ISO этой операционной системы вы можете найти на следующих ресурсах:
Запишите на DVD диск скачанный ISO образ и потом вставьте его в DVD привод вашего сервера. Запустите Ваш сервер, ниже я написал про установку CentOS.
1.2. Выбор режима установки
В этом окошке, выберите первый пункт- «Установка или обновление существующей системы»
1.3. Проверка установочного диска на чтение
Здесь установщик предлагает нам проверить читаемость DVD диска. Уверенно нажимаем кнопку «Skip»
1.4. Первое окно установки
Здесь жмем кнопку «Next» (Далее)
1.5. Выбор языка интерфейса установщика
Здесь нам предлагают выбрать язык установщика, по умолчанию стоит английский, оставим все как есть.
1.6. Выбор раскладки клавиатуры
Раскладка клавиатуры, выбираем U.S. English или Russian, кому как удобно.
1.7. Выбор типа дискового устройства
Здесь нам задают вопрос: на какой тип дискового устройства производится установка.
Мы устанавливаем систему на обычный SATA диск, поэтому выберем «Basic Storage Device», в противном случае выберите «Specialized Storage Device» если у вас SCSI контроллер или другое устройство.
Здесь нас предупреждают что жесткий диск в порту SATA 0 возможно содержит данные.
Так как у нас сервер новый, мы уверены что на диске 80Gb нету данных, поэтому щелкаем — Yes, discard any data
1.8. Задание имени хоста
Здесь мы задаем имя хоста (компьютера), нажмите «Next» чтобы продолжить.
1.9. Выбор часового пояса
Настройки часового пояса, выберите ваш часовой пояс и нажмите «Next»
1.10. Задание пароля учетной записи Супер Администратора — root
Пароль супер пользователя (Администратора), введите в этом окне Ваш пароль два раза и запомните его.
1.11. Выбор предпочитаемого типа установки
Здесь установщик предлагает создать разделы и с их последующим форматированием.
По умолчанию предлагается режим «Replace Existing Linux System (s)». То есть удалить текущие Linux разделы и установить.
Нас это не устраивает, поэтому выбираем — Create Custom Layout
1.12. Окно для создания разделов на дисках
В этом окошке можно создавать разделы, в нем мы создадим рейд массив.
У нас 3 жестких диска:
- На первом жестком диске с объемом 80 Гбайт (sda)- установим операционную систему, он у нас будет системным.
- Из двух пустых HDD 250Гб (sdb и sdc)- создадим программный рейд массив, куда и будут устанавливаться гостевые виртуальные машины.
1.13. Создание разделов на системном жестком диске 80 Гбайт
Жесткий диск 80 Гбайт (имя в системе — sda) разделим на разделы:
/ — корневой раздел, обычно под этот раздел выделяют 20 Гбайт, в нем хранятся системные файлы
/home — этот раздел содержит пользовательские данные, внутри него находятся папки “Desktop” (Рабочий стол), “Documents” (Документы) и т.д. Советую вам выделить 10 Гбайт дискового места под него, в случае если туда не копировать видео/аудио файлы.
/swap — этот раздел содержит в себе файл подкачки. При объеме ОЗУ 1 Гбайт, размер раздела должен быть 2 Гб. Если на сервере 2 Гб ОЗУ, то соответственно под раздел Swap можно отдать 4 Гбайт дискового места
/var — главный и важный раздел, в этот раздел пишутся логи, в нем находятся базы данных MySQL и закаченные RPM пакеты и т.д. Этот раздел активно используется установленными программами. Исходя из этого, выделяем под этот раздел все оставшееся место на диске.
Нажимаем кнопку — Create (Создать)
Выбираем — Standart Partition
Нажимаем кнопку — Create
- В Mount Point выбираем корневой раздел — /
- В File System Type ставим ext4
- Убираем галки в Allowable Drives с дисков sdb и sdc, как на картинке.
- В Size (MB) ставим 20000.
- В Additional Size Options — Fixed size
- Нажимаем ОК
Вот такими простыми движениями мы создали корневой раздел / с дисковым местом в 20 Гб. Посмотрите на картинке возле созданного раздела появилась «галка».
Давайте аналогичным образом создадим раздел /home
Нажимаем кнопку — Create
Нажимаем опять кнопку — Create
- В Mount Point выбираем домашний раздел — /home
- В File System Type ставим ext4
- Убираем галки в Allowable Drives с дисков sdb и sdc, как на картинке.
- В Size (MB) ставим 10000.
- В Additional Size Options — Fixed size
- Нажимаем ОК
Возле созданного раздела /home появилась «галка».
Раздел /swap практически также создается:
Нажимаем кнопку для создания раздела — Create
Нажимаем опять кнопку — Create
- Mount Point — не трогаем
- В File System Type ставим swap
- Убираем галки в Allowable Drives с дисков sdb и sdc, как на картинке.
- В Size (MB) ставим 2000.
- В Additional Size Options — Fixed size
- Нажимаем ОК
Раздел swap — создан! Возле него появилась «галка».
Теперь осталось создать раздел /var
Нажимаем :), кнопку Create
- В Mount Point выбираем раздел — /var
- В File System Type ставим ext4
- Убираем галки в Allowable Drives с дисков sdb и sdc, как на картинке.
- Size (MB) — не трогаем.
- В Additional Size Options — Fill to maximum allowable size (все доступное место).
- Нажимаем ОК
Тем самым мы создали раздел /var и дали ему все оставшееся место на диске 80Гб. А это примерно 51 232Мб (51 Гбайт).
Итоговое окно должно примерно быть таким:
Диск sda полностью готов для установки на него операционной системы CentOS.
Но, осталась создать программный рейд массив. Поэтому не выходите с окна создания разделов (не нажимайте кнопку Next).
1.14. Создание программного рейд массива из двух дисков 250Гб
Лучше конечно создавать LVM разделы (тома). Но, думаю пока сойдут классические разделы на файловой системе ext4.
В окне создания разделов нажимаем кнопку — Create
Выделите — RAID Partition
- Mount Point — не активный (не трогаем его)
- В File System Type стоит уже — software RAID (не трогаем)
- Ставим галку в Allowable Drives на диске sdb, как на картинке.
- Size (MB) — не трогаем.
- Обязательно в Additional Size Options ставим Fill to maximum allowable size (все доступное место).
- Нажимаем ОК
Получится вот такое окно.
Повторяем такие же действия для жесткого диска sdc:
В окне создания разделов нажимаем кнопку — Create
Выделите — RAID Partition
- Mount Point — не активный (не трогаем его)
- В File System Type стоит уже — software RAID (не трогаем)
- Ставим галку в Allowable Drives на диске sdc, как на картинке.
- Size (MB) — не трогаем.
- Обязательно в Additional Size Options ставим Fill to maximum allowable size (все доступное место).
- Нажимаем ОК
Два жестких диска с типом файловой системы — software RAID.
Для нормальной работы этого мало, требуется эти два диска объединить в массив.
Как обычно, нажимаем кнопку — Create
Выбираем — RAID Device.
- Mount Point — не трогаем (точку монтирования зададим потом сами).
- В File System Type — должно стоят ext4
- RAID Device — md0
- RAID Level — RAID1
- RAID Members — sdb1, sdc
- Нажимаем ОК
Итоговое окно с уже готовым рейд массивом:
1.15. Выбор жесткого диска и установка CentOS
Здесь выделяем диска sda как на картинке и нажимаем кнопку NEXT.
Нажимаем — Write changes to disk
Здесь настройки загрузчика ОС. Нам пишут что он будет установлен на диск sda, нам это и нужно.
Так как, именно sda диск у нас системный.
Здесь нам предлагают установить CentOS с минимальным набором программного обеспечения. Нас это устраивает.
Процесс установки CentOS.
В этом окне вас поздравляют и говорят что установка завершена.
Нажимаем Reboot для перезагрузки.
2. Настройка сетевого адаптера сервера
Вводим логин Супер Администратора — root, и его пароль который мы задавали во время установки CentOS.
Все, мы вошли по администратором в установленную систему.
Наш сервер имеет всего один сетевой адаптер, после установки CentOS, настройки этого адаптера хранятся в файле «/etc/sysconfig/network-scripts/ifcfg-eth0».
По умолчанию этот файл содержит следующие настройки
Следует дописать в этот файл дополнительные настройки, подправим содержимое этого файла, открываем его в текстовом редакторе vi:
Чтобы внести текст в файл, нажмите клавишу «INS» -это активирует режим редактирования, переведет вас с режима просмотра в режим редактирования. После чего вводите новые данные. Обычно после нажатия «INS», текст вставляется комбинацией «SHIFT»+»INS».
По окончанию ввода текста, нажмите кнопку «ESC» и потом нажмите одновременно кнопки «SHIFT+z+z» или введите «:w!» и потом нажмите «ENTER» — это делается для сохранения файла и выхода с редактора. Выход без сохранения файла «q!» и «ENTER».
Поиск файла в редакторе vi делается путем нажатия кнопки «/», далее вводится текст который нужно найти.
Здесь мы дописали IP адрес нашего сервера/компьютера, его подсеть и шлюз в Интернет.
Перезапустим сетевую службу:
# service network restart
2.1. Отключение selinux и iptables
В моем примере я не использую SELINUX и цепочку iptables — RH-INPUT. Поэтому желательно их отключить.
Также отключите встроенную цепочку Iptables под названием RH-INPUT:
Далее в окошке выбираем -> FireWall Configuration -> Firewall Enabled -> Убрать звездочку -> OK
Если не срабатывает команда «setup», установите следующие пакеты:
# yum install system-config-firewall-tui setuptool
3. Установка KVM
До установки KVM необходимо проверить поддержку аппаратной виртуализации процессора:
# egrep ‘(vmx|svm)’ /proc/cpuinfo
Если вы видите вывод любового текста, значит поддержка присутствует. Иногда бывает данную возможность процессора отключают в BIOS, поэтому желательно проверить включена ли данная функция.
# yum install kvm libvirt virt-install virt-viewer -y
# service libvirtd start
Проверка, должен выйти вывод (любой):
kvm 225824 2 ksm,kvm_amd
Если есть вывод, значить аппаратная виртуализация включена!
3.1. Подготовка хранилище для виртуальных машин
Обычно хранилищем выступает рейд массив из нескольких жестких дисков.
Так как у нас нет аппаратного рейд контроллера, сделан программный рейд массив уровня 1 (зеркалирования).
Во время установки операционной системы мы создали массив, но не подключили его. Давайте подключим и настроим хранение виртуальных машин на нем.
Проверяем состояние массива:
md127 : active (auto-read-only) raid1 sdc1[1] sdb1[0]
262102848 blocks super 1.1 [2/2] [UU]
bitmap: 1/2 pages [4KB], 65536KB chunk
Видим что в массиве два диска sdc1 и sdb1, все хорошо. Только вот имя массива md127, а не md0 как было при установке.
Чтобы устранить это, надо записать информацию о рейд дисках в конфигурационный файл утилиты mdadm, которая отвечает за рейд массив:
# mdadm —detail —scan —verbose > /etc/mdadm.conf
И проверяем софт рейд:
md0 : active raid1 sdc1[1] sdb1[0]
262102848 blocks super 1.1 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
Видим что массив переименовался в md0. Обратите внимание на две буквы в квадратных скобках [UU]. Если здесь всего одна буква U, но два диска, значит диски в массиве не синхронизируются между собой или в массиве всего один диск. Две буквы UU означают что массив полноценный.
# mount /dev/md0 /mnt/vm_images
# chmod 700 /mnt/vm_images
И посмотрим на свободное место:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 1.1G 18G 6% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda2 9.7G 150M 9.0G 2% /home
/dev/sda5 50G 318M 47G 1% /var
/dev/md0 247G 188M 234G 1% /mnt/vm_images
Видим что в массиве md0 234 Гб свободно.
Настроим автоматическое монтирование массива во время загрузки:
Открываем файл и в конец добавляем строчку:
/dev/md0 /mnt/vm_images ext4 defaults 1 2
Можно еще сделать более лучше, монтировать в rc.local, чтобы система не упала если произойдет какой нибудь глюк с HDD:
# chmod +x /etc/rc.d/rc.local
/bin/mount -t ext4 /dev/md0 /mnt/vm_images
Указываем где хранить виртуальные машины:
# virsh pool-define-as vm_images_dir dir — — — — «/mnt/vm_images»
# virsh pool-list —all
vm_images_dir inactive no
Видим что хранилище не готово (не активно). Активируем его командами:
# virsh pool-build vm_images_dir
# virsh pool-start vm_images_dir
И добавляем автозагрузку пула:
# virsh pool-autostart vm_images_dir
Pool vm_images_dir marked as autostarted
# virsh pool-list —all
vm_images_dir active yes
Стоит Active и Yes, так должно быть.
# virsh pool-info vm_images_dir
Capacity: 246.04 GiB
Allocation: 187.09 MiB
Если вдруг у вас появилось хранилище по умолчанию default, его можно удалить:
# virsh pool-destroy default
# virsh pool-undefine default
Pool default has been undefined
Настройка хранилище LVM
Если хотите использовать в качестве хранилище LVM группу, сохраните все образы машин и конфигурации и приступите к инструкции:
# virsh pool-destroy vm_images_dir
# virsh pool-undefine vm_images_dir
Pool vm_images_dir has been undefined
Создайте группу томом LVM на софтовом массиве:
> нажмите — n (создание нового раздела)
> нажмите — p (создание первичного раздела)
> нажмите — 1 (номер раздела)
> нажмите — Enter (First Cylinder)
> нажмите — Enter (Last Cylinder)
> нажмите — t (чтобы задать тип раздела)
> нажмите — 8e (чтобы указать LVM)
> нажмите — w (чтобы сохранить настройки)
Для проверки введите:
Disk /dev/md0: 268.4 GB, 268393316352 bytes
255 heads, 63 sectors/track, 32630 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00020349
Device Boot Start End Blocks Id System
/dev/md0p1 1 32630 262100443+ 8e Linux LVM
Создаем группу томов:
# vgcreate guest_images_lvm /dev/md0p1
No physical volume label read from /dev/md0p1
Physical volume /dev/md0p1 not found
Physical volume «/dev/md0p1» successfully created
Volume group «guest_images_lvm» successfully created
Далее следует добавить новое хранилище через virt-manager:
Переходим в Connection Details
Щелкаем пиктограмму плюсика, чтобы запустить мастера для добавления хранилище.
Ставим name — guest_images_lvm
Тип — Type: logical: LVM Volume Group
Здесь Source Path указываем — /dev/md0
И нажимаем кнопку Finish.
Все теперь можно указывать LVM разделы для гостевых систем:
3.2. Настройка сетевого моста
Чтобы гостевые виртуальные машины могли общаться по сети, нужно настроить сетевой адаптер в режиме моста.
У хоста гипервизора IP адрес 192.168.1.2/255.255.255.0