Настройка kvm на ubuntu server
Содержание:
Использование KVM в Ubuntu 16.04
Вы справились с задачей установить kvm в Ubuntu, но вы еще не можете использовать эту среду виртуализации но ее нужно еще настроить. Далее, мы рассмотрим как выполняется настройка kvm Ubuntu. Сначала необходимо настроить сеть. Нам необходимо создать мост, с помощью которого виртуальная машина будет подключаться к сети компьютера.
Настройка моста в NetworkManager
Это можно сделать несколькими способами, например, можно использовать программу конфигурации сети NetworkManager.
Кликните по значку NetworkManager на панели, затем выберите изменить соединения, затем нажмите кнопку Добавить:
Затем выберите тип соединения Мост и нажмите Создать:
В открывшемся окне нажмите кнопку Добавить, чтобы связать наш мост с подключением к интернету:
Из списка выберите Ethernet и нажмите Создать:
В следующем окне выберите в поле устройство, сетевой интерфейс, с которым следует связать наш мост:
Затем нажмите сохранить, еще раз сохранить в предыдущем окне и закрыть, чтобы выйти из интерфейса настройки.
Теперь в списке сетевых подключений вы будете видеть ваш мост. Осталось перезагрузить сеть, чтобы полностью применить изменения, для этого выполните:
Ручная настройка моста
Сначала нужно установить набор утилит bridge-utils если вы еще этого не сделали:
Затем, с помощью программы brctl мы можем создать нужный нам мост. Для этого используйте такие команды:
Первая команда добавляет устройство моста br0, с помощью второй вам нужно определить какой сетевой интерфейс является основным подключением к внешней сети, в моем случае это eth0. И с помощью последней команды мы связываем мост br0 с eth0.
Теперь необходимо добавить несколько строк в настройки сети чтобы все поднималось автоматически после старта системы. Для этого откройте файл /etc/network/interfaces и добавьте туда такие строки:
Когда настройки будут добавлены перезагрузите сеть:
Теперь установка и настройка KVM полностью завершена и вы можете создать свою первую виртуальную машину. После этого вы можете посмотреть доступные мосты с помощью команды:
Создание виртуальных машин KVM
Настройка KVM Ubuntu завершена и теперь мы можем перейти к ее использованию. Сначала давайте просмотрим список уже существующих виртуальных машин:
Он пуст. Создать виртуальную машину можно через терминал или в графическом интерфейсе. Для создания через терминал используйте команду virt-install. Сначала перейдем в папку libvirt:
Для установки CentOS команда будет выглядеть вот так:
Разберем подробнее что означают параметры этой команды:
- virt-type — тип виртуализации, в нашем случае kvm;
- name — имя новой машины;
- ram — количество памяти в мегабайтах;
- vcpus — количество ядер процессора;
- os-variant — тип операционной системы;
- cdrom — установочный образ системы;
- network-bridge — сетевой мост, который мы настроили ранее;
- graphics — способ получения доступа к графическому интерфейсу;
- diskpath — адрес нового жесткого диска для этой виртуальной машины;
После завершения установки виртуальной машины вы можете узнать параметры подключения по VNC с помощью команды:
Теперь вы можете ввести полученные данные в вашем клиенте VNC и подключится к виртуальной машине даже удаленно. Для Debian команда будет немного отличаться, но все выглядит похожим образом:
Переходим в папку для образов:
Можно скачать установочный образ из интернета если это необходимо:
Затем создадим виртуальную машину:
Теперь снова посмотрим список доступных машин:
Для запуска виртуальной машины можно использовать команду:
Для остановки:
Для перевода в режим сна:
Для перезагрузки:
Сброс:
Для полного удаления виртуальной машины:
Создание виртуальных машин в GUI\
Если у вас есть доступ к графическому интерфейсу то нет никакой необходимости использовать терминал, вы можете применить полноценный графический интерфейс менеджера виртуальных машин Virtual Manager. Программу можно запустить из главного меню:
Для создания новой машины кликните по иконке со значком монитора. Дальше вам будет необходимо выбрать образ ISO вашей системы. Также можно использовать реальный CD/DVD привод:
На следующем экране выберите количество памяти, которая будет доступна для виртуальной машины, а также количество ядер процессора:
На этом экране вам нужно выбрать размер жесткого диска, который будет доступен в вашей машине:
На последнем шаге мастера вам предстоит проверить правильность настроек машины, а также ввести ее имя. Также нужно указать сетевой мост, через который машина будет подключаться к сети:
После этого машина будет готова к использованию и появится в списке. Вы можете запустить ее с помощью зеленого треугольника на панели инструментов менеджера.
Публичный мост[править]
Предупреждение: Данный метод может не работать с большинством беспроводных устройств.
Варианты использования:
- Вы хотите назначать IP-адреса виртуальным машинам и сделать их доступными из локальной сети;
- Вы хотите большой производительности от виртуальной машины.
Требования:
- Настроенная и запущенная виртуальная машина;
- Если вы не хотите запускать её из под root-а, то для вашего пользователя понадобятся права на чтение/запись в /dev/kvm;
- Вам понадобятся следующие программы. Если вы не хотите запускать их из под root-a, по вам понадобится настроить sudo для их запуска:
/sbin/ip /usr/sbin/brctl /usr/sbin/tunctl
Хост-система должна иметь доступ в интернет и в локальную сеть.
Вариант №1: Использование средств дистрибутива
Создать файл /etc/net/ifaces/breth0/options следующего содержания:
TYPE=bri BOOTPROTO=dhcp HOST=eth0 DISABLED=no NM_CONTROLLED=no
Применить новые настройки сети командой:
/etc/init.d/network restart
Интерфейс моста breth0 должен получить IP-адрес, а интерфейс eth0 должен быть без адреса.
Особенности VLANов
Если вы используете VLANы но до виртуальной машины трафик не доходит, выполните команды:
# cd /proc/sys/net/bridge # ls bridge-nf-call-arptables bridge-nf-call-iptables bridge-nf-call-ip6tables bridge-nf-filter-vlan-tagged # for f in bridge-nf-*; do echo 0 > $f; done
Варинат №2: «Ручной»
Создать мост командой:
sudo /usr/sbin/brctl addbr br0
Добавить физический интерфейс в этот мост, например eth0:
sudo /usr/sbin/brctl addif br0 eth0
Создать скрипт qemu-ifup следующего содержания:
#!/bin/sh set -x switch=br0 if ;then /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1 /usr/bin/sudo /sbin/ip link set $1 up sleep 0.5s /usr/bin/sudo /usr/sbin/brctl addif $switch $1 exit 0 else echo "Error: no interface specified" exit 1 fi
Сгенерировать MAC-адрес вручную или автоматически, используя скрипт:
#!/bin/bash # generate a random mac address for the qemu nic printf 'DE:AD:BE:EF:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256))
Запустить каждую виртуальную машину, заменяя $macaddress значением, полученным на предыдущем шаге:
qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap
Замечания:
- Если вы не хотите запускать машину от root-а, то скрипт qemu-ifup должен корректно работать от вашего пользователя;
- Вы можете создать общесистемный скрипт, назвав его в /etc/qemu-ifup или же спользовать любое другое имя, указав его при запуске машины:
qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup
Каждая виртуальная машина подключенная к внутреннему виртуальному мосту должна иметь свой собственный MAC-адрес, отличный от адресов других машин.
Установка и запуск
Устанавливаем KVM и необходимые утилиты управления.
а) Ubuntu до версии 18.10
apt-get install qemu-kvm libvirt-bin virtinst libosinfo-bin
б) Ubuntu после 18.10:
apt-get install qemu-kvm libvirt-daemon-system libvirt-bin virtinst libosinfo-bin
* где qemu-kvm — гипервизор; libvirt-bin — библиотека управления гипервизором; virtinst — утилита управления виртуальными машинами; libosinfo-bin — утилита для просмотра списка вариантов операционных систем, которые могут быть в качестве гостевых.
Настроим автоматический запуск сервиса:
systemctl enable libvirtd
Запустим libvirtd:
systemctl start libvirtd
Использование
Для использования данного гипервизора существует множество реализаций. Некоторые представляют из себя целые специализированные библиотеки, другие имеют вид простых графических приложений.
Для наглядности рассматривается виртуализация KVM на базе библиотеку virt-manager.
Данная библиотека позволяет упростить вызов различных гипервизоров, предоставляя удобный интерфейс для автоматизации процесса виртуализации
Кроме того, библиотека имеет возможность работы с сетевой инфраструктурой, что иногда важно, при построении клиент-серверных рабочих мест
Схема 2. – Взаимодействие компонентов libvirt
QEMU позволяет создать фрейм для вызова гипервизора на клиентской системе. Данная программа настраивается аргументами вызова командной строки, является достаточно легкой и простой.
Существуют кроме того несколько графических оболочек, таких как Gnome-Boxes.
Первичная настройка IPMI консоли и знакомство с интерфейсом
Настройка IPMI начинается с настройки IP адреса интерфейса, который нужно указать в BIOS. Если сервер установлен в офисе, это может быть серый IP-адрес, если же ваше оборудование размещается в ДатаЦентре, то наверняка вы используете белый статический IP-адрес.
На серверах Supermicro в BIOS можно попасть, нажав кнопку “Del” при загрузке сервера, я не буду заострять на этом внимание и сразу перейду к интерфейсу самого BIOS
Как видите на скриншоте, я вошел в пункт меню IPMI и активировал возможность конфигурации Lan для интерфейса (Update IPMI Lan Configuration=Yes, Configuration Address Source = Static), указал IP-адрес, маску подсети и основной шлюз.
Применить настройки можно нажав кнопку F4, после чего произойдет перезагрузка сервера.
Если вы все сделали правильно, то введя в браузере, указанный для интерфейса IPMI IP, у вас откроется авторизация:
Теперь пройдем по основным моментам.
При покупке нового сервера, в IPMI уже создан пользователь ADMIN с паролем ADMIN, именно с этими данными мы и авторизуемся. Я всегда рекомендую создавать нового пользователя, а стандартного удалять или менять у него пароль, так оставлять такой логин и пароль, крайне небезопасно. Создать нового пользователя или поменять пароли/привилегии у текущих, можно в меню Configuration -> Users.
Рестарт интерфейса IPMI можно сделать из меню Maintenance -> Unit Reset.
Монтирование iso образа ОС для установки на сервер выполняется в меню Virtual Media -> CD-ROM Image.
У меня iso образы ОС хранятся на сервере Samba в той же подсети что и интерфейсы IPMI серверов. Я указываю адрес сервера Samba, путь к образу установочному ISO с ОС, после чего монтирую ISO образ и приступаю к установке операционной системы.
Удаленную графическую Java консоль сервера (KVM-over-IP) можно открыть через Remote Control -> Console Redirection.
Консоль в целом удобная, но после установки ОС, для работы с сервером я обычно использую ssh клиенты. Иногда есть моменты когда, это невозможно, например если у вас не работает или еще не настроена сеть на сервере или же имеются какие-то проблемы с доступом. Именно тогда на помощь и приходит Remote Console.
Никаких отдельных настроек в самой консоли делать не нужно, хочу лишь добавить, что она имеет встроенную клавиатуру, которую можно вызывать из меню Virtual Media -> Virtual Keyboard.
Совет. После продолжительной работы с серверами SUpermicro, я обнаружил один неприятный баг. После установки операционной системы Centos 7 и установки KVM на нее, пропадает возможность использовать Remote Console. Пока сервер в процессе загрузки, консоль отвечает и можно пройти в Bios или увидеть загрузку ядра ОС. Но как только операционная система загрузилась, видео в консоли пропадает. Путем экспериментов мне удалось победить этот баг. Нужно в загрузки ядра добавить параметр загрузки nomodeset. Для этого после установки ОС нужно выполнить команду:
После этого, Remote Console работает исправно.
Мониторинг железа на сервере SuperMicro через IPMI и утилиту IPMICFG
Мониторинг сервера SuperMicro через IPMI
Через IPMI мониторить температуру и работу железа сервера SuperMicro довольно просто. Полная информация о железе сервера содержится в пункте System -> Hardware Information.
Информацию по состоянию процессора, оперативной памяти и вентиляторах, можно посмотреть перейдя во вкладку Server Health -> Sensor Readings.
Для удобства просмотра, можно менять категории отображения датчиков, например, температуры:
Или датчики напряжения:
Так как в данный момент на нашем сервере нет проблем, ни с температурой, ни с напряжением, все датчики находятся в зеленой зоне. Если на сервере поднимается температура или есть проблемы с напряжением, зеленые прямоугольники будут окрашиваться в красный цвет, что послужит сигналом для проверки вашего сервера.
Мониторинг с помощью утилиты ipmicfg
Проверка состояния блоков питания:
Item | Value ---- | ----- Status | (00h) Input Voltage | 217.5 V Input Current | 1.06 A Main Output Voltage | 12.28 V Main Output Current | 17.93 A Temperature 1 | 23C/73F Temperature 2 | 21C/70F Fan 1 | 2064 RPM Fan 2 | 2032 RPM Main Output Power | 220 W Input Power | 228 W PMBus Revision | 0x22 PWS Serial Number | P2K4FCH02LT0125 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error Item | Value ---- | ----- Status | (00h) Input Voltage | 217.5 V Input Current | 1.09 A Main Output Voltage | 12.30 V Main Output Current | 18.09 A Temperature 1 | 24C/75F Temperature 2 | 22C/72F Fan 1 | 2064 RPM Fan 2 | 2064 RPM Main Output Power | 223 W Input Power | 234 W PMBus Revision | 0x22 PWS Serial Number | P2K4FCH02LT0126 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error
Посмотреть температуру процессора можно командой:
Так же можно проверить в каком режиме работают вентиляторы и изменить режим, если это необходимо.
Проверка состояния и конфигурации вентилятора
Current Fan Speed Mode is Supported Fan modes: 0:Standard 1:Full 3:PUE2 Optimal 4:Heavy IO
Изменение режима работы кулера: Например,
Информация о версии и прошивке IPMI:
Device ID = 50h Firmware Version = 4.1.4.54 IPMI Version = 2.000000 Manufacturer ID = 57 01 00 Product ID Minor Ver = Greenlow platform Implemented DCMI version = DCMI not implemented/enabled Firmware implemented version = NM Revision 4.0 Image Flag = operational image 1 raw = 50 01 04 14 02 21 57 01 00 09 0b 04 05 40 01
И посмотреть все сенсоры можно командой
При выводе мы видим, что есть дополнительные столбцы, в которых отображена информация о лимитах нижнего и верхнего пределов.
Так же существует еще не малое количество утилит, которые можно использовать для мониторинга и автоматизировать этот процесс, например, с nagios
В данный момент заострять на этом внимание мы не будем, так как цель статьи рассказать основные моменты в работе с IPMI. Если вас заинтересует тема мониторинга, вы можете оставить свои пожелания и возможно в дальнейшем мы осветим и эту тему
Надеюсь, данная статья окажется для вас полезной!