Подробности о серверах Facebook Open Compute для облачных задач

Облако = x86 + открытый исходный код

По большому счёту, базовая архитектура Facebook не особо отличается от других высокопроизводительных веб-сервисов. Однако, Facebook – рекламное детище облачных приложений нового поколения. Его высокая популярность и высокая степень интерактивности сами по себе требуют гораздо большей масштабируемости и доступности, чем обычный сайт, предоставляющий, главным образом, информацию или простенький сервис.

Использование облачных систем

Поколение «облачных приложений» не использует классические высокоуровневые принципы избыточности с массивными реляционными системами управления базами данных. Сочетание x86 scale-out кластеров, открытого программного обеспечения и «неSQL» – это то, на чём основаны Facebook, Twitter, Google и другие системы.

Тем не менее, в Facebook собрали некоторые фрагменты головоломки в открытом исходном коде программного обеспечения, дабы сделать его более пригодным для экстремальной масштабируемости. Разработчики Facebook выбрали язык PHP в качестве представительского уровня, потому что он прост в освоении, на нем легко писать и его код легко читаем. Не смотря на это, PHP очень требователен к CPU и памяти.

Использование облачных систем

Если верить данным самой Facebook, код PHP почти в 39 раз медленнее, чем C++. Таким образом, было очевидно, что Facebook сперва должна решить эту проблему. Традиционный подход состоит в том, чтобы переписать наиболее производительные критические фрагменты кода на C++ в качестве расширений PHP, но в Facebook решили применить другой подход: разработчики усовершенствовали HipHop – преобразователь исходного кода. HipHop преобразует исходный код PHP в быстрый C++ код и компилирует его с g++.

Следующий фрагмент головоломки в Facebook – Memcached. Memcached – это программа, реализующая кэширование данных в оперативной памяти, с некоторыми очень интересными возможностями. Memcached – распределённая кэширующая система; это означает, что кэширование оперативной памяти посредством Memcached может охватывать множество серверов. В данном случае под понятием «кэш» следует понимать совокупность более малых кэшей. В основном, кэш рекуперируется за счёт неиспользуемой оперативной памяти, которая, вероятно, будет расходоваться операционной системой на менее эффективное кэширование файловой системы. Эти «кэш-узлы» не синхронизируются и не пересылаются, и в результате кэш памяти отлично масштабируется.

Относительное время на выполнение инструкций на разных языках

Facebook быстро стала крупнейшим в мире пользователем технологии memcached и значительно улучшила её. Разработчики портировали технологию для поддержки в 64-битных системах, снизили использование памяти в TCP, включили поддержку многоядерности (раньше использовалось только одно ядро) и т.д. На сегодняшний день, Facebook в основном применяет технологию memcached для облегчения нагрузки на базы данных.

Сервер Facebook

В цокольном этаже штаб-квартиры Facebook в Пало-Альто, Калифорния, три инженера компании на заказ разработали серверы, блоки питания, серверные стойки и системы резервного питания, да такие, которым позавидует любой сервер hp. Сервер Facebook должен был стать намного дешевле, чем среднестатистический сервер, а также более энергоэффективным. Свой проект они назвали Open Compute Project, привнеся идеи открытого исходного кода в аппаратную часть серверов.

Сервер OpenCompute

Первое, что они изменили, была высота шасси. Был выбран формат 1.5U как компромисс между занимаемым объёмом и возможностью хорошего охлаждения сервера. Формат 1.5U позволяет использовать более высокие радиаторы, более крупные (60x60 мм) тихоходные вентиляторы, а не пронзительные «сороковки», пожиратели энергии, используемые в 1U-шасси. В результате, вентиляторы потребляют всего-навсего от 2% до 4% общей электрической мощности, что довольно удивительно, так как известно, что 1U-вентиляторам может требоваться до одной трети общего объёма энергопотребления системы. Кажется, что воздушное охлаждение в Open Compute 1.5U-сервере является таким же эффективным, как и в 3U-серверах, считавшихся до этого лучшими по параметру энергоэффективности.

Вид сверху ну сервер Facebook Open Compute

В то же время, отдел разработок Facebook использует очень простые шасси, в которых нет деталей из пластика. Движение воздуха внутри сервера при этом становится более равномерным, а вес снижается за счет уменьшения количества деталей в корпусе. Нижняя стенка одного сервера служит верхней для сервера под ним. Я видел, как в одном из дата-центров не хватало места в стойках и один на другой были установлены несколько серверов hp proliant dl360 g6. Честно сказать, выглядело это странным образом.



Комментарии

Похожие статьи:

Вертикальное крепление серверов на стену

Интересное решение для домашних лабораторий, небольших тестовых помещений или необслуживаемых пунктов, где размещаются 1-2-3 единицы оборудования, и каждый квадратный сантиметр - на вес золота

Обзор материнской платы ASRock Rack E3C242D4U2-2T для бюджетного офисного сервера

Практически, когда тебе нужно решение для хоста, на котором крутятся шлюз безопасности, сервер 1С и нода Kubernetes, можно даже отказаться от ECC памяти в пользу Core i5, Core i3 и даже Pentium Gold. В общем, там где нужна высокая

Диверсификация поставщика CPU: чем заменить Intel в условиях санкций

А что если завтра в связи с очередным обострением, вам запретят покупать серверы на базе Intel, а ваша EMC без техподдержки превратится в тыкву? Там, "наверху", рассматривают и такой вариант, и ваш корпоративный ЦОД должен уже с