У меня есть собственный почтовый сервер, и он обслуживает пару десятков пользователей. Мне нужно заменить его прямо сейчас, и я хочу, чтобы заменой стал образ виртуального сервера, работающий под гипервизором.
В мои планы относительно новой серверной системы входит следующее:
Используйте только бесплатное программное обеспечение с открытым исходным кодом.
Запустите как минимум три виртуальных образа: почтовый сервер, HTTP-сервер и SSH-сервер. Я планирую запустить систему электронной почты (например, БелкаПочта).
ОС гипервизора будет Debian Stable (на данный момент это Debian 5.0 «lenny»). Гостевые ОС также будут иметь стабильную версию Debian.
Программный RAID с использованием двух жестких дисков в конфигурации зеркалирования (RAID 1).
Мне нужно как можно скорее запустить гипервизор и гостевой образ электронной почты, потому что я беспокоюсь, что на моем старом сервере может произойти сбой оборудования. (Он перезагружается примерно три раза в день!)
Это моя прекрасная возможность все настроить на будущее. Какая идеальная установка? Как мне настроить мою систему?
Мои основные вопросы:
Должен ли я использовать KVM? Я планировал использовать Xen но я видел, что в других вопросах ServerFault некоторые люди рекомендуют KVM как лучший выбор на будущее. Сейчас мне нужно что-то стабильное и надежное, и мне нужно, чтобы оно работало быстро ... если Xen более стабилен или если KVM сложен, я могу пока пойти с Xen. (Debian не скоро откажется от поддержки Xen!)
Должен ли я использовать LVM с моим гипервизором или оставить это в стороне? Я предпочитаю, чтобы все было как можно проще, и кажется, что LVM добавит еще один уровень сложности; но с другой стороны, я думаю, что к настоящему времени он стабилен и зрел, и, возможно, гибкость будет полезна, если потребности моих образов виртуальных серверов изменятся.
Есть ли какой-нибудь графический или веб-инструмент, который я могу использовать для администрирования KVM / Xen? На моем текущем почтовом сервере даже нет X11; Я администрирую только через SSH.
Любые другие советы или подсказки будут с благодарностью приняты.
Если вы хотите узнать о моем оборудовании, вот важные основы:
Чип AMD BE-2300 (двухъядерный; поддерживает инструкции виртуализации AMD-V)
4 ГБ RAM
два одинаковых жестких диска Seagate по 250 ГБ
Честно говоря, я не представляю, какую выгоду вы получите от использования какой-либо технологии виртуализации.
На мой взгляд, виртуализация - это крутая техника, которая подходит не для всех, и переход на виртуализацию только потому, что это делают все, - не лучшая идея (опять же, на мой взгляд).
Поскольку вы используете одну и ту же ОС, Linux, как на хосте, так и на гостевых виртуальных машинах, я предлагаю вам выбрать из Пользовательский режим Linux, или OpenVZ.
UML начал свою жизнь как модифицированное ядро Linux, которое можно было загрузить в пользовательском режиме. Он широко используется в хостинговых компаниях и людьми, которым необходимо эмулировать большое количество виртуальных машин на одном сервере. OpenVZ исходит из более корпоративной среды и больше смоделирован на основе контейнеризации Solaris. Идея состоит в том, что вы можете разделить свою систему и установить программное обеспечение в контейнер, который не влияет на остальную систему. Чтобы удалить программное обеспечение, просто удалите контейнер.
Взгляните на два сайта, прежде чем принять решение. Я думаю, что OpenVZ кажется вам лучше, но многое зависит от ваших планов на будущее, то есть лучше всего выбрать тот, который вы, возможно, сможете использовать для работы в будущем.
И UML, и OpenVZ сильно отличаются от XEN и KVM. Короче говоря, XEN и KVM - это полноценные гипервизоры виртуализации, которые позволяют запускать любую операционную систему, поддерживаемую на оборудовании x86, но UML и OpenVZ являются расширением концепции chroot jail, что позволяет изолировать различные процессы Linux. Если вы планируете использовать только Linux, то лучше избегать сложностей с XEN и KVM.
Таким образом, OpenVZ и UML расширяют функциональность системы Linux, но XEN или KVM позволяют превратить ее в систему, отличную от Linux, которая работает под управлением MS-Windows, FreeBSD, OpenSolaris и других.
Если вы хотите запустить XEN, вам следует запустить полностью поддерживающий его дистрибутив, например OpenSUSE 11.
Мой старый сервер окончательно умер. Мне пришлось в спешке запустить новый сервер.
Так что я продолжил свой первоначальный план А и использовал Xen.
Вот моя установка. Я не знаю, "идеально ли", но вот что я понял:
На сервере два одинаковых жестких диска, разделенных следующим образом:
Устройство / dev / md1, в свою очередь, отформатировано как раздел Linux LVM.
GRUB установлен в / boot, который представляет собой простой раздел ext3.
Система Dom0 установлена в / dev / md0, который также является обычным разделом ext3.
В разделе 5 установлена "спасательная" система, тоже обычный раздел ext3. Это полноценный загрузочный Debian, и фактически он был первым, что я установил; Я установил остальную часть диска из этой системы.
На обоих дисках установлен GRUB и «спасательная» система. В экстренной ситуации должна быть возможность загрузить какую-то систему Linux с одного из двух дисков, чтобы устранить проблему и снова запустить сервер.
Сначала я попытался использовать инструменты «libvirt» для Xen, такие как «virt-manager». Основываясь на своем опыте, я должен сказать, что "libvirt" в Debian 5.0 Lenny наполовину готов, и я не рекомендую его.
Затем я обратился к более старым инструментам, материалам «xen-tools»; в частности, «xen-create-image». Поскольку все мои пользователи имеют настройку Maildir (один файл на каждое электронное письмо) вместо настройки mbox (один файл на папку электронной почты), я попытался использовать ReiserFS. xen-create-image отлично создал образ, но не загрузился. Я решил использовать XFS, и это сработало.
(На самом деле я не уверен, что XFS намного лучше, чем ext3 для настройки множества маленьких файлов, но, как я уже сказал, я сделал все это в спешке после того, как мой старый сервер умер.)
Две основные причины, по которым я решил использовать LVM для своих образов Xen:
Производительность. Я нашел несколько веб-страниц, на которых говорилось, что Xen работает лучше, когда его изображения находятся в LVM, по сравнению с изображениями в файлах в файловой системе.
Легкость изменения размера. Я запускаю свои виртуальные машины с небольших образов, и при необходимости могу их увеличить.
В BIOS моего нового сервера есть функция, позволяющая нажать F8 во время загрузки, а затем выбрать загрузочное устройство. Я использовал это, чтобы проверить, могу ли я загружаться с GRUB с любого из двух моих жестких дисков.
На моем старом сервере даже не был установлен X11. Я решил установить рабочий стол GNOME на новый сервер, надеясь, что смогу использовать классные инструменты с графическим интерфейсом, такие как virt-manager. Я обнаружил, что 4 ГБ - это не очень много для современной установки GNOME; все подходит, но свободного места не так много. Если бы я начинал заново, я бы отдал 10 ГБ для ОС Dom0 на / dev / md0. Если мне действительно не хватает места, я, вероятно, смогу переместить / usr / bin в новый том, созданный под LVM.
Dom0 устанавливается на том RAID, но не на LVM. Я прочитал несколько комментариев о том, что некоторые ядра испытывают трудности с загрузкой из LVM, поэтому я просто упростил задачу.
Я действительно рекомендую поставить крошечную «спасательную» систему в конец жесткого диска. Затем даже не монтируйте эту систему в своей основной системе, чтобы процессы берсерка (например, rm -rf /
) не могу его заткнуть. Есть много проблем, которые можно легко решить, загрузив работающую систему, смонтировав том с поврежденной системой, а затем что-то исправив.
Спасибо всем, кто дал мне ответ.
У нас есть положительный опыт использования KVM под управлением добродетель-управляющий делами, соединяясь с qemu через ssh. Было очень легко установить, настроить, изменить, уничтожить и просто поиграть с гостевыми ОС. Эта опция также работает с Xen, поэтому вы можете использовать одни и те же команды с любым гипервизором.
Я сделал нечто подобное, за исключением того, что использовал Centos.
Другие комментарии о повторном использовании злоумышленниками паролей для получения доступа к другим вашим хостам - повод для беспокойства. Мой ответ: используйте только ключи ssh и убедитесь, что вы не разрешаете пересылку ключей ssh от вашего клиента ssh. (это позволит враждебному пользователю root на хосте, на который вы входите, повторно использовать ваши сеансовые ключи для подключения к другому хосту, как вы). Кроме того, если у вас разные пароли root для каждого поля, вам следует подумать о настройке приглашения cli или цветовой схемы для каждого host, чтобы напомнить вам, на каком хосте вы находитесь, чтобы вы случайно не набрали пароль root для другого хоста.
4Gb - это хорошее количество для того количества хостов, о котором вы говорите, но настроить дополнительные хосты для разного использования настолько просто, что я уверен, что вы скоро достигнете этого лимита.
Раньше я делал kvm сам по себе с помощью debian stable, но через некоторое время я переключился на использование proxmox-ve (веб-управление). Я многому научился, делая это сам, но мне стало лень. Преимущество proxmox-ve в том, что он позволяет одновременно использовать kvm и openvz с vlan 802.1q и т.п. (vlan в kvm talk, к сожалению, отличается от 802.1q). Самая большая разница между ними (openvz и kvm) заключается в том, что, поскольку kvm использует собственные ядра, у него худшая производительность. Кроме того, для работы kvm необходимо иметь аппаратное обеспечение virt.