Как построить локальный кластер серверов

распределенный
Как построить локальный кластер серверов

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

А при локальном обучении и тестировании часто приходится использовать кластеры серверов, например, для построения кластера MySQL, кластера Redis и кластера HDFS, однако покупать облачный сервер для тестирования слишком экстравагантно, поэтому строить локальный кластер экономичный и доступный способ.

В этой статье представлен метод локального построения кластера серверов.

Аппаратные и программные требования:

  • Компьютер (система не ограничена, лучше более высокая конфигурация)
  • VirtualBox
  • Centos7

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

Centos может выбрать нужную вам версию или другие версии дистрибутива Linux, обратите внимание на выбор версии Minimal, используйте ее как сервер, не нужен рабочий стол и т.п., так что размер образа сервера может быть небольшим.

Цель построения кластера centos в этой статье следующая:

  • Используйте виртуальную машину для создания кластера с тремя серверами
  • Все три виртуальные машины могут обращаться друг к другу с хоста
  • Все три виртуальные машины могут получить доступ к внешней сети
  • Три машины могут быть подключены напрямую с помощью ssh без ввода пароля.

Эта статья основана на Mac os 10.15.5, VirtualBox6.1.8, centos7, и для чтения этой статьи требуются некоторые базовые знания о сети.

установить сервер

Перед запуском необходимо добавить сетевую карту в глобальную конфигурацию VirtualBox, как показано на следующем рисунке:

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

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

Centos7, который мы хотим установить, — это Linux, поэтому в качестве типа виртуальной машины выбран Linux, а в выборе версии нет опции Centos, поэтому выберите Red Hat (64-разрядная версия):

После того, как конфигурация завершена, необходимо выделить память виртуальной машине, вы можете выбрать в соответствии с конфигурацией вашего компьютера, в основном достаточно около 2G:

Затем необходимо создать виртуальный жесткий диск.Поскольку это система Centos без графического интерфейса, достаточно конфигурации по умолчанию:

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

Затем нажмите сохранить:

Выберите скачанный образ:

Затем выбираем сеть.По умолчанию включена только одна сетевая карта.Для удовлетворения последующих потребностей нам нужно открыть еще одну сетевую карту:

Выберите режим только для хоста:

Нажмите «ОК», чтобы сохранить конфигурацию, а затем вы можете запустить виртуальную машину.Первый запуск установит систему.Установите пароль root в процессе установки, и установка виртуальной машины будет завершена.

Для того, чтобы сформировать серверный кластер, нам понадобятся три виртуальные машины, две другие устанавливаются так же, как и выше.

конфигурация сети

В этой статье я использую метод NAT + host-only для завершения настройки сети, когда виртуальная машина может получить доступ к внешней сети, а хост может получить доступ к виртуальной машине, но это не единственный способ.

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

Войдите в систему как пользователь root и перейдите в каталог конфигурации сети:

cd /etc/sysconfig/network-scripts/

Если в предыдущей конфигурации нет ошибки, вы можете увидеть конфигурацию двух сетевых карт здесь:

ifcfg-enp0s3Он соответствует сетевой карте, настроенной с помощью NAT.ifcfg-enp0s8Он соответствует сетевой карте, настроенной только для хоста.

Чтобы сначала настроить сеть NAT, используйте vi, чтобы открыть конфигурацию ifcfg-enpos3:

vi — редактор, поставляемый с системой Linux.

Вы можете изменить значение ONBOOT на yes, что означает, что сетевая карта включена при загрузке.После настройки NAT вы можете получить доступ к Интернету в виртуальной машине.

Давайте снова настроим сеть только для хоста:

Сначала изменить сеть с dhcp для автоматического получения ip на статическую, а затем установить ONBOOT в yes, а IPADDR указать фиксированный IP этой виртуальной машины.IP можно задать по желанию, но в рамках данного сегмента сети NETMASK настраивает это сеть.сетевая маска.

Наконец, настройте шлюз:

vi /etc/sysconfig/networking

Заполните следующее:

NETWORKING=yes
GATEWAY=192.168.56.2 # 这个值就是在配置 VirtualBox 全局网卡时的网关的 IP,不要配错了

После их настройки перезапустите сетевой сервис:

service network restart

Затем посетите внешнюю сеть:

Хост обращается к виртуальной машине:

Была настроена одна сеть, а две другие могут следовать той же конфигурации, но им необходимо настроить разные IP-адреса для виртуальных машин.

В примере в этой статье IP-адреса трех виртуальных машин: 192.168.56.3 192.168.56.4 192.168.56.5

межсерверное соединение

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

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

Для входа между машинами по-прежнему используется ssh, но его можно улучшить.Каждый сервер устанавливает две другие машины как доверенные, так что вы можете войти напрямую, не вводя каждый раз пароль.

Возьмем в качестве примера виртуальную машину с IP-адресом 192.168.56.3, сгенерируем открытый ключ и ключ через ssh-keygen:

Затем используйте ssh-copy-id, чтобы скопировать открытый ключ на машину, такую ​​как вход без пароля:

Затем вы можете войти без пароля:

ssh root@192.168.56.4
ssh root@192.168.56.5

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

На этом этапе создается локальный кластер серверов.

Текст / Райджун

Обратите внимание на публичный аккаунт WeChat, пообщайтесь о других