質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

1回答

4013閲覧

LVMのLV(ロジカルボリューム)のブロック単位差分バックアップ

snowfaller

総合スコア125

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2015/01/24 05:17

Yahoo知恵袋に投稿したのですが一週間たっても回答がつかないため、二重投稿となってしまいますが、こちらでも質問させていただきます。

LVMのLV(論理ボリューム)をブロック単位で差分バックアップを取得する方法はないでしょうか?
現在ubuntuでraid0上で構築しているVG(LVMのボリュームグループ)があります。

この中にはファイルシステムとして構築しているLVもありますが、rawデバイスイメージ(iscsiターゲットや、kvmの仮想ディスクなど)で使用しているものもあります。

最初はパフォーマンス重視でraid0構成で組んでいたのですが、いかんせんraid0。ディスクの一つでも壊れればVG内のすべてのデータが飛んでしまいことが怖くなり、そろそろ真面目にディスクのバックアップをしなければと思っています。

これらのLVを定期的にイメージバックアップを取得したいと考えているのですが、手元にあるのは、大容量ながらも低速なraid5ディスク装置(書き込み速度が秒間70M[Byte/秒])しかありません。
バックアップ取得対象のVGは10[TByte]あり、バックアップ取得対象のLVのスナップショットから愚直にフルイメージバックアップを取得しようとすると、おおよそ丸々2日かかる計算になります。(10[TByte]=10,485,760[MByte]。10,485,760[Mbyte]÷70[MByte/秒]=約150,000[秒]=約42[時間])

最初、バックアップ対象のLVに対してwrite-mostly & write-behind指定し、アップアップ取得先のディスク装置とでmdadmによるraid1構成を組もうかと考えたのですが、実際に、試験的に構築したLVで試したところ、単独での書き込み速度が300[MByte/秒]から70[MByte/秒]までに低下してしまったため、この案は廃案となりました。(読み取りは、300[MByte/秒]で現状維持だったのですが・・・)

通常運用時に速度(とくに書き込み)を落とさず、かつ、バックアップの取得に差分バックアップを使用し、その取得時間を短縮できる手段をご存知であればご教授いただけないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

最近は仮想マシン、PaaS系サービス、ティアリング及びクラウドバックアップ可能なアプライアンスの台頭で、バックアップ系の進化が止まってきている様に思います。
そんな中、Arcserveはまだ息をしている様なので、どうしてもやりたければこの辺りはどうでしょう。
Arcserve UDP
まぁ、最も安いライセンスで8万ですが・・・。
古くからある実績あるバックアップソフトなので、それなりにちゃんと使える様な気はします。

あと、ちらっと無償で使えそうなので調べてもみましたが、
CrashPlan
ってのは、一応block-level de-duplication機能付きでネットワークバックアップが可能な様です。
正規バックアップ先を使うと有料っぽいですが、自分でバックアップ先は選べるとの事。
試してはいないですが、一先ずご紹介まで。

以上、ご参考になれば幸いです。

※追記
質問をちゃんと読んでませんでしたが、コマンドで何とかしたいという事でしょうか。
LVMはスナップショットが取れたと思うので、それであればブロックレベルでの差分バックアップが出来たと思います。
その上で、余っているというRaid5のディスクを使って別途ZFSベースのNAS(OpenindianaかFreeNAS辺りで)でも立てて、
cron辺りで
gzip - < dd if=/dev/sda1 | ssh -i ~/keys/private.pem root@192.168.x.x "zcat > /var/backup/backup1"
的なコマンドで丸ごとデバイスコピーしていけば行けそうな気がします。
ZFSであればdeduplicationが標準で使えると思うので、普通に世代バックアップしとけばいいんじゃないでしょうか。
このやり方だとネットワークに負荷がかなりかかりそうですが・・・。
まぁその辺は、可能ならインターコネクト的なもので接続しておけばどうとでもなるかと。

ただ、業務用であればちゃんとしたバックアップソフトを使った方がいいです。

投稿2015/01/24 11:17

utun

総合スコア384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

utun

2015/01/24 13:58

コマンドはかなりフィーリングで書いてるので、そのままじゃ動かない可能性が高いです。 あくまでそんな雰囲気で送れば!ってことでw
snowfaller

2015/01/27 12:29

返信ありがとうございます。 コマンドで何とかできないかなと思っております。自宅の趣味の環境なので(笑)。 しかも、バックアップ対象とバックアップとの差分の比較を行うことなく・・・。 lvmのスナップショット自体はオリジナルとの差分で構成されているので、なんとかいい方法はないかと考えていました。 mdadmのraid1も、双方のディスクの差分をbitmapで管理しているので、普段は片方のディスク(ここで言う遅いraid5のディスク)を切り離し、バックアップ時に接続して差分のみを反映とかができないかと考えていました。
snowfaller

2015/01/29 15:51

一つの解決案ができました。 1. バックアップ先のVGにバックアップ対象と同サイズのLVを作成する。 2. バックアップ対象のLVとバックアップ先のLVでVGを作成する。 3. 作成したVGからバックアップ対象のLVとバックアップ先のLVを指定して、RAID1のLVを作成する。 4. RAID1のLVを「変更追跡」オプションを指定して、分割する。 5. ~通常運用~ 6. 分割したRAID1のLVを併合する。 7. RAID1のLVのCOPY率が100%になるのを待つ。 8. RAID1のLVを「変更追跡」オプションを指定して、分割する。 → 5. 通常運用へ 時間のあるときに試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問