ストレージ仮想化技術の取り組み - NTT

Sheepdog
OpenStack Swift
集
ストレージ仮想化
特
オープンイノベーションによるクラウド基盤技術の取り組み
ストレージ仮想化技術の取り組み
NTTソフトウェアイノベーションセンタでは,ストレージ仮想化に関す
る研究開発に取り組んでいます.本稿では,任意のファイルシステムから
利用可能な分散ブロックストレージSheepdogと,運用性が高く堅牢な分散
オブジェクトストレージOpenStack Swiftに関する取り組みについて紹介し
ます.
ストレージ仮想化とは
仮想化はクラウド基盤における計算
機資源の柔軟な管理やコスト削減を実
分散ブロックストレージ
Sheepdog
私たちが普段利用しているPCでは,
ふくもと
よしふみ
ひ た か
と し お
福本 佳史
日高 東潮
ないとう
い ち べ え
しらいし
まさひろ
/内藤 一兵衛
/白石 正裕
NTTソフトウェアイノベーションセンタ
ことが主流です.共有ストレージは,
シンプロビジョニング ・ スナップ
ショット ・ ライブマイグレーションな
どの仮想化機能によって,サーバ仮想
現する技術として,広く普及しつつあ
ファイルシステムを介してハードディ
化環境の運用性 ・ 信頼性を高めること
ります.中でも複数のストレージ装置
スクにファイルを読み書きしていま
ができます.
をまたいで単一のストレージ装置があ
す.ハードディスクはブロックデバイ
Sheepdogは,共有ストレージ製品
るかのように見せたり,単一のスト
スの一種として扱われ,それ自体は
と同様に利用できるブロックストレー
レージに複数の領域があるように見せ
データを一定サイズのブロック単位で
ジを,図 1 のように複数の汎用サーバ
ることのできる「ストレージ仮想化技
読み書きする単純な機能しか持ちませ
をクラスタ化することで構築できる
術」は,仮想マシンイメージの柔軟な
ん.そのためファイルシステムがブ
オープンソースソフトウェアです.ク
管理,アプリケーションデータの保
ロックデバイス上のどの位置にファイ
ラスタに属するPCサーバの内蔵ディ
存 ・ 共有などのために重要な技術と
ルデータがあるか管理することで,
スクを 1 つのストレージプールに束
なっています.
ファイルの読み書きを実現しているの
ね,仮想ディスクを切り出して提供す
本稿では,NTTソフトウェアイノ
です.ファイルシステムはさまざまな
ることができます.仮想化基盤ソフト
ベーションセンタで開発に取り組んで
種類がありますが,ブロックデバイス
ウ ェ ア で あ るOpenStackやQEMU/
いる,オープンソースのストレージ仮
上で動作することは共通しています.
KVMに採用されており,一般的なス
想化技術SheepdogおよびOpenStack
ブロックストレージはブロックデバイ
トレージインタフェースであるiSCSI
Swiftについて紹介します.
分散ブロッ
スを提供できるストレージです.つま
にも対応します.
クストレージSheepdogは,PCやサー
りブロックストレージは,データの保
一般的な共有ストレージ製品は,ス
バに内蔵されるハードディスクと同じ
存 ・ 読み書きの基本的な役割を果た
ケーラビリティの課題(容量 ・ 性能の
ようにファイルシステムを通して利用
す,もっとも汎用的なストレージであ
拡張には事前設計が必要で,縮退は原
できるストレージで,分散オブジェク
るといえます.
則不可,
ベンダロックインも発生)と,
トストレージOpenStack Swiftは大量
仮想マシンの動作には仮想化された
信頼性の課題(ハードウェア故障によ
のデータを格納し,アプリケーション
ブロックストレージが不可欠で,特に
りサービス停止 ・ 一部データへのアク
間で共有するためREST APIを使っ
サーバ仮想化環境の構築には,任意の
セス不可)があります.それらの課題
てファイルを読み書きするストレージ
サイズの仮想ブロックデバイス(仮想
に対し,Sheepdogはクラスタ内のサー
です.
ディスク)をネットワーク経由で提供
バがすべて同じ役割を果たすいわゆる
できる共有ストレージ製品を導入する
「完全対称型」のシステムとなってい
NTT技術ジャーナル 2014.12
25
オープンイノベーションによるクラウド基盤技術の取り組み
るため,その恩恵として,①クラスタ
化され,手動オペレーション低減に
ステントハッシュ法を示しています.
へのサーバ増減設が容易で,要求され
よって管理者の負担が小さい,という
Sheepdogでは,
各サーバ(物理ノード)
る規模に対して共有ストレージよりも
特長を持っています.
に対して仮想ノードというデータ構造
柔軟に容量スケール ・ 負荷分散が可
Sheepdogが提供する仮想ディスク
が生成され,それぞれが分散するよう
能,②単一障害点がなく一部サーバの
は図 2(a)のように一定サイズ(初期値
にハッシュ値を用いてリング状に並べ
故障が発生してもサービス停止 ・ デー
は 4 MB)のオブジェクトに分割 ・ 多
られます.仮想ディスクに対して書込
タ損失を回避可能で信頼性が高い,③
重化され,クラスタ内の各サーバに分
みが行われると,配置先となる 3 つの
サーバ追加 ・ 離脱に伴うデータリバラ
散配置されます.図 2(b)はオブジェ
物理ノードに対しオブジェクトの生
ンシング ・ 冗長性回復処理などが自動
クトの配置先決定に用いられるコンシ
成 ・ 更新が行われます.オブジェクト
のIDから決定された仮想ノードを基
準にリングに沿って 2 , 3 番目が選ば
仮想ディスク
切り出し
れ,それらの仮想ノードに対応する物
ストレージ
プール
理ノードが配置先となります.このよ
仮想化基盤の
バックエンド
うに,Sheepdogはコンシステントハッ
ファイル
サーバ
シュ法によって数学的にデータ配置先
集約
Sheepdog
を決定できるため,集中管理サーバを
排して自律性を高めることを実現して
Sheepdog
クラスタ
さまざまな用途に
利用可能
おり,特長①~③に寄与しています.
汎用サーバ
最近の取り組み
図 1 Sheepdogの概要
NTTソフトウェアイノベーション
仮想
ディスク
物理ノード
obj 1
Node 1
物理ノード
Node 2
Node 6
・
・
・
オブジェクト
仮想ディスクデータを一定
サイズ
( 4 MB)
のオブジェク
トに分割
1
obj 3 8
オブジェクトは 3 重化されコンシ
ステントハッシュ法により各ノード
に配置される
(a) オブジェクトの物理配置
1 番目の配置先ノードはオブ
ジェクトIDから決定し,リン
グに沿って 2 番目, 3 番目の
配置先ノードを選定
obj 3 5
Node 8
6
obj 3 6
3
NTT技術ジャーナル 2014.12
2
8
4
(b) 配置決定アルゴリズム
図 2 コンシステントハッシュ法
26
3
ハッシュリング上の並び順は
ノードのIPアドレス・ポート
のハッシュ値から計算
3
Node 7
obj n
2
ハッシュリング
7
Node 5
obj 3
obj 1
5
7
1
Node 4
obj 2
5
7
Node 3
obj 1
8
1
6
4
obj 1
2
obj 2
4
obj 2
obj 2
特
集
センタでは,商用サービスでも安心し
トとSheepdogクラスタ内のサーバと
てSheepdogを利用できるよう,主に
の接続が断たれても,別のサーバに接
運用性 ・ 信頼性の向上に取り組んでい
続して読み書きを継続することができ
ます.
るようになります.
ストを抑えることができます.
オブジェクトストレージ
OpenStack Swift
Sheepdogではクラスタに所属する
さらに,激甚災害や停電による拠点
スマートフォンで撮影した写真をク
サーバの追加 ・ 離脱管理にZookeeper
単位の故障が発生した場合でも,遠隔
ラウド上で保存して,ほかの端末で閲
を用いることができます.NTT研究所
拠点を利用してサービス停止 ・ データ
覧するようなケースが一般的になって
はZookeeperと組み合わせたSheepdog
損失を防ぐ機能の開発にも取り組んで
きました.
その結果,
クラウド上のデー
クラスタの網羅的なテストや長期安定
います.
タは膨大な量になり,安価で信頼性の
試験によって課題抽出を行い,問題個
Sheepdogのオープンソースコミュ
所の修正をSheepdogコミュニティに
ニティでは,Erasure Codeと呼ばれ
います.このニーズにこたえるため,
提案して品質を高めています.
る機能が実装されています.これは
OpenStackコミュニティで開発されて
また,クライアントとSheepdogと
データ損失回避のためにオブジェクト
いるソフトウェアがオブジェクトスト
の接続をクラスタ内の 1 台だけでな
の単純複製を行うのでなく,RAID5
レージOpenStack Swift(Swift)です.
く,複数台のサーバと接続可能にし,
のように,分割データと復元用データ
NTTグループやRackspace社などでの
読み書きのための経路を冗長化できる
を配置し,一定数がそろえば元のデー
商用実績もあります.
マルチパス機能の実装に取り組んでい
タを復元可能とする技術で,ディスク
ます.この機能によって,クライアン
容量の消費を削減し,ハードウェアコ
社内
システム
スマートフォン
タブレット
高いクラウドストレージが求められて
Swiftの特長として,以下の 3 点が
挙げられます(図 3 )
.
PC
①HTTPによるファイル操作
バック
アップ
写真
動画
画像
楽曲
個人
データ
共有
ファイル
(アップロード,ダウンロード,削除,リスト)
ネットワーク
ロードバランサ
リクエスト増加に対応
プロキシノード
容量増加に対応
ストレージノード
③スケールアウト
(プロキシ・ストレージノード増設)
②高信頼性
(自動的に 3 つのレプリカを保管)
図 3 Swiftの特長
NTT技術ジャーナル 2014.12
27
オープンイノベーションによるクラウド基盤技術の取り組み
(1) HTTPに よ る フ ァ イ ル 操 作
間を分析するため,実際にPoC環境を
(3) スケールアウト
Swiftは自律分散で単一障害点がな
構築し,構築,監視,増設,トラブル
HTTPを利用することで,スマート
いため,スモールサイズからスケール
解析と復旧,ソフトウェアアップデー
フォン,タブレット,PCなどあらゆ
アウトしていくことが可能です.典型
トの稼動時間を定量評価しました.そ
る端末からSwift上のデータ操作が可
的なSwiftクラスタの構成例を図 3 に
の結果,スケールアウトのための増設
能です.利用用途としてはバックアッ
示します.この例ではクライアントか
対応時間とディスク故障の復旧対応時
プデータや写真,動画などのマルチメ
らリクエストを受け付けるプロキシ
間の占める割合が高かったため,改善
ディアデータなど,書き換えが少ない
ノードと,実際にそのデータが保存さ
を検討しました.
データの保存に適しています.
れるストレージノードから構成されて
増設対応時間についてはOS導入 ・
います.リクエストが多い場合はプロ
ア プ リ ケ ー シ ョ ン 導 入 部 分 をPXE
ストレージシステムにとって保存す
キシノード,ストレージ容量が足りな
ネットワークブート利用による自動イ
るデータを失うことはあってはならな
くなった場合はストレージノードを必
ンストールで行い,Chefによる設定
いことです.Swiftは高信頼性実現の
要に応じて増設できるため,拡張性の
自動化,リリース前の動作確認部分で
ため標準で 3 つのレプリカをクラスタ
高いクラスタアーキテクチャとなって
API試験の自動化ツールTempestを利
内に作成します.また,クラスタ内の
います.
用することによって,ノード増設手順
(REST API)
(2) 高信頼性
オブジェクトを保持する各ノードに,
レプリケータと呼ばれるプロセスが動
の一部を効率化し,約 3 分の 1 に短縮
Swiftの運用性向上
で き る 見 通 し を 得 ま し た( 図 4 )
.
作しており,自ノードで保持するデー
NTT研究所では自立分散された多
TempestはOpenStackコミュニティの
タがクラスタ内のほかのディスクに 2
数のノードからなるクラスタを,より
試験ツールですが,NTT研究所とし
つあるかを確認し続けます.ディスク
スムーズに商用導入し,低コストでの
てSwift部分の試験項目を拡充し,効
が故障しアンマウントされたことを確
サービス提供を行うため,運用の効率
率化を実現するだけでなく,網羅的な
認した場合は新しいレプリカを自動的
化に取り組んでいます.総容量 1 PB
試験を行うことが可能です.
に復元します.
(ペタバイト)のクラスタの総運用時
ディスク故障から復旧までの時間は,
(a) 従 来
(b) 今 回
1. 新ノード向けコンフィグ作成
1. 新ノード向けコンフィグ作成
2. ネットワーク設定
2. ネットワーク設定
3. サーバ機設置,結線
3. サーバ機設置,結線
4. OS導入
4. 電源投入後,ネットワークブート
PXE
利用による
効率化
5. OS設定
8. Swiftクラスタへの組み込み
6. 監視エージェント導入
9. ドライブのクラスタへの組み入れ(ストレージのみ)
7. Swiftアプリケーション導入
10. Chefを利用してロードバランサ組み込みからクラスタの
確認試験までを自動化
8. Swiftクラスタへの組み込み
9. ドライブのクラスタへの組み入れ(ストレージのみ)
10. ロードバランサプールへの組み入れ(プロキシのみ)
Chef/Tempest
利用による効率化
11. 監視設定
12. Swiftノード設定の確認試験
従来の非効率部分
13. Swiftクラスタ動作確認試験
効率化部分
図 4 ノード増設時の効率化
28
NTT技術ジャーナル 2014.12
特
集
(a) 従 来
(b) 今 回
Disk故障
発生
Disk故障
発生
故障検知
故障Disk
アンマウント
レプリケーション開始
smartctlコマンドを
定期実行
故障検知
運用者が
介在
OSSツール,
市販ツールな
どを活用した
検知とアンマ
ウント
Swiftに
よる自動
復旧
Swiftに
よる自動
復旧
故障Disk
アンマウント
レプリケーション開始
レプリケーション完了
レプリケーション完了
図 5 ディスク故障時の効率化
データの高信頼性を確保するうえで最
またSwiftは信頼性が高く,スケー
小化する必要があります.
本検討では,
ラブルなオブジェクトストレージで
HDDに内蔵されている自己診断機能
す.今回紹介した運用の効率化を発展
S.M.A.R.T.(Self-Monitoring Analysis
させ,
自動化を進めると同時に,
コミュ
and Reporting Technology)より故障
ニティで新機能として検討されている
ディスクを自動検出し,さらに当該
Erasure Code機能についても取り組
ディスクをアンマウントする自動化
んでいきます.
ツールを作成することにより,ディス
Sheepdog,Swiftと も に 今 後 も コ
ク故障から復旧までのプロセスを自動
ミュニティの主要開発者やユーザの皆
化し,手動手順に比べ約 5 分の 1 に
様と品質向上や機能拡張に取り組み,
短縮できる見通しを得ました(図 5 )
.
安定性 ・ 性能 ・ 運用性の向上を目指し
今後の展開
Sheepdogは高い拡張性 ・ 信頼性 ・
運用容易性を備えた完全対称形の分
散ブロックストレージであり,国内外
での実サービスへの導入が始まってい
ます.今後はより安心してSheepdog
を導入していただくために,引き続き
品質 ・ 信頼性向上に取り組むととも
に,ユーザに対する運用手順の共有や
共同検証を進めていく予定です.
ます.
(左から)
日高 東潮/ 福本 佳史/
内藤 一兵衛/ 白石 正裕
ユーザのさまざまな要求に柔軟にこたえ
られる仮想化基盤を目指し,今後もストレー
ジ仮想化技術の研究開発に取り組んでいき
たいと思います.
◆問い合わせ先
NTTソフトウェアイノベーションセンタ
分散処理基盤技術プロジェクト
第四推進プロジェクト
TEL 0422-59-2207
FAX 0422-59-2072
E-mail sic lab.ntt.co.jp
NTT技術ジャーナル 2014.12
29