Назад | Перейти на главную страницу

Какая идеальная установка для небольшого виртуального сервера Linux?

У меня есть собственный почтовый сервер, и он обслуживает пару десятков пользователей. Мне нужно заменить его прямо сейчас, и я хочу, чтобы заменой стал образ виртуального сервера, работающий под гипервизором.

В мои планы относительно новой серверной системы входит следующее:

Мне нужно как можно скорее запустить гипервизор и гостевой образ электронной почты, потому что я беспокоюсь, что на моем старом сервере может произойти сбой оборудования. (Он перезагружается примерно три раза в день!)

Это моя прекрасная возможность все настроить на будущее. Какая идеальная установка? Как мне настроить мою систему?

Мои основные вопросы:

Если вы хотите узнать о моем оборудовании, вот важные основы:

Честно говоря, я не представляю, какую выгоду вы получите от использования какой-либо технологии виртуализации.

  • Вы по-прежнему используете один сервер, сокращение использования оборудования не происходит.
  • Поскольку у вас есть только один сервер, возможная выгода от возможности переноса виртуальных машин (возможно, даже во время работы) не применяется.
  • Объем работы, необходимый для сохранения добродетели. количество запущенных серверов на самом деле увеличивается, так как вам необходимо выполнять базовое администрирование гипервизора и каждого образа, при этом не имея достаточного количества машин, чтобы получить много за счет автоматизации общих задач. Кроме того, у вас будет супервизор как дополнительный уровень, требующий вашего внимания.
  • Между тем, преимущества наличия веб-служб и почтовых служб на разных машинах при такой небольшой базе пользователей весьма незначительны, и вам все равно потребуется такая же забота, чтобы сохранить их в целости и сохранности, даже если они логически разделены.

На мой взгляд, виртуализация - это крутая техника, которая подходит не для всех, и переход на виртуализацию только потому, что это делают все, - не лучшая идея (опять же, на мой взгляд).

Поскольку вы используете одну и ту же ОС, 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.

Вот моя установка. Я не знаю, "идеально ли", но вот что я понял:

На сервере два одинаковых жестких диска, разделенных следующим образом:

  • раздел 1: 0,5 ГБ / загрузка
  • раздел 2: программный RAID 4 ГБ Linux (будет / dev / md0)
  • раздел 3: 232 ГБ Linux программный RAID (будет / dev / md1)
  • раздел 5: 2 ГБ / спасение

Устройство / 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.