Сколько серверов у вконтакте

Все знают, что сердце ВКонтакте — дом Зингера на Невском проспекте. Сегодня мы расскажем и покажем, где находится и как выглядит его мозг — дата-центр ИЦВА.

Как построить дата-центр?

ЦОД (центр хранения и обработки данных, он же дата-центр) — это совокупность нескольких инфраструктурных систем, которые обеспечивают надёжность и отказоустойчивость работы серверного и сетевого оборудования.

Нельзя просто поставить кучу серверов и коммутаторов. Нужно создать и поддерживать оптимальные условия для их работы. Если Вы хотите построить свой ЦОД, Вам потребуются:

  • Система электроснабжения. Тут всё ясно — серверы работают на электричестве, и их много. Стало быть, обычной розетки на 220В, скорее всего, будет маловато.
  • Система охлаждения. Даже игровая видеокарта в продвинутом компьютере требует мощного кулера. Что уж говорить о сотнях и тысячах высокопроизводительных устройств.
  • Структурированная кабельная система (СКС). Что-то должно соединять все элементы в единое целое. Вам потребуется очень много кабелей и пылкая любовь к процессу их педантичной укладки.

Это основные системы «жизнеобеспечения», самый минимум, который нужен, чтобы просто запустить оборудование. Но для настоящего полноценного дата-центра нужно кое-что ещё. А именно:

  • Система пожаротушения. Важно позаботиться о том, чтобы случайная искра не превратила Ваш новенький ЦОД в руины.
  • Система мониторинга. Вы должны вовремя узнать, если что-то пошло не так.
  • Система контроля и управления доступом (СКУД). Не стоит оставлять двери открытыми для всех желающих.
  • Охранная сигнализация. На случай, если вместо пропуска кто-то решит использовать лом.
  • Система видеонаблюдения.

Мы верим, что у Вас получится отличный дата-центр. А пока посмотрим, как выглядит наш.

Добро пожаловать в ИЦВА

Почему ИЦВА, что за название такое? ИЦВА — это исследовательский центр высоковольтного аппаратостроения, который раньше находился в здании дата-центра и работал на благо энергетической промышленности. В наследство нам достались антиутопического вида ангары с потолками на уровне пятого этажа и загадочные помещения со стенами толщиной в метр.

В четырёх машинных залах размещены 640 стоек — это более 20000 серверов и более 200 коммутаторов, роутеры и DWDM-системы ёмкостью свыше 4 Тбит/c. Здесь установлен роутер ASR9000 с серийным номером 1 — в своё время это была первая коммерческая установка такого устройства во всём мире.

В пике дата-центр генерирует более 1 Тбит/c внешнего трафика. К нашим DWDM-системам подключены более 10 крупнейших международных провайдеров и международных центров обмена трафиком, а также около 40 крупных операторов РФ.

Читайте также:  Рокетбанк как поменять телефон

Электроснабжение

Все элементы системы электроснабжения резервируются как минимум N+1.

Буквально напротив здания дата-центра находится подстанция «Восточная», от которой питание подаётся в ЦОД по двум вводам 6кВ. Далее через распределительную подстанцию и автоматический ввод резерва питание подаётся по двум независимым вводам. Вот как это выглядит на схеме (для простоты — с одним машинным залом из четырёх):

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

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

Если всё совсем плохо и на вводы от магистральной сети рассчитывать не приходится, в дело вступают источники бесперебойного питания. Их задача — обеспечить питание машинных залов на то недолгое время, пока запускаются дизель-генераторные установки.

Дизель-генераторные установки (ДГУ) поддерживают жизнь в дата-центре в случае затяжной аварии или плановых работ в системе электроснабжения. Кроме топливных баков в самих ДГУ установлена автоматическая контейнерная заправочная станция большой ёмкости. Топливо из резервуара подаётся автоматически во все ДГУ, запас рассчитан минимум на сутки. В случае необходимости бензовоз с дизельным топливом прибудет в течение двух часов.

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

Система охлаждения

Для комфортной жизни оборудования в машинных залах нужно поддерживать определённый температурный диапазон. Вот почему компании по всему миру всё чаще строят свои ЦОДы где-нибудь неподалеку от полярного круга — в таких условиях можно использовать наружный воздух для охлаждения серверов. Это называется «фрикулинг», и такой подход по праву считается самым энергоэффективным (зачем тратить энергию на охлаждение тёплого воздуха, если можно сразу взять холодный?).

У нас фрикулинг тоже используется, правда, с некоторыми оговорками. Несмотря на легендарную питерскую прохладу, летом температура воздуха всё-таки иногда поднимается выше заветных 20-25°, и его приходится дополнительно охлаждать. В зимний период, напротив, воздух слишком холодный, чтобы его можно было сразу использовать. Кроме того, что серверы могут просто переохладиться, изменение температуры приведёт к сдвигу точки росы — а конденсат такому оборудованию противопоказан. Вдобавок, воздух при такой схеме попадает с улицы, а значит, его нужно дополнительно очищать.

Читайте также:  Почему айфон завис на яблоке

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

Холодный воздух из камеры смешения или кондиционера через фальшпол или воздуховод подаётся в так называемый «холодный коридор». Это изолированное пространство между лицевыми сторонами двух рядов стоек. Вот такое:

С обратной стороны отработанный нагретый воздух попадает в «горячий коридор» — а оттуда отправляется обратно на охлаждение фреоном во внутренние блоки кондиционеров. Так достигается циркуляция чистого (без пыли) воздуха в машинном зале.

Структурированная кабельная система

Километры бережно уложенных проводов. Здесь не нужны слова.

Сколько серверов используется для поддержания социальной сети "ВКонтакте"?

Людей, не знающих про социальную сеть "ВКонтакте" становится все меньше. Заинтересовавший сегодня вопрос – индексация данных поисковыми системами. На помощь пришел плагин SeoQuake для Мозиллы. Интересным оказалось большое количество страниц в индексе MSN. Впрочем, никаких интересных данных в индексе не нашлось.

Но другое, что заинтересовало – это имена серверов, в виде cs[ЧИСЛО].vkontakte.ru, где ЧИСЛО иногда было больше полутора тысяч. И тогда возник вопрос:
Сколько серверов используется для поддержания социальной сети "ВКонтакте"?

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

Первое предположение – все сервера имеют имена указанные выше.
Второе предположение – не все имена указанного формата могут быть прописаны в DNS, потому для каждого имени определяем IP адрес.
Третье предположение – могут быть сервера, прописанные в dns, но реально не существующие. Чтобы их исключить – пробуем пинговать каждый сервер
Четвертое предположение – несколько имен может быть завязано на один адрес, потому нужно убирать дублирующиеся адреса.

Далее стал вопрос выбора верхнего предела чисел, подставляемых в шаблон имени сервера. Методом тыка было определено что при именах с числами около двух тысяч выдается все время один адрес, что наводит на мысль что все имена по шаблону, но не имеющие привязки к физическим серверам привзываются к одному из серверов. потому в качестве верхнего предела чисел при переборе имен было взято 2000.

Читайте также:  Сколько нужно самоцветов чтобы собрать в мешочек

На этом теоретические рассуждения пока заканчиваются. Далее была практика. Была написана программа которая в цикле перебирала имена серверов, определяла его IP адрес и проверяла доступность сервера попыткой пинга. Если сервер отвечал – адрес писался в файл. Осталось в полученном файле удалить дубликаты и посчитать получившееся количество адресов. Тут на помощь пришла консоль линукса

sort iplist.txt | uniq | wc -|

В результате получилось число – 1022. Т.е. 1022 публичных IP адреса связано с живыми серверами контакта. Возможно часть серверов имеет несколько IP. Но с другой стороны – возможно часть backend-ов публичных адресов не имеет (и это кажется даже более вероятным чем несколько IP на сервер). Потому думаю можно цифру использовать как первое приближение количества серверов.

Следующий вопрос – много это или мало. Берем данные из раздела "о сайте". 700 миллионов хитов в день. При равномерном распределении в пределах суток (чего не будет из-за того что аудитория русскоязычная и спит по большей части вся в одно время =) ), при равномерном распределении между 1022 серверами получаем около 8 страниц в секунду. С учетом объемов баз, прав доступа, динамических фрагментов страницы и пиковых нагрузок – весьма неплохо.

А теперь представьте 1000 компьютеров 🙂 В вашей анкете аватарка может хранится на одном компьютере, фотка из одного альбома – в другом, а контактная информация – в третьем 🙂

ВКонтакте – самый посещаемый ресурс русскоязычного сегмента сети интернет.
ВКонтакте является лидером во всех сферах, связанных с интернет-коммуникацией:
Интернет-ресурс №1 в России (Alexa) и №1 в Украине (Alexa),
самая посещаемая социальная сеть в России (TNS Gallup).
Более миллиарда страниц открывается на сайте ежедневно (liveinternet).
Это больше, чем у всех остальных крупных интернет-сайтов СНГ, взятых вместе.
Самый крупный фотохостинг в СНГ: более 6 миллионов фотографий загружается на сайт ежедневно.
Самый крупный видеохостинг в СНГ: более 800 тысяч новых видеофайлов ежедневно.
Самый крупный аудиохостинг в СНГ: более 600 тысяч новых аудиозаписей ежедневно.
Самый популярный вид общения в СНГ: более 40 миллионов сообщений отсылается ежедневно.
На декабрь 2008 года на сайте зарегистрировано около 23 миллионов пользователей.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>