[研究報告の目次に戻る]

ブロードバンド時代におけるRINGサーバの役割と運用

鳥山 孝司

山梨大学 工学部 機械システム工学科

toriyama@ms.yamanashi.ac.jp

概要

 インターネットの普及により,RINGサーバにみられるようなネットワークを利用したデータ共有手法は,今後ますます浸透していく傾向にある.ここでは,RINGサーバに使われている技術の,データの共有(ミラー)とアクセス分散について,これまで広く使われてきた手法と,プロジェクト内で開発された手法の違いについて紹介する.また,今現在使われている技術の問題点などについても述べる.

キーワード:shared data,dispersion access,mirroring,round robin,route infomation

1. はじめに

 近年,インターネットの普及により,多くの人々がプリインストールされているソフトウェアや,市販のソフトウェアのみならず,インターネットを通して,国内外で公開されているフリーウェアやシェアウエアを利用しはじめてきている.その利用の増加とともに,サイトが遠いために生ずるファイル転送の遅延や,開発者のサイトへのアクセス集中など,様々な問題がでてきている.そこで,Ring Serverプロジェクトでは,インターネットなどの高速ネットワーク環境を対象として, 大規模なソフトウェアライブラリとソフトウェアの分散共同開発の支援を行う共通基盤技術を 研究開発し,実際に運用することによりネットワーク社会に貢献することを目的としてスタートした.

 Ring Serverプロジェクトでは,大規模なソフトウェアライブラリの運用として,ベクター社のSoftware Pack窓の杜WinsiteLinuxFreeBSDなど国内外の著名なソフトウェアライブラリの複製(ミラーリング)や,プロジェクトのメンバーが独自に開発、収集したプログラムを同一のアーカイブ(ソフトウェアのファイルなど)を持つ複数のファイルサーバにて公開している.具体的な活動としては,ミラーリングの許可を得るための交渉や,ミラーリングディレクトリの決定,ライブラリ(コンテンツ)の作成,ミラーサーバの保守・運用などを行っている.また,ソフトウェアの分散共同開発の支援としては,ホームページ領域の提供,メーリングリストの提供,メールアーカイブの開設なども行っている.

 山梨大学では,この前者にあたる大規模なソフトウェアライブラリの運用に参加しており,平成12年度よりRing Serverプロジェクトに属するサーバを学内にも設置し,多くの人々に利用されてきている.今後ますます学内のみならず学外でも利用される機会も増えて浸透していくことが期待される. そこで本報告では,これまでサーバを保守・運用してきた立場から,Ring Serverのサーバを実現するための技術の紹介や問題点などについて述べる.

2. Ring Serverプロジェクトのサーバ

 Ring Serverプロジェクトは,多くのファイルサーバの集合体である.各サーバは,その役割によってベースサーバ(Base servers)とミラーサーバ(Mirror servers)に分類される.基本的に,ベースサーバでは国内外の著名なライブラリのサーバと直接接続してコピーを行っている.ベースサーバはマスターサーバとバックアップサーバの2種類があり,一般のコンテンツ及びアーカイブの公開以外にも,ミラーサーバのミラー元として動いている.また,バックアップサーバは,マスターサーバがダウンしたときに代わりを務める.ミラーサーバは,ベースサーバのファイルの一部をコピーしているサーバである.基本的に,国内外のサイトからミラーしたファイルは全てコピーされている.山梨大学に設置されているサーバはこのミラーサーバにあたる.

 Ring Serverプロジェクトに属するサーバは大量のデータをミラー及び公開することができれば,ハードウェア,OSともに特に指定されてはおらず,ハードウェアでは,Spark Station,PC/AT互換機が,OSでは,FreeBSD, Solaris, Linuxが主に使われている.また,ハードディスクのサイズも各サーバ毎に異なる.なお,我が山梨大学に設置されているサーバでは,PC/AT互換機上にLinuxを載せて運用している(主なスペック:CPU PentiumIII 750MHz, メモリ 256MB, 総ディスク容量 500GB).

 これらのRing Serverのサーバを実現するためには,大量のアーカイブデータのミラーリングや同一のサーバへのアクセス集中が行われないようにするための技術が必要不可欠である.また,外部からの接続も数多く行われるため,外部への回線も十分な転送速度を有している必要がある.

3. 従来の手法

3.1 従来のミラー手法

 今現在では,ミラー用のプログラムはfmirror,ftpcopy,wgetなど様々なツールが存在するが,Ring Serverプロジェクトが開始された当初,アーカイブのミラーには,Perlスクリプトであるmirrorが用いられていた.しかし,mirrorは双方すべてのファイルリストを作成し,それらを比較してから転送を行うという手法であるため,大規模なディレクトリツリーのミラーではメモリもしくは一時ディスクが不足するという問題点が多々発生した.従って,RINGサーバのような大規模なミラーには適用できず,メモリの使用量及び一時ディスクの使用量が比較的少ないミラーの手法を開発する必要があった.

3.2 従来のアクセス分散手法

 Yahooなどに見られるように,多くのアクセスが行われるサイトでは,単一のサーバがサービスを行うのではなく,複数のサーバによって処理の分散を行っている.これは,一般的にロードバランシングと呼ばれている.従来,ネームサーバ(BIND)の機能による,ラウンドロビンDNS(DNS Round Robin)が利用されてきた.ラウンドロビンDNSは,DNSのA(address)レコードで指定(CNAMEで指定する方法もある)することにより,アクセスの分散を実現する手法であり,登録順に接続を割り振るという動作をする.この手法では,リゾルバ情報がインターネット上のネームサーバにキャッシュされるため,完全なるロードバランシングは期待できない.また,回線の速度や,サーバの処理能力を考慮していないため,回線が低速もしくは処理能力が低いサーバの負荷が他と比べて高くなるという問題も有する.しかしながら,この手法は簡単に導入できるため,Ringサーバでは,後述する2つの分散手法以外にもラウンドロビンDNSの設定がなされている.ラウンドロビンDNSによる接続では,HTTPではhttp://www.ring.gr.jp/,FTPではftp://ftp.ring.gr.jp/のURLでRingサーバ群に接続が行われる(なお,ブラウザからFTPへ接続を行うと,Ring Serverプロジェクトのページではなく,アーカイブやディレクトリが表示される).ラウンドロビンDNSの問題である処理能力差を考慮したものに,重み付きラウンドロビン(Weighted Round robin:WRR)と呼ばれるものがある.これは,マシンの処理速度に応じて重みを付け,それに従い,アクセス(次の登録マシンに接続を渡すまでの回数)を割り振る手法である.これは,WRR機能付のルーターやLinuxシステムのipvsadmコマンドによって実現される.しかし,Ringサーバのように,転送データのサイズがその都度大きく異なる場合(Ringサーバのアーカイブには,キロバイト単位のものから数百メガ単位のサイズのデータがある)には,サーバの負荷分散が適切に行われない.また,経路情報を考慮した手法ではないため,近場にサーバがあったとしても,遠方のサーバに接続が振られてしまう可能性があり,Ringサーバのようなシステムに適用するには不向きで,それに代わる手法が必要であった.

4. Ring Serverで用いられている技術

 従来の方法では,Ring Serverを支えるのには不十分な技術であり,これまでの技術の改良もしくは,新たな手法の開発が必要である.そのため,Ring Serverプロジェクト内では,これらの手法に対し日々改良が続けられ,テストを行っている.ここでは,そのRing Serverプロジェクトで開発された技術及び問題点について報告する.

4.1 アーカイブのミラー手法と問題点

ftpmirrorによるミラー

 大規模なミラーには多くのメモリを必要とするmirrorでは不十分で,その改良版であるftpmirrorが開発された.ftpmirror では「深さ優先探索+処理した情報は捨てる」という方針で実装されているため,大規模なディレクトリツリーの同期でもメモリ使用率を抑えられるという利点がある.ftpmirror でミラーを行うには設定ファイルが必要であり,その設定には多少の知識を要する.ftpmirrorでは,大きなファイルや,多くのファイルを有するディレクトリごとミラーを行うとミラーが失敗する場合がある. これは,ネットワーク転送の問題が原因であるため,インターネットを経由するミラーでは避けられない問題である.ミラーの粒度(ミラーを行うディレクトリが小さくなるように細分化すること)を細かくするによって対処できるが,粒度の設定など,各サーバ毎に設定をする必要があり,自動化は難しい.

rsyncによるミラー

 現在,ミラーサーバ側のミラーツールとして,リトライ(レジューム)機能を持つミラーツールであるrsyncが使われてきている.実際には Anonumous rsync という手法でミラーを行っている.rsync は,設定ファイルを必要としないため,ミラーは比較的容易にでき,リトライ機能を有するため,ミラーの失敗を防ぐことができる.しかしながら,ミラーの粒度の問題はftpmirrorの場合と同様に存在する.また,ミラー元に Anonymous rsync の設定が必要なため,ベースサーバでは利用できないなどの問題点もある.

大量ミラー時の問題点

 通常のミラーツールでは,一度に多くの部分をミラーするような設定であると,ミラー元で変更が行われた場合,すぐには末端のサーバにその変更が反映されないという問題が発生する.対処方法としてはミラーの粒度を小さくする方法が挙げられるが,粒度の操作を各サーバ毎に行うことは人的コストがかかるという問題が生じる.また,ベースサーバからミラーを行っている際に,ベースサーバ側でミラー中のファイルが削除されると,その実行中のミラーは正常には行われなくなる.従って,ミラーを行う時間の整合を取るといった対策が必要である.従って,ミラーを行う時間の整合やミラーの粒度の問題など未だ解決すべき問題は多い.

4.2 アクセス分散の手法

DNS Balanceによるアクセス分散

 DNS Balance はユーザのIPアドレスと,何らかの方法でサーバをランクづけした表を元にユーザが接続すべきサイトを指示する手法方法である.この表は一定時間毎に読み込み直され,動的な負荷分散を可能とするため,重み付きラウンドロビンにあるデータ転送サイズによるロードのアンバランスを防ぐことができる.なお,Ringサーバではこのサーバ負荷表を5分毎に自動生成している.DNS Balanceによるアクセス方法は,HTTPはhttp://www.dnsbalance.ring.gr.jp/,FTPはftp://ftp.dnsbalance.ring.gr.jp/である.しかし,経路情報を考慮した手法ではないため,近場にサーバがあっても,遠方のサーバに接続が振られてしまう可能性がある.なお,このシステムの実現には,各サーバに負荷を測定するための機構と,その結果をひとつにまとめて表にするシステムを構築する必要がある.

TENBINとRADIXによるアクセス分散

 経路情報を考慮した手法として,TENBINRADIXを用いた手法がテストされ始めている.TENBINとRADIXによるアクセス方法は,HTTPはhttp://www.t.ring.gr.jp/,FTPはftp://ftp.t.ring.gr.jp/である.しかし,完成度は低く,遠方のサーバに接続が振られてしまう場合も多い.

5. まとめ

 RINGサーバを支える技術として,大容量ミラーとアクセス分散の手法及び問題点いついて述べてきたが,まだまだ快適な運用を行うためには解決すべき問題が数多く残されているのが現状である.しかし,Ring Serverプロジェクトでは開発,改良が繰り返されており,この多くの問題点も改善されていくであろう.家庭にもブロードバンドが広がりつつある現在,今後Ringサーバの必要性は増大するであろう.また,Ringサーバで開発された技術は,これからますますいろいろな分野で利用されていくものと思われる.

参考文献,URL

  1. Ring Server Project
    http://www.ring.gr.jp/
  2. Helpdesk: LinuxTips - ラウンドロビンDNSでhttpサーバへの負荷を分散させたい
    http://www.zdnet.co.jp/help/tips/linux/l0355.html
  3. Linux Virtual Server Project
    http://www.linuxvirtualserver.org/
  4. Load-Balancing DNS server DNS Balance
    http://openlab.ring.gr.jp/dns_balance/dns_balance.html

[研究報告の目次に戻る]