Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
株式会社インターネットイニシアティブ 前橋 孝広
1
クラウド時代のRDBMS&分散ストレージ
ISP運用における分散データ処理システム
2010年10月28日
簡単な自己紹介
• 前橋孝広 • 株式会社インターネットイニシアティブ • バックボーンネットワーク運用関連のシステム開発
2
本日の内容
• 大量のデータを扱う分散システムdddを開発した話 – 経緯 – 仕組み – 運用 – 今後
• ddd – オープンソースではない – 製品でもサービスでもない – IIJの社内システムである
3
ddd とは?
• IIJが独自開発した分散システムソフトウェア – 分散ストレージ + 分散データ処理機能(MapReduce) – 既存のもので要件にあうものがなかったため自作
4
dddノード群(クラスタ)
データ/ジョブ投入
アウトプット ノード
ノード
ノード
ノード
ノード
イメージ図
大量のデータを扱いたい
• ISPにおいて、サービスの状態把握は必須 – 運用や設計を最適な状態に維持するため – 異常の検知・障害への対応のため
例: AS番号別トラフィック解析グラフ
異常トラフィック検出
時系列アクセス数グラフ
アクセス数割合
6
トラフィックデータや各種ログを扱う上での問題点(1)
ISP内 データ処理
故障によるデータ 消失の危機 データ量が膨大
大量のストレージ、 サーバの管理限界
検索や抽出に 時間がかかる
従来のデータベースからの脱却が必要
• 量が多い – トラフィック計測データの例
トラフィックデータや各種ログを扱う上での問題点(2)
SNMP 1ヶ月分 1Mバイト/interface 程度
NetFlow 5分で数十Mバイト/router 程度
ISPに限らない巨大データ
• 金融 – トランザクションの生データ – 会計バッチ処理 – 値洗い
• 流通 – POSデータ
• 業務システムの大量のログ – 内部統制
• ・・・・
8
dddの特徴
• スケーラブル – 一台では扱えないような量のデータを高速に処理
• 高可用性 – 一部のノードが故障してもシステムとしては動きつづける
• 柔軟性 – 動的にノードの追加・削除可能
9
dddの使用用途例
• トラフィック解析 ‒ NetFlowデータを蓄積・解析 ‒ 障害対応、DDoS攻撃の分析、設備増強計画の参考情報
• ログ解析 – 各種サーバのログ – ファイアウォール、接続認証サーバ、Apache など
• コンテンツ配信 ‒ dddを巨大な分散ストレージとして利用
トラフィック解析システムの画面例
• 多様なパラメータで指定されたグラフを描画
2010/8/6
11
解析結果をグラフ表示
dddの仕組み
• 詳しくは・・・ – ThinkIT -- IIJ社における分散DB技術「ddd」
– 論文 • 電子情報通信学会論文 Vol.J93-D,No.7,pp.1072-1081,Jul.
2010., 「大規模データ処理のための分散システムの実装とその応用」
12
キーテクノロジー
13
P2P 分散key-value store
データ自動冗長化 MapReduce
P2P によるノード間通信
• 中央管理ホストが無く、各ノードは対等 • 単一障害点がない • 現在の実装では、全ノードが他の全ノードの情報を持つ
14
dddノード群(クラスタ)
ノード
ノード
ノード
ノード
ノード
ノード間は P2P 通信
分散key-value store(KVS)によるストレージ
• KVS をファイルシステムっぽく見せかけている – キー : ファイル名(パス名) – バリュー : ファイル本体
• コンシステントハッシュ法 • 異なる3ノードに複製 • アクセス方法
– 独自API – WebDAV – FUSE
• write once
コンシステントハッシュ法(consistent hashing)
• キーの分担ノードを決定する方式 – キー名によって決定 – ノード数が変化した場合に影響を受けるキーが少ない
分散ストレージへのトラフィック情報の保存
• 別マシンで、ひたすらトラフィックデータを受信 • 単位時間分(例: 1時間)のデータをまとめて1ファイルにする – 1ファイルに数万~数十万レコード
• ルータ名+時刻をファイル名に
• ファイル名をキーにしてdddにストア
例: router01/20101001/00.db router01/20101001/01.db ...
データの自動複製
• すべてのデータは異なる3つのノードに複製 • 独自の ihave/sendme プロトコルを使用
– 各ノード同士が持っているデータの情報を交換し、持つべきファイルをコピー
18
並列分散処理フレームワーク MapReduce
• mapとreduceの2段階にわけてデータ処理 ① map – 抽出・変換 ② reduce – 集約・集計
MapReduceのグラフ描画への応用
• グラフの断片を複数ノードで並列抽出・集計
2010/8/6
20
map: 複数ノードで並列に抽出・集計処理
reduce: 結合
スケーラブル
21
電子情報通信学会論文 Vol.J93-D,No.7,pp.1072-1081,Jul. 2010. 「大規模データ処理のための分散システムの実装とその応用」より
• Hadoop (0.21) と ddd の比較 – 同一データ、同一MapReduceプログラム – Hadoop streaming 使用(標準入出力でデータをやりとり)
小さなデータを素通しするMapReduceの速度
node数 Hadoop ddd 1 20秒 0.12秒
運用
• ハードウェア: IIJ GIOのサーバと同じ • ソフトウェア: Linux, Ruby, C, C++
• 多数のコンピュータノードの管理 – ネットワークブート、単一ブートイメージ – 起動時自動セットアップ – 複数ノード同時オペレーション(Capistrano等) – 自作モニタリングツール
• ハードウェアが故障しても放置 – なにかのついでのときに交換 – 運用コスト削減
23
将来
• 実験中: モジュール型データセンタ
24
サービス展開
• 主にサービスのバックエンドとして使用
25
例: トラフィック解析サービス 例: セキュリティ系レポートサービス
まとめ
• dddは多数のノードからなる分散システム – ないから作った – スケーラビリティや可用性を重視して開発
• 用途 – トラフィック解析、大規模ログ処理、etc
• 仕組み – P2P, 分散KVS, 自動複製, MapReduce
• サービスのバックエンドとしての利用
26
27
ご清聴ありがとうございました
お問い合わせ先 IIJインフォメーションセンター TEL:03-5205-4466 (9:30~17:30 土/日/祝日除く) [email protected] http://www.iij.ad.jp/