Архив автора: Иван Кудрявцев

Мягкое отключение услуг в Cloud2 при отрицательном балансе

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

Мягкое отключение работает в два шага:

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

Этот двухэтапный процесс позволяет абоненту не сталкиваться с ситуацией немедленной остановки виртуальных машин, что в совокупности с SMS-уведомлениями, позволяет своевременно произвести оплату.

Ключевой элемент мягкого отключения — Мягкий лимит в днях до остановки VM, который выполняет функцию кредита доверия в системе:

После создания услуги он равен 14 дням — это максимальный кредит доверия. На практике это означает следующее: при возникновении отрицательного баланса аккаунта, виртуальные машины будут работать еще 14 дней, после чего будут отключены.

Кредит доверия может как уменьшаться, так и увеличиваться и оставаться неизменным, в зависимости от того, как скоро абонент внес средства после возникновения отрицательного баланса:

Увеличение кредита доверия. Баланс пополнен в текущий или следующий день после отключения. Кредит доверия увеличится на 1 день. Максимум — 14 дней.

Неизменность кредита доверия. Отрицательный баланс возник в пятницу, а средства внесены до первого понедельника включительно.

Уменьшение кредита доверия. Пополнение баланса произведено в ином графике. В этом случае кредит доверия рассчитывается по следующей формуле:

{Новый кредит доверия} = {Текущий кредит доверия} - {Просрочка} + 1

Если {Новый кредит доверия} < 1, то {Новый кредит доверия} = 1

Например, отключение произошло 20 мая, пополнение счета произошло 24 мая, текущий кредит доверия — 14 дней. Новый кредит доверия 14 — (24 — 20) + 1 = 11 дней. При возникновении следующего отрицательного баланса VM отключатся не через 14, а через 11 дней.

Если у вас произошло опустошение счётчика кредита доверия, то он полностью восстановится через 120 дней без отключения услуги (безостановочный период).

Если пользователь настроил уведомление по SMS для Cloud2, то при отключении VM пользователю отправляется SMS вида: NetPoint: Аккаунт <cloud2name> выключен, все VM остановлены.

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

Улучшение в Cloud2: уведомление по SMS при остановке, отключении VM и активации услуги

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

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

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

Пример такой настройки вы можете видеть на снимке экрана, приведенном ниже:

Номер телефона для уведомлений можно задать в формате +79998887777 или 79998887777.

Для задания номера телефона для SMS-уведомлений для услуги необходимо дважды кликнуть на услугу в биллинге, заполнить указанное поле и сохранить изменения.

Настройка сервера Linux для Tornado в CentOS 7, Debian 9 Stretch, Ubuntu 18.04 Bionic

Tornado — популярный минималистичный фреймворк для разработки web-сервисов с помощью Python. Он часто применяется как для создания обычных сервисов с RESTful-интерфейсом, так и для реализации приложений, использующих Websocket, что идеально реализуется с помощью асинхронных функций языка.

Разработка фреймворка ведется на GitHub. На следующем изображении вы можете видеть, что Tornado активно разрабатывается сообществом:

Настройка сервера для продуктового использования Tornado сопряжена с рядом дополнительных действий, которые требуется выполнить для преодоления ограничений однопоточной природы сервера Tornado — для утилизации всех ядер сервера на многоядерных CPU необходимо запустить несколько экземпляров сервера Tornado и распределить нагрузку между исполняющимися экземплярами с помощью балансировщика нагрузки.

Закончив чтение данного руководства, вы научитесь самостоятельно настраивать минималистичный сервер для для Tornado без лишних компонентов. Ваше приложение будет доступно по защищенному протоколу HTTPS с поддержкой бесплатного сертификата Let’s Encrypt, балансировка трафика между выполняющимися экземплярами приложения Tornado будет осуществляться с помощью Nginx.

Читать далее

Настройка высокодоступного, масштабируемого отказоустойчивого сайта с помощью Nginx, GlusterFS и MySQL Galera в Linux

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

Сайт без единой точки отказа становится де-факто требованием в мире, где большинство операций выполняются дистанционным образом. Простои обходятся дорого, особенно, если они происходят в неподходящее время — праздники, выходные, высокий сезон.

В этой статье мы рассмотрим как настроить высокодоступный сайт на трех узлах, которые могут быть как виртуальными так и аппаратными серверами. В ходе настройки мы будем использовать Nginx, СУБД MariaDB (MySQL), распределенную файловую систему GlusterFS, CDN CloudFlare, сертификаты Let’s Encrypt.

Читать далее

Настройка отказоустойчивого кластера MySQL с синхронной мульти-master репликацией с помощью Galera в Ubuntu, Debian и CentOS Linux

Синхронная мульти-master репликация в MySQL появилась сравнительно недавно, однако была востребована довольно давно. До этого момента пользователям приходилось использовать либо репликацию в режиме Master-Slave и переключать операции записи на ведомый сервер при отказе главного сервера, либо использовать довольно сложный вариант с Master-Master репликацией на основании двунаправленной Master-Slave репликации.

Стоит отметить, что в конфигурации Master-мульти-Slave реализация автоматического переключения становится сложнее и не всегда возможна без человеческого вмешательства. Более того, репликация Master-Slave является не полностью синхронной, отчего могут быть проблемы с потерей данных при выходе сервера Master из строя, если ведомый сервер существенно отстал.

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

Читать далее

Улучшение безопасности: новый генератор случайных чисел для VM Cloud2

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

Показатель энтропии очень важен для быстрой работы многих криптографических функций, что может выражатся в медленной генерации ключей или задержке при установлении SSL/TLS соединений. Если энтропия низкая, эти операции могут работать медленно или блокироваться для ожидания накопления нужного количества энтропии.

Узнать текущий показатель энтропии для машины можно с помощью команды:

cat /proc/sys/kernel/random/entropy_avail
120

Если он низкий (меньше 250), то это может стать проблемой. Теперь вы можете решить эту проблему с помощью приведенных далее инструкций.

Linux

Установите пакет rng-tools для вашей системы:

# Ubuntu/Debian
sudo apt-get update && sudo 
apt-get install -y rng-tools

# CentOS 7
yum install -y rng-tools
systemctl start rngd
systemctl enable rngd

Зайдите в панель управления VM, выключите VM и включите ее снова. Убедитесь, что показатель энтропии вырос по сравнению с предыдущим замером:

cat /proc/sys/kernel/random/entropy_avail
3124

MS Windows

  • Зайдите в панель управления VM. Выключите VM и включите ее снова.
  • Установите драйверы VirtIO с ISO, который находится в списке доступных.
  • При необходимости перезагрузите операционную систему VM.

Настройка синхронизации файлов между серверами с помощью SyncThing

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

Читать далее

Настраиваем распределенную файловую систему GlusterFS на трехузловом кластере под управлением Linux

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

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

Читать далее

Шаблоны NetPoint для виртуальных машин Cloud2

На этой странице перечислены готовые шаблоны для быстрого развертывания виртуальных машин, которые наша команда поддерживает в актуальном состоянии для облака Cloud2. Здесь не перечислены шаблоны и ISO, которые загружены пользователями. Все шаблоны распределены по группам:

Читать далее

Выгрузка, загрузка и распространение образов контейнеров Docker в виде архива

Стандартный способ распространения образов Docker — использование репозиториев Docker, которые позволяют как опубликовать вновь созданные образы, так и скачать их для локального использования. Развернуть локальный реестр Docker можно за 1 минуту, однако, для полноценного использования требуется больше действий, например, установка SSL-сертификата и поддержка авторизации.

Бывают случаи, когда серверы, на которых планируется выполнять контейнеры, созданные из образов, полностью изолированы от сегмента сети и не могут скачать себе образ из реестра. В этом случае у разработчиков возникает необходимость каким-то образом сформировать образ контейнера на сервере. Команда docker build тоже часто не подходит, поскольку большинство образов при сборке скачивает зависимости и необходимые слои из сети. Если хост не имеет подключения к сети, то и скачать ничего не сможет.

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

Читать далее