エンタープライズ向けに販売されているストレージでは、ほぼ全てのOSにデータ重複排除に機能が搭載されている。
OS側で重複しているデータを特定して、重複箇所を排除するプロセスを持っている。重複データが見つかった場合、そのデータは削除される。
この重複排除の機能を活用することで、容量の節約はもちろんのこと、時間短縮やネットワークの負荷軽減に役立つ。
データ種類別の重複排除
データには種類がいくつかある。大きく分けてブロックデータ、ファイルデータ、オブジェクトデータが挙げられる。
・ブロックデータ
ブロックデータでの重複排除が最も容量削減の効果が大きい。
固定長もしくは可変長によるブロック単位での分割を行ない、各ブロックのハッシュ値を比較する形で重複部分のチェックを行なう。
ブロックデータで構成されているものとして、仮想マシン(VM)なんかが最たる例になるが、似たような構造の多いデータのある環境では大きな効果を発揮する。
・ファイルデータ
ファイルデータに関しては、重複排除を行なう上で2パターンの考え方がある。そのままファイル単位で行なうか、ファイルを小さなブロックやセグメントに分割するか。
ファイル単位で行なう場合は、そのストレージがどのようなOSを搭載しているかで、処理の仕方が変わっていくのだが、基本的に処理自体は単純なため高速な処理が期待できる手法である。
ただOSによって重複対象となる概念に違いが出てくる。例えば50ページのPowerPointファイルで最初の1ページのタイトル部分だけが異なり、あとの49ページの内容が全く同じの2つのファイルがあったと仮定する。
あるOSではファイル内容までしっかり見た上で1ページだけが別データで49ページ分が重複データだと判定してくれることもあれば、他のOSでは1ページだけの内容に違いがあっただけで2ファイルを全く別のものと判定することもある。
※このプラットフォームでの投稿では、特定の製品や機能の紹介をすることはあっても、機能にフォーカスしてベンダー間や製品間で優劣をつけるような投稿はしない方針なので、ここではそれぞれのOSがどの製品に搭載されているのかについては触れない。
一方、ファイルを小さなブロックごとに分割する手法では、前述したブロックデータでの重複排除とほぼ同じような動きをしていく。
ハッシュ値を使っての重複箇所を検出。固定長ではなく可変長でのブロック分割の方が重複箇所の検出の精度が高いので、ファイルデータのブロック分割重複排除では可変長によって行なうストレージOSがメインで見られる。
・オブジェクトデータ
オブジェクトデータでは、その名の通り、オブジェクト単位での重複箇所を検出していく。
ただオブジェクトデータは、非構造化データとも呼ばれる、細かく見るといろいろな種類のデータがある。画像や動画、音声データもだ。
こういった非構造化データの重複排除の効果はそのデータの性質によって異なる。
そのためブロックデータやファイルデータと比べて容量削減効果や処理速度やかかる負荷については事前予測が難しいタイプのデータと言える。
残りは別の投稿で
データ種類別の話でこの投稿はいったん区切って、次回は重複排除の種類とその実装箇所の選択について触れていきたい。↓↓
ひとりごと
関東地方では気温40℃超えの地域もあるというのに、ここ1,2週間は真っ昼間に釣りとゴルフ練習をしてきてしまった。
釣りは東京湾でのタコ釣り。「さすがにこの気温では長時間はやめましょう」という船長さんの方針で朝7時から11時までの間でぱっぱとやってきた。2匹が釣れた。持ち帰って後日、タコ焼きパーティーを開催。発泡酒が進んだ。
ゴルフ練習は50歳以上と思わしき方々が多く来られてて。2時間くらい打っていった。日陰とはいえ、運動部時代の夏の練習に「水なんて飲むな」と言われて育った世代だからやはりタフな人はタフだ。
炎天下で長時間、外にいるのなんて絶対にやめた方がいいのに、目先の娯楽を選択してしまう自分には呆れるばかりである。