Доста обичайно е да използвате облака за съхраняване на вашите данни или като опция за преодоляване на срив в случай на основна грешка. Има няколко доставчици на облачни услуги, които ви позволяват да съхранявате, управлявате, извличате и манипулирате данни чрез облачна платформа; достъпни през интернет. Всеки доставчик на облак има свои собствени продуктови предложения и уникални функции, всеки с различни модели на цена.
Microsoft Azure е един от тези възможни доставчици. В този блог ще разгледаме какви функции предлага Microsoft Azure за основно хранилище, като сайт за аварийно възстановяване, и по-специално как се справя със смесена среда на база данни PostgreSQL.
Разгръщане на екземпляр на база данни PostgreSQL в Microsoft Azure
Преди да изпълните тази задача, трябва да решите как ще използвате този екземпляр и кой продукт на Azure е най-подходящ за вас. Има два основни начина за внедряване на PostgreSQL екземпляр в Microsoft Azure.
- База данни Azure за PostgreSQL :Това е управлявана услуга, която можете да използвате за стартиране, управление и мащабиране на високодостъпни PostgreSQL бази данни в облака. Предлага се в две опции за внедряване:единичен сървър и хипермащаб.
- Виртуална машина :Осигурява при поискване, високомащабна, сигурна, виртуализирана инфраструктура. Той има поддръжка за Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian и Windows Server и ви позволява да разработвате, тествате, стартирате приложения и да разширявате вашия център за данни само за няколко секунди.
За този блог ще разгледаме как можем да създадем база данни Azure за PostgreSQL и да използваме виртуална машина Azure от портала на Microsoft Azure.
Разгръщане на база данни на Azure за PostgreSQL
Ако отидете на вашия Azure Portal -> Създаване на ресурс -> Бази данни -> Azure Database за PostgreSQL, ще можете да избирате между единичен сървър или хипермащаб. За този блог ще използваме единичен сървър, тъй като опцията Hyperscale е на предварителен преглед и все още не предлага SLA.
Тук трябва да добавите малко информация за вашия нов PostgreSQL екземпляр; като абонамент, име на сървър, потребителски идентификационни данни и местоположение. Можете също да изберете коя версия на PostgreSQL да използвате (в момента са налични версии 9.5, 9.6, 10 или 11) и виртуалния хардуер, за да я стартирате (Compute + Storage).
Когато посочите хардуера, ще видите прогнозната цена в реална -време. Това е наистина полезно, за да избегнете голяма изненада следващия месец. След тази стъпка просто трябва да потвърдите конфигурацията на ресурса и да изчакате няколко минути, докато Azure завърши задачата за създаване.
Когато създадете новия ресурс, можете да отидете на Всички ресурси, за да видите наличните опции за ресурс.
В създадените опции за ресурс можете да отидете на Репликация, за да го активирате и репликирайте от главния сървър до до пет реплики. Трябва също да проверите раздела Защита на връзката, за да активирате или деактивирате външен достъп. За да научите информацията за достъп, трябва да посетите секцията с ресурси за преглед.
$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres
Password for user [email protected]:
psql (11.5, server 11.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=>
Отказ при отказ на база данни Azure за PostgreSQL
За съжаление не е налично автоматично превключване при отказ между главния и реплики сървъра. Ако обаче изтриете главния екземпляр, Azure ще изпълни процес на отказ, за да популяризира репликата по автоматичен начин.
Има опция за ръчно изпълнение на тази задача за преодоляване на срив, което изисква да спрете репликата и конфигурирайте новата крайна точка във вашето приложение, за да сочи към новия главен обект. Репликата ще бъде популяризирана и премахната от капитана. Няма начин да свържете отново тази реплика към своя главен.
Внедряване на PostgreSQL на виртуална машина Azure
Ако отидете на вашия Azure Portal -> Създаване на ресурс -> Compute -> Virtual Machine, ще отворите секцията Създаване на виртуална машина, където можете да зададете различни конфигурации за вашата нова виртуална машина Azure .
В основния раздел трябва да посочите абонамент за Azure, регион, наличност опции, операционна система, размер на сървъра, идентификационни данни за достъп (потребителско име/парола или SSH ключ) и правила за входяща защитна стена.
В раздела на диска трябва да посочите хранилището (тип и размер) за вашата нова виртуална машина. Типът диск може да бъде Standard HDD, Standard SSD или Premium SSD. Последният се препоръчва за високо натоварване на IOPS.
В раздела за работа в мрежа можете да посочите виртуалната мрежа, публичен IP адрес и разрешените входящи портове. Можете също да добавите тази нова виртуална машина зад излизащо решение за балансиране на натоварването на Azure.
В следващия раздел имаме някои опции за управление, като наблюдение и архивиране .
И накрая, в раздела за разширени, можем да добавим разширения, облачни init или хост групи.
След като прегледате предишната опция и я потвърдите, вашата нова виртуална машина ще бъде създадена и достъпна от портала Azure. В секцията Ресурс -> Общ преглед можете да видите информацията за достъп до виртуална машина (обществен/частен IP адрес).
Сега можете да получите достъп до него чрез SSH и да инсталирате базата данни PostgreSQL с помощта на ClusterControl .
$ ssh 23.102.177.27
Last login: Mon Sep 23 21:33:27 2019
[[email protected] ~]$
Можете да проверите тази връзка, за да видите стъпките за изпълнение на внедряването на PostgreSQL с ClusterControl.
Отказ при отказ на PostgreSQL на виртуална машина Azure
Възстановяването при бедствия е функция за виртуална машина в секцията Операции, която ви позволява да репликирате вашата среда в друг регион на Azure. За да го активирате, трябва да изберете целевия регион. В раздела Разширени можете да промените конкретните подробности за целта; като виртуална мрежа, настройки за съхранение и настройки за репликация.
Когато възстановяването при бедствие е активирано, ще можете да проверите състояние на репликация, тествайте процеса на отказ или ръчно преминаване към него.
Активирането на това ви позволява да имате опция за преминаване при отказ в случай на неуспех. Това обаче ще бъде отказ за цялата среда, а не само за услугата на базата данни.
Подобрен процес на отказ от PostgreSQL за Microsoft Azure
Тъй като имате SSH достъп, можете да подобрите този процес на отказ, като импортирате виртуалната машина (или дори разгръщате базата данни PostgreSQL) с ClusterControl.
Ако управлявате възлите на базата данни с ClusterControl (и ако опцията „Автоматично възстановяване“ е ВКЛЮЧЕНА) в случай на повреда на главния, ClusterControl ще популяризира най-напредналото подчинено устройство (ако не е в черния списък ), за да овладеят, както и да ви уведомят за проблема. Освен това автоматично се проваля над останалите подчинени устройства, за да се репликират от новия главен.
С ClusterControl вие дори разгръщате смесена среда с някои възли в облака и други възли на премиум. Можете също да добавите балансьори на натоварване към вашата топология, за да подобрите нашата среда с висока наличност. Можете да намерите повече информация по тази тема тук.
Заключение
Azure има много функции и продукти, за да предложи решение на ниво предприятие. По време на тези тестове обаче основният проблем, който открих, беше, че времето за създаване и преодоляване на отказ е твърде дълго за повечето нужди на приложенията.
Ако имате нужда от бърз отказ и възстановяване, трябва да подобрите наличността на средата, като използвате балансьор на натоварване или външна система като ClusterControl, за да намалите времето на престой. За по-подробна информация относно стартирането на PostgreSQL в Microsoft Azure можете да разгледате нашия блог за дълбоко гмуркане.