http://blog.shinono.me
実は忍者ツールズでは一部自作サーバーを使っているサービスがあります。
[忍者アナライズ]
Hadoopに最適化したサーバーで、HDFS、HBase等が動いているサーバーです。
そして、今回新たにサーバーリプレースに合わせて新自作サーバーを構築しました。
このサーバーが適用されるサービスはほぼすべて。
バックエンドシステムの更新を行う過程において導入を決めました。
参考にしたのはサイバーエージェントさんの通称「ミルフィーユ」サーバー
[アメーバを支える自作サーバのいままでとこれから]
しかし、これを真似して導入するにはいくつかの問題がありました。
■NINJA TOOLSで使っているサーバー
ところで現在、忍者アナライズの一部以外はとあるメーカーのサーバーを使用しています。
BTOのサーバーをできるだけ安く買い、忍者ツールズに最適化してサービス投入をしています。
メーカー製サーバーの利点として
しかし、完全に安いかというとそうではありませんでした。
特に特殊な構成になると価格が跳ね上がってしまうものです。
■一代目自作サーバー≪Hattori≫
Hadoop最適化サーバーとして設計しました。
要件としては
・ディスクをできるだけ載せる ( 容量的にも台数的にも )
・RAIDはいらない
・CPU/メモリはできるだけ載せる
というものです。
そして、出来上がったのがこちら
HadoopのNamenodeはメーカー製サーバーを利用しています。
命名は弊社インフラエンジニアのtsunokawaです。
もちろん、ある意味忍者の代名詞である「服部半蔵」からのネーミングです。
■二代目自作サーバー≪Hanzo≫
さて、本格的に自作サーバーを展開するにあたり、集積度を上げることと
汎用性を高めること、メーカー製サーバーより安く仕上げることを考えて設計を行いました。
もちろん、保守はありませんので、故障したら即まるごと交換です。
さて、ここで最初に紹介したサイバーエージェントさんの「ミルフィーユ」を真似することでの問題点ですが、
さて、まずはそれぞれの問題点を潰すことから考えましょう。
[忍者アナライズ]
Hadoopに最適化したサーバーで、HDFS、HBase等が動いているサーバーです。
そして、今回新たにサーバーリプレースに合わせて新自作サーバーを構築しました。
このサーバーが適用されるサービスはほぼすべて。
バックエンドシステムの更新を行う過程において導入を決めました。
参考にしたのはサイバーエージェントさんの通称「ミルフィーユ」サーバー
[アメーバを支える自作サーバのいままでとこれから]
しかし、これを真似して導入するにはいくつかの問題がありました。
■NINJA TOOLSで使っているサーバー
ところで現在、忍者アナライズの一部以外はとあるメーカーのサーバーを使用しています。
BTOのサーバーをできるだけ安く買い、忍者ツールズに最適化してサービス投入をしています。
メーカー製サーバーの利点として
- 保守がある
- 安定した品質
- ラックマウントしやすい
しかし、完全に安いかというとそうではありませんでした。
特に特殊な構成になると価格が跳ね上がってしまうものです。
■一代目自作サーバー≪Hattori≫
Hadoop最適化サーバーとして設計しました。
要件としては
・ディスクをできるだけ載せる ( 容量的にも台数的にも )
・RAIDはいらない
・CPU/メモリはできるだけ載せる
というものです。
そして、出来上がったのがこちら
CPU | Intel Xeon X3440 ( 4C/8T 2.53GHz ) |
メモリ | 16GB ( 4GB * 4 ) |
HDD | 2TB * 4 ( RAIDなし ) |
ラック占有 | 1U ( Short Length / 440mm ) |
HadoopのNamenodeはメーカー製サーバーを利用しています。
命名は弊社インフラエンジニアのtsunokawaです。
もちろん、ある意味忍者の代名詞である「服部半蔵」からのネーミングです。
■二代目自作サーバー≪Hanzo≫
さて、本格的に自作サーバーを展開するにあたり、集積度を上げることと
汎用性を高めること、メーカー製サーバーより安く仕上げることを考えて設計を行いました。
もちろん、保守はありませんので、故障したら即まるごと交換です。
さて、ここで最初に紹介したサイバーエージェントさんの「ミルフィーユ」を真似することでの問題点ですが、
- 遠隔操作がしにくい
- 搭載可能メモリ量が多くない
- サーバーグレードのパーツが使いにくい
- PCIeが殺されてしまう
- 真似するだけじゃ芸がない
さて、まずはそれぞれの問題点を潰すことから考えましょう。
+ + + + + + + + + +
●遠隔操作
NINJA TOOLSのサーバーは、基本的にIPMIを用いて遠隔操作をしています。
しかし、サーバー用でないマザーボードには搭載されていないことがほとんどです。
Intel AMI搭載のボードも視野に入れましたが、クライアントソフトが必要(*1)なこと、
そしてそのソフトがWindows用(*1)ということでNGとなりました。
(*1)Web管理もできますが、MacやLinuxでの動作確認ができないため、導入しませんでした。
●搭載可能メモリ量
一般的なデスクトップボードは8GBくらいまで、Atomのボード等に至っては2GB等、搭載可能メモリ量は多くありません。
16GB搭載可能なマザーボードを選択することが要件的に必要なので、この条件を意識してパーツ選定を行いました。
●サーバーグレードパーツ
まず、上記2点を満たすminiITXのボードはありません。
この時点で、そのままミルフィーユを真似させてもらうことはできなくなりました。
また、IPMI搭載、NICの品質を考えると、サーバーグレードのパーツを使うという形に落ち着きます。
一番小さいホームファクターでmicroATX。今回はこの大きさを載せるための設計を行いました。
●PCIeが殺されてしまう
一部サーバーではRAIDを使いたくなります。が、miniITXを基準とした設計では拡張カードの搭載は非常に難しくなります。
今後Fusion-io社のioDrive等を搭載する可能性も考えると、PCIeは殺したくないものです。
●真似じゃ芸がない
ということで、問題点を潰していくと必然的に真似できなくなりました。
だがしかし、先人も考えていました。
俺:「やってやろうじゃないか」
microATXは244*244(mm)の正方形内に収めることが規格で定められています。
つまり設計はこれより大きくなるということ。
サーバーラックの1Uは44.5mm。
単純にボードを縦置きすると5.5U=>6Uの大きさになります。
電源やディスクのことも考えると、とても6Uには収まりませんね、ハイ。
8台/8U片面の設計へ切り替えました。
電源はHattoriでも利用したFlex300。
hatenaさんも自作サーバー( marqs-60 )で利用している鉄板製品です。
そして、電源を足にして立てるというのはミルフィーユから真似させていただきました。
さて、そうなると、81.5+244=325.5(mm)。
実際は隙間もあくので、330(mm)/44.5(mm)=7.4(U)となり、8Uにおさまりそう!と設計を始めました。
シャーシはアクリル板。8台を載せるエンクロージャは鉄板で設計したものを発注しました。
そして出来上がったのがこちら
シャーシ上に2.5inchHDD or SSDを2台直接搭載、アタッチメントを作れば最大8台搭載可能となります。
PCIe ( x8を1本、別途ライザーカード使用でロープロファイルのみ ) も使えるので、RAIDカードも利用可能です。
ということで、公開されているミルフィーユのスペックをHanzoと比べてみましょう。
2年の進歩ってすげぇ。。。
ということで、このサーバーを使い、年末にかけてサーバーリプレースを予定しています!
事あるごとに質問を投げては、丁寧に回答してくださった、
サイバーエージェントの桑野さんにこの場を借りてお礼申し上げます。
さて、次回はこのサーバーの特殊な特徴について、特にディスクレス構成についてお届けできたらいいなと思います。
※番外編 追記
今回作ったサーバーをどーんと並べてみました!
SSDの搭載はこんな感じです
NINJA TOOLSのサーバーは、基本的にIPMIを用いて遠隔操作をしています。
しかし、サーバー用でないマザーボードには搭載されていないことがほとんどです。
Intel AMI搭載のボードも視野に入れましたが、クライアントソフトが必要(*1)なこと、
そしてそのソフトがWindows用(*1)ということでNGとなりました。
(*1)Web管理もできますが、MacやLinuxでの動作確認ができないため、導入しませんでした。
●搭載可能メモリ量
一般的なデスクトップボードは8GBくらいまで、Atomのボード等に至っては2GB等、搭載可能メモリ量は多くありません。
16GB搭載可能なマザーボードを選択することが要件的に必要なので、この条件を意識してパーツ選定を行いました。
●サーバーグレードパーツ
まず、上記2点を満たすminiITXのボードはありません。
この時点で、そのままミルフィーユを真似させてもらうことはできなくなりました。
また、IPMI搭載、NICの品質を考えると、サーバーグレードのパーツを使うという形に落ち着きます。
一番小さいホームファクターでmicroATX。今回はこの大きさを載せるための設計を行いました。
●PCIeが殺されてしまう
一部サーバーではRAIDを使いたくなります。が、miniITXを基準とした設計では拡張カードの搭載は非常に難しくなります。
今後Fusion-io社のioDrive等を搭載する可能性も考えると、PCIeは殺したくないものです。
●真似じゃ芸がない
ということで、問題点を潰していくと必然的に真似できなくなりました。
だがしかし、先人も考えていました。
「縦置するにはMicroATXは厳しい」
(CAさんのブログ内、SlideShare p.18)
「縦置するにはMicroATXは厳しい」
大事なことなので2k(ry
俺:「やってやろうじゃないか」
microATXは244*244(mm)の正方形内に収めることが規格で定められています。
つまり設計はこれより大きくなるということ。
サーバーラックの1Uは44.5mm。
単純にボードを縦置きすると5.5U=>6Uの大きさになります。
電源やディスクのことも考えると、とても6Uには収まりませんね、ハイ。
当初想定集積度は2node/1U、つまりハーフラックサーバーが出来ればいいと考えていたので、## ボツになった案 "PicoPSU"を使う
ATX系ボードの電源コネクタに直接させる電圧変換器があります。
それがPicoPSUという製品。
外部から12Vさえ入力してやれば使えるので考えたのですが。。。
「外部から12Vを入力」
つまりはACアダプタとかそういうものが必要になるのです。
そして、セット品のそれがまたでかい。
じゃあ12V電源を作ってやろうと考えたのですが、単発じゃ一気に全部死んでしまうので冗長化電源?と考えるとまたこれも難しい。
研究開発時間も費用もないので、個々に電源をつけることになりました。
8台/8U片面の設計へ切り替えました。
電源はHattoriでも利用したFlex300。
hatenaさんも自作サーバー( marqs-60 )で利用している鉄板製品です。
そして、電源を足にして立てるというのはミルフィーユから真似させていただきました。
さて、そうなると、81.5+244=325.5(mm)。
実際は隙間もあくので、330(mm)/44.5(mm)=7.4(U)となり、8Uにおさまりそう!と設計を始めました。
シャーシはアクリル板。8台を載せるエンクロージャは鉄板で設計したものを発注しました。
そして出来上がったのがこちら
CPU | Intel Xeon E3-1260L ( 4C/8T 2.4GHz ) |
メモリ | 16GB ( 4GB * 4 ) |
HDD | なし ( 一部、HDD/SSD搭載サーバーあり ) |
ラック占有 | 16台/8U |
シャーシ上に2.5inchHDD or SSDを2台直接搭載、アタッチメントを作れば最大8台搭載可能となります。
PCIe ( x8を1本、別途ライザーカード使用でロープロファイルのみ ) も使えるので、RAIDカードも利用可能です。
ということで、公開されているミルフィーユのスペックをHanzoと比べてみましょう。
ミルフィーユ | Hanzo | |
ホームファクター | miniITX | microATX |
集積度 | 16台/6U ( 1台あたり0.375U ) | 16台8U ( 1台あたり0.5U ) |
最大メモリ量 | 4GB (Core 2 Quadモデル) | 16GB |
単位メモリ量 (最大メモリ/集積度) |
10.67GB/U (Core 2 Quadモデル) | 32GB/U |
消費電流(idle) | 0.4-0.5A (Core 2 Quadモデル) | 0.3-0.4A |
消費電流(Active) | 0.9-1.0A (Core 2 Quadモデル) | 0.5-0.6A |
2年の進歩ってすげぇ。。。
ということで、このサーバーを使い、年末にかけてサーバーリプレースを予定しています!
事あるごとに質問を投げては、丁寧に回答してくださった、
サイバーエージェントの桑野さんにこの場を借りてお礼申し上げます。
さて、次回はこのサーバーの特殊な特徴について、特にディスクレス構成についてお届けできたらいいなと思います。
※番外編 追記
今回作ったサーバーをどーんと並べてみました!
SSDの搭載はこんな感じです
この記事にコメントする