パーソナル・アーカイブのための 自律分散型データ共有システムの設計 大阪市立大学大学院 創造都市研究科 都市情報学専攻 情報基盤研究分野 M04UC513 藤田昭人
はじめに 研究の目的 研究のアプローチ パーソナル・アーカイブを実現する上で必要となる共有ストレージを分散 環境において実現する 既存のアーカイブ・システムのストレージ構造を調査する 自律分散環境を実現するP2P技術について調査する 上記2項の結果に基づき分散共有システムを設計する
パーソナル・アーカイブ パーソナル・アーカイブとは? パーソナル・アーカイブを実現する上での技術的課題 個人のビジネスや研究・開発などの作業を支援する私的なアーカイ ブ ネットワーク化することにより専門性が高く網羅的な仮想的なデータ ベースを実現 パーソナル・アーカイブを実現する上での技術的課題 収容するデジタル・コンテンツの分散共有の方法 収容するデジタル・コンテンツの著作権管理の方法 ※ 本研究では1.の課題について検討を行った
Bitstream Storage Manager 既存アーカイブ・システムの構造 Statistics Tools Web UI OAI-PMH Data Provider Simple Importer/ Exporter Media Filter METS Exporter Application Layer DSpace Public API Core Tools (Configuration, Logging) Search (Lucene Wrapper) History Recorder E-person/ Group Manager Browse Tools Content Management Administration Toolkit Business Logic Layer Handle Server Storage Plug-in Handle Manager Submission Workflow Manager Authorisation Storage API RDBMS Wrapper Bitstream Storage Manager Storage Layer JDBC File System SRB (Storage Resource Broker) PostgreSQL Oracle
パーソナル・アーカイブ化する上での課題 既存のアーカイブ・システムの分散共有には次の項目の分 散化が必要 デジタル・コンテンツ自体を格納するファイル形式のデータ格納機構 デジタル・コンテンツのメタデータを格納するリレーショナル・データベ ース
P2P技術 分散システムのアーキテクチュア 参加者は帯域、ストレージ、計算能力などを共有する 中央集権的な制御実体がない(ディセントライズド) 自己組織的 参加者は帯域、ストレージ、計算能力などを共有する 一般的には信頼性の低い、多種多様な、多数のノードから 構成されるが、信用できないノードが存在する可能性もある
P2P Overlay Network Unstructured overlay (Gnutella, Freenet) ランダムなグラフによるオーバーレイ・ネットワークを形成 信頼性が低く、非効率な検索 オーバーレイ構築のオーバーヘッドは低い Structured overlay (CAN, Chord, Pastry, Tapestry) 特定のグラフ構造のオーバーレイ・ネットワークを形成 信頼性が高く、効率的な検索 オーバーレイ構築のオーバーヘッドが幾分高い
分散ハッシュテーブル(DHT) Structured P2P overlay を形成するための手段の1つ ハッシュ関数と同様に、データから生成されるキーを使って そのデータが格納されているノードを特定する Structured P2P では SHA-1 などのハッシュ関数 (Secure Hash Function)が使用されることが一般的
Chord/DHash MITで開発されたP2Pデータ共有の実装 Chord/Dhashを活用したアプリケーション Chord ー P2Pルーティング・プロトコル DHash ー データ・ブロックの配布、複製、キャッシング 両者によりDHTによるP2Pオーバーレイネットワークを形成 Chord/Dhashを活用したアプリケーション ファイル共有 [CFS, Ivy] Webキャッシュ [Coral] 名前サービス [ChordDNS] 通信プリミティブ [I3] Webアーカイブ [Herodotus]
Cooperative File System (CFS) Chord/DHashを利用した参照専用ファイルシステム ソフトウェアなどの配布に活用できる Chord/DHashを活用し、負荷分散、対障害性、スケーラビリ ティの高い分散システムを実現 ファイルシステムをデータ・ブロックとして管理 対象となるファイルシステムをデータ・ブロックに分割し、 Chord/Dhashによって広域分散的に配置 クライアント側においてデータ・ブロックから ファイルシステムに再構成する ファイルシステムのクライアント・インターフェースと電子署名 はSFS Read-only File System に基づく
Cooperative File System (CFS) ファイル参照系 DHash User Program chordcd DHash Chord Chord System Call NFS 3 Kernel NFS Client Chord Ring DHash Private key Chord CFS sfsrodb DHash Chord File System DHash ファイル登録系 Chord
Ivy: Read/Write P2P Filesystem Chord/Dhashを利用した読み出し・書き込み可能なファイルシステム 一般的な分散ファイルシステムとして活用できる Chord/DHashを活用し、負荷分散、対障害性、スケーラビリティの高い 分散システムを実現 ログ構造に基づくデータ構造を利用し、ファイルに対するデータ更新時の 競合を回避 スナップショットを活用してファイルへの高速アクセスを実現 ファイルシステムのクライアント・インターフェースと電子署名の実装は SFS File System Toolkit を活用
Ivy: Read/Write P2P Filesystem (2) DHash User Program Ivy Server (cfsrwcd) DHash Chord Chord Ivy agent Private key System Call NFS 3 Chord Ring Kernel NFS Client DHash Chord DHash Chord DHash Chord
データ共有システム Webアプリケーションとして実装された既存アーカイブ・シス テムの自律分散化を実現 分散ファイルシステムと分散データベースの機能を提供 自律分散にはChord/Dhashを活用する
データ共有システム P2P Overlay Network PC PC PC PC PC PC Web Archival Browser Web Server Web Browser Server-Side Script Language Archival System Filesystem DBMS P2P Data Sharing System Chord/DHash
分散ファイルシステムの設計上の要点 分散ハッシュテーブルを活用することにより、WAN環境での アクセス性能の低下は抑制される 分散ハッシュテーブルではハッシュ関数の使用頻度が性能 に大きな影響を与える → ファイルシステムの内部データ構造は単純なものが望ましい ファイルシステム・インターフェースが性能低下の要因になっ ている可能性がある → Webサーバーやサーバー・サイド・スクリプト言語環境から直接ファ イル参照を行う実装も検討するべき
データベースを分散化する上での課題 ACID - トランザクション処理における基本的セマンティクス データベース管理システム(DBMS)での必須の機能とされる 原子性(Atomicity) トランザクションの全タスクの実行・非実行を保証する 一貫性(Consistency) トランザクションの開始時と終了時での整合性を保つ 独立性(Isolation) 他の処理から完全に隔離される 永続性(Durability) 成功したトランザクションが取り消されない 分散環境でのACIDセマンティックスの完全な実現は難しい 特にデータ更新での一貫性の維持(衝突の回避、調停)
Ivy, Coda でのデータ一貫性維持 Andrew Filesystem (AFS)が起源 ファイル・セッションに基づくセマンティックス サーバーにあるマスターファイルをクライアントにキャッシュする OPEN マスターファイルをローカルキャッシュにコピー WRITE ローカル・キャッシュに対してデータ更新 CLOSE ローカルキャッシュの内容をマスターファイルにマージ メリット データ更新時の衝突の調停を回避できる デメリット データ・アクセス時に他者の更新を参照できない 更新内容のマージがうまくいくとは限らない 参考文献 M. Satyanarayanan, “Scalable, Secure, and Highly Available Distributed File Access”, IEEE Computer, pp. 9-20, May 1990
分散データベースへの応用 SQLをベースに考える 特定のノードにコンシステント・ハッシュ化されたマスター・データベースが 存在し、任意のノードにあるローカル・データベースの内容と一貫性を 維持するためには・・・ BEGIN, ROLLBACK マスター・データベースの内容をローカル・データベースへ同期 更新系コマンド(CREATE, INSERT, DROP・・・) ローカル・データベースに対して更新 COMMIT, END ローカル・データベースの更新内容をマスター・データベースへ反映
分散データベース データベース・ファイルをページ単位で管理 各ページごとコンテント・ハッシュ化して複数ノードに分散配置 マスターデータベースのノードはページリストを管理 Consistent-Hashed Master Database Content-Hashed Page Master Database PC PC Content-Hashed Page P2P Overlay Network Local Database PC PC Local Database Content-Hashed Page Content-Hashed Page PC PC
マスターデータベース Page 0 Page 1 Page 2 Page N H(Page0) H(Page1) H(Page2) Page List (Consistent-Hash) Page Block (Content-Hash) H(Page0) Page 0 Master Database H(Page1) H(Page2) Page 1 H(PageN) Page 2 Page N
マスターからローカルへの同期操作 マスターノードよりページリストを取得 ページリストを元に古くなったページを探索 古くなったページについて各ノードから最新ページを取得 Consistent-Hashed Master Database Content-Hashed Page PC ③ ① PC Content-Hashed Page ② ③ PC PC Local Database ③ ③ Content-Hashed Page Content-Hashed Page PC PC
ローカルからマスターへの同期操作 トランザクション内の更新コマンドを一括して転送 マスターデータベースを一括更新 更新されたページのコンテンツ・ハッシュ化して各ノードに転送 Consistent-Hashed Master Database Content-Hashed Page ② ③ PC PC ③ Content-Hashed Page ① PC ③ PC Local Database ③ Content-Hashed Page Content-Hashed Page PC PC
おわりに 本研究ではP2P技術を活用したアーカイブ・システムの分散 データ共有方法を提案する。 本研究ではSQLクエリーエンジンが要求するACIDセマンティ ックスを分散環境で実現するため、SQLトランザクションに基 づく同期手法を提案する。 本研究で提案する分散データ共有システムはアーカイブ・シ ステムだけでなく、その他のWebアプリケーションでも有効に 活用できる可能性が高い。