連載
» 2014年01月20日 20時12分 公開

たまおきのOpenStackウォッチ(2014年1月版):2013年のOpenStackまとめ/OpenStackコンポーネント「Swift」とは (2/2)

[たまおきのぶゆき,日本仮想化技術]
前のページへ 1|2       

OpenStackコンポーネント解説(5):分散オブジェクトストレージ「Swift」

 SwiftはOpenStackを構成するコンポーネントの中で、オブジェクトストレージの機能を担当しています。Amazon Web Serviceの提供するAmazon S3に相当するサービスを提供するために開発が進められています。オブジェクトストレージには以下のような特徴があります。


扱うデータの単位はオブジェクト

 通常のファイルシステムがファイル単位だったり、さらに下位の概念としてハードディスクなどはブロック単位でのI/Oを行いますが、Swiftはオブジェクト単位でデータを取り扱います。


APIベースで操作を行う

 HTTPベースの、いわゆるREST APIでデータを扱います。

 大規模、大容量のデータを扱うのには向いていますが、データ単位がオブジェクトなので、細かいデータをやり取りする必要があるデータベースなどの処理には向いていません。Webサービスのバックエンドとして、例えば商品データのイメージ画像など、あまり頻繁に更新されないデータを保管するストレージと考えると良いかもしれません。

 Swiftは、オープンソースによるオブジェクトストレージとして注目されています。特に、格納したオブジェクトデータをノード間で複製(デフォルトで3冗長)して信頼性を高めているので、ハードディスクを大量に搭載できる低価格なサーバーを3台用意し、Swiftをインストールすればオブジェクトストレージが出来上がります。

 Swiftを利用するにはOpenStackの認証系を担当するKeystoneとだけ連携すればよいので、Swift単独でオブジェクトストレージを構築するユーザーもいるようです。


Icehouseで搭載予定の「イレジャーコーディング(Erasure Coding)」

 OpenStackの次期バージョンであるIcehouseに向けて実装が進められている機能として「イレジャーコーディング(Erasure Coding:消失訂正符号処理)」があります。

 現在のSwiftでは、複製によるデータ保護を行っていますが、これはちょうどRAID 1(ミラーリング)に似ています。

 Erasure CodingはRAIDでいえばRAID 5やRAID 6のように、データをバラバラにしてディスクに分散して保管することで容量効率を高める仕組みです。ノード障害が発生した時に回復するために、RAID 5のパリティに相当するデータを生成し、Swiftを構成するノードに格納しておきます。

 Swiftを構成するノード数が多くなると、容量と冗長性のバランスが単純な複製よりも効率良くなるので、Swiftを使ってさらに大規模なオブジェクトストレージを構築したい時にErasure Codingは有効な機能といえるでしょう。


Erasure Coding(画像は米インテルによるIDF2013の発表資料「OpenStack Swift Erasure Code: A Smart Cloud Storage Solution」からの抜粋)


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。