オブジェクト‐ストレージ【object storage】
オブジェクトストレージ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/28 16:07 UTC 版)
オブジェクトストレージ(英語: Object Storage)とは、データをオブジェクト単位で扱うストレージのアーキテクチャである。スケーラビリティに優れるため、主にオンラインストレージで利用されている[1]。
概要
利点は容量の拡張性(スケーラビリティ)であり、Facebookのように大量の写真を格納したり[2]、Amazon Simple Storage Serviceで大量の顧客データを保存する。容量の拡張はストレージサーバー(ノード)の追加で無停止で出来る[3]。ペタバイト(PB)級にも拡張可能で、米国ロスアラモス国立研究所は500 PBのストレージに採用した[4]。
オブジェクトストレージの説明にデータとメタデータを結合してオブジェクトと扱うというものがある[5]。これは特徴の一部でしかない。LinuxのファイルシステムであるXFSには拡張属性があり、属性とデータを一つに格納する[6]。しかしながら、これ単体をオブジェクトストレージと呼ばない。後述のアクセス方法やデータ分散の仕組み等のアーキテクチャ全体と理解される。
PB級の分散ストレージの仕組みには他にもHadoop Distributed File System (HDFS)やGoogle File Systemがある。これらはビッグデータ処理を意識した大きいファイルサイズに最適化された設計である (例:ファイルが100 MB程度の大きさに細切れにされて保存される等) のに対して、オブジェクトストレージはどのような大きさにも適した設計であるとされる[7]。
詳細
データのアクセス方法
データは固有のID(URI)を持ち[5]、データへのアクセスは通常RESTful APIで行う[5][8]。オブジェクトストレージはウェブブラウザなどのアプリケーションがサーバにAPIリクエストを発行することでアクセスする。命令には、読み込みをするGET、書き込みをするPUTなど、がある[9]。APIとデータIDを指定することでアクセスするため、ファイルサーバやネットワークアタッチトストレージ(NAS)のようにWindowsのExplorerやMacOSのFinderでアクセスするためには、FUSEアダプタなどを使用する必要がある。
データを直接更新したり上書きすることはできず[10]、データを更新する際は、新しいデータの書き込みと古いデータの削除を組み合わせて行うことになる。
APIはAmazon Web Services S3 APIがデファクトとの意見もあり[11]、S3互換を謳った製品もある。
データの格納方法
ディレクトリは持たない[5]。フラットな空間にデータを格納する。これはバケットもしくはコンテナと呼ばれる[12][8]。バケットは複数あってもよい。
同じデータを複数のストレージに分散して記録する(レプリケーション)[13]ため、RAID等の高可用性技術を別途準備しなくても良い。容量効率を高めたイレージャーコーディングが実装されたオブジェクトストレージも存在する[13]。
データとメタデータを併せてオブジェクトとする。メタデータはユーザが自由に登録できる[14]。たとえば、画像のメタデータとして被写体や場所を登録し、検索や抽出に利用することができる[15]。
欠点
既存アプリケーションの変更、特にAPIへの対応が必須となる。また、データの部分的な読み書きができないため、頻繁な部分更新を要するデータベースや高速I/Oのトランザクションは適さない[16]。バックアップ、アーカイブ、サーバーログの保存等であれば問題ない。
コンポーネント
主にProxyノード、ストレージノードからなる[17]。負荷分散のためにロードバランサを利用することもある。
Proxyノード
APIの提供やリクエストを管理する[18]。クライアントからAPIを受け取りストレージノードへ指令を出す。データが保存されているノードの場所も管理する。たとえば、OpenStack Swiftでは「Ring」と呼ばれるアルゴリズムが使用されている[18]。クライアント側のパブリックネットワーク(LAN)端子と、ストレージノード側のプライベートネットワーク端子の二つを持つ。
ストレージノード
実際にデータを格納する。Proxyノードのプライベートネットワーク側に接続され、通常可用性のために複数台のノードから成る。XFS等のデータ属性を保持できるファイルシステムを利用する[18]。オブジェクトストレージはAPIでアクセスするが、これはクライアントからストレージ全体を眺めた場合である。ストレージノード単位で見ると、最終的にオブジェクトは既存のファイルシステムで保存される。
ハードウェア
コンピュータネットワークでストレージを構成する技術にはストレージエリアネットワーク(SAN)もある。オブジェクトストレージはSANで利用される高価なファイバーチャネルを利用しない。ストレージデバイスも低速だが大容量・低価格なSATA HDDを活用する等[17]、コモディティ・ハードウエアの活用が設計思想である。実際にストレージノード間はTCP/IPで通信され、SCSIプロトコルはやり取りされない。これら理由によりストレージはHDD、ネットワークはイーサネットである。ファイバーチャネルやテープデバイスは主流とは言えない。
実装例
パブリッククラウドサービス
- Amazon Simple Storage Service
- Google Cloud Storage
- Microsoft Azure Blob storage
オープンソースソフトウェア
クローズドソースソフトウェア
- Haystack - Facebook
関連項目
出典
- ^ “ストレージの基礎”. 2017年12月26日閲覧。
- ^ “Finding a needle in Haystack: Facebook’s photo storage”. 2017年12月26日閲覧。
- ^ “ストレージノードのインストールと設定”. 2017年12月26日閲覧。
- ^ “Los Alamos National Laboratory likes it, puts Scality's RING on it”. 2017年12月26日閲覧。
- ^ a b c d “オブジェクトストレージとは”. 2017年12月26日閲覧。
- ^ “共通テーマ: アドバンスト・ファイルシステム・インプリメンター・ガイド 第10回”. 2017年12月26日閲覧。
- ^ “What features differentiate HDFS and OpenStack Object Storage?”. 2018年1月2日閲覧。
- ^ a b “第3回 ConoHaオブジェクトストレージを使ってみよう”. 2017年12月26日閲覧。
- ^ “Object Storage API”. 2017年12月26日閲覧。
- ^ “用語解説辞典”. 2017年12月26日閲覧。
- ^ “日本発、S3互換クラウドストレージ構築パッケージ「Cloudian」”. 2017年12月26日閲覧。
- ^ “ストレージ バケットの作成”. 2017年12月26日閲覧。
- ^ a b “第10回 オブジェクトストレージの宿命、容量効率を高める方法とは?”. 2017年12月26日閲覧。
- ^ “OpenStack: Swift 【API 編】”. 2017年12月26日閲覧。
- ^ “5.2 オブジェクト・ストレージのメタ検索”. 2017年12月26日閲覧。
- ^ “オブジェクトストレージのおすすめ用途”. 2017年12月26日閲覧。
- ^ a b “5.1 オブジェクト・ストレージを利用するには?”. 2017年12月26日閲覧。
- ^ a b c “OpenStack Swiftを使ってクラウドストレージサービスを構築する”. 2017年12月26日閲覧。
オブジェクトストレージ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/09/12 14:52 UTC 版)
Cephは分散オブジェクトストレージ実装している。Cephのソフトウェア・ライブラリが提供するクライアント・アプリケーションlibradosを利用することで、RADOS(reliable autonomic distributed object store; 信頼性の高い自律分散オブジェクトストア)と呼ばれるCeph独自のオブジェクトベースのストレージ・システムに直接アクセスすることができる。また、libradosは、RADOSブロックデバイス (RBD)、RADOS Gateway、Ceph File System (CephFS) などのCephの主要インタフェースの基盤を提供している。 libradosソフトウェアライブラリは、C、C++、Java、PHP、およびPythonでのアクセスを提供する。RADOS Gatewayは、RADOSオブジェクトストアを、ネイティブのAmazon S3 APIとOpenStack Swift APIの両方から利用できるRESTfulインタフェースとして公開する。
※この「オブジェクトストレージ」の解説は、「Ceph」の解説の一部です。
「オブジェクトストレージ」を含む「Ceph」の記事については、「Ceph」の概要を参照ください。
オブジェクトストレージ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/28 07:09 UTC 版)
「クアンタム (企業)」の記事における「オブジェクトストレージ」の解説
2012年末、クアンタムはAmplidata社からOEM供給を受けたLattus製品ファミリーを発表した。Lattus-Xは、ストレージノード、アクセスノード、コントローラノードで構成され、複数ペタバイトのデータストアに対応したスケールアウト型のオブジェクトストレージシステムである。Lattus-Xは、Lattusファミリーのディスクベースのアーカイブの最初の製品で、ネイティブなHTTP RESTインターフェイスと、アプリケーションへのCIFSおよびNFSアクセスを備えている。 Lattusワイドエリアストレージソリューション[buzzword]は、ファウンテンコードと呼ばれるオブジェクトストレージのバージョンで構築されている。ファウンテンコードは、リード・ソロモン方式の誤り訂正と同じレベルの保護を提供するが、より多くのデータ保護と高い効率性を備えている。クアンタムはワイドエリアストレージ(同社の造語)を、従来のディスクやテープを補完するもう一つのストレージ層と捉えている。 2020年、クアンタムはウエスタンデジタルテクノロジーズ社との間で、同社のActiveScale™オブジェクトストレージ事業を買収する契約を締結した。ActiveScaleの製品ラインと人材が加わったことで、クアンタムのポートフォリオにオブジェクト・ストレージ・ソフトウェアと消去コーディング技術が加わり、同社はオブジェクト・ストレージ市場での拡大を可能にした。
※この「オブジェクトストレージ」の解説は、「クアンタム (企業)」の解説の一部です。
「オブジェクトストレージ」を含む「クアンタム (企業)」の記事については、「クアンタム (企業)」の概要を参照ください。
オブジェクトストレージ (Swift)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/12 05:07 UTC 版)
「OpenStack」の記事における「オブジェクトストレージ (Swift)」の解説
「オブジェクトストレージ」も参照 Swiftは無限にスケーラブルなブロブ(輪郭のない)ストレージ。データの保存や読み出しを可能にする。(ファイルサーバーのようなディレクトリ概念はない) 仮想マシンイメージやデータを保存するのに利用される どこからでも利用可能 将来的なデータ量増大に対して、簡単にスケールできる例:数百個のペタバイト級データセットの保存
※この「オブジェクトストレージ (Swift)」の解説は、「OpenStack」の解説の一部です。
「オブジェクトストレージ (Swift)」を含む「OpenStack」の記事については、「OpenStack」の概要を参照ください。
- オブジェクト‐ストレージのページへのリンク