В общем, железо уже приобретено. Возможно в след. раз я буду по умнее, набив шишки в этот. Перейдем к самой теме виртуализации, какой лучше посоветуете дистр для основной ОС?
Я бы посоветовал смотреть в сторону продуктов RedHat. То есть или CentOS или Fedora. На Fedora имеешь самое новье, но возможны и нюансы. А далее - поднимаешь или KVM, или, для простоты, VirtualBox. И там и там есть свои преимущества. Хотя и KVM не сильно сложнее VB.
К недостаткам KVM'а я отношу то, что он тащит по зависимостям то, что ему совершенно не нужно в работе. Например, glusterfs. Я его пользую, но значительно более новой версии (самостоятельно компилирую), чем лежит в репозиториях. Крайне неудобно. Мне.
К недостаткам VB - малопонятную логику работы сетевого интерфейса. Полное ощущение, что оно работает, максимум, на 100 мегабитах (при реальных гигабитных платах) и при этом эти мегабиты делятся пропорционально между всеми юзерами виртуальной машины.
Далее - по дискам. Настоятельно рекомендую ставить их в программный RAID-1, в зеркало. Диски предадут в самый неподходящий момент. Зеркало - наше всё. Я за 3 года заменил на 3-х серверах ВСЕ диски. По гарантии. Спасало только то, что они стояли в зеркалах, то есть сервера оставались в рабочем состоянии при вылете диска.
И еще - при запуске системы обязательно проверь настройки BIOS. Иногда по дефолту в нем может быть отключена опция аппаратной поддержки виртуализации. Без этой опции виртуальная машина работать будет. Но гораздо медленнее.
К недостаткам KVM'а я отношу то, что он тащит по зависимостям то, что ему совершенно не нужно в работе. Например, glusterfs. Я его пользую, но значительно более новой версии (самостоятельно компилирую), чем лежит в репозиториях. Крайне неудобно. Мне.
Думаю этот недостаток гораздо менее критичен, чем этот:
К недостаткам VB - малопонятную логику работы сетевого интерфейса. Полное ощущение, что оно работает, максимум, на 100 мегабитах (при реальных гигабитных платах) и при этом эти мегабиты делятся пропорционально между всеми юзерами виртуальной машины.
Далее - по дискам. Настоятельно рекомендую ставить их в программный RAID-1, в зеркало. Диски предадут в самый неподходящий момент. Зеркало - наше всё. Я за 3 года заменил на 3-х серверах ВСЕ диски. По гарантии. Спасало только то, что они стояли в зеркалах, то есть сервера оставались в рабочем состоянии при вылете диска.
Так собственно и собираюсь сделать из двух 3.0TB дисков, а систему на 500 Гб ставить.
И еще - при запуске системы обязательно проверь настройки BIOS. Иногда по дефолту в нем может быть отключена опция аппаратной поддержки виртуализации. Без этой опции виртуальная машина работать будет. Но гораздо медленнее.
Что я скажу. У меня на двух серверах крутятся и Xen и KVM. Из годичного опыта юзания виртуализации понял, что KVM тру путь и зря я связался с XEN (заманил блин Citrix Xen Server). Так что советую KVM + libvirt + virt manager.
Если на виртуалках не будут крутиться всякие бяки вида MS SQL, то оперативу можно раскидать в притык. Но блин ядер маловато конечно. Для примера из моих 12 гигов 8 жрет WinServer2003 +MS SQL+ сервер терминалов, 512 - CentOS +VPN + DNS (Slave), Один гиг для контролера домена на Ubuntu + Samba4 и остальное на WinServer 2003 + Firebird 2.* database. На хостовую систему остается где 512. Так все работает уже годик и на Citrix Xen Server. С ним проще.
А вот KVM если юзать, то придется больше углубиться в консольку, да и в саму сисему администррования.
З.Ы. Советую для всего твоего зоопарка ставить CentOS (Fedora может тебя убить своим обновлением, да и не для продакшена она). Подключишь EPEL репозиторий и жить можно. Для тех кому хочется по новее софт, тот же nginx например, то есть репы от CentALT.
Господа, господа, постойте. Я здесь многое слышу о том, что мало процессорных ядер, но я еще ни разу не увидел в этой теме реальный процент средней утилизации процессорного времени. Сколько для приложения нужно выделить оперативки очень легко расчетать. А вот сколько она будет использовать процессорного времени никто конкретно сказать не может. Я сейчас не хочу бросать камень ни в чей огород, просто не очень хотелось бы наблюдать картину, когда величина загрузки ЦП не будет превышать 2% или LoadAvereg не будет превышать 1.5. Процессор должен работать, я так понимаю, а не тупо стоять. Витруализация как раз в первую очередь и призвана для того, что бы по максимуму утилизировать процессорное время. Зачем покупать две машины на Ivy i5, которы за все свое время не будут загружены больше 10%, зачем это?
Господа, господа, постойте. Я здесь многое слышу о том, что мало процессорных ядер, но я еще ни разу не увидел в этой теме реальный процент средней утилизации процессорного времени. Сколько для приложения нужно выделить оперативки очень легко расчетать. А вот сколько она будет использовать процессорного времени никто конкретно сказать не может. Я сейчас не хочу бросать камень ни в чей огород, просто не очень хотелось бы наблюдать картину, когда величина загрузки ЦП не будет превышать 2% или LoadAvereg не будет превышать 1.5. Процессор должен работать, я так понимаю, а не тупо стоять. Витруализация как раз в первую очередь и призвана для того, что бы по максимуму утилизировать процессорное время. Зачем покупать две машины на Ivy i5, которы за все свое время не будут загружены больше 10%, зачем это?
все верно, но нагрузка бывает рутинной и пиковой, и планировать надо под пиковую, иначе сюрпризов не оберешься. У меня один клиент поднял на нормальном сервере сразу 500 ВМ, и они вполне себе пыхтели понемногу, со стабильным AVG на 35%, пока внезапно фирма не перешла на agile, и каждую неделю начали забускать билды. Тут все и развалилось, причем очень некрасиво. Так что консолидация это чудесно, но ее нужно правильно планировать, не по load average а по пиковым нагрузкам
Кстате, если на хостовой системе запустить top, то по параметру st, можно узнать на сколько ядро рабоатет на виртуализацию.
Для примера. Крутит прокси сервер и хостинг с двумя сайтами (ftp, http зеркало репозиториев). (KVM)
А вот тут виртуалки: домен на самбе, ДНС+ВПН и две 2003 винды. (XEN)
Так что консолидация это чудесно, но ее нужно правильно планировать, не по load average а по пиковым нагрузкам
А чтобы её правильно планировать - надо ориентироваться хоть немного в основах теории массового обсуживания. Соответственно и складывать не арифметические средние загрузки, а пиковые, но складывать геометрически, под корнем. Естественно, при условии, что пики эти кратковременны и независимы друг от друга.
А чтобы её правильно планировать - надо ориентироваться хоть немного в основах теории массового обсуживания. Соответственно и складывать не арифметические средние загрузки, а пиковые, но складывать геометрически, под корнем. Естественно, при условии, что пики эти кратковременны и независимы друг от друга.
геометрически? как все сложно... я всегда проводил исследование, брал нагрузки по времени за последние месяцы, накладывал прогнозируемую динамику, и накладывал одно на другое
А как на счет Debian (stable) в качестве основной системы? Просто попробовав CentOS я пришел в маленький шок, я только-только начал привыкать к debian (на рабочем компе поставил с иксами, на ноуте ubuntu, а на домашнем десктопе винда), а тут практически заново к этому CentOS нужно подстраиваться. Какой-то менеджер пакетов там непонятный, в общем я от Кента пока не в восторге. Почему Debian считают глючным дистром?
лично я не считаю Дебиан глючным, но точно знаю что либвирт, kvm и все что вокруг там то ли собирают не так, то ли не тестируют вообще. Во всяком случае 90% проблем с виртуализацией с которыми ко мне обращались на дебиане и убунту я на федоре и RHEL воспроизвести не смог. Ничего, кстати, удивительного - libvirt и kvm разрабатываются в Red Hat, и тестируются там же
90% проблем с виртуализацией с которыми ко мне обращались на дебиане и убунту я на федоре и RHEL воспроизвести не смог.
... из них основные проблемы на убунте.
На стабильной Debian все ок.
И вообще что за сравнение, всё под одну гребёнку? Федора по сути своей нестабильный дистрибутив.
Ничего не имею против unstable, и на десктопах только их и использую, не важно, deb/rpm или source-based.
На сервере только стабильная ветка.
Так что тут выбор сводится только к личным предпочтениям.
Еще раз здравствуйте. Поскольку я хочу в последствии сделать эту тему неким пошаговым гайдом по быстрому созданию сервера виртуализации, то буду задавать все непонятные мне, новичку, вопросы в этой теме. Сейчас, из имеющегося железа я сделал следующее:
Установил на него CentOS 6.3 minimal. Все встало без сучка и задоринки, все устройства определились и прекрасно функционируют, короче говоря, танцев с бубном вокруг этого системника я не устраивал, все заработало из коробки, как говориться. Если у вас на этом этапе возникли какие-то проблемы, то гугл вам в помощь. Кроме системы, был установлен еще ssh-сервер, текстоый редактор vim, htop, iptraf, iotop
Первым делом, после установки системы, я собрал из двух 3TB дисков программный рейд 1-го уровня. Поскольку, стандартная таблица разделов GPT не поддерживает диски больше 2TB, некоторые танцы с бубном у меня все же возникли, но благодаря вот этой инструкции, любезно предоставленной alexfinn и некоторыми разъясненими в этой теме с этой задачей мне тоже удалось справиться. Короче говоря, сначала создаем устройство md0, при помощи mdadm, ну а после, при помощи утилиты parted режем это устройство на LVM'мы нужного размера.
После того, как был создан программный рейд, встала необходимость как-то расашрить хоть какую-то папку с этого сервера в уже существующую сеть на основе домена win2k8. В этом мне помогла замечательная samba с winbind'ом на пару. В итоге, сервер мой сейчас входит в домен, зарегистрирован в в виндовом DNS и шарами я рулю на основе групповых политик Windows, позже приведу ссылки на дельные ресурсы, сейчас я просто констатирую все, для того, что бы восстановить картинку по шагам. Оказалось, что часть целей, которые я хотел достичь созданием виртуальных серверов на основе win2k8, а именно создание дополнительной файлпомойки и сервера резервного копирования, были достигнуты вот этим вот пунктом! Оказалось, что руление шарами через самбу, не сложнее чем в винде, при условии, что она правильно настроена и winbind получает все данные от DC.
После того, как я смог заливать файлы на свой сервер по протоколу smb, я установил пакеты для виртуализации (libvirt, kvm, virsh и прочие полезные плюшки), настроил сетевой мост через свободный сетевой интерфейс и таки запустил свою первую виртуальную машину!
Единственная проблема, которая пока остается не решенной, так это настройка сети на запущенном виртуальном сервере, он в упор не видит физическую сеть. И еще, в сети есть куча мануалов по подключению к экрану виртуальной машины из под винды, в частности описывается способ создания туннеля при помощи putty ssh на порт 59000 и последующее подключение к этому порту на localhost при помощи любого VNC Viewer. Но как это (тунелирование) сделать через стандартный, консольный ssh, скажем на Debian в иксах при помощи линуксового VNC-клиента нигде не сказано. Возможно, я еще просто не созрел до этого, а может ищу не там, но пока, я подключаюсь только из под винды на компе лаборанта, т.к. у меня самого стоит Debian.
Думаю решив эти вопросы, я таки смогу написать полноценный гайд, а в последствии, в мои амбициозные планы входит написание вебморды для руления виртульными машинами, хотя возможно, такая уже есть и я об этом просто не знаю.
Единственная проблема, которая пока остается не решенной, так это настройка сетеи на запущенном виртуальном сервере, он в упор не видит физическую сеть.
конфиги в студию, конечно же
"nkl" написал:
И еще, в сети есть куча мануалов по подключению к экрану виртуальной машины из под винды, в частности описывается способ создания туннеля через ssh на порт 59000 и последующее подключение к этому порту на localhost при помощи любого VNC Viewer.
зачем? если вы в той же сети, то достаточно посмотреть на каком порте хост держит консоль ВМ, и подключиться к этому порту VNC клиентом (или спайсом), плюс/минус пароль доступа
"nkl" написал:
в мои амбициозные планы входит написание вебморды для руления виртульными машинами
bridge name bridge id STP enabled interfaces
bridge0 8000.9094e482ba13 no eth1
Наконец смог добраться до своей игрушки. Получилось следующее, сразу после установки системы через VNC-клиент все как бэ работало, но потом в каком-то мануале прочитал, что нужно удалить дефолтную сеть, удалил. Потом че-то опять ковырял с интерфейсами и мостами, в итоге, теперь при попытке включить машину выдает следующее:
text
virsh # start WinServer2008R2
ошибка: Не удалось запустить домен WinServer2008R2
ошибка: Cannot get interface MTU on 'br0': Нет такого устройства
Хотя в xml файлике все поправил в соответствие с новой конфигурацией сети. В этом файле у меня вообще нигде слово br0 не встречается.
Хотел попробовать все с начала, но сцуко не дает удалить этот домен, выдает следующую ошибку:
text
virsh # undefine WinServer2008R2
ошибка: Refusing to undefine while domain managed save image exists
Если еще какие логи нужны, спрашивайте, любезно предоставлю их.
зачем? если вы в той же сети, то достаточно посмотреть на каком порте хост держит консоль ВМ, и подключиться к этому порту VNC клиентом (или спайсом), плюс/минус пароль доступа
Какой VNC клиент для этого подойдет? Пробовал vinagre, таким образом 192.168.0.3:5900, не получается и так пробовал 192.168.0.3:59000.
под один хост или для кластеров?
Думаю начать сразу с кластерных систем :)
Помогите пожалуйста.
P.S.
Сейчас буду создавать новый домен.
P.S.S.
Поднял новую машину и таки смог подключиться к ней со своего компа (Debian), все таки пришлось делать сначала так:
text
ssh -L 5900:localhost:5900 -l root 192.168.0.3
И только потом vinagre смог подцепиться на localhost:
УРАААААААААААААААААААААА!!!
Новый домен заработал!!!!!!!!!!!!!!!!!!!
Видит сеть!!!!!!!!
Но вопрос по удалению старого еще актуален, таки не работает undefine
Все, первый виртуальный win2k8 настроил как резервный контроллер домена, но протестировать его так и не могу до сих пор. Для тестирования решил создать еще одну виртуальную машинку winxp, с 512Мб оперативки пишу:
Пошло значит создание файла жесткого диска. Но вот какая трабла теперь возникает. Сейчас на серваке запущен по сути только win2k8 c 2 Гб выделенной под него оперативки. На дебияне у меня запущено 3 ssh до этого сервака, в одной значит выполняется libvirt, во второй мониторю систему по htop, кстати, сейчас load average таков: 2,20 1,75 1,13, ну а третья так, для навигации по дереву каталогов. Вдруг мне понадобилась еще одна ssh консоль до этого сервера. Пишу в консоли ssh -l root 192.168.0.3, он думает где-то 8-10 сек и выдает приглашение на ввод пасворда, ввожу пасворд и стоп. Консоль висит. Где-то через 5-6 минут выходит первое сообщение о том, кто и во сколько логинился на сервак последний раз, дальше пока еще ничего не вышло, не дождался по всей видимости. Остальные консоли работают нормально, никаких задержек или чего либо подобного, но вот что бы новую запустить не получается, такое ощущение, что он думает долго. С чем это может быть связано?
главная проблема кластеров в ВМ это доступ к СХД. Есть три подхода:
1. не делать кластеры, а просто гонять ВМ на локальных дисках серверов. В случае проблем, поднимать из бекапа или копии диска на другом сервере. Это вообще не кластеризация, потому что кластеры должны помимо прочего помогать сократить даунтайм. Более продвинутые системы умеют shared nothing live migration, в KVM это тоже в принципе возможно, но пока не имплементировано в управляющих библиотеках, скоро будет.
2. кластерная FS (GFS/Gluster/OCFS/etc...) - сложно поднимать и настраивать, мало нод в кластере, и все те же проблемы что и с обычными ФС. Исключение - NFS, которая в принципе рассчитана на такое использование, но там другие проблемы, которые наверное решит pNFS когда станет популярнее и стабильнее
3. RHEV/oVirt SPM - нестандартный подход, позволяющий строить огромные кластеры, с доступом хостов к отдельным LV на LUNах, но без стандартных локов кластерных систем. Вместо этого центральный сервер SPM управляет доступом к LVM, в свою очередь являясь кластерным сервисом. Такое больше никто не делает (vmware начали говорить о похожем подходе, но это и все) - настраивать ничего кроме зон СХД не нужно, все работает из коробки
показалось мне сарказмом, с Вашей стороны. Я только-только с горем пополам поднял свою первую VM, на единственном самосборном сервере, а Вы у меня такое спрашиваете. Но все равно, я не отказываюсь от своих слов и в моих планах есть "Веб-морда для руления VM", в частности, хочу попробовать сделать что-то похожее на Webmin.
За информацию спасибо, завтра попробуем.
А что можете сказать на счет этого феномена:
Вдруг мне понадобилась еще одна ssh консоль до этого сервера. Пишу в консоли ssh -l root 192.168.0.3, он думает где-то 8-10 сек и выдает приглашение на ввод пасворда, ввожу пасворд и стоп. Консоль висит.