効率的なバックアップを実現するためのエトセトラ
企業のシステムに蓄積されるデータ量は、とどまることなく確実に増え続けています。この影響はシステムのストレージだけでなく、そのデータを丸ごとコピーするバックアップシステムにも当然及ぶこととなります。特にバックアップするデータが急増した場合には、ストレージの追加コストが発生したり、バックアップデータの管理が煩雑になったりする可能性も出てきます。今回はそのようなことを起こさないため、バックアップを実施するうえでの細かな注意点について見ていくことにしましょう。
ソフトウェア圧縮とハードウェア圧縮の違いとは
爆発的な勢いで日々増え続けているバックアップデータの量。この増大し続けるデータに対して、効率的なバックアップやリストアできる環境の整備がシステム管理者には求められています。その効率化の方法の1つとして、差分バックアップや増分バックアップなどの手法があることを過去の連載で扱いました。ただ、増分や差分バックアップだけでは、爆発的に増え続けるデータ量に対応できないのが実情です。そこで別のアプローチとして紹介したいのが、データ圧縮を用いたストレージ消費を抑えるための方法です。
データ圧縮には、大きく分けて、ソフトウェアによってデータを圧縮する方法とハードウェアによってデータを圧縮する方法とがあります。ソフトウェアによる圧縮はバックアップ対象となるシステムまたは、バックアップサーバー側のCPUを利用して圧縮を実施するものになります。このため、ソフトウェアによるデータ圧縮は、圧縮処理を実施する分のCPUパワーを利用することになり、ほかのタスクの処理速度が低下する可能性を持っています。半面、特別なハードウェアを必要としません。もし、バックアップソフトがデータ圧縮をサポートしている場合、追加のコストを必要とせず、ストレージの消費を押さえられるようになるメリットがあります。
一方のハードウェアによるデータ圧縮は、圧縮専用のチップなどを用いて圧縮を実施する方法で、テープデバイスの多くや一部のディスクアレイなどに採用されている方式となります。ハードウェアによる圧縮のメリットは、専用のハードウェアで処理するため、高速に圧縮処理を実施できる点とほかのシステムに負荷をかけない点にあります。ちなみにテープメディアのパッケージなどにある容量表記の部分には圧縮時と非圧縮時の両々が記載されています。これは、ハードウェアによるデータ圧縮時(の最大値)と非圧縮時の容量を示したものになります。 ただし、この理論値はあくまで想定値であり、後述しますが保存するデータによってはこの最大値を実現できないこともあるので注意が必要となります。
メリットはストレージ消費とデータ転送効率の向上
それではデータ圧縮のメリットとデメリット、そしてデータ圧縮の有効な活用法について見ていくことにしましょう。データ圧縮のメリットはなんといってもストレージ消費量を削減し、空き容量を効率的に利用できる点にあります。先に述べたようなテープデバイスにおいては、専用のハードウェアを用いることで高速な変換と2倍のデータ容量を実現しています。また、ディスクアレイの中には、このハードウェアの性能をさらに強化して、平均20倍もの高圧縮率を実現した製品も登場しています。
このような高性能なバックアップシステムを利用することで、ハードウェアや稼動時への投資コストを抑えながら大容量のバックアップ環境を構築できるようになります。実際に2008年は石油価格の急激な高騰に伴う電力料金が上昇するという現象がおきました。このとき、ハードウェアのコンパクト化を実施し、ランニングコストの削減に成功したというケースが見られました。このようにデータ圧縮機能を有効活用すれば、ハードディスクなどストレージの台数削減による消費電力の低減と、ストレージを冷却するためのエアコンの消費電力の低減が期待できます。結果、長期的に見た場合のランニングコストに大きな差が出る可能性が高いといえます。また、CO2の排出権などの二次的コストの削減にも有効といえるでしょう。
データ圧縮を実施するもうひとつの利点が、ソフトウェアによる圧縮を施すことによってデータ転送速度も向上できることです。現状、バックアップのほとんどはネットワークを介して行われています。日々のデータ量が増大する中で、このバックアップが占める帯域も日増しに大きくなっています。しかし、圧縮処理を実施することで数十%~数十分の一というデータサイズで転送できるようになります。特に、ディザスタリカバリーなどの遠隔地でのオンラインバックアップを実施している場合には利用できる帯域が限られているため、最重要なデータだけをバックアップするという方法がとられていますが、データ圧縮を用いてデータ転送量を減らすことでバックアップ対象が増やせるようになるというメリットがあるのです。
何でもかんでも圧縮するのは非効率化を招く!?
一方のデータ圧縮によるデメリットですが、1つは先にも述べたハードウェアリソースの問題です。ソフトウェアによるデータ圧縮の場合には、CPUのリソースを消費するため、ほかの処理に影響を及ぼす可能性があります。これは1日1回などの低頻度のバックアップにおいてはそこまで気にする必要がありませんが、データベースのバックアップに用いられるリアルタイムバックアップなどにおいては不利な点だといえます。
また、圧縮を施すことによってリカバリ時には解凍(データ伸張)の処理が必要となります。この処理にはシステムに負荷がかかるのに加え、システムの復帰までに要する時間が多くかかることになります。このため、RTOの極小化が求められるシステムの場合にはソフトウェア圧縮を施すのは得策とはいえません。
次のデメリットは、対象となるファイルによってはデータ圧縮が有効に機能しない場合があることです。先ほどテープデバイスの圧縮表記があくまで最大値であると書きましたが、この数値は実は格納されるデータによって大きく変動します。
データ圧縮の仕組みを簡略化して説明すると、データを圧縮する際には同じ要素を持ったデータを1つのデータとして格納し、解凍時にそれを再び元のデータに戻すという作業が基本になっています。このため、同じような構造のデータが多々存在するケースでは、高い圧縮率が実現できます。たとえばDBに格納されたデータなどはテキストデータが中心となりますので、効率的な圧縮が可能になります。
一方でデータ圧縮の処理を行っても、ほとんどファイルサイズがコンパクトにならないケースもあります。JPEGなどの画像データやMPEGをはじめとした映像データ、またPDFなどのデータがこれに該当します。これらのデータは、ファイルが生成される時点で高度な圧縮処理がなされているため、バックアップ時点での圧縮がほとんど効果を示しません。
また、無理にデータ圧縮を実施すると処理に多大な負荷がかかったり、時間を要したりするにもかかわらずほとんどデータ量削減の効果を示さないという悪循環に陥る可能性を持っています。こうした問題をおこさないためには、バックアップ時のデータ圧縮を実施するのは、表計算ソフトやワープロソフトで作成したファイル、DBなどの構造型データのみを対象にし、画像や音声のようなすでに圧縮された形式のデータは非圧縮で処理するという手法が有効となるでしょう。
このほかに効果的なバックアップを実現する手法としては、データベースが格納するデータサイズを調整し、バックアップ・リストアに要する時間を短縮するチューニングなどの手法が用意されています。ただし、この方法は非常に複雑かつデータベース自身の応答速度にも関係するため、データベースに付属しているリファレンスマニュアルなどを参照し、最適なファイルサイズを見極めるとよいでしょう。
なお、シマンテックのBackup Execに用意されている各アプリケーションに対応したエージェントには、おのおののアプリケーションに対してデータ圧縮・伸張を最適化する機能が備わっています。たとえばWindows Server向けの「Symantec Backup Exec Windows システムエージェント」には、「Exclusive Agent Accelerator」と呼ばれるテクノロジーが採用されており、クライアントでのソースレベルの圧縮と分散処理を行うことで、バックアップとリカバリ時のパフォーマンスを大幅に向上させられるのです。こうした製品を使うことで、運用コスト・ランニングコストの低減が可能になります。次回はシステムやストレージを効率的に利用する手段として注目を集めている仮想化環境と、そのバックアップについて見ていくことにしましょう。


