Moscow, Russia

Сервера

Строим бюджетный веб-сервер на базе ITX

Некоторое время назад возникла необходимость в новом веб-сервере для корпоративного сайта (корпорация, на этот момент, совсем небольшая). Сайт написан на PHP и хранит данные в MySQL, т.е. речь идет о классическом LAMP сервере. Посещаемость сайта совсем не большая, поэтому ничего монстрообразного городить не нужно. Кроме того необходимо уложиться в 20 тыс рублей бюджета. Под такие требования вполне подходят сервера начального уровня на базе ITX матерей.

Посмотрел, что есть в продаже на данный момент. Предлагаемые 1U сервера по большей части содержат полноценные Intel и AMD процессоры и, соответственно, ценник сильно выше требуемых 20 тыс рублей. После поисков была найденна платформа Supermicro SYS-5015A-EHF-D510. Пару лет назад я имел дело с этой платформой. Очень качественное исполнение, продуманный корпус, но процессор Intel Atom D510 и максимум 4Гб DDR2 оперативной памяти. Самое скверное, что поменять материнскую плату в этой платформе на какую-либо другую невозможно.

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

  1. Сервер должен жить в стойке, т.е. корпус 19″ rack-mount и занимать в высоту 1U;
  2. Так как никаких выдающихся вычислительных способностей для веб-сервера не требуется, то вполне подойдут экономичные процессора, устанавливаемые на ITX материнских платах. Мне хочется процессор AMD. Не вдаваясь в длительные рассуждения о природе вещей, скажу просто — нравится мне AMD;
  3. Поскольку в качестве операционной системы я планирую установить Linux в консольном варианте, то требований в видеосистеме нет вообще никаких, подойдет любая встроенная;
  4. В процессе формирования веб-страницы выполняется большое количество PHP-файликов и выполняются запросы к разным таблицам базы данных. Поэтому дисковая система должна быть максимально шустрой за разумные деньги. Стандарт SATA3 вполне подойдет. Кроме того стоит наверное разнести файлы PHP-скриптов и файлы базы данных по разным физическим дискам, чтобы снизить влияние конкурирующих потоков на чтение\запись к дискам и повысить производительность системы в целом. Но и это не все. Так как файлы PHP-скриптов практически не изменяются со временем, т.е. можно говорить, что они только читаются, а записи в базу данных только изредка добавляются и почти никогда не заменяются, то велик соблазн попробовать в качестве устройств хранения для этих данных SSD диски. Теоретически использование SSD дисков должно увеличить производительность системы за счет того, что читая большое количество малюсеньких PHP-файликов мы не будем тратить время на позиционирование головок.
  5. Все что связано с дисковой частью должно работать стандарте SATA 3. Все ж имеет смысл вкладываться в современные технологии.
  6. Поскольку речь идет о LAMP-сервере, т.е. сервере на котором одновременно работает Apache, MySQL и PHP, то под все это требуется память. Есть желание иметь некоторое пространство для маневра в настройках указанных сервисов. Поэтому остановимся на оптимальных 8Гб и, соответственно, 64-битной операционной системе. Разумеется память хочется DDR3.

Подбор комплектующих

Начинаю поиск комплектухи удовлетворяющей моим требованиям. Для начала корпус. Одна из известных московских компаний рекомендовала корпус Chenbro Rackmount Chassis RM12800 1U за смешные 3250 рублей правда без блока питания. Корпус выглядит несколько простовато, но сделан на вид вроде нормально. Есть штатное место для слимового привода и одного 3,5″ харда.

Несмотря на небольшие размеры корпуса, после установки в него стандартной матери ITX формата должно остаться достаточно места для установки двух 2,5″ SSD. Внутри корпуса располагаются два штатных 40мм управляемых вентилятора для охлаждения компонентов материнской платы и один такой же вентилятор расположен за штатным местом блока питания для выдува теплого воздуха за пределы корпуса. За такие деньги решил взять. Блок питания под выбранный корпус FSP250-50GUB 250W купил в этой же компании за 1500 рублей.

Поиск материнской платы долгим не был, т.к. выбор матерей формата ITX не богат. Я остановил свой выбор на уже известной мне ASUS E35M1-I, как наиболее удовлетворяющей необходимым мне условиям (на борту 6(!) SATA3 и поддержка до 8Гб DDR3). Смущал только довольно большой радиатор на процессоре. Влезет ли он в 1U корпус? Вооружившись линейками и промерив имеющиеся в распоряжении 1U корпуса пришел к выводу, что хоть и впритык, но влезть должен. На материнскую плату потратил 3724 рубля.

Выбор рекомендуемых планок памяти, указанных в спецификации к выбранной материнской плате, довольно широк. Мне приглянулись Kingston DDR3 4Gb 1333MHz (KVR1333D3N9/4G). Две планки обошлись в 1296 рублей.

Жесткий диск для операционной системы искал среди продукции Seagate. Большая ёмкость тут не нужна, вполне хватило бы и 80Гб. Но таких я в продаже не нашел, поэтому выбирая по скорости и стоимости остановился на Seagate ST250DM000, как наиболее шустром при разумной цене (1970 рублей).

Настал черед экспериментальной части. Я хочу установить два SSD диска: один для базы данных сайта, второй для скриптов на PHP. Поскольку объём базы и скриптов довольно мал, то основными критериями при подборе будут скорость, надежность и стоимость. Потратив пару дней на чтение спецификаций и обзоров я остановил свой выбор на OCZ Vertex 4 (VTX4-25AT3-64G). Цена вопроса 5488 рублей за пару.

Сборка

Корпус сделан вполне качественно и укомплектован всем необходимым для сборки. Острых поверхностей в корпусе нет, все довольно аккуратно. Детали корпуса соединяются винтами. В поставке имеется переходник для подключения вентиляторов, комплект крепежа, «уши» для установки в 19″ стойку. Первым делом устанавливаю блок питания. Он встает без проблем, если не считать, что планку крепления пришлось перевернуть. Планка на заднюю часть корпуса для разъёмов материнской платы слишком велика по высоте и не входит в соответствующее отверстие в корпусе. Тут делать нечего, планку придется не устанавливать.

Планка на заднюю часть корпуса для разъёмов материнской платы слишком велика по высоте и не входит в соответствующее отверстие в корпусе. Корпус над звуковыми разъемами необходимо спрямить.

Затем устанавливаю материнскую плату. Для этого предварительно снимаю блок внутренних вентиляторов, иначе мешаются провода. Но плата вставать на место отказалась. Дело в том, что в задней части корпуса, над отверстием под разъёмы материнской платы, куда не влезла планка, имеется небольшая проштамповка уменьшающая высоту корпуса в этом месте приблизительно на пару миллиметров. Именно этой пары миллиметров не хватает звуковым разъёмам и они упираются в это сужение. Вооружившись плоскогубцами я распрямил сужение в этом месте, сделав его вровень по высоте с остальной частью корпуса и разъемы пролезли. Отверстия для крепления материнской платы совпали идеально. Однако плата на них не легла, остался некоторой зазор между платой и крепежными втулками. Похоже плата на чем-то стоит. Оказалось, что это были четыре подружиненных винта крепления радиатора, расположенных снизу материнки. Непонятно, зачем они такой большой длины, но подкрутив их на полоборота, проблему удалось решить и материнская плата наконец-то заняла положенное место. Поставил на место блок внутренних вентиляторов. Мои переживания по-поводу радиатора на материнской плате оказались напрасными. После установки оказалось, что между радиатором процессора и крышкой корпуса еще остается зазор 1-2мм.

Обычный 3,5″ хард замечательно встает на свое штатное место. Место для одного SSD диска я нашел между передней стенкой корпуса и блоком вентиляторов, а для второго — в свободном пространстве за 3,5″ хардом. Так как SSD диски практически не греются во время работы, то чтобы не сверлить отверстия в корпусе (а в том месте где я собирал сервер этого сделать и негде, и нечем), я просто вклеил диски высококачественным тонким двусторонним скотчем.

Разъем питания на материнской плате имеет 24-pin, а у блока питания только 20-pin.

Вроде все на своих местах и можно начинать подключать кабели. «Сюрприз» связан с питанием. Разъем питания на материнской плате имеет 24-pin в то время как у блока питания только 20-pin. Т.е. «за бортом» остаются дополнительные контакты +3В, +5В, +12В и общий. При том потреблении, которое есть у нашей материнской платы, это не критично. Кроме того на разъеме блока питания отсутствует контакт -5В, но на многих современных матерях он, вроде, и не используется. На всякий случай подключаю монитор и подаю питание. Работает! При подключении и укладке остальных кабелей никаких трудностей не возникло. Есть некоторые замечания, которые не являются критичными и связаны с тем, что материнская плата все-таки не серверная:

  • на материнской плате только два разъёма для управляемых вентиляторов, а самих вентиляторов три. Цепляю один и вентиляторов на внутреннем блоке как CPU_FAN, а второй как CHA_FAN. Выдувающий вентилятор на корпусе подключаю как неуправляемый через переходник, который шел в комплекте с корпусом. Кроме того вентиляторы имеют 4-х проводной кабель, а разъемы на материнской плате 3-х контактные. Но в этом проблемы нет — оставляем крайний провод болтаться в воздухе;
  • в корпусе, в числе прочих, предусмотрен светодиодный индикатор активности сети. Но на материнской плате разъема для его подключения нет (вся индикация на самом сетевом разъеме), поэтому оставляю его не подключенным.

Больше мне не понравилось, что поток воздуха, создаваемый внутренним блоком вентиляторов, перпендикулярен канавкам радиатора процессора. Учитывая что сервер будет находится в охлаждаемой серверной, а сам процессор E-350 не склонен к катастрофическому разогреву на тех приложениях, которые предполагается использовать, думаю, что перегрева не будет. Но проверить это можно будет только в реальной работе.

В целом сервер собрался. Еще и место под привод осталось. Установка Ubuntu 12.04 прошла вообще без каких-либо замечаний. Что в процессе установки операционной системы, что после, было заметно, что сервер получился довольно шустрым. Особенно порадовала скорость работы MySQL базы с отдельного SSD диска. Так что сервером я остался доволен, тем более, что обошелся он всего в 15258 рублей.