Mac в дата-центрах

rsdylhwmq3hv0iubrsaf0djpkok.png

Недавно компания Apple представила Mac с процессорами Apple Silicon M1, которые произвели настоящий фурор. Мы решили изучить, как «домашний» Mac может поселиться в дата-центрах.
kwqcqkbc9qnd-1iz7erkxrvin_s.png
Mac Mini M1 (источник ilounge.ua)

Какие сложности?


Для большинства повседневных рабочих задач хватает серверов на Linux и Windows Server. Но, если вы вовлечены в разработку под macOS или iOS, то сервер сборки должен быть на macOS. Единственный Mac, который устанавливается в стойку — Mac Pro, который может быть избыточным. Подходящий вариант — более бюджетный Mac Mini, но официальных стоечных решений для него нет.

Mac Mini предлагает скромные возможности для модернизации: заменить можно только SSD-накопитель и оперативную память; платы расширения PCIe можно подключить в ThunderBolt-адаптеры. Более того, Mac Mini не предоставляет интерфейсов для удаленного управления платформой (BMC, IPMI), что значительно усложняет эксплуатацию Mac Mini в условиях дата-центра. Mac Mini также предоставляет «вредный» для безопасности в дата-центре Bluetooth и Wi-Fi.

Тем не менее, Mac Mini используют в дата-центрах.

Доступные решения


Высота корпуса Mac Mini — 3.6 сантиметра, что позволяет ему занять один юнит стойки, который составляет 4.44 сантиметра. Стоечные корпусы для Mac Mini достаточно разнообразны. Самые простые — это полки, на которых располагаются Mac. Более сложные — это корпусы с переходником ThunderBolt — PCI Express, позволяющие устанавливать карты расширения.
-bevksqazdwlohdn20vjhcfjkuy.png
Стоечные решения для Mac Mini (источник sonnettech.com)

Подобные решения хороши, когда серверов Mac мало. Но что делать, когда их количество превышает сотни и тысячи?

Как это сделано в Облаке?


Недавно у одного известного облачного провайдера стали доступны Mac Mini в качестве «bare metal» инстансов (пока только на Intel, без Apple Silicon).

Так как в Selectel мы активно развиваем выделенные серверы, нам стало интересно посмотреть как это реализовано в железе.

Готового шасси для Mac Mini нет, поэтому провайдеру его потребовалось разрабатывать с нуля самостоятельно. Примечательно, что Wi-Fi и Bluetooth в ОС недоступны. Согласно статье на iFixIt соответствующий модуль распаян на плате и его нельзя просто отключить. Можно предположить, что его отключают аппаратно или через конфиг FW.

Следующий интересный момент — удаленное управление. Каждый провайдер решает эту проблему по-своему. Mac Mini сообщает, что к нему подключен монитор D-1, но в клиентской панели нет доступа к KVM-сервера. Можно сделать вывод, что это используется исключительно для внутренних нужд. Для доступа к рабочему столу клиентам предлагается использовать SSH и VNC.

Команда для включения VNC-сервера через SSH в macOS
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes

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

Дальше еще интереснее, посмотрим как им удалось интегрировать в облачную инфраструктуру Mini, который нельзя ни переконфигурировать, ни подключить к нему карты расширения. В шасси установлена I/O-карта собственной разработки, выполняющая эти функции. Физически к Mac она подключается через Thunderbolt, а наружу смотрит сетевыми портами.

Этот модуль обеспечивает подключение виртуальных (!) дисков в виде блочных устройств. Подключенные накопители видны в системе как физические PCIe-диски, а внутренний SSD по умолчанию не используется. Получается, что на I/O-карте работает некая прошивка, которая подключается по сети в инфраструктуру провайдера, забирает оттуда виртуальные диски и отдает их в Mac через эмуляцию PCIe-диска. На рынке мы естественно не нашли подобных готовых решений, но технология очень похожа на NVMe over Fabric, которую предоставляют несколько вендоров продвинутых сетевых карт. Пишите в комментариях идеи, как бы вы это реализовали сами?

o-tgrbrhc5iwgj2qjwz2k4wxajy.png
Для размещения macOS используется внешний диск

Один виртуальный диск создается вместе с инстансом и используется для размещения операционной системы. Все виртуальные диски отображаются на соответствующей вкладке в ПУ и их функциональность полностью такая же как и для обычных виртуальных инстансов.

Помимо дисков эта же I/O Card реализует в себе сетевую карту на 25 Гбит/с, которая используется для подключения к локальным сетям и интернету. Максимум, который нам удалось получить — 7 Гбит/с на загрузку. Однако, нельзя быть уверенным в том, что узкое место находится со стороны облачного провайдера, так как другие ближайшие серверы Speedtest показывали худшие результаты.

oo87-wyis8ljklm0wzny5o2rayi.png

Заключение


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

pon0k4d42fpsz6dtf_cutbkv0qw.png

© Habrahabr.ru