Comments
Description
Transcript
長期間の放送番組のタイムシフト 視聴環境のための分散ファイルシステム
報告 長期間の放送番組のタイムシフト 視聴環境のための分散ファイルシステム 金子 豊 竹内真也 黄 珉錫 苗村昌秀 Distributed File System that Stores Long−term TV Programs for Time−shifted Viewing Environment Yutaka KANEKO,Shinya TAKEUCHI,Minsok HWANG and Masahide NAEMURA 要約 ハードディスクレコーダーや,ビデオオンデマンド(VOD:Video on Demand)などの通信系 サービスの普及により,タイムシフト視聴が増加している。今後の放送システムにおいては,従 来と同様の放送サービスを提供するだけでなく,放送後に放送コンテンツを通信系サービスへ提 供することが多くなると予想される。本稿では,将来の長期間にわたる放送番組のタイムシフト 視聴サービスを前提とし,放送コンテンツを長期的に保管して,その映像,音声,関連データに 放送時刻を使ってアクセスできるスケールアウト型の分散ファイルシステムを提案する。この ファイルシステムは,保管したファイル内のデータを,フレーム単位で,仮想的なファイルの時 間軸上にマッピングすることにより,フレーム単位でデータを取得できる。また本稿では,試作 したシステムを放送番組の録画システムとして利用した約4年間の実験運用の経過とアクセス性 能について述べる。 ABSTRACT 46 NHK技研 R&D/No.149/2015.1 Personal hard disk recorders and communication services, such as video on demand, are becoming popular, and many people use timeshifted viewing. Future broadcasting systems must be able to store longterm broadcast content in order to provide various communication services in addition to traditional broadcasting service. In this paper, we propose a scaleout distributed file system that can access stored content through a virtual file with an onair time. In this file system, each frame of the stored content can be mapped on the temporal axis of the virtual file. This paper also describes the access performance of a prototype system, which has been recording broadcast programs for about four years. 1.はじめに 加させることが可能なスケールアウト型の分散ファイル ハードディスクレコーダーなどの録画機や,ビデオオン システムとした。 デマンドサービスの普及により,放送後の好きな時間に視 ② 通常のディスクと同様なファイルの入出力ができる 聴するタイムシフト視聴が増加している。現状ではリアル 放送局のファイルベース化が進み,番組制作にはパーソ タイムの放送番組,録画番組,VODが提供する番組を視 ナルコンピュータ(PC:Personal Computer)上のノ 聴者は使い分ける必要があるが,今後,これらを意識する ンリニア編集*3ソフトウエアが使われている。PCから ことなくシームレスに視聴できる環境が整っていくことが ファイルの入出力が容易にできるように,分散ファイル 予想される。 システムを,通常のディスクと同様にディレクトリーお 放送メディアは毎日,毎週の決まったタイムテーブルに よびファイルの読み書きができる構造とした。 従って放送番組を提供するという特徴があり,放送時刻 ③ 長期間の放送コンテンツを容易に取得できる は,番組名とともに放送番組を特定する手段として重要で 長期間の番組を保管した大規模なストレージシステムで ある。しかし,現在のタイムシフト視聴では,見たい番組 は,目的のコンテンツを利用するために,多数のファイ を番組単位で選択して視聴することが多いため,放送時刻 ルの中から必要なファイルを見つけ出さなければならな はあまり活用されていない。 い。試作した分散ファイルシステムでは,時刻を指定す VODで提供する放送番組は年々増加しており,将来的 ることで, 「仮想メディアファイル」と呼ぶ仮想的な1 に放送した番組をすべてVODで提供可能になれば,放送 つのファイルを介して,保管したファイル内のデータを 時刻を指定することによって,任意の放送時刻からタイム 読み出せるようにした。これにより,1図に示すよう シフト視聴を行うことが可能となる。チャンネルをザッピ に,分散ファイルシステムに蓄積され続ける長期間の放 ング *1 するように時間方向にもザッピングを行うなど, 送コンテンツに対して,実際のファイル名やディレクト 簡易な操作で放送中の番組と過去の番組を切り替えて視聴 リー名を意識することなく,1つのファイル(仮想メ できるようになれば,知らなかった番組に偶然出会う機会 ディアファイル)へアクセスすることで,放送時刻を 1) の増加が見込める 。また,放送時刻はID(Identification) IDとして任意の時刻位置からデータを取得できる。 として利用できるため,番組途中の放送時刻を記録してお ④ 多言語字幕や音声など関連するコンテンツを同期して き,それを使って後で視聴するなど,これまでの番組単位 利用できる の視聴とは異なる視聴方法が可能となる。 1図に示すように,利用者は必要な仮想メディアファ これまでの放送局のシステムは,リアルタイムの放送 イル名を指定してアクセスすることで,必要なデータだけ サービスを行うことを中心に構築されてきたが,今後の放 を選んで取得することができる。仮想メディアファイルへ 送システムは,上に述べたようなVODなどの通信系サー のアクセスはフレーム単位の時刻情報により行うため,映 ビスも考慮に入れて構築していく必要がある。 像,音声,字幕など複数のコンテンツを,フレーム単位で 本稿では,長期間にわたる放送番組のタイムシフト視聴 同期して読み出せる。 環境を提供する将来の放送サービスを想定し,映像,音 声,関連データなどの放送コンテンツの長期的な保管と, さまざまなサービスへの柔軟なコンテンツ提供を目的とし て試作したスケールアウト型 *2 の分散ファイルシステム の概要を述べる。 3.試作した分散ファイルシステムの概要 試作した分散ファイルシステムは,複数のノードで構成 される。ノードは,ファイルを保管する「ストレージノー ド」と,それ以外の「タップノード」に分類される。タッ プノードとは,ファイルの保管以外の個別の機能を実行す 2.システムの要求条件と特徴 るノードである。 数年から数十年の長期間にわたる放送番組のタイムシフ 分散ファイルシステムに保管するファイルには,システ ト視聴環境を提供する将来の放送サービスを想定して,主 ム内で一意なファイル名を付け,いずれかのストレージ に以下の要求条件を満たす放送システム用のファイルシス ノードのローカルファイルシステムに保存する。そして, テムを試作した。 ① 永続的に運用が可能で,長期間の放送コンテンツを蓄 積できる システムの永続的な運用を考慮し,必要に応じてノード (蓄積装置や処理サーバー)を追加することで容量を増 *1 リモコンなどでチャンネルを頻繁に切り替えながら視聴すること。 *2 サーバーを追加することで,容量の増加や性能の向上が可能である こと。 *3 ランダムアクセスができるハードディスクなどの蓄積装置に保管さ れた映像や音声のファイルを編集すること。 NHK技研 R&D/No.149/2015.1 47 報告 ストレージ ノード 放送 タップ ノード 放送番組 通信 分散ファイルシステム 放送素材 視聴者 関連データ サービス 時刻ID 放送時刻 (未来) (過去) 映像 音声 副音声 日本語字幕 英語字幕 番組情報 仮想メディアファイル 必要なデータを 選んで利用できる 1図 分散ファイルシステムの概要 ファイル名をkey,その保管先アドレスをvalueとし,そ れをストレージノードで構成する分散型のキーバリュース 分散型のKVSでは,ノードの参加や離脱により生じる *4 に登録することで, トア(KVS:KeyValue Store) テーブルの不整合により,登録されているkeyが一時的に ファイルの保管先を分散管理する2)。 検索できなくなるという問題がある。試作した分散ファイ 3.1 分散キーバリューストア ルシステムにおいては,ストレージノードの参加や離脱は 分散ファイルシステムを構成するノードは,そのノード 非常にまれにしか生じない点を考慮し,valueの保管先は のIPアドレス(Internet Protocol Address)とポート番 ストレージノードに限定している。これにより,タップ 号 *5 から生成した「ノードID」 (SHA−1で生成したハッ シュ値 *6 )により識別される。ノードを一元的に管理す るサーバーは存在せず,すべてのノードが,共通の「管理 用テーブル」と「検索用テーブル」の2つのノードテー ノードの参加や離脱が頻繁に行われてもKVSの検索には 影響しない。 3.2 タップノード タップノードは,ストレージノード以外の個別機能を有 するノードである。主なタップノードについて以下に述べ ブルを持つ。 管理用テーブルは,分散ファイルシステムを構成する全 ノードのノードIDを昇順(小さい値から順番)にソート る。 (1)アクセスノード した(並べた)リストである。各ノードは隣接するノード 利用者はアクセスノードを介してファイルやディレクト の参加または離脱を監視し,それを発見すると階層的な通 リへの操作を行うことができる。分散ファイルシステムを 3) 4) 。また,各ノードは 6) を利 実装するためにFUSE(Filesystem in Userspace) 定期的に他のノードとテーブルの内容を確認しあい,ノー 用した。FUSEは,さまざまなユーザープログラムをファ ドテーブルを常に一致させる。 イルシステムとして実行できるソフトウエアである。 知手段により全ノードへ通知する 検索用テーブルは,ストレージノードのノードIDを昇 順にソートしたリストである。検索用テーブルはKVS の検索に用いる。KVSに<key,value>を登録する場合, 検索用テーブルにおいてkeyのハッシュ値に最も近い値の ノードIDを持つノードが,valueを保管する5)。各ノード は自分が持つ検索用テーブルを使うことで,keyに対応す 48 るvalueを保管するノードを知ることができる。 NHK技研 R&D/No.149/2015.1 FUSE内からアクセスノードを利用することで,通常の *4 保存するデータ値であるvalueに,検索用の識別子としてkeyを付け, これらをペアとして保存するデータの管理手法。複数の記憶装置に 分散して保存する場合,分散KVSと呼ぶ。 *5 インターネット通信で通信先のプログラムを識別するための番号。 *6 あるデータを元に,一定の計算手順により求めた規則性のないデー タ値。SHA−1はハッシュ値を計算するためのハッシュ関数の1つ。 メディアファイル メディアファイル len pos pos1 len1 仮想メディアファイル ed_tst st_tst tst1 tst2 len2 tst3 放送時刻 インデックスファイル インデックスファイル 開始時刻 ID 終了時刻 ID データ 開始位置 st_tst ed_tst pos ・・・ ・・・ ・・・ 開始時刻 ID 終了時刻 ID データ 開始位置 データ長 len tst1 tst2 pos1 len1 ・・・ tst2 tst3 pos2 len2 ・・・ ・・・ ・・・ ・・・ データ長 フレーム 2図 メディアファイルと仮想メディアファイルの関係 ディスクと同様に分散ファイルシステムへの読み書きが行 えるとともに,後述する仮想メディアファイルにアクセス することもできる。 (2)容量均等化ノード もメディアファイルとして扱う。 (1)仮想メディアファイルとその管理 メディアファイルと仮想メディアファイルの関係を2図 に示す。メディアファイル内の時系列に繰り返されるデー システム内に異なる容量のストレージノードが混在でき タ1つ分を1フレームと定義し,フレーム単位に仮想メ るように,容量均等化ノードは,ストレージノードのディ ディアファイルの時間軸上にマッピングする。マッピング スクの使用率を監視し,各ストレージノードのディスクの とは,メディアファイル内の1フレーム分のデータを, 使用率が均等になるように,ストレージノードに定期的に 仮想メディアファイルの時間軸上の開始時刻IDから終了 ファイルの転送命令を出す。容量均等化ノードから転送を 時刻IDまでの範囲に対応付けることである。このマッピ 命令されたストレージノードは,最近アクセスされていな ング情報は「インデックスファイル」に保管する。イン い古いファイルから順に,指定された容量分のファイル転 デックスファイルもメディアファイルと同様,分散ファイ 送を実行する。 ルシステム内のストレージノードに保管される7)。 (3)ログノード インデックスファイルにはインデックス情報として, 各ノードはCPU(Central Processing Unit)の負荷や マッピングするフレームデータごとにメディアファイル内 ストレージの使用量などのノード情報を定期的にKVS のデータの位置(pos)とフレーム長(len) ,マッピング に登録する。ログノードは,定期的にKVSに登録された 先の開始時刻ID(st_tst)と終了時刻ID(ed_tst)を記録 ノード情報を検索し,ログファイルに保管する。 する。本試作システムでは,時刻IDとして,日付を表す (4)データベースノード データベースノードは,仮想メディアファイルを提供す るためのデータベースであり,詳細は次節で述べる。 3.3 仮想メディアファイル 放送コンテンツは,映像フレームや音声フレームなど, ,タイムゾーン(標準時間帯) (6bit) , MJD*7(20bit) 毎0時を0とした90kHzのカウンター値(33bit)を含む 64bitの値を用いた。 (2)データベースノード データベースノードは,分散ファイルシステム内に保管 ある決まった構造のデータが時系列に繰り返されている特 徴がある。このようなデータ構造のファイルを,ここでは 「メディアファイル」と呼ぶ。字幕などのテキストデータ *7 Modified Julian Date(修正ユリウス日):日付を1858年11月17 日0時からの日数で表現するデータ形式。デジタル放送の日付のデー タ形式などに使われている。 NHK技研 R&D/No.149/2015.1 49 報告 fd=open( /dir1/dir2/fileA.h264 ); fd=open( /@NHKG/video.h264 ); while(...){ while(...){ pread(fd, buf, size, offset); pread(fd, buf, buff_size, 時刻 ID); ..... ..... } } close(fd); close(fd); (a)通常ファイル (b)仮想メディアファイル 3図 ファイルの読み出し方法 されているインデックスファイルを収集しデータベースを 声,字幕,番組情報を保管する録画システムとして,2010 構築する。そして,指定された時刻IDから,その時刻を 年10月から動作させた。実装にはLinux 2.6を用い,ノー 含むインデックスファイルのファイル名を検索する役割を ド間は1Gb Ethernetで結ばれている。 する。 4.1 試作システム アクセスノードはデータベースノードを検索し,その検 3台のストレージノードから開始し,2014年9月の時 索結果(インデックスファイル名)から分散ファイルシス 点では,ストレージノード26台,アクセスノード23台で テム内に保管されているインデックスファイルを取得し, あり,分散ファイルシステムとしてのディスク容量は585 所望の時刻IDの位置のフレームデータを取得する。アク TB,使用容量は487TB,保管ファイル数は約670万ファ セスノード内でインデックスファイルをキャッシュ(一時 イルとなっている。 的に保管)することにより,データベースノードへの検索 回数を減らし,読み出し速度の低下を抑えている。 (3)仮想メディアファイルへのアクセス 仮想メディアファイルは,ユーザーからは“@”で始ま 試作システムにおいては,10チャンネル分の放送番組 を毎日24時間保管し,映像については,放送時のMPEG2 (Moving Picture Experts Group 2)フ ァ イ ル(12∼18 Mbps程度)を一旦分散ファイルシステムに書き込んだ後, るディレクトリ内のファイルとして見え, “/@ディレクト データ量を削減するためにMPEG4AVC/H.264*9ファイ リ名/仮想メディアファイル名”というパス名でアクセス ルに変換し,その後,元のMPEG2ファイルは削除して できる。同じディレクトリ内の仮想メディアファイルは, いる。映像(H.264),音声(AAC:Advanced Audio 同一の時間軸上にマッピングされていることを示してい Coding) ,字幕(テキスト)は1時間ごとのファイルに保 る。たとえば,@NHKGというディレクトリ内のファイル 管し,番組情報(テキスト)は1日分を1ファイルとし video1.h264とaudio1.aacは,それぞれNHK総合テレビの て保管している。これらのファイルは,それぞれ仮想メ 映像と音声の仮想メディアファイルである。 ディアファイルにマッピングされている。 3図に示すように,C言語を使った場合の仮想メディア ファイルへのアクセスは,通常のファイルと同様に, *8 4.2 動作経過 4図に,試作した分散ファイルシステムのディスク使 を実行後,preadシステムコール 用量の推移を示す。4図でディスク容量のグラフの上の を使う。引数として与えるオフセット値には時刻IDを用 数値は,ストレージノードの数を表している。試作した分 い,その時刻へマッピングされているフレームデータが, 散ファイルシステムは1日に約300GBのディスク容量を 指定されたバッファーに読み出される。読み出されたデー 消費し,毎日約4,000ファイルが増え続けている。ディス タの先頭にはインデックス情報(インデックスファイルに ク使用量に応じてストレージノードを追加することによ 記録されている開始時刻IDなど)が格納されており,こ り,分散ファイルシステムの全体容量を増加させることが のインデックス情報から,取得したフレームデータがマッ 可能であり,スケールアウト型システムの特長を生かした ピングされている時刻範囲,データサイズを知ることがで 運用を実証することができた。 openシステムコール きる。また,インデックス情報から取得した終了時刻ID を次の読み出し要求に用いることで,連続するフレーム データを取得することができる。 *8 オペレーティングシステムの機能を呼び出すための命令や関数呼び 出しをシステムコールと呼ぶ。 4.長期運用試験と性能評価 *9 ISO/IEC(International Organization for Standardization:国際標 準化機構/International Electro technical Commission:国際電気 標準会議)とITU(International Telecommunication Union:国際 電気通信連合)によって2003年に勧告された動画圧縮規格。 試作した分散ファイルシステムを,放送番組の映像,音 50 NHK技研 R&D/No.149/2015.1 700 26 600 500 22 容量 ディスク容量 400 19 (TB) 300 14 ディスク使用量 200 100 5 3 年 10 20 0 月 0 1 月 月 月 月 0月 0月 0月 0月 年4 年4 年4 年4 年1 年1 年1 年1 13 12 14 13 12 11 14 20 20 20 0 20 20 20 2 11 20 4図 ディスク使用量の推移 900 800 読み出し データ転送速度 700 600 500 400 (Mbps) 300 書き込み 200 100 0 1 10 100 1,000 メッセージサイズ(kbyte) 5図 通常ファイルの読み書き速度 1表 シーケンシャルアクセス時の読み出し速度(平均値) ジサイズによらずほぼ一定の速度となった2)。 映像 音声 字幕 仮想メディアファイルから1日分のデータをシーケン フレーム転送速度 (frame/sec) 6,409 28,722 141 シャル(先頭から順)に読み出した場合の平均速度を1表 1フレームの転送時間 (msec) 0.156 0.035 データ転送速度 (Mbps) 493 に示す。映像,音声ともに,リアルタイム再生時の速度に 107 7 比べて,十分な速度が得られている。通常ファイルの読み 0.14 出し(5図)に比較して遅いのは,インデックスファイ ルを使ったデータ読み出しによるオーバヘッドと,仮想メ ディアファイルへのアクセスは1フレームごとの同期読 4.3 アクセス性能 ddコマンド *10 み出しであるため,フレームサイズが小さいデータでは転 を使い1Gバイトの通常ファイルを分散 ファイルシステムに読み書きしたときのデータ転送速度を *11 送速度が遅くなることが主な原因である。 次に,仮想メディアファイルから1フレーム分のデー を使って5Gバイトの タをランダムアクセスにより読み出した場合の所要時間を ファイルをコピーした場合の平均速度は,読み出しが679 2表に示す。この結果から,視聴中にザッピングを行っ Mbps,書き込みが315Mbpsであった。FUSE内部のバッ *10 入力から出力へデータをコピーする命令。 ファーの影響を避けるためにdirect_io*12をonにしている *11 ファイルをコピーする命令。 5図に示す。また,cpコマンド ため,メッセージサイズ(転送要求のデータサイズ)が大 きいほど書き込み速度が速い結果となった。一方,読み出 しは,一定サイズの先読み*13が行われるため,メッセー *12 オペレーティングシステム内のファイル・キャッシュを経由しない アクセス方法。 *13 要求される前にあらかじめファイルからデータを読み出しておくこ と。 NHK技研 R&D/No.149/2015.1 51 報告 2表 ランダムアクセス時の1フレームの読み出し時間 (msec) 映像 音声 字幕 平均 120 177 8 最小 10 10 0.04 最大 440 990 256 スケールアウト型の分散ファイルシステムを試作した。こ のファイルシステムにおいては,仮想メディアファイルを 介して,放送時刻をIDに使って,放送コンテンツにフ レーム単位でアクセスすることができる。本システムでは フレーム単位のデータアクセスが可能であるため,映像や 音声など,コンテンツに含まれる複数のデータを同期して 取得できる。 た場合,最大でも1秒程度でジャンプ先の再生が開始可 能であることが分かる。 また本稿では,試作したシステムを放送番組の録画シス テムとして,映像,音声,字幕,番組情報を保管対象と シーケンシャルアクセスとランダムアクセスの速度の違 し,約4年間の実験運用を行った経過と,アクセス性能 いは,主にデータベースノードへのアクセス回数の違いに について述べた。本実験運用は,スケールアウト型の分散 よるものである。ランダムアクセスではフレームごとに ファイルシステムの主に容量拡張の観点から,永続的な放 データベースノードへの検索が発生する一方,シーケン 送コンテンツの保管を中心に長期的な検証を行ってきた。 シャルアクセスではインデックスファイルのキャッシュの 今後は,ユーザーからのアクセス数が増えた場合の負荷 効果があるため,ランダムアクセスに比較して映像,音声 分散の観点を含めた性能改善を実施していくことが必要で のアクセス速度が速い。一方,字幕のようにマッピングが ある。 連続しないデータに関しては,どちらの場合もデータベー スノードへの検索がフレームごとに行われるため,速度差 は生じない。 本稿は,電子情報通信学会論文誌Bに掲載された以下の論文 を元に加筆・修正したものである。 金子,竹内,黄,和泉: “放送時刻でファイルにアクセス可能 5.まとめ 将来の長期間にわたる放送番組のタイムシフト視聴サー ビスを想定し,長期間の放送コンテンツを蓄積するための 52 NHK技研 R&D/No.149/2015.1 な分散ファイルシステム, ”信学論B,Vol.J97B,No.11, pp.114(2014) 参考文献 1)竹内,黄,金子,苗村: “時刻方向へのザッピングが可能なタイムシフト視聴における操作行動, ”映情学冬 大,131(2013) 2)金子,黄,竹内,和泉: “構造型P2Pを使った分散ファイルシステムにおける分散ディレクトリ管理手法, ” FIT2009,L033,pp.213216(第4分冊) (2009) 3)A. Gupta,B. Liskov and R. Rodrigues: “One Hop Lookups for PeertoPeer Overlays, ”9th Workshop on Hot Topics in Operating Systems(HotOSIX) (2003) 4)金子,竹内,南,和泉: “OneHopP2P拡張方式の実装方法と性能評価, ”信学技報,NS200852,pp.57 62(2008) 5)D. Karger,A. Sherman,A. Berkheimer,B. Bogstad,R. Dhanidina,K. Iwamoto,B. Kim,L. Matkins and Y. Yerushalmi: “Web Caching with Consistent Hashing, ”Proceedings of the Eighth International WorldWide Web Conference(1999) 6) “FUSE:Filesystem in Userspace, ”http://fuse.sourceforge.net/ 7)金子,黄,竹内,和泉: “放送時刻を使ってフレームデータにアクセス可能な分散ファイルシステム, ”FIT 2012,L023,pp.173174(2012) かねこ ゆたか たけうち し ん や 金子 豊 竹内真也 1990年入局。盛岡放送局を経て,1994年か ら放送技術研究所において,IPネットワーク, 分散システムを活用した放送局システムの研 究に従事。現在,放送技術研究所ハイブリッ ド放送システム研究部主任研究員。 1999年入局。大阪放送局を経て,2002年か ら放送技術研究所において,ITとネットワー クを利用した放送局システムの研究・開発に 従事。現在,放送技術研究所ハイブリッド放 送システム研究部に所属。 ふぁん みんそ なえむらまさひで 黄 珉錫 苗村昌秀 2004年入局。名古屋放送局を 経 て,2008 年から放送技術研究所において,IPネットワー ク,分散処理技術の研究に従事。現在,放送 技術研究所ハイブリッド放送システム研究部 に所属。 1984年入局。大分放送局,技術局を経て, 1989年から放送技術研究所において,ハイビ ジョン信号処理,画像認識,ヒューマンイン タラクション,データ解析技術の研究に従事。 現在,放送技術研究所ハイブリッド放送シス テム研究部上級研究員。博士(情報学) 。 NHK技研 R&D/No.149/2015.1 53