バックアップアルゴリズムを知らなければ、これからの時代苦労するかも

2016年11月20日

テクノロジー 学習

rsyncコマンドを最もよく利用するのは、ファイルのバックアップですが、バックアップってただ、ファイルをコピーするだけと思っているエンジニアはきっと運用中にとんでもないトラブルに見舞われると覚悟しましょう。 そんな事を回避するために僕が個人的にオススメしたいのは「バックアップアルゴリズム」を徹底的に考えてみましょうという事。

何故バックアップが必要なのか?

パソコンを使っていて、コンセントに足を引っ掛けてしまい、電源が落ちてしまった経験がある人や、スマートフォンが壊れてしまったり、水没してしまった時に、本体からDATAが取り出せなくてどうしようもなく途方に暮れたことがある人は、今の世の中沢山いるはずです。 他にもIT機器には必ずDATAやLOGを保存する為のデバイスがほとんどという事を考えると、消えてしまっては困るデータはバックアップが必要という事は、誰が考えても明らかですよね。 そういえば、その昔ファミコンでドラゴンクエストをやっていた人ならば、ⅠとⅡの復活の呪文で、Ⅰ回も間違えたことがない人っていうのは僕の周りでは聞いたことがなく、みんな泣く泣くセーブデータを諦めるしか無かったという甘酸っぱい記憶も蘇ってきます。

バックアップの種類

バックアップにはいくつかの種類があり、基本的なことは覚えておかないといけないので、その種類を紹介しておきます。

完全バックアップ

基本的にバックアップと聞くとこの方式で、まるっと全てのデータをデータコピーしてしまう方法です。 メリットとしては、何も考えずに全てコピーするので、安全かつ確実に行えますが、デメリットとして、データ量が多い時に、毎回全てのバックアップを摂っていると時間とストレージ容量が膨大にかかってしまいます。

差分バックアップ

あるバックアップを取得するタイミングの前回と今回の差の分だけ、保存する方法。 メリットとしては、完全バックアップを毎回行うよりも、差分だけのデータなので定期的に保存する場合のデータ容量が少なくすみます。 デメリットは、全てのデータを復元しようとする場合、完全バックアップに遡り、差分バックアップを1つずつ復元していかなければならないので、復元するときの手間と時間が一番大きくかかる方法。

増分バックアップ

複数回のバックアップを行う際に、最初に完全バックアップを行い、その地点から次回の完全バックアップまでの間、完全バックアップとの差分バックアップを行い続ける方法。 これのメリットは、毎回完全バックアップをする場合と比べてストレージ容量の削減ができ、かつ復元も最大2回ほどのバックアップを復元すればいいだけなので、運用に向いている。 デメリットは、差分バックアップほどのストレージ削減はない。

何故アルゴリズムが必要なのか?

バックアップは基本的に、1回だけのバックアップではなく、定期的にバックアップをすることを前提にしています。 1回だけのバックアップや無定期に行う場合は、完全バックアップを行うだけでいいのですが、定期的に行う必要のあるバックアップは確実にアルゴリズムを理解しておかないと、痛い目を観てしまいます。 例えば、バックアップサイクルとデータ量をちゃんと把握しておかなければ、バックアップを取るべきストレージがすぐに一杯になってしまい。バックアップする事自体ができていないというお寒い自体になってしまいます。 そして、運用フェイズにおいても、バックアップは取っているけど復元できませんというような自体になってしまうと、そもそもバックアップをとっている意味が無くなってくるんですが、仕事の現場でもこうしたことはよく起こっています。 こうした自体を避けるためにちゃんとした自分としてのバックアップアルゴリズムを確率しておくことをオススメします。

実践編

ここでは実際に、各種バックアップをどういう風に考えなければいけないかを知っておきましょう。

サーバーログのバックアップ

サーバー運用は、サービスデータのバックアップとシステムログのバックアップ、それに加えてサービスプログラムのバックアップという点が必要になります。 最近ではクラウドサーバーが主流という事もあり、複数のサーバーで同じデータを保持している時に、省くべきバックアップや必要不必要の判断が重要になります。 基本的に仕事で使うバックアップは、不要の判断はせずに想定されるものは全てバックアップするという方向性でなければいけません。 ただ、復元頻度が頻繁で無いこともあるため、1ヶ月の完全バックアップと、1日毎の差分バックアップを行うだけでも十分かもしれません。

スマートフォンのバックアップ

iPhoneを使っている人はiCloudを使うだけで十分だと思いますが、iPhone端末の総容量に食わべてiCloudの無料枠は5GBしかありません。 多くの人が、音楽データや写真データで5GBなどはすぐに食いつぶしてしまうでしょう。 もちろん、有料プランに切り替えて全てのデータをリアルタイムに保持してくれるiCloudは非常に便利なので、余裕のある人はオススメしますが、少しでも安く使いたいという人は、写真のバックアップにはGooglePhotoアプリを入れて、カメラデータを無限に保存してもらいましょう。 音楽データは、iTunesに繋いでパソコンで管理できるので、こちらのバックアップはさほど難しくないですね。 やはりスマホで気をつけるべきは、写真データでしょう。

パソコン端末のバックアップ

Macを使っている人はタイムマシーン機能を使って、外付けHDDに8TBぐらいのドライブを持ってくるだけで、何の気兼ねもなく、ずっと保存し続けて行くことができます。 でも、この場合でも毎回完全バックアップを行っているとストレージ容量が満タンになった時にデータ整理を行う必要がでてきてそれに膨大な時間を費やすことになるので、タイムマシンや、各種バックアップソフトに差分、増分の機能があるはずなので、それらを駆使する事が有用でしょう。 個人的には、1週間に1度の完全バックアップで1日毎の差分バックアップがあるだけで十分でしょう。

気をつけるポイント

バックアップ設計を行う場合や運用を行う場合に気をつけなければいけないことを書いておきます。
・必ずしもタイムスタンプの新しいファイルが優先とは限らない ・正となる場所を確保することが優先 ・ストレージ容量をちゃんと管理、監視すること
バックアップは、あくまで保険ですが、疎かにすると、かなりの確率で泣きを見ることになります。 もちろん自己が合った場合に、ストレージ復元サービスなどを使う手もありますが、膨大な手数料を要求されてしまうので、この方法は全く持ってオススメしません。 バックアップのちゃんとした知識と運用、管理を知っていることは、もはやITが発達した世の中の必要知識とも言えますね。 やはりこうした知識を身に着けて自分の身は自分で守るしかないようです。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ