[Из песочницы] Еще один сервер из подручных средств с претензией на красоту

0b02a5a097a145e0ba4b0cdc71e635cd.JPG

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

P.S. много фото.

Вступление


Мысль собрать что-то вроде маленького сервера витала давно. Сначала были идеи сделать его без корпуса и убрать куда-нибудь подальше, лишь бы выполнял свою роль. Этот подход хорош в том плане, что при минимальных затратах усилий и времени он дает свой результат, но было одно «но»: просто соединить проводки и установить систему совсем не интересно. Так и родилась идея сделать все максимально красиво и функционально.

Хотелки были следующие:

  • полноценная х86 система;
  • наличие как минимум 3 жестких дисков: 2 в зеркале и 1 под торренты;
  • возможность использования в качестве медиацентра;
  • компактность (относительно ATX корпусов);
  • внешний вид, который бы радовал глаз;
  • небольшой бюджет.


Исходя из этих целей, была выбрана материнская плата форм-фактора Mini-ITX с распаянным процессором и встроенным видео. Это и стало отправной точкой постройки корпуса.

Постройка корпуса


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

Максимальная ширина была продиктована шириной жесткого диска 2.5 дюйма и составила 80 мм, глубина — габаритами материнской платы, с запасом было взято 180 мм. Высота же напрямую зависела от компоновки, впустую раздувать габариты не хотелось, поэтому все располагалось максимально компактно. В конечном итоге высота, не считая подставки, была выбрана 500 мм. Чертежей не было, только набросок на листке бумаги, все остальное делалось по месту, ввиду невысокой сложности проекта.

c7c1bf0ee62043bd97cf491c691be816.jpg

Каркас собирался из алюминиевого уголка со стороной 10 мм и толщиной стенки 1.2 мм. Материал легкий, прочный, удобный в обработке, стоил на момент покупки около 15 рублей за метр. Для того чтобы все размеры были точными, отпиливались вместе сразу 4 уголка при помощи болгарки, закрепленной в стойке, таким способом удалось легко избежать кривизны конструкции из-за разной длины деталей.

Для соединений уголков между собой использовался заклепочник. Сверление отверстий под заклепки производилось, предварительно совместив 2 уголка друг с другом и зафиксировав их под прямым углом, после сверловки сразу производилась клепка. Таким образом были получены 2 боковых рамки.

236ebe7f061f4bde81daaaecd353ff16.jpg

Потом они приклепались к основанию из металлической пластины нужного размера (коих в любых количествах полно в строительных магазинах), а сверху были добавлены 2 связывающих уголка.

e68836e27f5f4bd1857ceb89595f567f.jpg

Затем добавились крепления для платы блока питания, от корпуса которого отказался еще на этапе компоновки. Под блоком питания располагается материнская плата, ниже — крепление для двух жестких дисков 3.5 дюйма, расположенных вертикально на боку, а под ними — корзина на 4 диска форм-фактора 2.5 дюйма. Все эти элементы значительно увеличили жесткость конструкции.

c94e82b559ea41b88ed046fb27ae27c4.jpg

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

Также был укорочен шлейф проводов от блока питания до материнской платы, а не востребованные линии просто выкусил.

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

Раз было решено все сделать красиво, то понадобились соответствующие материалы для отделки. Идей было много: от листового металла до цельной коробки из искусственного камня, но вес и трудоемкость процесса были неоправданно высоки. Многие советовали не париться и сделать из оргстекла. По эстетическим причинам это было неприемлемо, да и как-то попсово, чего не скажешь об обычном стекле. Первый вариант был из бесхозного стекла толщиной 2.5–3 мм, правда, пока вырезал 4 стенки нужного размера, побил пару квадратных метров, чтобы научиться, но это все мелочи. После раскроя — обработка краев наждачкой и сверловка отверстий.

Отдельно хочу остановиться на сверловке. Сверлить стекло удобнее всего получалось дрелью в стойке или сверлильным станком на малых оборотах с алмазным трубчатым сверлом по стеклу или кафелю. Место сверления всегда должно быть заполнено водой, что помогает избежать стеклянной пыли и перегрева стекла. Насквозь лучше не сверлить во избежание сколов, а дойдя до середины, перевернуть и досверлить с другой стороны.

717164eb92c6468fa74a782b483daba1.JPG

b2c2d853ee144f03b0739a944d20b64e.jpg

Как однажды сказал Генри Форд: «Машина может быть любого цвета, при условии, что он черный». А чем это не машина? Так что однозначно черный!

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

И вот все это было установлено на раму и выглядело даже прикольно, но возникли проблемы: краска в местах соприкосновения с рамой из-за слабой агдезии стекла царапалась, и появлялись некрасивые просветы. Ко всему прочему стекло 2.5 мм выглядело совсем хлипким, хоть за год с ним ничего и не случилось, также крепежные винты требовали замены на что-то более эстетичное.

Спустя год пришло время переосмысления внешнего вида: теперь стенки изготовлены из стекла толщиной 6 мм и имеют вес, не уступающий всей конструкции в сборе. В этот раз все было заказано в стекольной мастерской и выглядело просто отлично, правда, отверстия все же пришлось сверлить уже по месту.

df0a25ff0e13471caa8852da23be003a.JPG

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

bcc4823588f14fd4bfcedf80e7872030.JPG

Также была покрашена ножка и другие менее значимые элементы конструкции. И еще один из плюсов крашеного стекла: оно все-таки пропускает свет, о чем и пойдет речь дальше.

Индикация и контроль


Исходя из требований красоты и функциональности был просто необходим свой контроллер со следующими требованиями:

  • управление 4 группами RGB-светодиодов;
  • управление 4 кулерами;
  • считывание 4 датчиков температуры; возможность отключать систему;
  • USB-соединение с сервером.


Под все это была разведена простенькая односторонняя печатка на чипе STM32F103.

ce017c3e915e4e84baad351c504eb00d.JPG

Светодиоды управляются через полупрограммный ШИМ. С кулерами все немного сложнее: первые попытки управления были также с помощью полупрограммного ШИМа, но при низкой частоте появлялся неприятный писк из-за совпадения частоты ШИМа с несущей частотой мотора кулера, т.е. была необходима высокая частота. В связи с этим был использован аппаратный ШИМ с частотой 32 кГц. Правда, повезло в том, что выводы аппаратного ШИМа частично попадали на те же ноги, что и программный, а частично на резервные линии, что были рядом.

В качестве термодатчиков использованы терморезисторы, подключенные по мостовой схеме.

Изначально в качестве силовых драйверов были использованы ULN2003, как на светодиоды, так и на кулеры, с той разницей, что первые питались от 5 В, а вторые — от 12 В. Но как оказалось, 3.3 В не хватает для полного открытия ключа при 12 В, и все уходит в нагрев, в этот момент пришлось приколхозить 2 сборки из полевых транзисторов, рассчитанных именно на низковольтный ШИМ (N6302). Еще один нюанс с USB: подтяжки контроллера не хватило на то, чтобы произошло определение устройства, поэтому пришлось сверху напаять еще дополнительный резистор с линии D+ к +3.3В.

f0b7631024e84e3093b7fcd15f3bfeb6.JPG

Питание микроконтроллера происходит от шины дежурного напряжения блока питания, светодиоды и кулеры же запитываются от основных линий +5 В и +12 В.

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

71650ab033ad421f8209b904321679e2.jpg

Система и софт


Так как все должно быть легким и шустрым, то в качестве системы был выбран Puppy Linux. Основными критериями стали малый размер и размещение всей системы в оперативной памяти, все это загружается с флешки в качестве LiveCD и при необходимости изменений сохраняется в файл. По софту все просто: программный Raid0, SMB-сервер, Transmission в качестве торрента, связка MPD + IceCast2 для интернет-радио и XBMC как оболочка медиацентра. Управляется все при помощи китайской AirMouse со встроенной клавиатурой.

Микроконтроллер определяется как HID-устройство и общается с управляющей программой, написанной на Python. Обмен двунаправленный, хост получает значения температур и управляет скоростью вращения кулеров.

Также при помощи светодиодов можно следить за общим состоянием системы. Когда все в пределах нормы, то все индикаторы монотонно зеленые, но при нехватке оперативной памяти или места на дисках, перегреве, или отказе Raid-массива индикаторы будут менять свой цвет. В тех случаях, когда хост долго не отвечает контроллеру, система принудительно отключается, а если контроллер не отвечает хосту, то происходит штатное выключение.

Фото процесса сборки


05ebf54b1a534278839101bc33247f74.JPG

Заключение


От себя хочу сказать что это был довольно интересный и познавательный проект который под растянулся на полтора года. Но о потраченном времени я не жалею.

Надеюсь, что все кто дочитал до сюда не потратили времени зря и вынесли для себя что то полезное или интересное.
Если остались какие то нераскрытые темы, то постараюсь осветить их в комментариях.

© Geektimes