• 検索結果がありません。

Research on Simulation Platforms of Solid-State Drives with RAID Configuration 電気電子情報通信工学専攻 荒川 飛鳥

N/A
N/A
Protected

Academic year: 2021

シェア "Research on Simulation Platforms of Solid-State Drives with RAID Configuration 電気電子情報通信工学専攻 荒川 飛鳥 "

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

修士論文要旨( 2015 年度)

RAID構成のソリッド・ステート・ドライブの シミュレーションプラットフォームの研究

Research on Simulation Platforms of Solid-State Drives with RAID Configuration 電気電子情報通信工学専攻 荒川 飛鳥

Asuka ARAKAWA

1 研究の背景・目的

パーソナルコンピューターや携帯電話の普及と インターネットの発達により、インターネットがな い生活が考えられない世の中になった。情報機器 の普及により流通する情報量は増加し、データを 保存するストレージの容量も増加している。現在、

記憶装置として主にハード・ディスク・ドライブ

( HDD )が用いられており、単体の書き込み・読み 出しといった入出力速度の高速化や高信頼化のため に、 HDD を並列化したディスク・アレイ技術である RAID ( Redundant Arrays of Inexpensive Disks ) [1]

が用いられている。しかし、 HDD は機械的に駆動 する部品を用いて入出力を行っており、ネットワー クや CPU の高速化に対して相対的なアクセス速度 の低下が課題となっている。そこで、 HDD よりも 高速で低消費電力な記憶装置として NAND フラッ シュメモリを用いたソリッド・ステート・ドライブ

( SSD )が注目されている。

そのような背景の中、ソリッド・ステート・ドラ イブを HDD で行っていた RAID 構成を用いて高速 化と高信頼化を実現する研究が盛んに行われてい る [2–5] 。これらの論文では、ディスクの故障に対 して復旧するための RAID の仕組みを利用し SSD の信頼性を高める技術や、その並列性を活かしより 高速なストレージシステムを提案している。提案 するアルゴリズムをシミュレーターを用いて実装 することで、より短期間での評価が可能となり、多 くの研究でシミュレーターが用いられている。

本論文では、シミュレーターを用いた RAID 成の SSD の入出力性能や消費電力の評価を行う シミュレーションプラットフォームを開発した。

RAID 構成の SSD シミュレーターは、竹内研究室 で開発した単体 SSD のシミュレーションプラット フォームを拡張し、 RAID コントローラーや並列動

NAND Flash Memory NAND Flash

Memory NAND Flash

Memory SSDコントローラー ATAインターフェイス

ホスト

ATAインターフェイス

論物変換機能

エラー訂正機能 R/W Engine

NAND Flash Memory NAND Controller NVRAM Controller

DRAM

SSD SATA通信

モジュール 機能

図 1 SSD シミュレーターの概要

作機能を追加することで実装されている。さらに、

動作の検証のために RAID1 のコントローラーを実 装した。

2 単体 SSD のシミュレーションプラット フォーム

SSD の各モジュールを C++ でモデル化し、 Sys- temC [6] により各モジュールを並列に独立して動 作させることでシミュレーターを実装しているの が、 SSD シミュレーターである(図 1) 。各機能や 構造、その通信などは全て C++ ベースで記述され、

ホストや ATA インターフェイス、 SSD コントロー

ラーといった各モジュールは実際の製品では独立

して動作するため、そのハードウェアモデリング

を SystemC を使用しトランザクションベースのモ

デリング( TLM, Transaction Level Modeling )で実

装している。各モジュールや機能は、自由に切り換

え、追加が可能であることがこの SSD シミュレー

ターの特徴であり、実行時に与えるパラメーターに

よって設定と切り替えが可能な仕組みになってい

る。また、ホストには様々なアプリケーションが接

続できるようにしてありデータベースシステム等

のアプリケーションや、事業用サーバーから取得し

(2)

DRAM

MLC1

MLC2 ATA

Initiator

SCM SSD

conrtroller ata_skt

dram_skt[ ]

nand_skt[ ]

NVRAM nvram_skt[ ]

図 2 SSD シミュレーターの各モジュール間の接続図

0

7 1 2 3 4 5 6

0 4 1

5 2

6 3

7

論理アドレス

論理アドレス Strip Size

Striping Size

disk0 disk1 disk2 disk3

図 3 RAID0

0

7 1 2 3 4 5 6 論理アドレス

論理アドレス Strip Size

0 1

disk0 disk1

2 3 0 1

2 3

データの2重持ち

図 4 RAID1

たアクセスパターンのログ(リアルトレース)など が利用できる。

図 2 に、各モジュールの接続図を示す。独立して 動作するモジュール間は、 TLM レベルのソケット を用いて接続されており、モジュール間のデータの 転送やメッセージのやり取りは全てこのソケット を介して行われる。 ATA イニシエーターと SSD コ ントローラー間は 1 対のみだが、 SSD コントロー ラーと MLC,SCM 等のメモリ間は SSD の構成に よって動的にそのソケット数が変化する。

3 RAID の概要

RAID(Redudant Array of Independent Disks [1]

とは、安価で低容量のハード・ディスク・ドライブ

( HDD )を用いて、大容量で信頼性の高いストレー ジを構築するための技術である。冗長性の持たせ 方により RAID のレベルは複数あり、現在では主に

Host RAID Controller ATA

Interface ATA

Interface ATA

Interface

SSD SSD

SSD

multi_ssd_testbench

図 5 RAID 構成の SSD シミュレーションプラット フォーム

RAID0 RAID1 RAID5 RAID6 とその組み合わ せが用いられている。図 3 RAID0 の実装の概念 図である。 RAID0 はストライピングと呼ばれるよ うに、データをスプリットサイズに分け複数のディ スクに並列に書きこむことで高速化を図る。この RAID レベルは冗長性はない。図 4 に示す RAID1 はミラーリングと呼ばれるように、全く同じデータ を 2 台のディスクに書きこむことでデータの損失 を防ぐ仕組みである。この RAID レベルは読み出 しのときに 2 台のディスクを並列動作させること で高速化を行っている。

4 RAID 構成 SSD のシミュレーションプ ラットフォームの開発

竹内研究室で実装されているソリッド・ステー ト・ドライブ( SSD )のシミュレーターは、単体の SSD のシミュレーションしかできなかった。そこ で、シミュレーションプラットフォームを新規で 実装し、複数台の SSD を並列化し同時に動作させ ることができるシミュレーション環境を構築した。

図 5 に実装したプラットフォームの概要を示す。各 SSD は独立して動作させる必要があるため、 SSD ごとにリクエストを処理するためのスレッドとし て ATA Interface の階層がある。また、ホストから 来たリクエスト処理及び、各 SSD へのリクエスト の生成を担うのが RAID コントローラーの階層で ある。 SSD の台数及び、各 SSD の特性は任意に指 定できるようにした。

図 6 には、 RAID 構成 SSD におけるソケットの

接続を表す。既存の単体 SSD のシミュレーターで

は、 SSD コントローラーや NAND フラッシュメモ

(3)

testbench Host and RAID Controller

ATA Controller ata_ifs : ata_initiator

ssd

i_mlc_top : memory_core_mlc nvram_skt

dram_skt

i_dram_top : memory_core_dram

i_nvram_top : memory_core_nvram

nand_skt

nand_skt

i_scm_top : memory_core_scm

nand_skt

i_tlc_top : memory_core_tlc i_ssd

: ssd_controller_top raid_skt

i_ata_initiator : multi_ssd_ata_log_initiator

ATAログ

*

ata_skt 1

図 6 RAID 構成の SSD シミュレーションプラットフォームのモジュールの配置

Cursor-Baseline = 17,334,069,411ns Baseline = 0

Cursor = 17,334,069,411ns

start_lba[63:0]

length[63:0]

sd_ata.state [63:0]

iator0.state [63:0]

iator1.state [63:0]

"74432"

"840"

"WRITE48"

"WRITE49"

"WRITE50"

74328 74432

96 840

WRITE WRITE48

IDLE44 WRI WRITE2 WRITE4

WRITE WRI WRITE0 WRITE6

17,334,000,000ns 17,334,200,000ns 17,334,400,000ns

TimeA = 17,334,069,411ns

図 7 並列動作の検証結果

リスト 1 SSD2 台を用意する際の実行コマンド

1

./main.x −− multi_ssd 2 −− use_log=/localdisk/

ata_log/tpcc − new.log −− log_v 0 −− identify 2 −−

param " −− rw_engine 3 −− lp_mapper_type 3 −−

dump_write_step 10 −− dump_write_window 10

−− xml=setting.xml @ −− rw_engine 3 −−

lp_mapper_type 3 −− dump_write_step 10 −−

dump_write_window 10 −− xml=setting.xml"

リといった SSD 内のモジュールとシリアル ATA で SSD と接続された ATA イニシエーターが同じ 階層にあり、 SSD のみを増やすことができなかっ た。そこで、 SSD のモジュールを ssd という単位 でひとまとめにし、それとは別に ATA コントロー ラーと RAID コントローラーを実装し、別々の階層 に分けた。また、 RAID コントローラーの共通する 機能を親クラスで定義し、その派生クラスで RAID レベルに応じて設計しなければならない機能を実 装するようにしたことで、容易に新たな RAID アル ゴリズムを実装できるようにした。

シミュレーションの実行時には、単体 SSD のシ ミュレーションを行う際と同じようにコマンドライ ン引数を用いて SSD の特性等を設定する。 RAID 構成 SSD のシミュレーション時には、リスト 1 のよ

うに、 @ 区切りで生成する台数分のパラメーター を設定することで、各ディスクごとに別々のチップ 構成やアルゴリズムを使用できるようにした。

5 RAID1 構成 SSD の性能評価

最後に、実装した RAID 構成 SSD のシミュレー

ションプラットフォームが正しく動作しているか

を波形表示ソフトを用いて検証した。その波形を

図 7 に示す。この波形は、リスト 1 のコマンドを

用いて、 SSD 2 台並列に書込み命令を送ったも

のである。下の 2 つの波形に各 SSD で現在処理し

ている内容が表示されている。説明の都合上、最

も下の波形を SSD1 、下から 2 番目の波形を SSD0

と呼ぶ。波形のはじめをみると、 SSD1 のステータ

スが WRITE となっているが、 SSD0 IDLE のス

テータスになっており、 SSD1 の動作が終了するの

を待っていることがわかる。時間が経過し、 SSD1

の処理が終わると SSD0 SSD1 が同時に WRITE

ステータスとなっており、同時に書き込み動作を

行っていることがわかる。

(4)

表 1 R/W 混在のリアルトレースの特性

トレース名 種別 ユーザー領

域 (GB)

総書き込み 量 (GB)

総読み出し 量 (GB)

平均書き込 みリクエス ト長 (KB)

平均読み出 しリクエス ト長 (KB)

financial1 金融サーバー 0.53 14.72 2.65 3.76 2.25

financial2 金融サーバー 0.46 2.13 6.62 3.32 2.28

websearch2 web サーバー 0.43 0.43 5.69 15.86 17.14

hm_0 ハードウェアモニタリング 2.54 21.67 9.96 8.56 7.37

proj_0 事業別共用ディレクトリ 3.31 145.96 8.97 40.19 17.84

proj_3 事業別共用ディレクトリ 5.9 6.7 18.24 18.33 8.99

prxy_0 プロキシサーバー 0.98 54.05 3.05 4.66 8.33

prxy_1 プロキシサーバー 4.52 75.59 129.62 13.53 12.33

web_0 web SQL サーバー 7.32 18.55 17.36 10.38 30.00

0 5 10 15 20 25 30 35 40 45 50

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

Normarized Read IOPS (%)

Read IOPS

trace

SSD Only RAID1 Normarized

図 8 RAID1 構成の SSD の読み出し IOPS

6 RAID1 構成 SSD の性能評価

開発したシミュレーションプラットフォームを 用いて、 RAID1 構成の SSD と単体の SSD との読 み出し速度を比較した。検証は、表 1 に示す特性 の異なる 9 つのリアルトレースを用いて行った。

その結果を図 8 に示す。 SSD Only 1chip 構成の SSD1 台を、 RAID1 SSD Only で用いたディスク 2 台で RAID1 構成にしたものである。図中の左縦 軸(折れ線グラフ)は、 SSD Only を基準として読み 出し IOPS を正規化し改善率を表した。シミュレー ションの結果、最も性能差があったのは websearch2 で、その差は 43.9% であった。全てのトレースで平 均して 10.93% 読み出し IOPS が向上した。 RAID1 構成では、各ディスクに対して同時に読み出しリク エストを送っているが、どちらかのディスクが遅い 場合や、単一ディスクの場合と処理時間に差がない 場合は読み出し IOPS は向上しない。そのため、読 み出し IOPS 2 倍とならなかったと考えられる。

7 結論と今後の展望

本論文では、 RAID 構成 SSD のシミュレーショ ンプラットフォームを開発した。各ディスクごと に構成やアルゴリズムを替えられ、 RAID レベルの 新規実装も容易な点が特徴である。 RAID0 SSD を用いた場合には最大で 43.9% 、平均で 10.93% み出し IOPS が向上した。今後は、 NAND フラッ シュメモリの特性を考慮した SSD 向けのアルゴリ ズムを開発する必要がある。

発表論文

[1] Asuka Arakawa, Chao Sun and Ken Takeuchi, Database Storage Engine and SSD Controller Co-design for SSD Per- formance Enhancement and Energy Reduction , IEEE Non- Volatile Memory Workshop (NVMW), Mar 2015.

[2] 荒川飛鳥 , 孫超 , 宮地幸祐 , 竹内健 SSD コントローラーと ミドルウェアの協調設計 IEEE 電子情報通信学会 , 2014 年 4 月 .

[3] 荒川飛鳥 , 孫超 , 竹内健 ソリッド・ステート・ドライブと リレーショナルデータベースの統合アーキテクチャ , 電 子情報通信学会 , 2015 年5月 .

参考文献

[1] P. David, et al. "A Case for Redundant Arrays of Inexpensive Disks (RAID)." SIGMOD Conference, pp.109-116, 1988.

[2] S. Koo, et al."Dual RAID technique for ensuring high relia- bility and performance in SSD." ICIS, pp.399-404, 2015.

[3] X. Wu, et al."RAID-Aware SSD: Improving the Write Perfor- mance and Lifespan of SSD in SSD-based RAID-5 System."

BdCloud, pp.99-103, 2014.

[4] K. Park, et al."Reliability and Performance Enhancement Technique for SSD array storage system using RAID mech- anism." pp.140-145, 2009.

[5] J. Wan,et al."S2-RAID: A New RAID Architecture for Fast Data Recovery."MSST, pp1-9, 2010.

[6] SystemC ホームページ http://www.systemc.org/

図 3 RAID0 0  7 1 2 3 4 5 6  論理アドレス  論理アドレス Strip Size  0  1  … … disk0  disk1 2 3 0 1 2 3 データの2重持ち  図 4 RAID1 たアクセスパターンのログ(リアルトレース)など が利用できる。 図 2 に、各モジュールの接続図を示す。独立して 動作するモジュール間は、 TLM レベルのソケット を用いて接続されており、モジュール間のデータの 転送やメッセージのやり取りは全てこのソケット を介して行われる。 ATA イニ
図 7 並列動作の検証結果
表 1 R/W 混在のリアルトレースの特性 トレース名 種別 ユーザー領 域 (GB) 総書き込み量(GB) 総読み出し量(GB) 平均書き込みリクエス ト長 (KB) 平均読み出しリクエスト長(KB) financial1 金融サーバー 0.53 14.72 2.65 3.76 2.25 financial2 金融サーバー 0.46 2.13 6.62 3.32 2.28 websearch2 web サーバー 0.43 0.43 5.69 15.86 17.14 hm_0 ハードウェアモニタリング 2.

参照

関連したドキュメント

ても情報活用の実践力を育てていくことが求められているのである︒

シークエンシング技術の飛躍的な進歩により、全ゲノムシークエンスを決定す る研究が盛んに行われるようになったが、その研究から

 仮定2.癌の進行が信頼を持ってモニターできる

情報理工学研究科 情報・通信工学専攻. 2012/7/12

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

自分は超能力を持っていて他人の行動を左右で きると信じている。そして、例えば、たまたま

・分速 13km で飛ぶ飛行機について、飛んだ時間を x 分、飛んだ道のりを ykm として、道のりを求め