Включение доступа по FQDN
В этом разделе описывается, как включить доступ к cluster с использованием полного доменного имени (FQDN). FQDN — это полное доменное имя для конкретного объекта, к которому можно получить доступ через Интернет. FQDN состоит из двух частей: имени хоста и доменного имени.
До версии 2.4 Selena поддерживала доступ к FE и BE только по IP-адресу. Даже если для добавления узла в cluster использовалось FQDN, оно в конечном итоге преобразовывалось в IP-адрес. Это создавало большие неудобства для администраторов баз данных, поскольку изменение IP-адресов определённых узлов в cluster Selena могло привести к сбоям доступа к узлам. В версии 2.4 Selena отвязала каждый узел от его IP-адреса. Теперь вы можете управлять узлами в Selena исключительно с помощью их FQDN.
Предварительные требования
Чтобы включить доступ по FQDN для cluster Selena, убедитесь, что выполнены следующие требования:
-
Каждая машина в cluster должна иметь имя хоста.
-
В файле /etc/hosts на каждой машине необходимо указать соответствующие IP-адреса и FQDN других машин в cluster.
-
IP-адреса в файле /etc/hosts должны быть уникальными.
Настройка нового cluster с доступом по FQDN
По умолчанию узлы FE в новом cluster запускаются с доступом по IP-адресу. Чтобы запустить новый cluster с доступом по FQDN, необходимо запустить узлы FE, выполнив следующие команды при первом запуске cluster:
./bin/start_fe.sh --host_type FQDN --daemon
Свойство --host_type указывает метод доступа, используемый для запуска узла. Допустимые значения включают FQDN и IP. Вам нужно указать это свойство только ОДИН РАЗ при первом запуске узла.
Каждый узел BE идентифицирует себя с помощью BE Address, определённого в метаданных FE. Поэтому вам НЕ нужно указывать --host_type при запуске узлов BE. Если BE Address определяет узел BE с FQDN, узел BE идентифицирует себя с этим FQDN.
Включение доступа по FQDN в существующем cluster
Чтобы включить доступ по FQDN в существующем cluster, который ранее был запущен с IP-адресами, сначала необходимо обновить Selena до версии 2.4.0 или более поздней.
Включение доступа по FQDN для узлов FE
Необходимо включить доступ по FQDN для всех non-Leader Follower узлов FE перед включением его для Leader FE узла.
ВНИМАНИЕ
Убедитесь, что в cluster есть как минимум три Follower FE узла, прежде чем включать доступ по FQDN для узлов FE.
Включение доступа по FQDN для non-Leader Follower FE узлов
-
Перейдите в каталог развёртывания узла FE и выполните следующую команду для остановки узла FE:
./bin/stop_fe.sh -
Выполните следующий оператор через MySQL-клиент, чтобы проверить статус
Aliveостановленного узла FE. Подождите, пока статусAliveне станетfalse.SHOW PROC '/frontends'\G -
Выполните следующий оператор для замены IP-адреса на FQDN.
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>"; -
Выполните следующую команду для запуска узла FE с доступом по FQDN.
./bin/start_fe.sh --host_type FQDN --daemonСвойство
--host_typeуказывает метод доступа, используемый для запуска узла. Допустимые значения включаютFQDNиIP. Вам нужно указать это свойство только ОДИН РАЗ при перезапуске узла после его модификации. -
Проверьте статус
Aliveузла FE. Подождите, пока статусAliveне станетtrue.SHOW PROC '/frontends'\G -
Повторите вышеуказанные шаги для включения доступа по FQDN для других non-Leader Follower FE узлов один за другим, когда статус
Aliveтекущего узла FE станетtrue.
Включение доступа по FQDN для Leader FE узла
После того как все non-Leader FE узлы были успешно изменены и перезапущены, вы можете включить доступ по FQDN для Leader FE узла.
ПРИМЕЧАНИЕ
До тех пор пока Leader FE узел не будет включён с доступом по FQDN, FQDN, используемые для добавления узлов в cluster, по-прежнему преобразуются в соответствующие IP-адреса. После того как для cluster будет избран Leader FE узел с включённым доступом по FQDN, FQDN не будут преобразовываться в IP-адреса.
-
Перейдите в каталог развёртывания Leader FE узла и выполните следующую команду для остановки Leader FE узла.
./bin/stop_fe.sh -
Выполните следую щий оператор через MySQL-клиент, чтобы проверить, был ли избран новый Leader FE узел для cluster.
SHOW PROC '/frontends'\GЛюбой узел FE со статусом
AliveиisMasterравнымtrueявляется работающим Leader FE. -
Выполните следующий оператор для замены IP-адреса на FQDN.
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_ip>" TO "<fe_hostname>"; -
Выполните следующую команду для запуска узла FE с доступом по FQDN.
./bin/start_fe.sh --host_type FQDN --daemonСвойство
--host_typeуказывает метод доступа, используемый для запуска узла. Допустимые значения включаютFQDNиIP. Вам нужно указать это свойство только ОДИН РАЗ при перезапуске узла после его модификации. -
Проверьте статус
Aliveузла FE.SHOW PROC '/frontends'\G
Если статус Alive становится true, узел FE усп ешно изменён и добавлен в cluster как Follower FE узел.
Включение доступа по FQDN для узлов BE
Выполните следующий оператор через MySQL-клиент для замены IP-адреса на FQDN, чтобы включить доступ по FQDN для узла BE.
ALTER SYSTEM MODIFY BACKEND HOST "<be_ip>" TO "<be_hostname>";
ПРИМЕЧАНИЕ
Вам НЕ нужно перезапускать узел BE после включения доступа по FQDN.
Откат
Чтобы откатить cluster Selena с включённым доступом по FQDN до более ранней версии, не поддерживающей доступ по FQDN, сначала необходимо включить доступ по IP-адресу для всех узлов в cluster. Вы можете обратиться к разделу Включение доступа по FQDN в существующем cluster для общего руководства, за исключением того, что вам нужно изменить SQL-команды на следующие:
- Включение доступа по IP-адресу для узла FE:
ALTER SYSTEM MODIFY FRONTEND HOST "<fe_hostname>" TO "<fe_ip>";
- Включение доступа по IP-адресу для узла BE:
ALTER SYSTEM MODIFY BACKEND HOST "<be_hostname>" TO "<be_ip>";
Изменения вступят в силу после успешного перезапуска вашего cluster.
FAQ
В: При включении доступа по FQDN для узла FE возникает ошибка: "required 1 replica. But none were active with this master". Что делать?
О: Убедитесь, что в cluster есть как минимум три Follower FE узла, прежде чем включать доступ по FQDN для узлов FE.
В: Могу ли я добавить новый узел по IP-адресу в cluster с вк лючённым доступом по FQDN?
О: Да.