В ноябре мы писали о том, что наша техника уже не молода, и сейчас расскажем про нее подробнее, потому что день серьёзного апгрейда настал.

В конце марта многие пользователи столкнулись с проблемой доступа к дневникам, избранному, дискуссиям (им выдавался код ошибки: #1:0). Причина была в том, что вышел из строя один из серверов базы данных, потому были недоступны дневники, располагающиеся на этом сервере, а также избранное с этого сервера. Нам удалось в срочном порядке и без потери данных переключиться на резервный сервер (sql-backup), а сам процесс бэкапа данных временно отключить.

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



Что мы имеем.
У нас четыре сервера баз данных: sql-main, sql-1, sql-2, sql-3 и резервный sql-backup, на котором 1) ежедневно, 2) еженедельно, 3) ежемесячно и 4) один раз в полгода создаются резервные копии базы данных — каждая из этих копий периодически требуется для восстановления базы данных после каких-нибудь сбоев.

Ночью 27 марта из строя вышел совсем старый сервер sql-1 (и сейчас его заменяет sql-backup). Два других сервера базы данных — sql-2 и sql-3 — такие же старые и могут рухнуть в любой момент.

1. Диски в них — древние SCSI, стоят неоправданно дорого, так как производятся малыми партиями.
2. Купить новые диски и вставить в старые сервера нельзя.
3. Покупать дорогие SCSI и вставлять их в старые маломощные сервера, в которых к тому же в любой момент может выйти из строя память, процессор и другие части, не имеет никакого смысла, ибо через полгода-год придется все это выбрасывать и покупать новый сервер.
4. Сервер sql-backup — это, если помните, четырехлетний относительно свежий (бывший сервер "Юга.ру", который мы освободили после переноса Югов в облако) с новыми дисками, которые мы с вами купили осенью.
5. sql-main — еще бодрый сервер с достаточно прочной дисковой системой SAS, мы покупали его для Дайри лет 5-6 назад.

Тщательно взвесив все за и против, в очередной раз рассмотрев дорогой для нас вариант перехода в облако (аренда по нашим запросам стоит ~350 тыс. рублей в месяц), мы пришли к выводу, что оптимальным решением будет покупка двух новых мощных серверов по 250 тыс. руб. каждый, которые с большим запасом заменят нам три старейших сервера базы данных: sql-1, sql-2, sql-3, а если в будущем выйдет из строя sql-main, то и его тоже.

В итоге:
— sql-1 будет лежать на складе, пригодный только на запчасти,
— по sql-2, sql-3 проведем ревизию и будем использовать для разработки и целей системного администратора.

Серверам be-2, be-3, be-4 тоже по 11 лет, be-5, be-6 посвежее (~6 лет). Выход одного из них не остановит работу сайта, его нагрузка перераспределится между остальными, как это было в свое время с умершим be-1.

Сервер userdir (это второй "юговский" сервер с купленными осенью новыми дисками) хранит и выдает "статику" — картинки и стили с адресом static.diary.ru.

Есть еще сервер fe-1 и не показанный в схеме сервер общего назначения. Они также не молоды, но работают надежно, с нагрузкой справляются и... дай бог им здоровья, в общем.

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

       

Мы уверены, что после запуска новых серверов Дневники станут работать быстрее и надежнее.

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