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