Сегодня эпоха автономных серверов прошла, развертывая любую услугу, если не добавить несколько серверов, нет возможности заставить людей чувствовать себя в своей тарелке.
А при локальном обучении и тестировании часто приходится использовать кластеры серверов, например, для построения кластера 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, пообщайтесь о других