Сеть Unix/Linux и серверные виртуальные машины

Я хочу разработать программную систему, которая включает в себя ряд серверов, которые общаются друг с другом по сети. Он должен быть основан на Linux (желательно Ubuntu). Для связи он должен использовать сокеты TCP/IP.

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

Поэтому мой фактический вопрос: существует ли система виртуальных машин на базе Linux, которая позволит вам запускать несколько (виртуальных) серверов и связывать их друг с другом?

Ответы (2)

Это действительно так :) Я уверен, что это можно сделать с помощью Xen или KVM, но самое простое, что я нашел (если я правильно понял ваш вопрос), — это VirtualBox от Oracle. Обычно для загрузки доступны две версии: версия с открытым исходным кодом, которая обычно находится в репозиториях большинства основных дистрибутивов. (например sudo aptitude install virtualbox, ), или вы можете добавить немного более новую проприетарную версию с веб-сайта VirtualBox (есть репозиторий, который легко настроить).

Вам потребуется настроить параметры сети как на каждой виртуальной машине, так и на вашем ПК/ноутбуке. Это процесс, состоящий из нескольких шагов, но не слишком сложный.

Не повторяя того, что другие уже обрисовали в Интернете, вот ссылка на достойное руководство: http://technology.amis.nl/2014/01/27/a-short-guide-to-networking-in-virtual-box -с-оракул-линукс-внутри/

Это выглядит как очень хороший вариант - подождем несколько дней, прежде чем принять его как окончательный.

Новая альтернатива, которая, кажется, набирает обороты, — это Docker , который позволяет вам создать «рецепт» виртуальной машины (например, использовать эту ОС, установить эти пакеты и при загрузке запустить эту команду) и быстро запустить ее из команды линия.

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

Его довольно просто настроить, и он не мешает остальной части вашей системы.

Чтобы соединить несколько контейнеров, в официальной документации есть хороший учебник: Связывание контейнеров вместе .

Я никак не связан с Docker, кроме как как пользователь.

Как указывает ber444 , Google Cloud Platform теперь поддерживает Docker ! Таким образом, вы можете без проблем перенести свои локальные тесты в облако.

Еще одна приятная вещь здесь заключается в том, что вы можете перемещать/разворачивать контейнеры непосредственно при запуске производства.
@JourneymanGeek Действительно
Обратите внимание, что Google Cloud теперь поддерживает Docker: googlecloudplatform.blogspot.ie/2014/11/…