パーソナル・アーカイブのための 自律分散型データ共有システムの設計 大阪市立大学大学院 創造都市研究科 都市情報学専攻 情報基盤研究分野 M04UC513 藤田昭人 はじめに • 研究の目的 パーソナル・アーカイブを実現する上で必要となる共有ストレージを分散 環境において実現する • 研究のアプローチ 1. 2. 3. 既存のアーカイブ・システムのストレージ構造を調査する 自律分散環境を実現するP2P技術について調査する 上記2項の結果に基づき分散共有システムを設計する パーソナル・アーカイブ • パーソナル・アーカイブとは? – 個人のビジネスや研究・開発などの作業を支援する私的なアーカイ ブ – ネットワーク化することにより専門性が高く網羅的な仮想的なデータ ベースを実現 • パーソナル・アーカイブを実現する上での技術的課題 1. 収容するデジタル・コンテンツの分散共有の方法 2. 収容するデジタル・コンテンツの著作権管理の方法 ※ 本研究では1.の課題について検討を行った 既存アーカイブ・システムの構造 Statistics Tools Web UI OAI-PMH Data Provider Simple Importer/ Exporter Media Filter METS Exporter Application Layer DSpace Public API Core Tools Search (Configuration, Logging) (Lucene Wrapper) Browse Tools History Recorder Administration Toolkit Content Management Handle Manager Handle Server Storage Plug-in E-person/ Group Manager Submission Workflow Manager Business Logic Layer Authorisation Storage API RDBMS Wrapper Bitstream Storage Manager JDBC PostgreSQL Oracle File System SRB (Storage Resource Broker) Storage Layer パーソナル・アーカイブ化する上での課題 • 既存のアーカイブ・システムの分散共有には次の項目の分 散化が必要 – デジタル・コンテンツ自体を格納するファイル形式のデータ格納機構 – デジタル・コンテンツのメタデータを格納するリレーショナル・データベ ース 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 ー 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) ファイル参照系 User Program DHash chordcd DHash Chord Chord System Call NFS 3 Kernel NFS Client Chord Ring DHash Private key CFS sfsrodb Chord 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) User Program Ivy Server (cfsrwcd) DHash DHash Chord Chord Ivy agent Private key NFS 3 System Call Chord Ring Kernel NFS Client DHash Chord DHash Chord DHash Chord データ共有システム • Webアプリケーションとして実装された既存アーカイブ・シス テムの自律分散化を実現 • 分散ファイルシステムと分散データベースの機能を提供 • 自律分散にはChord/Dhashを活用する データ共有システム PC PC P2P Overlay Network PC PC PC Web Server Archival System Web Browser Server-Side Script Language Filesystem DBMS P2P Data Sharing System Chord/DHash PC 分散ファイルシステムの設計上の要点 • 分散ハッシュテーブルを活用することにより、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 Local Database PC P2P Overlay Network PC Local Database Content-Hashed Page PC Content-Hashed PC Page マスターデータベース Master Database Page List (Consistent-Hash) Page Block (Content-Hash) H(Page0) Page 0 H(Page1) H(Page2) H(PageN) Page 1 Page 2 Page N マスターからローカルへの同期操作 ① マスターノードよりページリストを取得 ② ページリストを元に古くなったページを探索 ③ 古くなったページについて各ノードから最新ページを取得 Consistent-Hashed Master Database Content-Hashed Page ③ PC PC ① Content-Hashed Page ② ③ PC Local Database ③ ③ PC Content-Hashed Page PC Content-Hashed Page PC ローカルからマスターへの同期操作 ① トランザクション内の更新コマンドを一括して転送 ② マスターデータベースを一括更新 ③ 更新されたページのコンテンツ・ハッシュ化して各ノードに転送 Consistent-Hashed Master Database Content-Hashed Page ② ③ PC PC ③ ① ③ PC Local Database ③ PC Content-Hashed Page PC Content-Hashed Page Content-Hashed Page PC おわりに • 本研究ではP2P技術を活用したアーカイブ・システムの分散 データ共有方法を提案する。 • 本研究ではSQLクエリーエンジンが要求するACIDセマンティ ックスを分散環境で実現するため、SQLトランザクションに基 づく同期手法を提案する。 • 本研究で提案する分散データ共有システムはアーカイブ・シ ステムだけでなく、その他のWebアプリケーションでも有効に 活用できる可能性が高い。
© Copyright 2024 ExpyDoc