Pull to refresh

Бюджетные петабайты: Как построить дешевое облачное хранилище. ч. 2

Reading time7 min
Views16K
Original author: Tim Nufire
Продолжение. Начало см. здесь

Соединяя провода: Как собрать контейнер хранения Backblaze


Диаграмма разводки питания контейнера хранения Backblaze приведена ниже. Блоки питания (БП) предоставляют бОльшую часть своей мощности по 2-м разным напряжениям: 5V и 12V. Мы используем 2 БП в контейнере, поскольку 45 дисков требуют много 5V-мощности, в то время как мощные ATX БП отдают бОльшую часть своей мощности по шине 12V. Это не случайность: 1500W и более мощные ATX БП спроектированы для мощных 3D-видеоплат, которым нужна дополнительная мощность по шине 12V. Мы могли бы предпочесть 1 серверный БП, но 2 ATX БП дешевле.

Диаграмма разводки питания сервера


БП1 питает 3 передних вентилятора и панели размножителей портов 1, 2, 3, 4 и 7. БП2 питает всё остальное. (Подробный список специальных коннекторов на каждом БП см. в Приложении A). Чтобы запитать панели умножителей портов, кабели питания идут от БП через 4 отверстия в разделительной металлической пластине, на которой держатся вентиляторы, в центре корпуса (возле основания вентиляторов) и далее — до нижней стороны 9 панелей. У каждой панели умножителей портов на нижней стороне есть 2 Molex-коннектора «папа». Жесткие диски требуют самой большой мощности при начальной раскрутке дисков, поэтому, если вы включите оба БП одновременно, то будет большой (14 ампер) пик 120V питания из розетки. Мы рекомендуем сначала включать БП1, ждать, пока диски раскрутятся (и потребление питания снизится до разумных значений), а затем включать БП2. Полностью включенный, контейнер целиком будет потреблять примерно 4.8 ампер при простое и до 5.6 ампер при высокой нагрузке.

Ниже приведено фото частично собранного контейнера хранения Backblaze (кликните на фото для увеличения). У металлического корпуса снизу есть винты, обращенные вверх, к которым мы прикрепляем нейлоновые прокладки (маленькие белые штучки на фото ниже). Нейлон помогает погасить вибрацию, и это является критическим аспектом дизайна сервера. Платы, показанные над нейлоновыми прокладками, — это несколько из 9 панелей размножителей портов SATA, у которых снизу 1 SATA коннектор, а в верхнюю часть плат можно вставить вертикально 5 жестких дисков. Все кабели питания и SATA идут под панелями размножителей портов. Одна из панелей на фото ниже полностью заполнена жесткими дисками, чтобы показать размещение.

Частично собранный сервер Backblaze

Примечание о вибрациях дисков: диски вибрируют слишком сильно, если вы оставляете их стоять так, как показано на фото выше, поэтому мы обматываем «противовибрационный рукав» (практически резиновую ленту) вокруг жесткого диска, между красной металлической решеткой и дисками. Это плотно держит диск в резине. Также мы кладем большой (40 см x 42 см x 3 мм) кусок пористого материала вдоль верха жестких дисков, после того как все 45 вставлены в корпус. После этого крышка привинчивается сверху пористого материала, чтобы надежно закрепить диски. В будущем, мы посвятим вибрации целый постинг в блоге.

Ниже приведена диаграмма разводки SATA-кабелей.

Диаграмма разводки сигналов SATA

В системную плату Intel вставлено 4 SATA-платы: 3 двухпортовых платы SYBA и 1 четырехпортовая плата Addonics. 9 SATA-кабелей присоединяются к верху SATA-плат и идут в тандеме с кабелями питания. Все 9 SATA-кабелей имеют длину 91 см и используют Г-образные коннекторы с защелками на стороне панелей размножителей портов и прямые коннекторы без защелок на стороне SATA-плат.

Примечание насчет чипсетов SATA: каждая из плат размножителей портов содержит микросхему Silicon Image SiI3726, чтобы 5 дисков могли быть присоединены к 1 порту SATA. Каждая из 2-портовых PCIe SATA-плат SYBA содержит Silicon Image SiI3132, а 4-портовые PCI-платы Addonics содержат микросхему Silicon Image SiI3124. Мы используем только 3 из 4 доступных портов на платах Addonics, поскольку у нас только 9 панелей размножителей портов. Мы не используем SATA-порты на системной плате, поскольку, несмотря на заявления Intel о поддержке размножителей портов в их южном мосте ICH10, мы заметили странные результаты в наших тестах производительности. Silicon Image была пионером в технологии размножителей портов, и их микросхемы лучше всего работают вместе.

Контейнер хранения Backblaze работает на свободном ПО


Контейнер хранения Backblaze не является законченным строительным блоком до тех пор, пока не загрузится и не окажется в сети. Контейнеры работают на 64-битной Debian 4 Linux и файловой системе JFS, и они являются самодостаточными устройствами, весь доступ к которым и с которых идёт через HTTPS. Ниже вы видите диаграмму слоёв.

Диаграмма уровней ПО

Начиная снизу, есть 45 жестких дисков, доступных через SATA-контроллеры. Затем мы используем утилиту fdisk в Linux, чтобы создать 1 партицию на диск. Над этим, мы объединяем 15 жестких дисков в 1 том RAID6 с 2-мя дисками четности (из 15-ти). RAID6 создается утилитой mdadm. Над этим стоит файловая система JFS, и единственный вид доступа, который мы разрешаем к этому полностью самодостаточному строительному блоку хранилища, это через HTTPS на базе специального уровня программной логики Backblaze в Apache Tomcat 5.5. Приняв всё это во внимание, форматированное (доступное) пространство — это 87% от сырой емкости жестких дисков. Один из самых важных аспектов здесь в том, что любое чтение/запись данных на контейнер хранения Backblaze происходит только через HTTPS. Нет никакого iSCSI, ни NFS, ни SQL, ни Fibre Channel. Ни одна из этих технологий не масштабируется так дешево и надежно, не может достичь таких размеров и не управляется так легко, как самостоятельные контейнеры, каждый со своим собственным IP-адресом, ожидающие запросов по HTTPS.

Контейнер хранения Backblaze — строительный блок


Мы чрезвычайно довольны надежностью и отличной производительностью контейнеров, и контейнер хранения Backblaze — это полностью самодостаточный сервер хранения. Но логика того, где сохранить данные и как шифровать их, индексировать их и устранять дублирование, находится на более высоком уровне (выходящем за рамки этого постинга). Когда вы управляете дэйтацентром с тысячами жестких дисков, процессоров, системных плат и блоков питания, у вас будут отказы оборудования — это неопровержимо. Контейнеры хранения Backblaze — это строительные блоки, на которых может быть построена бОльшая система, которая не позволяет наличия единой точки отказа (single point of failure). Каждый контейнер сам по себе является лишь большим куском сырого хранилища по невысокой цене; он сам ещё не является «решением».

Облачное хранилище: следующий шаг


Первый шаг к построению дешёвого облачного хранилища — это уже иметь дешёвое хранилище, и выше мы продемонстрировали, как создать своё собственное. Если всё, что вам нужно, это дешевое хранилище, то этого достаточно. Если же вам нужно построить облако, то вам еще предстоит поработать.

Построение облака включает не только установку большого количества аппаратного обеспечения, но, что важно, развертывание программного обеспечения, чтобы управлять аппаратным. В Backblaze мы разработали программы, которые устраняют дублирование и «нарезают» данные на блоки; шифруют и передают для бэкапа; пересобирают, расшифровывают, заново создают дублирующиеся блоки и упаковывают данные для восстановления; наконец, следят за всей системой облачного хранилища и управляют ей. Этот процесс — наша собственная технология, которую мы разрабатывали годами.

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

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

Благодарности. Мы стояли на плечах гигантов.


Дизайн контейнера хранения Backblaze не был бы возможен без огромного количества помощи (о которой обычно просили без обиняков) невероятно умных и щедрых людей, которые отвечали на наши вопросы, работали с нами и давали ключевые разъяснения в критические моменты. Во-первых, мы благодарим Chris Robertson за вдохновение на построение нашего собственного хранилища и за его раннюю работу над прототипами; Kurt Schaefer за советы по обработке металла и концепт «мебели» для печатных плат; Dominic Giampaolo из Apple Computer за его советы по жестким дискам, вибрации и сертификациям; Stuart Cheshire из Apple Computer и Nick Tingle из Alcatel-Lucent за советы по низкоуровневым сетям; Aaron Emigh (EVP & GM, Core Technology) в Six Apart за его помощь в работе над первоначальным дизайном; Gary Orenstein за разъяснения надежности дисков и промышленности устройств хранения в целом; Jonathan Beck за неоценимые советы по вибрациям, вентиляторам, охлаждению и дизайну корпуса; Steve Smith (Senior Design Manager), Imran Pasha (Director of Software Engineering), и Alex Chervet (Director of Strategic Marketing) из Silicon Image, которые помогли нам отладить проблемы с протоколом SATA и дали взаймы 10 различных SATA-плат для тестов; James Lee из Chyang Fun Industries в Тайване за проработку SATA-плат для упрощения нашего дизайна; Wes Slimick, Richard Crockett, Don Shields и Robert Knowles из Western Digital за их помощь в отладке логов дисков Western Digital; Christa Carey, Jennifer Hurd и Shirley Evely из Protocase за предложение сотен небольших улучшений в 3-D дизайне корпуса; Chester Yeung из Central Computer за доставание локально поставляемых комплектующих быстро и постоянно, когда это действительно имело значение; Mason Lee из Zippy за советы по блокам питания и специальным кабелям; а также Angela Lai за знание всех нужных людей и представление надлежащим образом.

Наконец, мы благодарим тысячи инженеров, которые бесплатно отработали миллионы часов, чтобы мы получили компоненты контейнеров, которые либо дешевы, либо вовсе бесплатны, такие как: процессор Intel, Gigabit Ethernet, изумительно плотные жесткие диски, Linux, Tomcat, JFS и т. д. Мы осознаём, что стоим на плечах гигантов.

Приложение А. Подробный список комплектующих контейнера хранения Backblaze.


От переводчика: Приложение A оформлено в виде аккуратной таблицы, воспроизвести которую средствами Хабра я не могу. К тому же, переводить на русский «760 Watt Power Supply», «Qty», «Price», «Total» и «SATA II Cable» — это, по-моему, уже перебор. Поэтому, пожалуйста, смотрите оригинал приложения в конце оригинального английского постинга
Tags:
Hubs:
Total votes 76: ↑72 and ↓4+68
Comments129

Articles