DEIM Forum 2019 J4-1

デバイスミックスストレージシステムの深層強化学習を用いたデータ再配置
相坂 勇気†Le Hieu Hanh†

横田 治夫†† 東京工業大学 〒 152–8550 東京都目黒区大岡山 2-12-1
E-mail: †{aisaka,hanhlh}@de.cs.titech.ac.jp, ††yokota@cs.titech.ac.jp
あらまし

異なるストレージデバイスを組み合わせることで，低コストで高性能なストレージの実現を目指すデバイ

スミックスストレージシステムが提案されている．その中の Tiering 方式では，性能向上のため各デバイス間でデータを移行するデータ再配置が行われる．本研究では，深層強化学習を用いたデータ再配置による性能向上を目指した．
各デバイスへのデータ配置をエージェントが調整するため，データ配置やアクセスの情報を与えた．平均応答時間の短縮を目指し，平均応答時間をもとに計算した報酬を与えた．DiskSim を用いたデバイスミックス環境におけるエー
ジェントの学習を観察し，エージェントの方策獲得に繋がる状態・行動・報酬の表現を検討した．実デバイスと実ワー
クロードを用いた平均応答時間測定により，学習した方策が平均応答時間を短縮させるか検証した．
キーワード デバイスミックスストレージ，データ再配置，深層強化学習
は傾向を十分捉えられないワークロードが存在することがわ

1 はじめに世界の情報技術の進化により，扱われるデータ量は近年世界的に増加し続けている．データを格納するストレージデバイ
スの 1 つである Hard Disk Drive (HDD) は，大容量化によりデータ量の増加に対応しているが，その反面，パフォーマンス
の向上は止まっている．このため，HDD などの磁気ディスクだけでなく，半導体素子を用いたストレージデバイスである

Solid State Drive (SSD) が注目されている．
SSD は，HDD より高速なランダムアクセス，省電力などの優れた特徴を持っている．しかし，容量あたりの価格は HDD
よりも依然として高いため，大容量 HDD で構成された既存のストレージシステムのすべてを SSD に置き換えるのは現実的ではない．そこで，コストを抑えつつ性能を向上させる選択肢
として，SSD と HDD を組み合わせたデバイスミックススト
レージシステムが提案されている [1]．
その中の Tiering と呼ばれる方式においては，性能の向上のためにデバイス間でデータの再配置を行う．一般には，高頻度でアクセスされるデータを SSD に置くなど，データへのアク
セス頻度による再配置が行われる．また，ワークロードによってはアクセス頻度のみでは十分にアクセスの傾向を捉えられず，性能が十分に向上しないことがあるため，様々なヒューリ
スティクスによるデータ再配置手法が提案されている．
先行研究では，ワークロードごとに移行単位のデータに対す
るアクセスの時間間隔が異なることに着目し，アクセスの時間間隔を用いたデータ再配置手法 [2] を提案した．
しかし，用途の異なる複数の実ワークロードを用いた性能測定により，ワークロードごとに適した手法のパラメータが異な
り値の調整が必要であること，またパラメータの調整を行っても十分な性能向上が果たせない，つまりアクセスの時間間隔でかった．
このように，ストレージデバイスに対するアクセスのパター
ンはワークロードによって大きく異なる．また，それらのワー
クロードに対する最適な（つまり，求める性能が最も高くなる）
データの配置は必ずしも自明でないため，ワークロードに対す
る最適なデータ再配置手法を事前に設計することは難しい．
一方近年，環境の状態を受け取り行動を試行錯誤により獲得する強化学習に，深層ニューラルネットワーク (DNN) による関数近似を組み合わせた深層強化学習が発展している．Deep

Q-Net(DQN) [3] と呼ばれる手法では，強化学習における行動
価値関数を DNN により近似することで，アーケードゲーム(Atari2600) においてスクリーンショットという高次元な状態表
現から行動を決定することを可能にし，同一のネットワーク構造・ハイパーパラメータで，複数のゲームにおいて人間のスコアを上回る高度なゲームプレイを学習することに成功している．
この深層強化学習を用いることで，ワークロードのアクセスパターン及びそのワークロードに適したデータ配置が明らかでない場合において，試行錯誤し求める性能向上を果たすデータ
再配置手法が獲得できるという期待が誘起される．
そこで本研究では，深層強化学習を用いたデータ再配置により，デバイスミックスストレージシステムの平均応答時間短縮を目指し，検討した．エージェントに与える状態として，デー
タ配置とアクセスの情報を組み合わせた状態表現を考案した．
エージェントの行動を，移行 Extent と移行先デバイスの組で表現した．またエージェントに与える報酬として，平均応答時
間の重み付け和の逆数を与える表現を考案した．
考案した各表現でエージェントが Extent 再配置を学習し，その再配置によって平均応答時間が短縮されるかを検証するため実験を行った．ストレージシミュレータ上で学習したエージェ
ントに実デバイス上で再配置を行わせ平均応答時間を測定し，

Cache方式
User I/O

Tiering方式
User I/O

SSDをHDD
アクセスの
キャッシュ
として使用

アクセスは
データ配置に
応じて分散
（データの
重複なし）

SSD

HDD

階層間は
キャッシュ
アルゴリズム
で管理

HDD

SSD

状態，報酬
環
境

行動

階層間で
データ再配置

図 1 SSD 層と HDD 層による構成のデバイスミックスストレージ

短縮されるかを検証した．
以降の構成を述べる．まず 2 節で予備知識等の準備を行い，3 節で検討する状態行動報酬表現について述べる．4 節で行った実験とその結果を述べ考察する．5 節で関連する研究を述べ，

6 節でまとめる．

2 予備知識2. 1 デバイスミックスストレージ

エ
ー
ジ
ェ
ン
ト

図 2 環境とエージェントのやり取り

2. 2 深層強化学習
2. 2. 1 マルコフ決定過程
強化学習において用いられるモデルであるマルコフ決定過程について述べる．
概要を述べる．マルコフ決定過程では，「環境」と「エージェント」という 2 つの要素の間のやり取りを考える．エージェン
トは，環境から「状態」を受け取り，それに対して「行動」を行う．エージェントが状態から行動を決定する仕方を「方策」

ここでは，デバイスミックスストレージについて述べる．

と呼ぶ．環境は，エージェントが取った行動に対して「報酬」

デバイスミックスストレージには大別して Cache 方式，Tier-を与える．報酬は，ある時点にエージェントが取った行動の良ing 方式の 2 種類が存在する．デバイスの組み合わせとしてはさを，同時点において評価した値である．マルコフ決定過程にテープドライブ，HDD，SSD，近年実用化されている Storage

おける目的は，将来に渡って得られる報酬の和を最大化するよClass Memory (SCM) などの多様な組み合わせが考えられる．

うな良い方策をエージェントに獲得させることである．

本研究の適用先となるデバイスミックス環境も，SSD と HDD

図 2 に，環境とエージェントとのやり取りを示す．

による構成のみに限らず，HDD と SCM, 性能の異なる SSD2

上に述べた概要を定式化する．マルコフ決定過程は，S，A，種，SSD と SCM などの多様な組み合わせが考えられる．しかP (s′ |s, a)，R(s, a, s′ ) の 4 つを用いて表される．

しながら，簡単のため，以下では SSD 層と HDD 層からなる

S は，全ての状態からなる離散集合である．

構成を仮定して述べる．

A は，全ての行動からなる離散集合である．

図 1 に，SSD 層と HDD 層で構成される Cache 方式/Tiering
方式デバイスミックスストレージを示す．

Cache 方式では，すべてのデータが HDD 層に置かれ，SSD

P (s′ |s, a) は，ある時点の状態 s において行動 a を取ったとき，次の状態が s′ に遷移する確率を表す．

R(s, a, s′ ) は，ある状態 s において行動 a を取り次状態 s′ に層は HDD 層アクセス用のキャッシュとして使用される． HDD遷移したときに与えられる報酬を表す．R(s, a, s′ ) ∈ R である．

層内のデータの部分コピーが SSD 層に置かれ，LRU などのこのとき，収益 Gt ，状態価値関数 V π (s)，行動価値関数

キャッシュアルゴリズムを使用して制御される． 今後 SSD のQπ (s, a) を以下のように定義する．

容量が増大していくことを考えると，デバイス間でデータの重複が発生する Cache 方式は，記憶領域の利用効率の観点から好ましくない．
一方 Tiering 方式では，データを SSD 層と HDD 層で分けて配置し，ユーザからの I/O はデータ配置によって対応する

Gt =

∞
∑

γ k rt+kk=0

V π (s) = Eπ [Gt |st = s]Qπ (s, a) = Eπ [Gt |st = s, at = a]

ディスクに振り分ける．Tiering 方式においては，性能向上の

ただし，st , at , rt はそれぞれ時刻 t においてエージェントが受ため，一定時間ごとにアクセスの統計情報を用いて SSD 層とけ取った状態，エージェントが行った行動，エージェントが受HDD 層の間でデータの再配置を行うことが一般的である．

け取った報酬を表し，γ は割引率と呼ばれる，未来に受け取る

Tiering 方式はデバイス間のデータ重複がないため，記憶領ことが期待される報酬をどれだけ割り引いて考慮するかを表す

域使用率の点で Cache 方式に勝る．今後 SSD の容量が増大し0 以上 1 以下の実数である．また π は，方策である．Eπ は，方ていく場合を考えると，これは Tiering 方式が大きく優れた点

策 π に従う場合の期待値計算を表す．

であると考える．よって本研究では，Tiering 方式を研究の対象とする．

状態価値関数の値は，ある時刻 t で状態 st = s であるとし，それ以降方策 π に従って行動していく場合の期待収益となっている．また行動価値関数の値は，ある時刻 t で状態 st = s である時行動 at = a を選択し，それ以降方策 π に従って行動していく場合の期待収益となっている．
状態価値関数を用いて，ある方策 π, π ′ の間において以下が成り立つ時，方策 π が方策 π ′ より優れていると定める．
′

π∀s ∈ S, V π (s) >= V (s)

このような方策間の優劣のもとで，全ての方策より優れている最適方策 π ∗ が少なくとも一つ存在することが知られている．
マルコフ決定過程における目的は，この最適方策を求めることである．

2. 2. 2 Q学

習

以下では，強化学習の一手法である Q 学習について述べる．

図 3

アーケードゲームプレイの学習に用いられたニューラルネット
ワークの図 [3]Q 学習の目的は，マルコフ決定過程における最適方策を，状態遷移確率 P (s′ |s, a) が未知という条件のもとで得ることである．そのために，以下のような最適行動価値関数というものを考える．
最適行動価値関数 Q∗ (s, a) とは，エージェントが最適方策に従う場合の行動価値関数である．最適行動価値関数は以下のよ
うに定められる．

ニューラルネットワークによる近似が有用であると考えられる．
また，移行対象データと移行先で表した行動は，離散である．
よって，高次元な状態を扱いかつ行動が離散である場合に用いられる深層強化学習手法であり，多くの深層強化学習の研究でベンチマークとして利用されている Deep Q-Net を本研究では用いた．

∗

Q∗ (s, a) = Qπ (s, a) = max Qπ (s, a)π

このように，最適方策が求まると最適行動価値関数が決まる
が，逆に最適行動価値関数が求まると，最適方策を以下のように決めることができる．

Deep Q-Net を改良したより優れた深層強化学習手法についての研究が数多く存在するが，それらの利用の検討については
今後の課題とする．
本研究における Deep Q-Net の実装には，オープンソースラ
イブラリ keras-rl [6] を用いた．特に，学習スクリプトの実装

π ∗ (s) = arg max Q∗ (s, a)aQ 学習は，最適行動価値関数を求めることで，最適方策を得は keras-rl 内のスクリプト dqn cartpole.py 1 を元にしている．
ニューラルネットワークの構造や最適化手法，学習率，学習時の方策の設定も同スクリプトのものを用いた．より本研究のタスクであるデータ再配置に適したネットワーク構造等の検討はることを目指す．

Q 学習における行動価値関数の更新式は以下のようである．

Q(st , at ) ← (1 − α)Q(st , at ) + α(rt + γ max
Q(st+1 , a′ ))′a ∈A

一定の条件下でこの更新式による更新を繰り返すことで，最適行動価値関数に収束することが証明されている [4]．

2. 2. 3 Deep Q-Net
深層強化学習の手法の一つであり，本研究で用いた Deep

Q-Net [3] について概要を述べる．
Deep Q-Net は，Q 学習 [5] における行動価値関数の近似に
DNN を用いることで，高次元な状態を扱うことを可能にした手法である．ここでは入力としてアーケードゲームの状態を表すスクリーンショットの画像データを取り，出力として行動価値関数の値，つまり各行動の価値を出力している．図 3 に，[3]におけるニューラルネットワークの構造を，引用して示す．
関数近似にニューラルネットワークを用いた Q 学習は学習の収束が保証されていないが，[3] では experience replay, neural

fitted Q-iteration という 2 つの工夫を用いることで学習を可能にしている．
本研究において検討したデバイスミックストレージシステ
ムのデータ再配置は，システム内のデータ配置や，データへのアクセスの情報を扱うため状態は高次元である．そのため，十分行えておらず，今後検討していく余地がある．

3 手

法

3. 1 モ デ ル
本研究において仮定したデバイスミックスストレージシステ
ム，及び深層強化学習エージェントによるデータ再配置システ
ムのモデルについて述べる．
図 4 に，本研究で仮定した SSD と HDD で構成されるデバ
イスミックスストレージシステム及び深層強化学習エージェン
トによるデータ再配置システムを示す．
この内デバイスミックスストレージの構成については，先行研究 [2] に準じている．

2. 1 節でも述べたように，本研究の適用先は SSD と HDD による組み合わせだけに限られない．しかしながら，実験の都合上，以降本研究では SSD と HDD による組み合わせを用いることとする．本研究では，性能要件を見極めるため多重化を行
わず，SSD1 台と HDD1 台による Tiering 方式のデバイスミッ
クスストレージシステムを仮定した.
仮定したシステムは，ユーザのリクエストが貯まるキュー，
1：https://github.com/keras-rl/keras-rl/blob/master/examples/dqn_
cartpole.py, commit d449c9e

状態，報酬

コントローラ
リクエスト
キュー

再配置
エージェント

リクエスト

アクセス

HDD

表 2 Extent 総数 N の時の Normalized Frequency List．fi (0 <
=
<
<
i<
N
−
1)
は各
Extentへのアクセス回数を表し，
0
f
i
=
=
=
∑N −1
J, k=0fk = J である

行動

Ex1

Ex2

...

Ex(N-1)

f1 /J

f2 /J

...

fN −1 /J

SSD

3. 3 行図 4 SSD と HDD からなる Tiering + 再配置エージェントのモデル
表 1 Extent 総数 N の時のデータ配置リスト．

SSD を 0, HDD を 1 として表している

Ex0 Ex1 Ex2 . . .
0

Ex0
f0 /J

1

1

動

ここでは，エージェントが出力する行動について述べる．
エージェントが出力する行動 a ∈ A を，以下のように定義する．

Ex(N-1)a = (ExtentID, DeviceID) ∈ A

0

ある 1 つの行動は，ある Extent をあるデバイスに移行するこ...

とを指すこととし，移行対象の ExtentID と移行先の DeviceID
キューに溜まったリクエストを処理し，アクセスをデータ配置の組で表すこととする．一度の行動で移行する Extent を 1 つによって各デバイスに振り分けるコントローラ，コントローラに制限することで，行動の総数を現実的なサイズになるようにから現在のデータ配置とアクセスの情報を状態として受け取っしている．Extent 総数が N で, システム内の層の数が 2 のとてデータ再配置行動を出力し，コントローラから報酬を受け取き，上の式で行動を定義した場合 |A| = 2N となる．

る再配置エージェントから構成される．
コントローラが配置を管理する単位，及びエージェントが再配置指示を出すデータの単位は Extent と呼ばれる固定サイズ

3. 4 報報酬は，以下の式で計算する．

の領域ごとであるものとする．
エージェントによる行動の出力は，コントローラが J 個のア
クセスを処理するごとに行われるものとする．簡単のため，デバイス間のデータ再配置はコスト 0 で行われるとした．

3. 2 状態酬r=
1/(α ∗ rs + (1 − α) ∗ rl )(if action is valid)−1(otherwise)

ただし，rs はエージェントが行動を出力した直後の 1 アクセスの応答時間，rl はエージェントが行動を出力した後の J アク

ここでは，エージェントに渡される状態について述べる．

セスの平均応答時間である．また α は，rs , rl の重み付けの係

エージェントには，コントローラが J アクセスを処理するご数であり，0 <=α<= 1 である．

とに以下のように表される状態 NFState が渡される．

action が valid であるとは，SSD が上限まで埋まっていてか
つ現在 SSD にある Extent を HDD に移す行動であるか，またN F State = concatenate(P L, N F L)
PL, NFL について以下で述べる．
3. 2. 1 Placement List (PL)は SSD が上限まで埋まっておらずかつ現在 HDD にある Extent
を SSD に移す行動であるかのいずれかと定める．
実現したいことは平均応答時間の短縮であるため，平均応答

Placement List (PL) は，現在のシステム内のデータ配置を時間を用いて報酬を計算している．平均応答時間が短くなった表すリストである．仮定しているシステムはデータの配置をときに報酬が高くなるよう，ここでは素朴に逆数をとっている．

Extent と呼ばれる固定サイズの領域ごとに管理するとしてい報酬として用いる平均値を短期/長期に分け，それらの重みるため，データ配置リストは各 Extent が現在どのデバイスに付け和を用いることでそれぞれの期間の傾向を捉えようとする

置かれているかを表すこととなる．

アイディアは，[7] に着想を得ている．

表 1 に，システム内の Extent 総数 N 個の場合におけるデー
タ配置リストを示す．

3. 2. 2 Normalized Frequency List (NFL)Normalized Frequency List (NFL) は，コントローラが処理した直近 J 個のアクセスが，どの Extent に対してのものだったかの回数を J で割った値を各 Extent ごとに持つリストである．表 2 に，Extent 総数が N 個の時の Normalized Frequency

List の例を示す．

4 実

験

3. 2, 3. 3, 3. 4 項で述べた各表現のもとでエージェントに学習させたデータ再配置方策が，平均応答時間を短縮させるかを検証するために実験を行う．以下で，作成した実験システムの概要，実験内容の概要，使用した実ワークロード，行った実験の結果及び考察を示す．

Workload
File

読み込み

コントローラ状態，報酬
行動

表 4 状態・報酬における設定

再配置
エージェント

アクセス

アクセス

SSD
(Real or
DiskSim)env(interface)name value

HDD(Real or
DiskSim)

再配置

description

J

1000

再配置の間隔及び状態に用いるアクセスの数

α0.1

報酬の計算時に用いる重み付け係数
表 5 評価マシンの詳細

図 5 実験システムの構成
表 3 システム内の Extent についての設定

name

value

name

description

CPUIntel(R) Core(TM) i5-4460

description

Memory8GB

OSLinux 4.10.0-28-generic (x86 64)

ExSize256

Extent1 つのサイズ (MiB)

N

136

システム内の Extent の総数

NSSD

8

SSD に置かれる Extent の数

表 6 実ストレージデバイスの詳細

4. 1 実験システムの概要
4. 1. 1 実験システムの構成

devicedescription

SSDIntel(R) Optane(TM) SSD 905P

HDD

ATA TOSHIBA DT01ACA050

実装した実験システムの構成を述べる．
図 5 に，実装した実験システムの構成図を示す．

表 7 fio による実デバイスの平均応答時間測定結果．ブロックサイズ
は 4K としている

実験システムは，ワークロードファイルをもとにアクセスを
各デバイスに発行するコントローラ，コントローラから状態や報酬を受け取りデータ再配置行動を出力する再配置エージェン
ト，及びストレージデバイスからなる．

device SeqRead (msec) SeqWrite (msec) RandRead (msec) RandWrite (msec)
SSD

0.01873

0.01908

0.01869

0.01909

HDD

2.376

16.48

86.97

16.48

コントローラは，内部で保持しているデータ配置（アクセスされたアドレスがどの Extent に対するものであり，またある

4. 1. 3 状態・報酬におけるパラメータ設定

Extent が現在どのストレージデバイスにあるかの情報）によっ

表 4 に，状態・報酬におけるパラメータ J, α の設定を示す．

てアクセスを各デバイスに振り分ける．

状態・報酬におけるパラメータについては，十分に検討でき再配置エージェントには，深層強化学習の一手法である Deepていない．特に，再配置間隔及び状態に用いるアクセス数であQ-Net を実装した．再配置エージェントは OpenAI Gym [8] のる J は，エージェントの意思決定の間隔とネットワークへの入env 上で動作・学習するエージェントとして実装した．Deep

力のサイズを決定するもので，極めて重要な値であると考えら

Q-Net の実装は，GitHub 上で公開されているライブラリであれる．J に異なる値を用いた場合の学習/再配置の挙動についてる keras-rl [6] を用いた．

の検討も今後行っていきたい．

コントローラと再配置エージェントは，OpenAI Gym 上のまた，今回 J という値で統一した再配置間隔・状態に用いる

env クラスに定義されたインターフェースを通して状態，行動，アクセス数は，それぞれ異なる値を用いることも考えられる．

報酬の受け渡しを行う．

（例: 状態に用いるアクセス数は 1000 個のままで，エージェン

ストレージデバイスは，実デバイスを用いる場合と DiskSim[9] を用いる場合の 2 つに分かれる．DiskSim は，カーネギー
メロン大学のグループによって C 言語で開発された，著名なス
トレージデバイスシミュレータである．平均応答時間などの精密なシミュレーションができることが特徴である．

トの意思決定をより短い 100 アクセスごとに行うなど）この検討についても，今後の課題とする．

4. 1. 4 評価に使用したマシン，実デバイス
表 5 に性能評価時使用したマシンの詳細を，表 6 に実デバイス (SSD/HDD) の詳細を示す．また，実デバイスについては

DiskSim 自体には SSD のシミュレーション機能は含まれて

I/O ベンチマークツールである fio [10] を用いてシーケンシャ

いないため，SSD のシミュレーションには Microsoft Research

ル/ランダムそれぞれの場合の Read/Write 性能（平均応答時

が開発した DiskSim 拡張用の SSD モデルを用いた．後述する間）を測定した．表 7 にその値を示す．

実験において，エージェントの学習時には DiskSim を用い，学習済エージェントによるデータ再配置の性能測定には実デバイスを用いることとした．

4. 2 実験内容の概要
4. 2. 1 学習部と評価部

4. 1. 2 システム内の Extent についての設定

実験は，学習部と評価部に分かれる．

表 3 に，システム内の Extent についての設定を示す．

学習部では，DiskSim を用いた環境上で，エージェントにシステム内の Extent についての設定は，全て [2] と同一の設定を用いた．

データ再配置方策を獲得させることを目指す．学習用のワーク
ロードを繰り返しシミュレートし，その上でエージェントに試
行錯誤させることを繰り返す．報酬の計算に用いる応答時間は，

論理アドレス小

Ex0

論理アドレス大...

Ex126 Ex127 Ex128 ...

HDD

図 6

Ex134 Ex135

SSD

論理アドレスの大きい Extent から SSD に置かれている初期
配置

DiskSim が返すアクセス時間及び，コントローラが内部で管理
図 7 MSR Cambridge traces

するシミュレーション時間を用いて求める．
評価部では，学習後のエージェントに再配置行動を行わせた

表 8 ワークロード W1hour の詳細

場合の平均応答時間を，ワークロードを再生し測定する．測定
した平均応答時間が短くなるか否かで，再配置が有効であったnameかを検証する．評価部におけるストレージデバイスは，実 SSD/

W1hourNo. of Read Read Size (MiB) No. of Write Write Size (MiB)
0

0

5591

about 37.72

実 HDD を用いることとする．応答時間として，raw デバイス
インターフェースを用いて DirectI/O を行った時の I/O 発行
から完了までの時間を測る．
学習部でエージェントに再配置行動を獲得するための試行錯用いることとする．

MSR Cambridge traces は，Microsoft Research のサーバで採取されたブロックトレースであり，以下の情報が含まれる．

誤をさせた後，評価部でエージェントが獲得した再配置行動が•タイムスタンプ

平均応答時間短縮を達成するかを評価する．ただし，評価部で

•

ホスト名

実デバイスを用いた性能測定を行う前には，DiskSim 上で簡•ディスク番号

易的なテストを行った．これは，学習後のエージェントが何ら•

Read/Write 種別

かのデータ再配置行動を獲得しているかの確認のためである．

•

アクセスのオフセット

エージェントが学習後の DiskSim 上テストにおいて 1 つ以上•

アクセスサイズ

Extent を移行する振る舞いが確認された場合のみ，評価部に

•

応答時間

おける性能測定を行った．

図 7 に，MSR Cambridge traces の一部を抜粋して示す．

4. 2. 2 Extent の初期配置
ここでは，実験におけるシステム内の Extent の初期配置について述べる．

今回は，その内のメディアサーバにおいて記録されたトレースである mds0 を用いた．

4. 3. 1 1 時間分のワークロード W1hour

本研究で用いたシステムでは，表 3 の通り，Extent の総数

W1hour は，MSR Cambridge traces mds0 のある 1 時間

が 136 個である．各 Extent には 0〜135 の番号が一意に割り（2007-02-24 19:00:01〜2007-02-24 19:59:58）を切り取ったも振られ，論理アドレスの小さい順から Ex0，Ex1，...，Ex135のである．

と表記される．
実験におけるワークロード再生開始時の Extent 初期配置として，図 6 に示すような論理アドレスの大きい Extent から

SSD に置かれている初期配置を定義した．
論理アドレスの大きい Extent から SSD に置かれている初期配置では，SSD に置ける個数いっぱいの Extent がすでに置かれている．この場合，仮に再配置エージェントが論理アドレ
スの小さい側にある Extent を SSD に配置しようとした場合，SSD にすでに置かれている Extent を一旦 HDD に移行した後，SSD に移行したい Extent を移すという行動が求められる．デ
バイスミックストレージシステムが実際に使われる際には，応答時間を短縮するためには SSD の容量は上限まで使用されることが考えられるため，この初期配置はより現実に近い配置と言える．

4. 3 ワークロード

表 8 に，W1hour の詳細を示す．

4. 4 実験結果と考察
4. 4. 1 実 験 設 定
3. 2 項で示した状態，3. 3 項で示した行動表現，3. 4 項で示した報酬表現を用い，エージェントに 25000 ステップ試行錯誤による学習をさせた．ワークロードとして W1hour を用いた．
毎回のワークロード再生開始時における Extent の初期配置は，
図 6 の通りとした．

4. 4. 2 結果エージェントは，W1hour において Extent の再配置行動を獲得した．
図 8 に，25000 ステップ学習後のエージェントに再配置行動を行わせた場合の W1hour の平均応答時間を示す．ここでは，再配置を全く行わない（初期配置の Extent を動かさない）場
合の nop，アクセス頻度のみを用いて単純に再配置する static，

ワークロードファイルは，公開されている実ワークロードを及び再配置エージェントによる再配置を行った場合の Agent に用いる．今回は [2] にならい，MSR Cambridge traces [11] をついての値を示す．各値はワークロードを 20 回再生し測定し表 9 W1hour における，Ex60 に対してのアクセス

timestamp

IO Type

128168185747195226

Write16130056192 32768

Oﬀset

Size

128168185747347942

Write16130088960 32768

128168185747501327

Write

16130121728 32768

128168185747653856

Write16130154496 32768

128168185747807732

Write

16130187264 24576

128168205865129903

Write

16221118464

6144

128168205895185480

Write

16222253056

1024

128168205895229240

Write

16221122560

5120

い段階で SSD に移行していたことによると考えられる．
図 8 平均応答時間測定結果．各値はワークロードを 20 回再生し測定した値の平均．有意水準 5%で両側検定の t 検定を行ったところ，nop-static，nop-Agent，static-Agent の平均応答時間の差はいずれも有意であった．

Agent の場合の性能向上が static に比べ十分でなかった理由
としては，

•

より性能向上が達成できるような行動を学習できなかった•
た値の平均である．
グラフに示した 3 つの場合の各組み合わせ nop-static，nop-

Agent，static-Agent それぞれについて有意水準 5%で両側検定の t 検定を行ったところ，平均応答時間の差はいずれも有意

再配置エージェントの行動の探索が不十分であったため，報酬の表現が適切でなく，再配置による性能向上が十分

報酬に反映されなかったため，再配置エージェントの行動の価値の見積もりが適切にできなかった•

学習時間が十分でなかったなどが考えられる．

であった．

nop-Agent で比較すると，Agent の場合が平均応答時間が短くなっており，再配置エージェントによる再配置によって性能が向上していることがわかる．
しかし，nop-static，及び static-Agent で比較すると，staticの方が平均応答時間が短くなっていることがわかる．
よって，再配置エージェントによる再配置は，従来のような
アクセス頻度による単純な再配置に比べて性能向上が十分ではないという結果になった．

4. 4. 3 考察

再配置エージェントが獲得した行動は，Ex130 を HDD に移行した後，Ex60 を SSD に移行するというものであった．

Ex130 は W1hour においてアクセスが一回も行われていないた
め，HDD/SSD どちらに置かれていても平均応答時間には影響しないと考えられる．よって，Agent の場合に nop より平均応
答時間が短くなったのは，Ex60 を SSD に移行するという行動が寄与したものと考えられる．
表 9 に，W1hour において Ex60 に対して行われたアクセスの一覧を示す．

nop-Agent で，各アクセスのアクセス先デバイスを比較すると，Agent の場合，SSD へのアクセスが nop に比べて 3 つ多
かった．よって，Agent の場合は，再配置によって表 9 の下 3
つのアクセスが SSD へのアクセスになっており，このわずかなアクセス先の違いにより，nop と比べて平均応答時間に有意な差が生まれていることになる．
一方，nop-static，及び static-Agent で比較すると，staticの方が平均応答時間が短くなっているが，これは，static が用いたワークロード中最も頻繁にアクセスされていた Ex11 を早5 関連研究[1] は，Cache 方式，Tiering 方式，また Cache 方式と Tiering 方式の併用方式の階層ストレージの論文のサーベイ論文である．Cache 方式，Tiering 方式，併用方式それぞれを細かく分類し，特徴をまとめている．

[2] は，本研究と同じく，Extent という固定サイズ領域単位
でデータ再配置を行う，SSD と HDD によるブロックベース

Tiering 方式デバイスミックスストレージシステムについての研究である．ここでは，Extent の再配置の際，従来のようなア
クセス頻度を考慮し高頻度な Extent を SSD に置くというような手法と異なり，Extent ごとのアクセス時刻を記録し，そこから各 Extent へのアクセスの時間間隔を平均値または中央値で求め，それをもとに Extent への次アクセス時刻を予想して再配置に利用する手法を提案している．

[12] は，subLUN という固定サイズ領域単位でデータ再配置を行う，SSD と HDD によるブロックベース Tiering 方式デバ
イスミックストレージシステムについての研究である．ここでは，従来のアクセス頻度によるデータ再配置の再配置時間間隔
が 1 時間〜1 日ごとであることから，より短時間にアクセスが集中するような領域（spike 領域）を十分捉えられていないとし，spike 領域を適切に捉えることで性能向上を目指す手法を提案している．
本研究に類似するシステムにおける強化学習を用いたデータ
再配置を検討した研究として，[13] がある．ここでは，各層のファイルの情報をもとに再配置を行い，アクセス性能に悪影響を与えず各層の IO 負荷を軽減する方策の学習を目指している．

HDD と USB フラッシュメモリを用いたシステムの上で再配置

行動を行わせる実験を行い，デバイスの平均 IO キューの長さが再配置を行わない場合と比べて小さくなっていることを確認している．

6 おわりに
6. 1 ま と め
本研究では，Tiering 方式デバイスミックストレージシステ
ムにおいて，アクセスパターンの異なる多様なワークロードに対して優れた性能向上効果が得られるデータ再配置を試行錯誤により獲得することを目指して，深層強化学習エージェントによるデバイス間の Extent 再配置を検討した．
エージェントに与える状態として，各 Extent ごとの配置とnormalize したアクセス回数を与える表現を考案した．エージェ
ントの行動を，移行 Extent と移行先デバイスの組で表現した．
エージェントに与える報酬として，エージェントの行動に対して valid かどうかの定義を導入し，行動が valid な時は平均応答時間の重み付け和の逆数を与え，そうでない時は負の報酬を与えることを考案した．
考案した各表現でエージェントが Extent 再配置を学習し，その再配置によって平均応答時間が短縮されるかを検証するた
め実験を行った．DiskSim 上で学習したエージェントに実デバ
イス環境で再配置を行わせ，平均応答時間を測定した．
結果として，メディアサーバのワークロード 1 時間分を用いた場合は，エージェントは再配置行動を獲得し，その結果再配置を行わない場合と比べて平均応答時間が有意に短くなった．
しかし，従来行われているような頻度による再配置と比べると，エージェントの再配置による性能向上は不十分であった．

6. 2 今後の課題
より性能向上に寄与する行動を獲得できるようエージェントの試行錯誤方策の検討を行う，再配置による性能向上がよりわ
かりやすく現れる報酬表現の検討を行う，より長期の学習をして評価を行う，よりサイズの大きいワークロード・規模の大きいシステムの場合における検討を行う，階層間のデータ移行を無視しないより現実的な設定での再配置獲得の検討を行うなどが今後の課題である．

文

献[1] Junpeng Niu, Jun Xu, and Lihua Xie, “Hybrid Storage Systems: A Survey of Architectures and Algorithms”, IEEEACCESS, vol. 6, pp. 13385–13406, 2018.
[2] 新屋敷裕太, 飯澤健, 小沢年弘, 荒堀喜貴, 横田治夫, “アクセス
時間に基づいた次アクセス予想によるデバイスミックスストレー
ジシステムの制御手法”, 第 8 回データ工学と情報マネジメント
に関するフォーラム (DEIM 2016), 2016.
[3] Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Andrei A Rusu, Joel Veness, Marc G Bellemare, Alex Graves,
Martin Riedmiller, Andreas K Fidjeland, Georg Ostrovski,
et al., “Human-level control through deep reinforcement
learning”, Nature, vol. 518, no. 7540, pp. 529, 2015.
[4] Christopher John Cornish Hellaby Watkins and Peter
Dayan, “Q-learning”, Machine learning, vol. 8, no. 3-4,
pp. 279–292, 1992.

[5] Christopher John Cornish Hellaby Watkins, “Learning fromdelayed rewards”, PhD thesis, Cambridge University, 1989.
[6] Matthias Plappert,“keras-rl”,
https://github.com/
keras-rl/keras-rl, 2016.
[7] Gabriel Dulac-Arnold, Richard Evans, Hado van Hasselt,Peter Sunehag, Timothy Lillicrap, Jonathan Hunt, Timothy Mann, Theophane Weber, Thomas Degris, and Ben
Coppin, “Deep reinforcement learning in large discrete action spaces”, arXiv preprint arXiv:1512.07679, 2015.
[8] Greg Brockman, Vicki Cheung, Ludwig Pettersson, Jonas
Schneider, John Schulman, Jie Tang, and Wojciech
Zaremba, “Openai gym”, 2016.
[9] John S Bucy, Jiri Schindler, and Steven W Schlosser, “TheDiskSim Simulation Environment Version 4.0 Reference
Manual”, 2008.
[10] Jens Axboe, “fio - Flexible I/O tester”, https://github.
com/axboe/fio.
[11] Dushyanth Narayanan, Austin Donnelly, and Antony Rowstron, “Write oﬀ-loading: Practical power management forenterprise storage”, ACM Transactions on Storage (TOS),
vol. 4, no. 3, pp. 10, 2008.
[12] 大 江 和 一, 岩 田 聡, 本 田 岳 夫, 河 場 基 行, “On-The-FlyAutomated Storage Tiering (OTF-AST) の提案”, 研究報告システムソフトウェアとオペレーティング・システム (OS),vol. 2014, no. 6, pp. 1–10, 2014.
[13] T. G. Lakshmi, “Proactive and Adaptive Data Migration in
Hierarchical Storage Systems using Reinforcement Learning
Agent”, 2014.