Недавно компания Apple представила Mac с процессорами Apple Silicon M1, которые произвели настоящий фурор. Мы решили изучить, как домашний Mac может поселиться в дата-центрах.
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, позволяющие устанавливать карты расширения.
Стоечные решения для 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.
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, которую предоставляют несколько вендоров продвинутых сетевых карт. Пишите в комментариях идеи, как бы вы это реализовали сами?
Для размещения macOS используется внешний диск
Один виртуальный диск создается вместе с инстансом и используется для размещения операционной системы. Все виртуальные диски отображаются на соответствующей вкладке в ПУ и их функциональность полностью такая же как и для обычных виртуальных инстансов.
Помимо дисков эта же I/O Card реализует в себе сетевую карту на 25 Гбит/с, которая используется для подключения к локальным сетям и интернету. Максимум, который нам удалось получить 7 Гбит/с на загрузку. Однако, нельзя быть уверенным в том, что узкое место находится со стороны облачного провайдера, так как другие ближайшие серверы Speedtest показывали худшие результаты.
Заключение
Эксплуатация Mac Mini в дата-центрах сопряжена с определенными трудностями. Но, при должном подходе из них можно сделать платформы, незначительно отличающиеся по использованию от привычных серверных или даже облачных решений.