co-location, iDC, インフラ全般, コラム, ネットワーク

こんにちは、ゲストブロガーのあきみちです。

前回記事で紹介したように、DMM.comにとってのデータセンターは「サーバや通信機器を置く場所を借りるところ」です。セキュリティが確保された場所で、とまらない電気が供給され、適切な温度管理が行われた不動産なのです。

そのように表現すると、「あれ?iDCってインターネットデータセンターだよね?ネットワークは???」と疑問に思われるかたも多いと思います。そうなんです。データセンターに置かれた機器と外部との通信をどのように実現するのかも、データセンターを利用するうえで非常に大事なポイントなのです。

しかし、ネットワークそのものをデータセンターが直接提供しているかというと、必ずしもそうとは限りません。今回は、DMM.comが行っている手法にフォーカスしつつ、データセンター利用者が回線を確保することに関して紹介します。

データセンターでの通信手段確保

データセンターは非常に特殊な不動産事業であり、通信事業者であるとは限りません。そのため、データセンター事業者が直接通信回線を提供するのではなく、データセンター事業者と提携した通信事業者が回線部分を担うこともあります。

さらにいうと、データセンターを利用する顧客によってどのような通信回線が必要となるのかも違います。インターネットに直接接続された回線を必要とする顧客もいれば、広域な社内ネットワークの延長線上にデータセンターのコロケーションを位置づけて運用している顧客もいます。

そういった事情もあり、データセンター事業者が直接通信回線を提供するというよりも、むしろデータセンター事業者に構内配線の依頼をするといった形になりがちです。では、実際にどういう用途なのかの例を紹介していきましょう。

同じデータセンター内に通信事業者が入居している場合

様々な事業者が入居しているデータセンターもあります。

たとえば、データセンター内にIX(Internet eXchange。別記事で解説します)であったり、インターネットプロバイダやインターネットサービスプロバイダ、長距離通信を行うキャリアが入居している場合もあります(長距離通信キャリアがデータセンター事業者という場合もあります)。

IXが入居しているデータセンターを利用している顧客は、IX事業者までの構内配線をデータセンター事業者に依頼することで、他の事業者とのBGPによるピアリングを行える環境を手に入れます。同様に、データセンター事業者に構内配線を依頼することで、インターネットプロバイダなどからインターネット接続サービスを購入することもできます。

データセンターでの構内配線のイメージ
データセンターでの構内配線のイメージ

どのような事業者が、そのデータセンターに入居しているのかが、データセンターそのものの価値を上昇させる要素になるのです。各種事業者との接続が構内配線のみで行えるのは、「便利なデータセンター」なのです。

そして、そういった「便利なデータセンター」に様々な重要設備が集中しがちです。経済原理によって構築された「情報の密集地帯」となっているデータセンターも存在するわけです。

さて、次に、DMM.comの東京データセンター1での事例を見てみましょう。

東京データセンター1にあるコアルータ
東京データセンター1にあるコアルータ

まず、以下の写真がDMM.comの東京データセンター1で運用されているコアルータです。Juniper MX480が2台構成になっています(排気の関係などから1ラックに積まれてしまっているようです。「本当は別ラックに分けた方がいいのだけど。。。」らしいです)。

この写真にあるデータセンターでは、構内配線を経由してピアリングやトランジットを行っています(ピアリングやトランジット、IXなどに関しては別途記事を書く予定です)。同じデータセンター内にエリアを借りている他の事業者と構内配線で接続しているのですが、それが「インターネットとの接続」になるのです。そのため、通信機器を見ても単に普通に光ファイバで繋がっているだけのように見えます。

なお、余談ではありますが、写真を撮影した後に、「あ!養生テープタグのままだった!ツチノコブログにそのまま写真を掲載しちゃうのは多少恥ずかしいかも」と言っていましたが、その後、「格好悪い部分も含めて晒すのが漢」とか意味不明な主張をされていました。

他の場所へのダークファイバ

構内配線で他の組織に繋がることによって外部との通信手段を確保する手法は、データセンターの外との通信を他の事業者に外注することを意味します。

しかし、その方法では、間に他の事業者が提供するルータなどの通信機器が介在することになりがちです。目的によっては、間に他の事業者が提供するルータなどを経由させずに直接自社が運用する機器同士を接続したい場合もあります。

そのような場合には、ダークファイバを借りるという手法が採用されることがあります。ダークファイバは、長距離の光ファイバをそのまま借りれるサービスです。光が通っていない状態で提供されることからそのように呼ばれています。

ダークファイバを使って通信を行える距離は、その光ファイバに接続された通信機器のネットワークインターフェースによって変わってきます。たとえば、10GBASE-LRを使った場合には最大10km、10GBASE-ERを使った場合は最大40kmまでの通信が可能です。10km以内に存在しているデータセンター同士であれば10GBASE-LRで、40km以内に存在しているデータセンター同士であれば10GBASE-ERで、そのまま直接接続できるのです。

DMM.comは、ダークファイバを10GBASE-ERで利用して東京都内のデータセンター同士を接続しています。このダークファイバをJuniperによるファブリック(ファブリックに関しては別途記事を書く予定です)の一部であったり、バーチャルシャーシを構成する回線として使ったりしています。通常の長いシングルモードファイバとしてダークファイバをそのまま利用した形です。

EX 4200のバーチャルシャーシ機能をダークファイバで
EX 4200のバーチャルシャーシ機能をダークファイバで

DMM.comでは、そのような運用を行っていませんが、たとえば、WDM装置を用意して複数波長を一本のダークファイバに乗せるといった用途も考えられます。

その他の方法

データセンター外との通信回線がダークファイバに限定されているわけではありません。

ダークファイバ以外にも、長距離伝送サービス(Optical Transport Networkを用いた数百〜数千kmの長距離伝送など)の購入や、IPパケットの中にIPパケットをカプセル化したうえでそれを暗号化したVPN(Virtual Private Network)の利用といった手法でデータセンター外部との通信回線を確保することが可能です。DMM.comでは、東京のデータセンターから九州のデータセンターまでVPNを利用した接続を行っています。

その他、データセンター事業者がネットワークの提供を行う場合もあります。たとえば、データセンターが持っているIPアドレスブロックが顧客に提供されるといったサービスもあります。データセンター事業者がインターネット接続を提供する上位プロバイダになるというものです。

最後に

ここで紹介しているのは、主にDMM.comが採用している手法です。データセンターと外部の通信手段を確保する方法は、この他にも様々なものがあります。何をしたいかによって回線を確保する方法も変わりますし、新しい技術やサービスが産まれることによっても色々変わってきます。

OSI参照モデルの7層構造を念頭に、電源や配線が「レイヤー0」と呼ばれることもありますが、インターネットはこのような物理的な設備や回線によって構築されているのです。ユーザとして使う場合のインターネットは「繋げば使えるもの」であるように見えがちですが、インターネットそのものを構成している物理的な機器や回線を取り巻く商習慣は意外と生々しいものだったりします。

雑談

みなさんもご存じのネックストラップ

こちらをご覧ください

IMG_1092

先がない。。。
※分かりずらいですが本来はこの先にカードホルダー部があるんです。

カードホルダー部分がごっそりと無くなっています。幸い警察に届けられ手元に戻ってきたのですが悪用されないとも限りません。拾ってくださった方。本当にありがとうございました。この場をお借りしてお礼申し上げますm(_ _)m

気をつけなきゃいけないということで、何名かのエンジニアの巻き取りリールの紐部分を調査してみたところ、

こんなんでました。

IMG_1094

確実にもうすぐ切れます。時間の問題です^^;

これはなんとか対策しなくちゃいけないねと考えていたところ

ある、エンジニア(shinonome)から

「インフラエンジニアたるもの冗長化必須じゃないですか( ̄∇ ̄)v ドヤッ!」と

こんなん見せられました。

IMG_1089

 

かっけー!!!(東京ドームの総監督風)

リールを冗長化してるやつがいるなんて

すごいというかなんというか職業病ということで片づけることにします。

みなさんも紐の確認してみてくださいね。同じような方いるかもです。

それではさようなら。

追記

スケールアウト/分散型

IMG_1144

hardware, linux, 小ネタ, 運用管理

艦これ」といえばDMMのゲームと言われるほどにまでなりましたが、「城コレ」が今度は控えているようです。約30万人の方が事前登録してくださったという嬉しい悲鳴がところどころで聞かれます。そしてツチノコ部隊も全体の安定稼働へ向けて色々と対応しています。ところで、こういうオンラインゲームは、可愛いキャラクターもさることながら、ブラウザの裏でインターネット越しに必死に動いている「黒子」のようなものたちがいます。いわゆる「ゲームサーバ」と呼ばれるものです。

ゲームサーバは、その基本構成としておおまかに「アプリ(フロント)サーバ」と「データベース(バックエンド)サーバ」に分かれます。今日はその中でも「データベースサーバ」についてのお話です。

DMMでは大抵のデータベースサーバにLinuxとMySQLを使っています。そのデータベースエンジンにInnoDBというのがありまして、設定項目としてメモリ上にバッファをするという設定を行うことができます。

例えば、メモリを128GB搭載したサーバでバッファ用に100GBのメモリを割り当てるとします。さて、実際のメモリの割当はどのようになるでしょうか。最近のXeonを搭載したサーバとして考えてみます。実はCPUの個数により、そのメモリの割り当てられ方が変わってきます。というのも、昔と違い今はメモリのコントローラがCPUに内蔵されているからなのです。

  • シングルCPU構成の場合

すべてのメモリがCPUと直接つながっているので、特に気にする事はありません。

  • マルチCPU構成の場合

CPU0とCPU1…とにそれぞれメモリがつながっています。例えば先ほど128GBとしたメモリが2CPU環境にあるとしましょう。そうするとCPUにごとに64GBのメモリがつながっている事になります。標準ではLinuxはプロセス毎にそのプロセスが動いているCPUにつながったメモリを利用しようとします。つまり、先ほどの100GB割り当てが、MySQLのプロセスが動いている片方のCPUに偏ってしまうのです。その結果、片方のメモリがMySQLに食いつぶされ、そこにもともといたデータがSWAPに吐き出されます。もう片方のCPUにつながっているメモリに空きがあっても、です。

少し詳しい話にしましょう。最近の共有型のマルチプロセッサシステムアーキテクチャは、NUMA(Non-Uniformed Memory Access)というものです。これは、CPUとメモリのまとまりを「ノード」と呼びます。先の例では、CPUと64GB分のメモリのまとまりが”ノード”です。

Linux OS上でプロセスが起動すると、そのプロセスはCPUに割り当てられます。CPUとメモリがまとまっているので、プロセス自体のデータは同じNUMAノードのメモリに置かれます。
先の例の2CPUの環境MySQLが起動したあとメインスレッドがCPU0に割り当てられたとして、そのCPUにぶら下がる64GBのメモリにMySQLのデータが置かれます。しかし、バッファデータのサイズだけで100GBあるので、NUMAノードの64GBをいずれ食いつぶします。そうなると、同じNUMAノード上にある他プロセスのデータがメモリから溢れます。他NUMAノードのメモリはデフォルトではOSが割り当てをしない状態になっているため、あふれたものはスワップへ送られます。もともと64GBのメモリ上にあるものなのでスワップアウトするデータ量も大きくなる傾向があります。なので実際のところスワップが埋まってしまう可能性が非常に高いです。

では、どうすればこの偏りやスワップアウトを抑えることができるのか。

NUMAをOSからコントロールするnumactlというコマンドがあります。
–interleaveオプションは割り当てるNUMAノードを指定します。上記の例では”all”となっているため、すべてのNUMAノードに割り当てを行うことを意味します。

こちらのコマンドで、NUMAに対するプロセスの状況が見られます。
とはいえ、見るのは大変なので、下記のページを参考に、Perlスクリプトを使ってみましょう。
http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
numa-maps-summary.pl というスクリプトです。って、実はこれ2010年の記事なんですよね。知りませんでした。

実際にスワップアウトしてスワップを喰い潰してしまったサーバがこちら

同じサーバで、numactlを設定したのがこちら

設定前はNUMAノード分の64GBに近く偏っていたものが、設定後は分散されているのがわかります。
上記のようにプロセスがどかっと大きなメモリを割り当てることでスワップアウトしてしまう現象を”Swap Insanity”といいます。
そして先のブログ記事にもありますが、mysqldのinitスクリプトを改造して、numactlを埋め込んでしまうという手を使うことで、回避ができます。

イベント, インフォメーション, コラム, 勉強会

タイトルは釣りです。
今までありがとう「ifconfig」のエントリが大人気だったので真似ただけです。
別にPerlがなくなるとか、そんな話はありません。ごめんなさい。

それどころか、今日から3日間、Perlの熱いイベントが開催されますよ。

YAPC::Asia Tokyo 2014
http://yapcasia.org/2014/

YAPCとはYet Another Perl Conferenceの略で、世界中で行われるプログラミング言語「Perl」にまつわるイベントです。Perlハッカー達が集い数々のトークを行い、それを参加者が見たり聞いたり楽しみます。おっと、ちょっと待ってください。「Perlにまつわる」と言いましたが、YAPC::AsiaはPerlだけにこだわらず、他の言語やWebテクノロジーなど様々な分野の技術話に花が咲く、ITやWebエンジニアのためのお祭りです!今年は「There is more than one way to enjoy it!」をスローガンに掲げ、誰もが色々な楽しみ方を体験出来るYAPCを目指します。

「Perlに限らず」ってのはわりと本当で、トークリストを見ると、Perl限定の話はあんまりありません。

トークリスト – YAPC::Asia Tokyo 2014
http://yapcasia.org/2014/talk/list

Perlの話が少ないので、やっぱりPerlは下火なのかあ、とも思っちゃうかもしれませんが、Perlの話が少ないのは毎年のことです。
それどころか、今もPerlを最前線の仕事で使ってる会社は意外と多いんですよ。
スポンサーリストを見ると、Perlをお仕事で使っている日本を代表するウェブ系の会社がズラリ。

スポンサー – YAPC::Asia Tokyo 2014
http://yapcasia.org/2014/sponsor/

我々DMM.comラボもかき氷スポンサーをさせていただいています。
会場でDMMかき氷を配りますよ。
「DMMかき氷を見かけたらtwitterでつぶやこう!」キャンペーンも行なっていますので、DMMTwitter「@DMM_com」をフォローして、DMMかき氷の写真と共にハッシュタグ(#DMMかき氷)を付けた状態でツイートしてくださいませ。
抽選で1000円分のDMMギフト券が当たります。

DMM.comが作りたての「かき氷」を再現
http://labo.dmm.com/information/2014/0729/

 

また、DMM.comラボでは、LL Diver同様、来場者向け会場ネットワーク構築にも協力させていただいています。

会場ネットワーク – YAPC::Asia Tokyo 2014
http://yapcasia.org/2014/network/

iDC, インフラ全般, コラム

こんにちは、ゲストブロガーのあきみちです。連載第2回は、データセンターに関する記事です。

DMM.comが運営している各種Webサービスは、東京都内3ヶ所と九州1ヶ所、合計4ヶ所のデータセンターに設置された機器から配信されています。DMM.comのようなコンテンツ事業者にとって、データセンターは事業の中心的な機器が設置された非常に大事な場所なのです。

さて、「データセンター」という言葉を聞いたことがある人も多いと思いますが、それがどういった場所で、どうやって使われているのかを知る機会がない方々も多いのが実情です。運営しているWebサイトの規模によってはデータセンターが提供するサービスを直接利用する必要はありません。また、たとえ自社がデータセンターを利用していたとしてもサーバに対して遠隔からのみアクセスするような場合もあります。昨今は、「クラウド」が普及してきたことにより、利用者がデータセンター内に入る必要がないサービスの比率も増えているので、今後はデータセンターに入ったことがないITエンジニアが増えるかも知れません。

これから数回は、日本におけるデータセンターをDMM.com的な視点で紹介するとともに、DMM.comが利用しているデータセンターの一部を写真付きで紹介します。

データセンターが提供するのは場所と電気

データセンターが行っている基本的な業務は、各種機器を置くための場所と電気を提供することです。最近のデータセンターは、様々なサービスを提供しつつサービスを多角化させていますが、昔のデータセンターは、純粋に場所と電気の提供をする、いわゆる「箱」を提供する事業者でした。どちらかというとIT用途の不動産という役割です。

データセンターを使うのはDMM.comのようなコンテンツ事業者だけではありません。大企業の社内システムや金融機関のシステムもデータセンターで運用されていたりします。ISPがデータセンターに機器を置いてインターネットの一部を運営していたりもします。

データセンターは、様々な社会インフラのIT部分を支える非常に大事な施設なのです。

データセンターが提供しているサービスの種類

多くのWebエンジニアの方々が利用する「サーバホスティング」というサービスは、データセンターで場所を借りているホスティング事業者が提供していたサービスを利用するというものでした。データセンター事業者が直接提供するものではなかったのです。しかし、最近はそういったサービスをデータセンター事業者が提供することも一般的になりました。それに伴って、ホスティング事業から撤退した事業者もいます。業界構造は変わり続けているのです。

最近のデータセンター事業者が提供するサービスをザックリと表現すると、以下のようになります。

  • ホスティング借り(クラウド含む)
  • ラック借り
  • エリア借り(ケージ)
  • エリアが大きいと、ワンフロアとか一部屋(フロアが部屋に別れている場合もある)

DMM.comが東京都内で利用しているデータセンターのひとつは、エリア借り(ケージ)です。DMM.comを運用する機器が置かれたエリアの周辺が檻のようになっており、その入り口の鍵を使ってDMM.comの関係者がエリアに入ります。

20140811-IMG_0717

20140811-IMG_0755

データセンターのフロアにDMM.com用にケージでエリアを区分けされているのですが、その面積をどのようにするのかが実はいつも悩ましい課題だったりもします。将来の拡張を考えるとある程度余裕を持って面積を確保したいですし、確保しておかないと他社がスペースを契約してしまい拡張したくでも物理的にできなくなってしまいますが、その一方で必要以上の面積を契約してしまうと、実際は使っていないことにお金を払い続けることになります。

将来のサービス拡大を見据えつつ、どれだけの面積を確保するのかもインフラエンジニアの大事な仕事なのです。

データセンターが提供する「場所」

「場所を提供している」とだけ書くと、単に場所を提供しているだけに思えるかも知れませんが、データセンターが提供する「場所」というのは、セキュリティが確保されたうえで適切な温度管理がされています。高度な消火機能も特徴です。多数の機器を運用するための設備が揃った特殊な不動産なのです。

セキュリティがどのように守られているのかは、各データセンターによって大きく異なります。たとえば、指紋、網膜、体重など生体認証システムを備えたデータセンターもあります。外部の人が入る場合には、住所氏名電話番号や身分証明書の提示が求められることもあります。日本ではあまり耳にしませんが、米国では爆発物を伴う外部からの攻撃にどれだけ耐えるかといった観点もあります。

どのように物理的なセキュリティが確保されているのかは、データセンターの大きな特徴であり、各データセンターによって方式も異なるのですが、セキュリティレベルが高ければ高いほど、そのデータセンターを使うエンジニアにとっては面倒な部分もあるのが多少辛いところでもあります。

これもセキュリティの一環なのでしょうが、日本ではデータセンターがどこにあるのかが公開されることを非常に嫌う傾向があります。基本的に、どこにどのようなデータセンターが存在しているのかは公式情報としては公開されていません。入り口の写真を撮影して掲載するようなことも嫌われます。そのような背景もあり、関係者以外は具体的なデータセンターの位置を知らないことも多いのです。

データセンターは寒い!

大量の電気が消費され、多くの機器が発熱を続けるデータセンター内を常に適切な温度に保ち続けるのもデータセンターが提供する大事な機能です。とにかく冷やす必要があるのです。それを実現する空調の方式にも様々なものがあり、各データセンター毎に違います。

20140822-IMG_1004

サーバにとって快適な温度は、必ずしもそこで作業を行うエンジニアにとって適切な温度とは限りません。疲れてくると寒くなってくるということもあります。DMM.comが借りているデータセンターには、上記写真のような上着も置いてあります。作業が長期化して寒くなったときの対策も万全(爆)だそうです。

とまらない電気の提供

データセンターが行っている基本的な業務は、場所と電気の提供ですが、データセンターが提供する電気は「とまらない電気」であり、その部分が非常に重要な要素なのです。日本では、そもそも一般家庭であっても停電が頻繁に発生するわけではないので、「とまらない電気」といわれてもそこまで珍しいと思わないかも知れませんが、データセンターがどこまで発電できるのかが非常に重要視される地域も多いのです。

東日本大震災のときには、日本でもデータセンターにおける発電が大いに注目されました。各データセンターは以前から燃料を備蓄していましたが、備蓄している燃料を使ってしまった後にどこまで燃料を確保すべきかという課題がありました。災害復旧活動などを阻害せずにデータセンター用に燃料をどれだけ確保すべきなのかといったことに悩んだ担当者は多かったと思われます。

電気に関連する設備は各データセンターごとに違います。電源系統が複数あったり、データセンター事業者がUPS(Uninterruptible Power Supply/無停電電源装置)を持っていたりと、様々です。交流ではなく直流を提供してくれるデータセンターもあります。

データセンターで場所を借りる側の視点で見ると、多くの場合は、ラック単位で電圧などを指定します。電圧を指定する必要があるのは、機器によっては日本の一般家庭で使われている交流100Vではない電圧を要求するためです。たとえば、「このラックは100Vでお願いします」「このラックは200Vでお願いします」といった感じです。注文する内容によっては、別途設備工事を依頼して引いてもらいます。

電圧がラック単位で違うこともあるので、どの機材をどのラックに設置すべきかというパズルが発生します。そういったことを含めて、データセンター内での機器配置デザインを決めるのがエンジニアの仕事です。

次回に続く

今回の記事を読んで、「あれ?ネットワークもデータセンターの大事な部分じゃないの?」と思った方々もいらっしゃると思います。そこら辺の話は、次回紹介する予定です。次回は、データセンターからサービスを購入している事業者が外部との通信方法の確保する方法などになります。お楽しみに!

(データセンターを取り巻く状況は国によって多少異なる部分もあります。ここで紹介する話は、あくまで「日本のデータセンター」という視点なのでご注意ください。)

おまけ

そういえば、前回記事では「こんにちは。あきみちと申します。」としか書いておらず、どこのどのような「あきみち」だか不明瞭でした。私は、「Geekなぺーじ」というサイトを運営しているブロガーの「あきみち」です。

なお、余談ではありますが、第一回で明確に名乗らずに「あきみち」とだけ記載したところ、ネット上で「あの、あきみちさん?」といった反応が複数発生し、その後、知人から「あのあきみち」とか「これからはTheあきみちと名乗れば?」といった暖かい激励の言葉を頂きました。

PAGE TOP