• nav


Подробности о серверах 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. Честно сказать, выглядело это странным образом.

Facebook разработала материнские платы под процессоры AMD и Intel; производятся материнки на заводах Quanta. Большое внимание было уделено КПД вольтмодов (КПД = 94%). Очередная задумка заключалась в том, чтобы убрать что-нибудь, без чего можно было бы обойтись. У этих материнок отсутствует BMC-мониторинг, у них по два USB и RJ45 порта, один слот расширения и они лишены встроенной графики.

Материнская плата под Intel

Единственное, что доступно системному администратору удалённо, это перезагрузка по локальной сети ("reboot over LAN"). Идея заключается в том, что если это не помогает, то проблема в 99% случаев серьёзная настолько, что приходится в любом случае отправлять системного администратора к серверу. Так зачем иметь лишние компоненты, удорожающие продукт?

Материнская плата под AMD

Машины на процессорах AMD, в основном, используются в качестве Memcached-серверов, так как процессоры AMD Magny-Сours Opteron 6100 имеют 4 канала шины HyperTransport и могут использовать 12 DIMM слотов на каждый процессор – в сумме это 24 DIMM слота на системную плату. Таким образом, может быть задействовано до 384 ГБ кэшируемой памяти, и это самая дешевая платформа для установки такого объема памяти в один сервер.

Для сравнения, Facebook Open Compute серверы, в которых используются процессоры Xeon, имеют только 6 слотов DIMM и используются в задачах с высокой процессорной загрузкой: они применяются в качестве PHP «ассемблируемых» серверов данных.

Блоки питания с двумя шинами

Блок питания имеет два входных разъема: один для работы от 277 В переменного тока, а другой – от постоянного в 48 В. Блок питания может проработать около 10 минут от шины в 48 В, прежде чем перегреется и выключится, поэтому он не рассчитан на непрерывную работу от постоянного тока в 48 В. Идея использования шины постоянного тока в 48 В заключается в том, чтобы уйти от традиционной системы UPS: в течение нескольких минут аккумуляторы должны поддерживать работу серверов, пока не будет восстановлено питание по шине переменного тока в 277 В.

Блок питания с двойным питанием

Откуда берется 277 Вольт? В США стандарты электропитания несколько другие, в коммерческие здания и на предприятия. И 277 Вольт образуются при вводе подключении вывода по схеме 3 фазы + нейтраль при 480 Вольтах на входе (3 фазы, звезда).

КПД блока питания чрезвычайно высок – до 94,5%.

Блок питания с двойным питанием

Используя напряжение в 277 В, Facebook удаётся экономить около 3-4% потребляемой энергии по сравнению с напряжением в 208 В – результат более низкой потери тока при передаче.

Выводы

Традиционные серверы, такие как HP DL380 G7, можно считать очень эффективными по сравнению с серверами предыдущих поколений. Встроенный графический адаптер позволяет управлять через консоль с IP KVM, а для удаленного управления и мониторинга парка серверов, Hewlett Packard создала замечательную систему управления Integrated Lights Out.

Серверы Facebook Open Compute – это очень интересный виток эволюции. Облачные сервисы, построенные на серверах, теперь строят собственные серверы для облачных сервисов. Интересно, правда?

Сам по себе тип сервера, разработанного компанией Facebook, будет интересен как Cloud-only решение, доступное для дата-центров, предлагающих различные облачные продукты. Едва ли он появится в открытой продаже, но вполне возможно, что решения, примененные в этом проекте, вдохновят крупнейших производителей серверов, Dell, HP, IBM и Supermicro на создание собственных серверов подобного типа.

Мы благодарим компанию "Телеком ИТ", поставщика серверного оборудования, за помощь в подготовке статьи.

03/02.2011





ПОХОЖИЕ СТАТЬИ:

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

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

Что такое Edge Computing и почему граничные вычисления - это побег из облака

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

Обзор видеокарты Palit GTX 1660 Super: тестируем новинку в задачах вычислений и машинного обучения

Новая серия видеокарт GTX 1660 Super интересна, прежде всего, памятью GDDR6, имеющей высокую пропускную способность. Это именно то, что надо для задач машинного обучения и работы в Tensorflow. Как минимум, вы можете создать собст...

Переход с Intel Xeon на AMD EPYC: развенчиваем мифы, обходим подводные камни

Рядовые сисадмины и крупные IT-директора, когда речь заходит об AMD, задают порой совершенно детские вопросы, а мы на них отвечаем. Совместимость с существующим стэком, снижение TCO, вопросы производительности и поддержки.

...

5 основных отличий рабочей станции от настольного ПК

И маленький компьютер для бухгалтера, и рендер-станцию на 6 видеокарт в понимании производителей ПК можно обозвать словом «Workstation», так что если уж руководство поставило перед вами задачу выбора «Рабочей станции», то чтобы не ...


НА ФОРУМЕ ГОВОРЯТ



НОВЫЕ СТАТЬИ
Обзор трёх miniITX корпусов CrownMicro серии CMC-170

Сегодня речь пойдёт о трёх корпусах бренда CrownMicro для сборки ультракомпактных miniITX систем, а именно: CMC-170-113, CMC-170-303 и CMC-170-803. Эти модели имеют стильный дизайн, внешние блоки питания, VESA крепление...

Экспресс-тест видеокарты Palit GeForce RTX 2080 Super в задачах машинного обучения

Если вы выбираете GPU не только для игр, но и для научных расчётов, вам интересно видеть видеокарту с тензорными ядрами и современной памятью GDDR6 объёмом 8 Гб. Благодаря поддержке FP16, в некоторых теслах она показывает...