ニュース
» 2015年11月11日 07時30分 UPDATE

古賀政純の「攻めのITのためのDocker塾」:第10回 Docker環境におけるバックアップ/リストアの罠 (1/4)

“攻めのIT”を考える情シスが今後知っておくべき注目の技術「Docker」を基本から応用まで解説します。今回はDocker環境におけるバックアップ/リストアでの注意点をご紹介します。

[古賀政純(日本ヒューレット・パッカード),ITmedia]

 今回は、Dockerにおけるバックアップとリストアについての話題です。「バックアップなんてツールを使えば簡単にできるでしょ?」「とりあえずユーザーデータをコピーしておけば安心でしょ?」という声があるかもしれませんが、バックアップ/リストアには、多くの罠が存在します。しかもDocker特有の罠も存在します。今回は、昔からあるバックアップ手法を紹介しながら、Dockerにおけるバックアップとリストアの世界をひも解いていきます。

古くからあるシステムバックアップ…実はそんなに甘くない

 ITシステムにおけるバックアップでは、そのバックアップ対象によって様々な手法が存在します。例えば、tarコマンドを使ったテープ装置へのバックアップや、ddコマンドを使ったOS領域のディスク全体のイメージバックアップの取得などが挙げられます。tarコマンドの「tar」はTape ARchinvesの頭文字をとったもので、もともとはテープ装置を使ったデータのバックアップ、リストア用のコマンドでした。テープ装置というと、音楽テープやビデオテープなどがありますが、記録密度、価格、耐久性の観点から、ITの世界でもテープ装置が現役で使われています。

 最近は、テープ装置にデータを入れてしまうと、ビッグデータ分析ができないという理由から、大容量ストレージやソフトウェア定義型の分散ストレージ基盤(x86サーバを複数用意し、大容量ストレージとして利用)にデータをバックアップすることが多くなりました。また、tarコマンドを使わず、ddコマンドを使って、OS領域そのものをイメージファイル化して取得するといった方法も行われています。

 tarコマンドと異なり、ddコマンドによるOS領域全体のバックアップは、事前のファイルシステムの準備作業などを省くことができ、さらにイメージファイルを使って仮想化環境でテスト稼働させることなども可能であるため、一見便利に思えます。しかし、問題のないように思えるddコマンドには、罠があります。物理サーバのOS領域をリストアする際、リストア先のディスクとバックアップ元のHDDの容量が同じなのに、うまくリストアできないことがあるのです。

 それは、バックアップ元とバックアップ先のディスクのセクタ数が異なる場合です。セクタ数というと、あまりピンとこないかもしれませんが、HDDにデータを記録する際のデータの在りかは、トラック、シリンダ、セクタで決まります。ディスク容量が同じでも、セクタ数が異なるものが存在するのです。2011年ごろに、セクタ数が512バイトのものから4KバイトのHDDへの移行が進められましたが、現在でも多くのシステムで512バイトのものが利用されています(図1参照)。

Docker塾 図1:一般的なLinuxシステムにおけるリストアの罠

 このように、ddコマンドを使ったイメージバックアップ/リストアでは、512バイトと4Kバイトのセクタ数のHDDが混在していないかを考慮した運用が必要なのですが、実際の現場では運用の複雑化を避けるため、バックアップ元と同じセクタ数のHDDにリストアするのが一般的となっています。このような罠を回避するためには、パーティションとファイルシステムを再び作成し、tarコマンドでリストアする方法があります。

 ちまたには様々なオープンソースのバックアップツールが存在しますが、例えば、ベルギーのヒューレット・パッカードの技術者が開発に携わっている欧州において有名な「Relax-and-Recover」というOSSのバックアップツールは、リカバリブート用のCD-ROMのisoイメージからブートし、パーティションとファイルシステムを再作成した後、OS領域とユーザーデータをリストアするようになっており、ddイメージのリストアの罠を回避する設計になっています。

 しかし、一般的に知られているOSSのバックアップツールの多くは、特にDocker環境を想定したものではなく、ベアメタル環境やハイパーバイザ型の仮想化環境のゲストOSのバックアップ、リストアを想定したものが多いというのが現状です。そのため、Docker環境のバックアップとリストアを考える際には、今までの使い慣れたバックアップツールや内製ソフトウェアがうまくDocker環境に対応できるかどうかを調査・検証する必要があります(図2参照)。

Docker塾 図2:Docker環境におけるバックアップの調査・検討項目
       1|2|3|4 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.

Loading

ピックアップコンテンツ

- PR -

注目のテーマ