Настроим лучшую свободную систему виртуализации Proxmox VE на Raid1 в операционной системе Debian 8. В качестве гипервизора система использует KVM и LXC, что позволяет виртуализировать все популярные операционные системы. Браузерная панель управления.
Содержание:
- 1 Вступление
- 2 Проверка аппаратной поддержки виртуализации
- 3 Исходные параметры системы
- 4 Установка Debian 8 на mdadm raid1
- 5 Настройка Debian 8
- 5.1 Установка текстового редактора mc
- 5.2 Разрешение подключения под root в ssh
- 5.3 Полное обновление системы с перезагрузкой
- 5.4 Настройка статического IP адреса
- 5.5 Проверка работы интернета
- 5.6 Установка загрузчика GRUB на оба жестких диска
- 5.7 Информация о разделах дисков в системе
- 5.8 Проверка работы массивов RAID1
- 5.9 Создание раздела SWAP
- 6 Установка Proxmox
- 7 Панель управления Proxmox
Вступление
Вышла новая 5 версия Proxmox и о ней я написал новую статью PROXMOX 5 установка и настройка. Принцип моего использования системой не поменялся. В новой статье вы узнаете некоторые нюансы c которыми я столкнулся при переходе на новую версию.
Первое что я стал изучать в Linux это была система виртуализации. По множественным рекомендациям администраторы Linux не советуют использовать все виды серверных служб на одной системе в виду сложности обслуживания и крайней нестабильности. В случае аппаратного выхода из строя компьютера придется устанавливать всё практически с нуля. Пользуясь системой виртуализации все можно восстановить очень быстро.
Основными моими требованиями было:
- Простота установки,
- Удобное управление,
- Установка разных систем OC (Linux, Windows и тд.),
- Удобная система архивирования,
- Информирование на почту об ошибках системы,
- Подключение ИБП с отключение системы при пропадании 220 вольт,
- Проброс портов USB в виртуальную систему.
Все виды не свободных систем управления виртуализацией или всё что связанно с Microsoft я отбросил в сторону и искал только свободный вариант. Единственная система которая устроила меня по всем параметрам это была система Proxmox.
Система Proxmox не поддерживает установку из коробки на mdadm для использования программного raid1, хотя есть система zfs. Может эта файловая система и хороша но мне она пока не нужна.
Система Proxmox базируется на OC Debian. У разработчика есть инструкция по установке системы, которую мы возьмем за основу.
Проверка аппаратной поддержки виртуализации
Проверка поддержки виртуализации в процессоре выполняется командой:
egrep '(vmx|svm)' /proc/cpuinfo =вывод команды= flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm
Если в выводе присутствует параметр svm (Secure Virtual Machines) — значит процессор с поддержкой аппаратной виртуализации от AMD, если vmx (Virtual Machine eXtension) — значит процессор Intel.
Если вывод пустой, то смотрите в bios на предмет включения виртуализации, в противном случае использовать Proxmox не получится.
Исходные параметры системы
- proxmox — название машины
- sevo44.loc — полное имя домена
- 192.168.0.150 — ip системы с Proxmox
- 192.168.0.106 — шлюз сети
- 255.255.255.0 — маска сети
- 2 жестких диска по 107,4 GB.
Установка Debian 8 на mdadm raid1
Скачиваем последнюю версию системы Debian можно на официальном сайте.
Установка до начала работы с дисками
Создание RAID1
Общая схема создания raid1 массивов состоит из нескольких шагов:
- Создаем одинаковые разделы на дисках с типом «физический том для RAID»,
- Объединяем два одинаковых раздела в необходимый раздел RAID1,
- Форматируем наш RAID1 под нужный нам формат файловой системы.
Скрины сделаны на создание разделов только на одном из дисков на другом делаем по аналогии. Всё пространство диска не использовалось специально. Мы установим саму систему и позже решим как и где мы хотим хранить наши образы системы, бэкапы и другие данные. Раздел swap был специально не создан. Пропустите этот пункт. Мы создадим его позже.
В итоге у нас получилось:
- Загрузочный раздел /boot с меткой «загрузочный» и размером 500 MB форматом ext2,
- Корневой раздел / размером 50 GB форматом ext4.
Не указывайте раздел boot меньше 500 MB если не хотите проблем при первом обновлении системы Proxmox.
Завершение установки Debian 8
Настройка Debian 8
Установка текстового редактора mc
Установку выполним командой:
apt-get -y install mc
Настроим редактор mc по умолчанию командой:
select-editor =вывод команды= Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/mcedit 3. /usr/bin/vim.tiny Choose 1-3 [1]: 2
Разрешение подключения под root в ssh
По умолчанию подключиться под root через ssh не получиться. Подключаться под обычным пользователем и потом переходить на права root мне не удобно и не вижу в этом смысла. Поправим конфигурационный файл введя команду:
mcedit /etc/ssh/sshd_config =необходимые изменения= # Сделаем разрешение подключаться под root PermitRootLogin yes
Полное обновление системы с перезагрузкой
Выполним команду:
apt-get -y update && apt-get -y upgrade && reboot
Мы без вопросов системы:
- Произведёт обновление индекса пакетов до последних изменениях в репозитории,
- Выполним обновление всех пакетов системы,
- Перезагрузимся.
Настройка статического IP адреса
Последнее что нам надо чтобы сразу подключаться к системе по ssh это назначит системе статический ip адрес.
Определим ip адрес системы введя команду:
ip addr
=вывод команды=
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group
default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP
group default qlen 1000
link/ether 08:00:27:52:85:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.168/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe52:8509/64 scope link
valid_lft forever preferred_lft forever
Мы видим что наш адрес inet 192.168.0.168/24 brd 192.168.0.255 scope global eth0
Подключится к система через ssh введя команду в консоли другого компьютера:
ssh root@192.168.0.168 =вывод команды= root@192.168.0.168's password: Last login: Wed Dec 28 00:40:34 2016 from 192.168.0.3 root@proxmox:~#
При установке мы использовали получение ip адреса по DHCP сменим его на статический.
Отредактируем файл interfaces, который отвечает за сетевые настройки в Debian. Для того, чтобы назначить постоянный статический ip адрес, его нужно привести к следующему виду:
mcedit /etc/network/interfaces =вывод команды с необходимыми изменениями= # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 # Запускать автоматически при загрузке системы auto eth0 # Интерфейс eth0 в диапазоне IPv4 со статическим адресом iface eth0 inet static # IP адрес address 192.168.0.150 # Шлюз по умолчанию gateway 192.168.0.106 # Маска сети netmask 255.255.255.0
Сохраним и перезагрузимся командой:
reboot
Проверим после перезагрузки ip адрес:
ip addr
=часть вывода команды=
inet 192.168.0.150/24 brd 192.168.0.255 scope global eth0
Проверка работы интернета
Проверим интернет отправив 4 пакета на ya.ru.
ping -c 4 ya.ru =вывод команды= PING ya.ru (93.158.134.3) 56(84) bytes of data. 64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=1 ttl=51 time=14.7 ms 64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=2 ttl=51 time=13.8 ms 64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=3 ttl=51 time=15.1 ms 64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=4 ttl=51 time=14.2 ms --- ya.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3010ms rtt min/avg/max/mdev = 13.842/14.471/15.142/0.514 ms
Всё прошло без потерь.
Установка загрузчика GRUB на оба жестких диска
Без этого мы не сможем загрузится со второго диска в случае отказа первого по причине отсутствия загрузочного раздела.
Установим grub на оба жестких диска. Для этого выполняем команду:
dpkg-reconfigure grub-pc =вывод команды= Installing for i386-pc platform. Установка завершена. Ошибок нет. Installing for i386-pc platform. Установка завершена. Ошибок нет. Generating grub configuration file ... Найден образ linux: /boot/vmlinuz-3.16.0-4-amd64 Найден образ initrd: /boot/initrd.img-3.16.0-4-amd64 завершено
На все вопросы даём дефолтные значения, в конце выбираете оба жестких диска для установки загрузчика.
Информация о разделах дисков в системе
df -h =вывод команды= Файловая система Размер Использовано Дост Использовано% Смонтировано в /dev/md1 46G 965M 43G 3% / udev 10M 0 10M 0% /dev tmpfs 201M 4,4M 196M 3% /run tmpfs 501M 0 501M 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 501M 0 501M 0% /sys/fs/cgroup /dev/md0 461M 33M 405M 8% /boot
Всё хорошо.
Проверка работы массивов RAID1
cat /proc/mdstat =вывод команды= Personalities : [raid1] md1 : active raid1 sda2[0] sdb2[1] 48795648 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 487104 blocks super 1.2 [2/2] [UU] unused devices:
Параметр “UU” говорит о том что всё в порядке.
Уже сейчас можно отключить один диск и система спокойно загрузится с другого. При подключении отключенного ранее диска raid не заработает так как для этого нужно произвести определенные манипуляции. Далее мы в статье настроим почту и в случае ошибки raid1 нам придет сообщение на необходимый e-mail.
В другой статье Вы можете узнать Как работать с raid 1 после отказа.
Создание раздела SWAP
При установке Debian мы отказались от создания swap раздела, так как по многим рекомендациям не советуют создавать raid 1 для раздела swap.
Наличие раздела swap важно и необходимо.
Проверим наличие swap раздела:
swapon -as
Если пусто, значит его нет.
Создадим файл для будущего swap раздела:
dd if=/dev/zero of=/swap bs=1024 count=4000000 =вывод команды= 4000000+0 записей получено 4000000+0 записей отправлено скопировано 4096000000 байт (4,1 GB), 26,9641 c, 152 MB/c
Размер файла 4 GB, равен объему памяти на сервере. Выбирайте размер на свое усмотрение.
Форматируем файл в формат свопа:
mkswap /swap =вывод команды= Setting up swapspace version 1, size = 3999996 KiB no label, UUID=7db57287-a7c3-4973-9f89-0be098a493ac
Подключаем файл к системе:
swapon /swap =вывод команды= swapon: /swap: insecure permissions 0644, 0600 suggested.
Проверяем результат работы:
swapon -as =вывод команды= Filename Type Size Used Priority /swap file 3999996 0 -1
Сделаем чтобы swap раздел монтировался при загрузке. Для этого добавляем в fstab строку:
mcedit /etc/fstab =необходимые дополнения= # Подключим swap при загрузке /swap swap swap defaults 0 0
В конце файла делаем переход на новую строку.
Сохраняем файл и перезагружаемся.
reboot
Проверяем:
swapon -as =вывод команды= Filename Type Size Used Priority /swap file 3999996 0 -1
Все необходимые настройки произвели переходим к непосредственной установке Proxmox.
Установка Proxmox
За основу мы взяли инструкцию от разработчика исходя из неё и будем устанавливать.
Правка /etc/hosts
В нашем случае файл /etc/hosts выглядит так:
cat /etc/hosts =вывод команды= 127.0.0.1 localhost 127.0.1.1 proxmox.sevo44.loc proxmox # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Приведем его к виду:
mcedit /etc/hosts =вывод команды c необходимыми изменениями= 127.0.0.1 localhost.localdomain localhost 192.168.0.150 proxmox.sevo44.loc proxmox pvelocalhost # The following lines are desirable for IPv6 capable hosts #::1 localhost ip6-localhost ip6-loopback #ff02::1 ip6-allnodes #ff02::2 ip6-allrouters
Добавление репозитория Proxmox
Добавим Proxmox репозиторий выполнив команду:
echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
Добавляем цифровую подпись Proxmox репозитория:
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
Обновим репозитории и систему выполнив команду:
apt-get update && apt-get dist-upgrade
Перезагрузим систему:
reboot
Установка необходимых пакетов Proxmox
Установка производиться командой:
apt-get install proxmox-ve ssh postfix ksm-control-daemon open-iscsi systemd-sysv
В процессе установке необходимо будет настроить Postfix.
Выберем параметры:
- Интернет-сайт,
- proxmox.sevo44.loc — укажем полное название машины.
Если нам в последствии надо будет изменить настройки Postfix то выполнить это можно командой:
dpkg-reconfigure postfix
Перезагружаем систему, новое ядро Proxmox VE будет автоматически выбрано в меню загрузчика GRUB.
reboot
Отправка почты на внешний e-mail адрес
Отправим тестовое письмо на внешнюю почту в котором отправим данные файла /etc/fstab:
cat /etc/fstab | mail -s "Test title" info@sevo44.ru
Видим что письмо пришло.
Настроим чтобы эти письма отправленные root пересылались на нужную нам внешнюю e-mail почту.
Открываем файл /etc/aliases для правки выполнив команду:
mcedit /etc/aliases =необходимые изменения= # Правим вписывая свой адрес root: local,info@sevo44.ru
В данном виде почта будет приходить как в локальный файл так и на почту. Можете выбрать что то одно.
Применим изменения выполнив команду:
newaliases
Можно еще раз отправить тестовое письмо и убедиться что оно пришло.
Обязательно проверьте спам почты. Если в спаме нет то смотрите логи отправки почты. Всегда использую почтовый сервис yandex.ru и проблем с ними нет.
Удаление пакета ОС-Prober
apt-get remove os-prober
Удаление Debian kernel
apt-get remove linux-image-amd64 linux-image-3.16.0-4-amd64 linux-base
Проверим конфигурацию Grub командой:
update-grub
Ускоряем работу дисков ext4
Для проверки работы дисковой подсистем в Proxmox есть утилита pveperf которую мы будем использовать.
Посмотрим все смонтированые разделы в системе:
df -h = вывод команды = Файловая система Размер Использовано Дост Использовано% Cмонтировано в udev 10M 0 10M 0% /dev tmpfs 1,6G 14M 1,6G 1% /run /dev/md1 230G 57G 162G 26% / tmpfs 3,9G 34M 3,9G 1% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup /dev/sde1 917G 651G 220G 75% /var/lib/vz/backup /dev/md0 91M 47M 40M 54% /boot /dev/md2 913G 758G 110G 88% /var/lib/vz/images /dev/md3 921G 861G 14G 99% /mnt/md3 /dev/fuse 30M 20K 30M 1% /etc/pve tmpfs 798M 4,0K 798M 1% /run/user/115 tmpfs 798M 0 798M 0% /run/user/0
Посмотрим информацию о необходимом разделе:
pveperf /var/lib/vz/images = вывод команды = CPU BOGOMIPS: 25535.20 REGEX/SECOND: 578497 HD SIZE: 912.93 GB (/dev/md2) BUFFERED READS: 145.76 MB/sec AVERAGE SEEK TIME: 22.12 ms FSYNCS/SECOND: 65.94 DNS EXT: 60.41 ms DNS INT: 2.62 ms (sevo44.loc)
Из вывода видно, что параметр FSYNCS маловат и надо его улучшить.
Откроем необходимый файл и сделаем изменения:
cat /etc/fstab
= вывод части команды с необходимыми изменениями =
/dev/md2 /var/lib/vz/images ext4 relatime,barrier=0 0 1
После перезагрузки системы Proxmox проверим результат:
pveperf /var/lib/vz/images
= вывод команды =
CPU BOGOMIPS: 25535.20
REGEX/SECOND: 578497
HD SIZE: 912.93 GB (/dev/md2)
BUFFERED READS: 145.76 MB/sec
AVERAGE SEEK TIME: 22.12 ms
FSYNCS/SECOND: 1328.94
DNS EXT: 60.41 ms
DNS INT: 2.62 ms (sevo44.loc)
Вот так поигравшись с настройками файловой системы ext4 мы значительно увеличили производительность дисковой системы. Варианты настройки могут быть разные и тут все зависит от ваших требований к данным на дисках.
Панель управления Proxmox
Теперь мы можем зайти по адресу https://192.168.0.150:8006 и увидеть после авторизации панель управления Proxmox.
Сообщение о том что не подключены платные репозитории можно конечно убрать, но после обновления системы оно появиться снова.
Давайте уважать разработчиков, раз они хотят чтобы мы видели это сообщение в свободной системе, то пусть так и будет.
Отдельное спасибо Владимиру владельцу ресурса https://serveradmin.ru/ который подарил мне старенький но рабочий сервер. Для меня его ресурс является базовый при изучении и практике работы с Linux.