- PR -

Linuxでの使用中ファイルのバックアップについて

投稿者投稿内容
ちゃい
会議室デビュー日: 2004/10/18
投稿数: 17
投稿日時: 2005-09-06 17:34
はじめまして

現状、以下のような構成でバックアップを考えております。


■サーバOS:RedHat Enterprise Linux ES3

      |
■バックアップ装置:8連装オートローダー



市販のバックアップソフトがドライバの問題で
使用できないため、dumpコマンド、restoreコマンドに
よるバックアップを考えております。


市販ソフトの導入を考えていた際に、Openfileオプション
が無かったためとあるソフトベンダー様に確認したところ、
「Linux自体にオープンファイルといった概念がない」
というようなことをおっしゃられましたが、そのような
認識でよいのでしょうか?

もし、そういうことであればdump、restoreによる
バックアップ運用であって、バックアップ対象ファイルが
サービスにより使用されているファイルであるか
特に意識する必要がないのでしょうか?


可能であれば、dumpコマンドで/パーティションも含み
全てのパーティションのバックアップをとり、
フルリストアをかける際は、同様のパーティション構成で
再インストール→パーティション毎にリストア、という
運用にしたいと考えているのですが・・・。


どなたかアドバイスなどご教授下さいます様お願い致します。

ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-09-06 19:09
「オープンファイル」というのが何だか知りませんが...

dumpを行っている最中にそのファイルシステムに読み書きが行われたら
正しいバックアップにはなりません。
バックアップ対象のファイルシステムのスナップショットを取って、
そこからdumpすればいいと思いますが。
ちゃい
会議室デビュー日: 2004/10/18
投稿数: 17
投稿日時: 2005-09-06 21:34
ぽんす様

レスありがとうございます。


ものすごく基本的なことなのかも知れませんが、
バックアップ対象のファイルを読み書き中に、
dumpが走った場合、その読み書き中であることを理解して
dumpがその間、待ち状態になることはないのでしょうか?




正直、Linuxをさわりだして日が浅いもので、
スナップショット機能がどういったものであるかも
分かっていないため、そちらも勉強します。

@IT様でも連載にあったので拝見いたします。↓
http://www.atmarkit.co.jp/flinux/rensai/root06/root06b.html
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-09-06 23:40
引用:

nakanetさんの書き込み (2005-09-06 21:34) より:
バックアップ対象のファイルを読み書き中に、
dumpが走った場合、その読み書き中であることを理解して
dumpがその間、待ち状態になることはないのでしょうか?


そうは行かないですねえ。
Unix系OSでそういうことをやるのは難しいですし、
dumpというのは30年も前からあるコマンドで、当時のUnixで
「止まっちゃいけないシステム」を構築しようなどと考える人は
いなかったでしょうし

ふつう、dumpをするときはファイルシステムをマウントせず
(もしくは読み込み専用でマウントして)間違っても書き込みが
発生しない状態で行います。
スナップショットを取って、動かしたままバックアップを取ろう、
なんていうのは近年になって出てきたことで、現在でもまだあまり
普及していません。 とはいえ、止めずにバックアップするのは
この手しかないんじゃないかなあ。
# DB製品なんかで、専用の領域を専用のツールでバックアップする、
# というようなことだと話は別ですが。

サービスを止めてもよければ、スナップショットとか使うまでもなく
ファイルシステムをアンマウントしてdumpするだけです。念のため。

[ メッセージ編集済み 編集者: ぽんす 編集日時 2005-09-06 23:46 ]
ちゃい
会議室デビュー日: 2004/10/18
投稿数: 17
投稿日時: 2005-09-07 01:00
ぽんす様

ありがとうございます。
参考となります。

となると、システムの停止を考えずにバックアップ(正常にリストアができる)
を行う場合は、バックアップ中にシステムがバックアップ対象ファイルを
読み書きしないか確認する必要があるということでしょうか?
どうやったら確認できるのかは、まだよく分かりませんが・・・。

安全にと思えば、バックアップ直前に起動しているサービスをcronで停止
させてバックアップ→サービス開始、という手順でしょうか?
※バックアップもcronを使用して深夜帯に行う予定です。


スナップショットについては今、いろいろ見てイメージしているところで
まだよく分かっていません。申し訳ないです。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-07 01:25
今のところ聞いたことありませんが、ジャーナリングファイルシステムが
一般的になってきているので、バックアップ中は多めのログ領域を確保して、
ログが一杯になるまでブロックせずにできるようにもなるかもしれませんね。

XFSはxfs_freezeしかなさそうです。ZFSあたりはどうなんでしょう?
どなたかご存知の方いらっしゃいませんか?
ちゃい
会議室デビュー日: 2004/10/18
投稿数: 17
投稿日時: 2005-09-08 13:04
皆様

御世話になります。


dump、restoreコマンドでのバックアップを考えた場合、
使用中ファイルのバックアップは正常にとれないと
いうことはわかったのですが、では何のサービスが
起動中であるかを見極めることはできますでしょうか?

psコマンドではデーモンとして起動しているもの(プロセス)
はわかっても、それらが表で動作しているというかどうかは
わからないように思います。
※私はデーモンとして起動しているということは、
 ”リクエストがあればいつでも動作できるように準備が完了
 している状態”というように認識しています。


デーモンとして起動しているものが全てバックアップできないと
いうわけでもないかと思うので・・・。
もし、起動しているサービスがただデーモンとして待機中で
あるか、そうではなくファイルをつかんで動作中であるかの
区別ができれば、バックアップ時間帯にそのアプリケーション
だけ終了させて、
シングルユーザモードでログイン

dump

通常ユーザでログイン
という流れをcronで実現できるのではないかと考えています。


どなたかご意見ください。
ちゃい
会議室デビュー日: 2004/10/18
投稿数: 17
投稿日時: 2005-09-08 13:20
皆様

> dump、restoreコマンドでのバックアップを考えた場合、
> 使用中ファイルのバックアップは正常にとれないと
> いうことはわかったのですが、では何のサービスが
> 起動中であるかを見極めることはできますでしょうか?

↑上記、調べましたところ、psの-rオプションで実行中プロセス
の表示ができることを知りました。


改めて質問なのですが、以下のような手順でのバックアップは
可能でしょうか?

@バックアップを予定している時間にps -rで
実行中プロセスを確認

Aバックアップ実行時に以下の流れをcrontabに記述
---------------------------------------------------
シングルユーザモードに切替

@で確認した実行中プロセスを使用する
ものを停止
・・・/init.d △△△ stop

dump

マルチユーザユーザに切替

停止させたサービスがあれば起動
・・・/init.d △△△ start

---------------------------------------------------


このような運用が可能でしょうか?
アドバイスなど頂戴できましたらと思います。

スキルアップ/キャリアアップ(JOB@IT)