Июнь 6

Настройка кластера Ubuntu и ресурс группы доступности Configure Ubuntu Cluster and Availability Group Resource

Настройка кластера Ubuntu и ресурс группы доступности Configure Ubuntu Cluster and Availability Group ResourceПРИМЕНЯЕТСЯ к: SQL Server (Linux)базы данных SQL Azureхранилище данных SQL AzureПараллельные хранилища данных THIS TOPIC APPLIES TO: SQL Server (Linux only)Azure SQL DatabaseAzure SQL Data WarehouseParallel Data Warehouse

В этом документе описывается создание трех узлов кластера на Ubuntu и добавьте ранее созданную группу доступности в качестве ресурса кластера. This document explains how to create a three-node cluster on Ubuntu and add a previously created availability group as a resource in the cluster. Для обеспечения высокой доступности группы доступности для Linux требует трех узлов — см. высокий уровень доступности и защиты данных в конфигурации группы доступности. For high availability, an availability group on Linux requires three nodes — see High availability and data protection for availability group configurations .

Примечание

На этом этапе интеграции SQL Server с Pacemaker в Linux не, а также как WSFC в Windows. At this point, SQL Server's integration with Pacemaker on Linux is not as coupled as with WSFC on Windows. Из в SQL, неизвестно о наличии кластера, все orchestration находится за пределами в и служба управляется как отдельный экземпляр Pacemaker. From within SQL, there is no knowledge about the presence of the cluster, all orchestration is outside in and the service is controlled as a standalone instance by Pacemaker. Кроме того имя виртуальной сети доступен только в WSFC, не имеет эквивалента в одной и той же в Pacemaker. Also, virtual network name is specific to WSFC, there is no equivalent of the same in Pacemaker. Всегда на динамические административные представления, запросить сведения о кластере будет возвращать пустые строки. Always On dynamic management views that query cluster information will return empty rows. Вы можете создать прослушиватель, чтобы использовать его для прозрачного переподключения после отработки отказа, но необходимо будет вручную зарегистрировать имя прослушивателя на DNS-сервере с помощью IP-адрес, используемый для создания виртуального IP-ресурс (как описано ниже). You can still create a listener to use it for transparent reconnection after failover, but you will have to manually register the listener name in the DNS server with the IP used to create the virtual IP resource (as explained below).

Следующие разделы выполните эти шаги для настройки решения отказоустойчивого кластера. The following sections walk through the steps to set up a failover cluster solution.

Стратегия Roadmap

Инструкции по созданию группы доступности на серверах Linux для обеспечения высокой доступности, отличаются от действия, указанные на отказоустойчивом кластере Windows Server. The steps to create an availability group on Linux servers for high availability are different from the steps on a Windows Server failover cluster. Ниже приводятся шаги высокого уровня. The following list describes the high level steps:

Настройте диспетчер ресурсов кластера, например Pacemaker. Configure a cluster resource manager, like Pacemaker. Эти инструкции приведены в этом документе. These instructions are in this document.

Способ настройки диспетчер ресурсов кластера зависит от конкретных дистрибутивах Linux. The way to configure a cluster resource manager depends on the specific Linux distribution.

Важно!

Рабочих средах требуется агент разграничения, например STONITH для обеспечения высокой доступности. Production environments require a fencing agent, like STONITH for high availability. Демонстрации в этой документации не используйте разграничения агентов. The demonstrations in this documentation do not use fencing agents. Для тестирования и проверки только являются демонстраций. The demonstrations are for testing and validation only.

Кластер Linux использует разграничения для возвращения известного состояния кластера. A Linux cluster uses fencing to return the cluster to a known state. Способ настройки разграничения зависит от того, распределение и среды. The way to configure fencing depends on the distribution and the environment. В настоящее время разграничения недоступна в некоторых средах облака. At this time, fencing is not available in some cloud environments. В разделе политики поддержки для высокой доступности кластеров RHEL — платформ виртуализации для получения дополнительной информации. See Support Policies for RHEL High Availability Clusters — Virtualization Platforms for more information.

Установка и настройка Pacemaker на каждом узле кластера Install and configure Pacemaker on each cluster node

На всех узлах откройте порты брандмауэра. On all nodes open the firewall ports. Откройте порт для службы высокого уровня доступности Pacemaker, экземпляр SQL Server и конечной точке группы доступности. Open the port for the Pacemaker high-availability service, SQL Server instance, and the availability group endpoint. TCP-порт по умолчанию для сервера SQL Server — 1433. The default TCP port for server running SQL Server is 1433.

Кроме того можно просто отключить брандмауэр: Alternatively, you can just disable the firewall:

Установите пакеты Pacemaker. Install Pacemaker packages. На всех узлах выполните следующие команды: On all nodes, run the following commands:

Задайте пароль для пользователя по умолчанию, который создается при установке пакетов Pacemaker и Corosync. Set the password for the default user that is created when installing Pacemaker and Corosync packages. Используйте на всех узлах один и тот же пароль. Use the same password on all nodes.

Включить и запустить службу pcsd и Pacemaker Enable and start pcsd service and Pacemaker

Следующая команда включает и запускает службу pcsd и pacemaker. The following command enables and starts pcsd service and pacemaker. Запустите на всех узлах. Run on all nodes. Это позволяет узлам приходящийся после перезагрузки. This allows the nodes to rejoin the cluster after reboot.

Примечание

Команды включения pacemaker завершается с ошибкой «pacemaker запуска по умолчанию содержит не runlevels прерывание.» Enable pacemaker command will complete with the error 'pacemaker Default-Start contains no runlevels, aborting.' Это не опасное, можно продолжить настройку кластера. This is harmless, cluster configuration can continue. Мы связались с поставщиками кластера для исправления этой проблемы. We are following up with cluster vendors for fixing this issue.

Создание кластера Create the Cluster

Удалите все существующие конфигурации кластера со всех узлов. Remove any existing cluster configuration from all nodes.

Выполнение «ПК apt get установки sudo» устанавливает pacemaker, corosync и ПК в то же время и начинает работать все три службы. Running 'sudo apt-get install pcs' installs pacemaker, corosync, and pcs at the same time and starts running all 3 of the services. Запуск corosync создает шаблон «/ etc/cluster/corosync. conf» файла. Starting corosync generates a template '/etc/cluster/corosync. conf' file. Возможность успешного выполнения этот файл дальнейшие действия не должно существовать —, необходимо остановить pacemaker / corosync и удалите «/ etc/cluster/corosync. conf», и затем дальнейшие действия будут завершены успешно. To have next steps succeed this file should not exist – so the workaround is to stop pacemaker / corosync and delete '/etc/cluster/corosync. conf', and then next steps will complete successfully. «уничтожить кластер ПК» делает то же самое, и его можно использовать как временной этап установки исходного кластера. 'pcs cluster destroy' does the same thing, and you can use it as a one time initial cluster setup step.

Следующая команда удаляет все существующие файлы конфигурации кластера и останавливает все службы кластеров. The following command removes any existing cluster configuration files and stops all cluster services. Это окончательно удаляет кластера. This permanently destroys the cluster. Запустите его в качестве первого шага в предварительной рабочей среде. Run it as a first step in a pre-production environment. Обратите внимание что «компьютеры кластера уничтожить» отключены pacemaker служба и необходимо повторно включать. Note that 'pcs cluster destroy' disabled the pacemaker service and needs to be reenabled. Выполните на всех узлах следующую команду. Run the following command on all nodes.

Предупреждение

Команда приведет к удалению любые существующие ресурсы кластера. The command will destroy any existing cluster resources.

Создание кластера. Create the cluster.

Предупреждение

Связи с известной проблемой, кластеризации поставщика над этой проблемой, начиная кластера («компьютеры кластера start»), будут завершаться под ошибкой. Due to a known issue that the clustering vendor is investigating, starting the cluster ('pcs cluster start') will fail with below error. Это потому, что файл журнала, настроенные в /etc/corosync/corosync. conf неверна. This is because the log file configured in /etc/corosync/corosync. conf is wrong. Чтобы обойти эту проблему, измените файл журнала, чтобы: /var/log/corosync/corosync. log. To workaround this issue, change the log file to: /var/log/corosync/corosync. log. В качестве альтернативы можно создать файл /var/log/cluster/corosync. log. Alternatively you could create the /var/log/cluster/corosync. log file.

Следующая команда создает трех узлов кластера. The following command creates a three-node cluster. Перед выполнением данного сценария замените значения между **<. >**. Before you run the script, replace the values between **<. >**. Выполните следующую команду на основном узле. Run the following command on the primary node.

Примечание

Если кластер был настроен ранее на тех же узлах, используйте параметр —force при выполнении команды pcs cluster setup. If you previously configured a cluster on the same nodes, you need to use '—force' option when running 'pcs cluster setup'. Обратите внимание, что это эквивалентно команде pcs cluster destroy. Службу Pacemaker необходимо включить повторно с помощью команды sudo systemctl enable pacemaker. Note this is equivalent to running 'pcs cluster destroy' and pacemaker service needs to be reenabled using 'sudo systemctl enable pacemaker'.

Настройка разграничения (STONITH) Configure fencing (STONITH)

Pacemaker кластера поставщиков требуют STONITH должно быть включено и разграничения устройству, настроенному для поддерживаемых кластера. Pacemaker cluster vendors require STONITH to be enabled and a fencing device configured for a supported cluster setup. Если диспетчер ресурсов кластера не удается определить состояние узла или ресурса на узле, разграничения позволяет снова подключить известного состояния кластера. When the cluster resource manager cannot determine the state of a node or of a resource on a node, fencing is used to bring the cluster to a known state again. Ресурс уровня разграничения главным образом, гарантируется без повреждения данных в случае сбоя путем настройки ресурса. Resource level fencing ensures mainly that there is no data corruption in case of an outage by configuring a resource. Можно использовать разграничения уровня ресурсов, например, с DRBD (распределенных реплицируются блоков) для пометки диска на узле как устаревший, когда канал связи выходит из строя. You can use resource level fencing, for instance, with DRBD (Distributed Replicated Block Device) to mark the disk on a node as outdated when the communication link goes down. Узел уровня разграничения гарантирует узла не выполняет какие-либо ресурсы. Node level fencing ensures that a node does not run any resources. Это делается путем сброса узел и его реализация Pacemaker вызывается STONITH (что означает «прокрутить другой узел в начало»). This is done by resetting the node and the Pacemaker implementation of it is called STONITH (which stands for «shoot the other node in the head»). Pacemaker поддерживает выполнения разнообразных разграничения устройства, например бесперебойного питания или управления интерфейсные карты для серверов. Pacemaker supports a great variety of fencing devices, e. g. an uninterruptible power supply or management interface cards for servers. Дополнительные сведения см. в разделе Pacemaker кластеры с нуля и разграничения и Stonith For more details, see Pacemaker Clusters from Scratch and Fencing and Stonith

Так как уровень узла ограждения конфигурации сильно зависит от среды, он будет отключен для этого учебника (он может быть настроен на более позднее время). Because the node level fencing configuration depends heavily on your environment, we will disable it for this tutorial (it can be configured at a later time). Выполните следующий скрипт на основном узле: Run the following script on the primary node:

Важно!

Отключение STONITH — только для целей тестирования. Disabling STONITH is just for testing purposes. Если вы планируете использовать Pacemaker в рабочей среде, следует планировать реализацию STONITH в зависимости от среды и хранить включена. If you plan to use Pacemaker in a production environment, you should plan a STONITH implementation depending on your environment and keep it enabled. Обратите внимание, что на этом этапе отсутствуют разграничения агенты для облачных сред (включая Azure) или Hyper-V. Note that at this point there are no fencing agents for any cloud environments (including Azure) or Hyper-V. Следовательно поставщика кластера не обеспечивает поддержку для запуска рабочих кластерах в этих средах. Consequentially, the cluster vendor does not offer support for running production clusters in these environments. Мы работаем над решением для пропуска, будут доступны в будущих выпусках. We are working on a solution for this gap that will be available in future releases.

Значение свойства кластера start сбой является Неустранимая false Set cluster property start-failure-is-fatal to false

start-failure-is-fatal Указывает ли сбой запуска ресурса на узле предотвращает последующие попытки запуска на этом узле. start-failure-is-fatal indicates whether a failure to start a resource on a node prevents further start attempts on that node. Если задано значение false. кластер решить, следует ли попробуйте запустить на том же узле, еще раз на основании ресурса текущего счетчика и миграции Порог сбоя. When set to false. the cluster will decide whether to try starting on the same node again based on the resource's current failure count and migration threshold. Таким образом после перехода на другой ресурс, Pacemaker повторит попытку начиная ресурс группы доступности на первый основной после экземпляра SQL Server. So, after failover occurs, Pacemaker will retry starting the availability group resource on the former primary once the SQL instance is available. Pacemaker будет понижение уровня во вторичные реплики, и он автоматически будет повторно подключиться к группе доступности. Pacemaker will demote the replica to secondary and it will automatically rejoin the availability group.

Чтобы обновить значение свойства false запустите следующий сценарий: To update the property value to false run the following script:

Предупреждение

После автоматического перехода на другой ресурс при start-failure-is-fatal = true попытается запустить ресурс диспетчера ресурсов. After an automatic failover, when start-failure-is-fatal = true the resource manager will attempt to start the resource. В случае неудачи при первой попытке необходимо вручную выполнить pcs resource cleanup <resourceName> количество сбоев ресурсов очистки и сброса конфигурации. If it fails on the first attempt you have to manually run pcs resource cleanup <resourceName> to cleanup the resource failure count and reset the configuration.

Установка агента ресурсов SQL Server для интеграции с Pacemaker Install SQL Server resource agent for integration with Pacemaker

Выполните следующие команды на всех узлах. Run the following commands on all nodes.

Создайте имя входа SQL Server для Pacemaker Create a SQL Server login for Pacemaker

На всех серверах SQL Server создайте имя для входа на сервер с помощью Pacemaker. On all SQL Servers, create a Server login for Pacemaker. Следующий запрос Transact-SQL создает имя для входа: The following Transact-SQL creates a login:

Вы также можете задать разрешения на более детальном уровне. Alternatively, you can set the permissions at a more granular level. Имени для входа Pacemaker требуются разрешения на изменение, управление и просмотр определения для управления группой доступности, а также разрешение на просмотр состояния сервера для запуска sp_server_diagnostics. The Pacemaker login requires ALTER, CONTROL, and VIEW DEFINITION PERMISSION for managing the availability group as well as VIEW SERVER STATE for the login to be able to run sp_server_diagnostics. Дополнительные сведения см. в статьях GRANT (предоставление) разрешений группы доступности (Transact-SQL) и Разрешения sp_server_diagnostic. For more information, see GRANT Availability Group Permissions (Transact-SQL) and sp_server_diagnostic permissions .

Следующий запрос Transact-SQL предоставляет только разрешения, необходимые для входа с помощью Pacemaker. The following Transact-SQL grants only the required permission to the Pacemaker login. В приведенной ниже инструкции ag1 — это имя группы доступности, которая будет добавлена в качестве ресурса кластера. In the statement below 'ag1' is the name of the availability group that will be added as a cluster resource.

На всех серверах SQL Server сохраните учетные данные для входа SQL Server. On all SQL Servers, save the credentials for the SQL Server login .

Создание группы доступности Create availability group resource

Чтобы создать ресурс группы доступности, используйте pcs resource create команды и задать свойства ресурса. To create the availability group resource, use pcs resource create command and set the resource properties. Ниже команда создает ocf:mssql:ag ведущий и ведомый типа ресурса для группы доступности с именем ag1. Below command creates a ocf:mssql:ag master/slave type resource for availability group with name ag1 .

Примечание

При создании ресурса и периодически после этого агент ресурсов Pacemaker автоматически задает в группе доступности значение REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT на основе ее конфигурации. When you create the resource, and periodically afterwards, the Pacemaker resource agent automatically sets the value of REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT on the availability group based on the availability group's configuration. Например, если группа доступности содержит три синхронные реплики, агент задаст для REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT значение 1. For example, if the availability group has three synchronous replicas, the agent will set REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1. Дополнительную информацию и параметры конфигурации см. в разделе High Availability and Data Protection for Availability Group Configurations (Высокий уровень доступности и защита данных для конфигураций групп доступности). For details and additional configuration options, see High availability and data protection for availability group configurations .

Создайте виртуальные IP-адреса Create virtual IP resource

Чтобы создать виртуальный ресурс IP-адреса, выполните следующую команду на одном узле. To create the virtual IP address resource, run the following command on one node. Используйте статический IP-адрес доступен по сети. Use an available static IP address from the network. Перед выполнением скрипта замените значения между **<. >** допустимый IP-адрес. Before you run the script, replace the values between **<. >** with a valid IP address.

Отсутствует эквивалент в Pacemaker имя виртуального сервера. There is no virtual server name equivalent in Pacemaker. Чтобы использовать строку подключения, указывающая на строку имя сервера и не использовать IP-адрес, зарегистрируйте IP-адрес ресурса и имя нужного виртуального сервера в DNS. To use a connection string that points to a string server name and not use the IP address, register the IP resource address and desired virtual server name in DNS. Для конфигураций аварийного восстановления Зарегистрируйте имя нужного виртуального сервера и IP-адрес в DNS-серверов на основном сервере и сайт аварийного восстановления. For DR configurations, register the desired virtual server name and IP address with the DNS servers on both primary and DR site.

Добавить ограничение совместного размещения Add colocation constraint

Практически каждое решение в кластере Pacemaker, такие как выбор, где должны запускаться ресурс выполняется путем сравнения оценок. Almost every decision in a Pacemaker cluster, like choosing where a resource should run, is done by comparing scores. Вычисления оценки для каждого ресурса, и диспетчер ресурсов кластера выбирает узел с высший показатель для конкретного ресурса. Scores are calculated per resource, and the cluster resource manager chooses the node with the highest score for a particular resource. (Если узел имеет отрицательный показатель для ресурса, ресурс не может выполняться на этом узле.) Манипулирования решения кластера с ограничениями. (If a node has a negative score for a resource, the resource cannot run on that node.) We can manipulate the decisions of the cluster with constraints. Ограничения имеют оценку. Constraints have a score. Если ограничение имеет показатель меньше БЕСКОНЕЧНОСТИ, это только рекомендация. If a constraint has a score lower than INFINITY, it is only a recommendation. Оценка бесконечность означает, что он является обязательным. A score of INFINITY means it is a must. Мы хотим убедитесь, что первичной группы доступности и виртуальной IP-ресурс запущена на том же узле, поэтому мы определим ограничение совместного размещения с оценкой бесконечность. We want to ensure that primary of the availability group and the virtual ip resource are run on the same host, so we will define a colocation constraint with a score of INFINITY. Чтобы добавить ограничение совместного размещения, выполните следующую команду на одном узле. To add the colocation constraint, run the following command on one node.

Добавить ограничение порядка сортировки Add ordering constraint

Ограничение совместного размещения имеет неявное ограничение порядка сортировки. The colocation constraint has an implicit ordering constraint. Он перемещает виртуальные IP-адреса, прежде чем перейти в ресурс группы доступности. It moves the virtual IP resource before it moves the availability group resource. По умолчанию является последовательность событий: By default the sequence of events is:

  1. Пользователь выполняет pcs resource move группой доступности первичной из узел1 и узел2. User issues pcs resource move to the availability group primary from node1 to node2.
  2. Виртуальные IP-адреса останавливается на node1. The virtual IP resource stops on node1.

Узел2 запускает виртуальные IP-адреса. The virtual IP resource starts on node2.

Примечание

На этом этапе IP-адрес временно указывает узел2 пока узел2 по-прежнему pre-отработки отказа Вторичная. At this point, the IP address temporarily points to node2 while node2 is still a pre-failover secondary.

Источник на node1, группы доступности будет понижен до получателя. The availability group primary on node1 is demoted to secondary.

  • Группы доступности, вторичная на node2, повышается до основного. The availability group secondary on node2 is promoted to primary.
  • Чтобы предотвратить временно указывающие на узел с данными дополнительных pre-отработки отказа IP-адрес, добавьте ограничением порядка сортировки. To prevent the IP address from temporarily pointing to the node with the pre-failover secondary, add an ordering constraint.

    Чтобы добавить упорядочивания ограничение, выполните следующую команду на одном узле: To add an ordering constraint, run the following command on one node:

    Важно!

    После настройки кластера и добавить группу доступности в качестве ресурса кластера, Transact-SQL нельзя использовать для отработки отказа ресурсов группы доступности. After you configure the cluster and add the availability group as a cluster resource, you cannot use Transact-SQL to fail over the availability group resources. Ресурсы кластера SQL Server в Linux не связаны тесно как с операционной системой, как и на кластере отработки отказа Windows Server (WSFC). SQL Server cluster resources on Linux are not coupled as tightly with the operating system as they are on a Windows Server Failover Cluster (WSFC). Службы SQL Server не имеет сведений о присутствии кластера. SQL Server service is not aware of the presence of the cluster. Все взаимодействие осуществляется с помощью средства управления кластером. All orchestration is done through the cluster management tools. В RHEL или Ubuntu использовать pcs. In RHEL or Ubuntu use pcs .

    Следующие шаги Next steps


    Метки: , , ,
    Copyright 2017. Все права защищены.

    Опубликовано Июнь 6, 2017 admin в категории "Настройка ubuntu