Решили с коллегой внедрить на предприятии "виртуализацию". Бешеных денег никто нам не даст, спасибо скажем за купленные сервера с процессорами, поддерживающие аппаратно битами виртуализации.
После прочтения информации решили остановиться на Proxmox VE, который основан на Debian + сопровождающие программы.
20.09.2013
Огребли проблему [drm:pch_irq_handler] *ERROR* PCH poison interrupt. Оказалось что Интел платформа болезненно реагирует на выдёргивание из VGA кабеля (переключение между серверами с помощью KVM тоже входит сюда). В современных линуксах идёт повальное увлечение framebuffer, хотя не понятно зачем он в серверах. Параметр nomodeset к ядру линукс выдаёт старую добрую консоль и проблема вроде как ушла.
19.03.2013
Впервые на ноде Proxmox VE нужно было настроить два сетевых интерфейса. Следовательно нужно было разрулить маршруты. Вроде всё просто. Все пакеты по умолчанию отправляем в Интернет и только пакеты с "нашими" адресами на наш маршрутизатор. Исторически использовалась команда route в /etc/network/interfaces.
Но с интерфейсами vmbr, цирковой номер не удался. Ну не работает указание route add ... dev vmbr0 как нужно. Оказывается, нужно использовать по возможности продвинутую команду ip.
Указал ip route add 10.0.0.0/16 via 10.0.10.1 и всё заработало как было запланировано.
auto vmbr0 iface vmbr0 inet static address 10.0.10.50 netmask 255.255.255.0 up ip route add 10.0.0.0/16 via 10.0.10.1 down ip route del 10.0.0.0/16 via 10.0.10.1 bridge_ports eth0 bridge_stp off bridge_fd 0 # auto vmbr1 iface vmbr1 inet static address 172.16.10.50 netmask 255.255.255.0 gateway 172.16.10.1 bridge_ports eth1 bridge_stp off bridge_fd 0 #
27.09.2012
По счастливой случайности в руки достался 8 ядерный QuadCore Intel Core i7-2600K на материнке Gigabyte GA-H67MA-USB3-B3 с 16 Гб ОЗУ. Красавец будет просто отличной нодой в кластере. Встроенная сетевая карта Realtek PCIe GBE Family Controller начала капризничать и не было доступа к сети. Оказалось мешала технология Wake-On-LAN. Отключили в BIOS и всё стало нормально!
11.07.2012
Имитировали отказ одной ноды и выход её из "строя". Хотели увидеть как при вводе новой ноды с новым железом виртуальные машины KVM корректно работают на новой ноде.
При мощной нагрузке во время restore нода выдала Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu и сдохла. Единственное, что вменяемо описывало проблему это ресурс Red Hat access.redhat.com/knowledge/solutions/133803, что печалит. Проблема, которая задевает Red Hat Enterprise Linux 6.2 и, судя по постам в Интернете, даже ядра linux 3.
Кратко суть проблемы в том, что если на процессорах Интел с поддержкой "PAUSE-loop exiting" количество виртуальных процессоров больше реальных, то возможна эта напасть. В нашем случае MS Windows 2008 c 2 процессорами в своей виртуальной машине заставляла паниковать ядро ноды с 1 реальным процессором.
10.07.2012
Нашли ещё одну машину для теста, столкнулись с проблемой при вводе в кластер новой ноды:
pvecm add IP_мастера_кластера
unable to copy ssh ID
unable to copy ssh ID намекает на ssh-copy-id ... чуток повращались в этой плоскости - результат ноль.
Гуглёж даже нашёл совет на каталонском языке про pvecm expected 1
, но он не помог. Были даже ответы про мультикастинг и совет заменить управляемые коммутаторы. Помогло ... обновление всех нод до единой актуальной версии. Ну кто ж знал!
начало обучения и тестирования.
Так как Proxmox VE использует ядро из ветки 2.6.32, то возникла проблема со встроенной сетевой картой Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083]
Оказалось сетевуху можно зашаманить простыми движениями. Нужно объяснить модулю ядра atl1c, что это его подопечный и он просто не знает по новым идентификаторам 1969:1083, что обслуживать железяку должен он.
Сначала лучше всё сделать ручками и только потом прописать в "автозагрузку". Так как Proxmox VE - это Debian, то sudo не используем и просто становимся root'ом через su или сразу логинемся рутом.
modprobe atl1c
echo "1969 1083" > /sys/bus/pci/drivers/atl1c/new_id
/etc/init.d/networking restart
У вас должен появится сетевой интерфейс eth0. Если вы на этапе установки указывали IP, маску, шлюз, то в сразу можно проверять доступность Proxmox VE в сети.
Теперь нужно наши команды поместить в "автозагрузку", чтобы при перезагрузке сервера всё делалось автоматом. Проще всего запихать строки
modprobe atl1c
sleep 5
echo "1969 1083" > /sys/bus/pci/drivers/atl1c/new_id
sleep 3
/etc/init.d/networking restart
в /etc/rc.local и перезагрузить сервер, чтобы убедиться в нормальной загрузке и работоспособности сетевой карты.
Связанные темы:
Оптимизация виртуальных серверов KVM. Часть 1.
Оптимизация гостевых операционных систем KVM. Часть 2.
Ускорение Убунту.
Монтирование VirtualBox образов vdi в Ubuntu.