Главная » Статьи » Администрирование » Виртуализация

Какая система виртуализации лучше?
День добрый.

Люди, имеющие опыт поднятия виртуалок, на различных системах, подскажите:
Какую систему виртуализации (из opensource) поставить на сервер, с учетом, что гостевые системы преимущественно будут заниматься роутингом?


У нас на фирме сейчас зоопарк серверов (обычные PC-шки), которые занимаются всем — от роутинга пакетов, до FTP-серверов. Всё это жрет электричество, требует охлаждения, и замены деталей по мере старения. 
Ввод в строй нового сервера например на замену старому требует покупки железа, установки и настройки. 
Потом нужно держать оба сервера включенными какое-то время, чтобы в случае если на новом какие-то проблемы (не донастроили, столкнулись с неожиданным глюком) быстренько переключить всё на старый.

Решение видится в затаскиванию всех этих железных монстров внутрь одной машины.

Т.к. большинство наших «серверов» по мощности остались далеко позади одного современного компа на базе Core 2 Duo или Core 2 Quad — то в расчетах мы исходили из того, что на компьютер на базе Core 2 Duo E6400 @ 3GHz / 4096 RAM удасться затащить хотя бы 4 реальных машины.

В качестве кандидатов к переносу выбраны были самые важные серверы: VPN (около 500 одновременных сессий), пару софтовых Linux-роутеров, radius-сервер, и пару серверов, отоброжающих админский web-интерфейс.

Дальше начался подбор систем виртуализации. Из кандидатов были:
-OpenVZ
-KVM
-Xen
-VMWare ESXi

В результате отбора получилось следущее:
-OpenVZ. Опыт работы с ним уже был. Он вообще фактически не разграничивает системы между собой, и работает чисто на уровне эмуляции вызовов ядра. Кроме того, он не позволяет поднимать новые сетевые интерфейсы внутри системы, а значит VPN сервер на нем уже не получится. Для web-хостинга еще пойдет. Для роутеров — нет

-VMWare ESXi не смогли запустить ни на одном из доступных нам компов. Установщик либо просто не запускался, либо система после установки банально не грузилась. 

-Xen — отпал потому, что в каждой гостевой машине должно быть то же ядро, что и на хост-машине. Кроме того. Собственно заставить его работать мне вообще не удалось. Может быть виной мои кривые ручки. Поэтому мы перешли к последнему кандидату…

-KVM — ему без разницы, какая гостевая машина запускается внутри хост-машины. Хоть с Виндой, хоть c OS/2. По сути полная изоляция машин друг от друга. Подкупило и то, что RedHat делает ставку именно на эту систему, и советует ее для Enterprise применений. Соответственно всем нашим требованиям оно соответствовало.

Поставили KVM. Быстро разобрались как ставить внутри системы, наладили сетку и маршрутизацию между виртуалками. 
Схема была такая. У хост-машины 2 сетевых карты, внутри они связаны в следующую систему:
eth0-хост-машины — виртуальный br0 — [eth0-гостевой-машины-1 — eth1-гостевой-машины-1] — виртуальный br1 — [eth0-гостевой-машины-2 — eth1-гостевой-машины-2] — виртуальный br2 — eth1-хост-машины

Стали тестить. В тестах такая схема вела себя замечательно. Нагрузки почти никакой. Работает стабильно.
Поставили в продакшн. И тут БАЦ! Нагрузка возросла в разы.

Выяснилось, что при потоке трафика через виртуалку около 15Мбит, она жрёт 40% процессора (согласно top) на хост машине. Соответственно уже 2 машины сжирают почти всю процессорную мощность на хост-машине. При этом внутри виртуалок загрузка 1-2%. 

Прочитали, что нормальные люди без virtio не живут. Это такие специальные драйвера, которые напрямую пробрасывают физическое железо в виртуалку, без эмуляции его. Собственно это уменьшает нагрузку на хост-машину.

Попробовали. И столкнулись с двумя непонятными вещами:
1) При включении virtio гостевая машина может просто упасть без объяснения причин через 3-8 часов работы
2) Нагрузка на хост-машине не уменьшилась, а осталась на прежнем уровне. 

На хост-машине система Gentoo, с ядром 2.6.30, собранным вручную. Всё, что нужно для виртуализации в нее уже вкомпилено.
На гостевых машинах пробовали Ubuntu и ArchLinux. Разницы нет. Падают все.

Пробовали обновлять ядро на хост-машине, обновлять KVM, обновлять гостевую машину… пока это ничего не дало. Все работает без virtio и порой оказывается перегружено
Сейчас продолжаю эксперименты с KVM на другой машине, но уже закралась мысль опробовать Xen… и вообще, может быть я что-то делаю неправильно?
Например чтобы работало virtio, нельзя объединять интерфейс виртуалки с реальной сетевушкой в софтовый бридж… А может все правильно делаю, и так и должно быть? Такая нагрузка, такие проблемы…

В общем нужна помощь компетентных людей. 

Источник http://habrahabr.ru

Категория: Виртуализация | Добавил: Tatiana (06/Май/13)
Просмотров: 1130 | Теги: виртуализация, виртуалка | Рейтинг: 0.0/0

Быстрый переход на популярные ИТ статьи:


31/Дек/11Как выбрать б.у. ноутбук
17/Янв/12Охлаждение ПК
06/Май/13VirtualBox 3.2: теперь можно запускать MacOS X в виртуальной машине. Под windows и linux
03/Май/13Обзор и тест памяти GeIL Evo Corsa GOC316GB2133C10AQC (4х 4 Гб)
05/Янв/12Разбираем жесткий диск
05/Фев/12Как сделать настенную лампу из старого компьютера
03/Май/13Обзор и тест планшета Point of View Onyx 507
19/Янв/12Как выбрать проектор
18/Янв/12Запрет доступа к сайтам средствами Windows XP
06/Май/13Архитектура Hyper-V

puls.az,puls-az.com – рейтинговая система Азербайджана Яндекс.Метрика