web-dev-qa-db-ja.com

LinuxサーバーをWindowsサーバーまたはDPMサーバー/所有者とNTFSの権限にバックアップしますか?

Lonuxサーバーにはrsyncベースのバックアップを使用しています。これは素晴らしいことです。すべてのLinuxサーバーを大規模なLinuxベースのsambaファイルサーバーにrsyncします。残念ながら、そのサーバーは完全に古く、ActiveDirectoryに移行されています。

今、私はLinuxサーバーから増分バックアップを作成するという問題で立ち往生しています。私は特に、rsyncが変更または削除されたファイルをコピーする方法が好きでした。

次に、WindowsサーバーにLinuxバックアップを実行したいと思います。

バックアップソリューションを検討しましたが、ほとんどすべてがrsyncに基づいていました。 Windows用のrsync(CygwinまたはMicrosofts SFU(Unix用のサービス))を探しました。しかし、それはうまくいかないようです。

所有者と権利を正しくrsyncするには、ファイルシステムに2つの整数といくつかのフラグが必要です。 NTFSは理論的にはそれを提供しますが、SFUとCygwinは実際にそれを既存のユーザーにマッピングしようとします。

また、SFUのrsyncは信頼できないようです。

現在のサーバーでは、マッピングは気にしません。ご存知のように、Linuxサーバーはファイルシステムに2つの整数を格納するだけであり(単純な場合)、Windowsのようなマシン固有の長いSIDはありません。それらの意味は/ etc/passwdによって定義されます。そしてそれが欠落している場合、それは単なる整数です。ただし、サーバーに戻ると、再び機能します。

誰かがこれに適した解決策を見つけましたか?

LinuxをFAT16に保存できたUMSDOSも調べました!!!長いファイル名のマッピングとUNIXの権限と属性を持つテキストファイルを使用していました。残念ながら、カーネルから削除されました。それ以外の場合は、CIFSマウントとレイヤーumsdosを使用して、新しいWindowsファイルサーバーに共有をマウントすることができます。残念ながら、そのようなものは存在しません。

タールを使いたくないのはなぜですか? DPMサーバーがWindowsファイルサーバーを最初にバックアップする方法が本当に好きで、すべてのtarファイル全体を完全にバックアップしたくないからです。

2
Christian

したがって、実際の問題は、所有者とグループの設定を保持したいが、設定を独自のシステムにマップしたいシステムにデータを移行したいということのようです。また、rsyncで得られる最小限のデータ転送設定を維持したいのですが、「ここ」から「そこ」への移動には、投資したいものよりも多くの時間と労力がかかる場合があります。Tarはこの問題を解決しますが、時間がかかります。デルタではなく、各ファイルの画像全体。

要約すると、変更されたデータのデルタを作成するが、宛先システムのユーザーマッピングを無視して(共有アカウントがないため)tarなどの属性を保持するものが必要です。

商用ソリューション

最初の(そしておそらく実行可能ではない)オプションは、Windowsで使用しているシステムのバックアップクライアントがあるかどうかを確認することです。たとえば、 Retrospect には、Windowsマシンが属性が添付されたファイルをバックアップできるようにするOSXおよびLinuxクライアントが含まれます。私の仕事はこの配置を数年間使用しており、クライアント側のI/Oスパイクを除いて、宣伝どおりに機能しています。 Linuxボックスにインストールして2つの間の「ギャップを埋める」ことができるクライアントがあるかどうかを確認してください。これについて心配する必要はありません。注:使用しているバックアップソリューションの種類を投稿していないことに気付きました。つまり、ネイティブのWindowsバックアップ(ick)を使用している場合は、運が悪いということです。

オープンソースソリューション

これは完全にクレイジーなことです。Linux側でSambaサーバーを起動し、管理用に共有を作成し(非表示、管理者専用に設定など)、共有をマップするか、WindowsバックアップサーバーでUNCパスを使用します。共有からのバックアップ。ええ、あなたのSIDは一致しません(AD <-> passwd間にマッピングがないため)が、Sambaがあなたのために翻訳を行うのでそれは問題ではありません 、バックアップ中と復元中の両方。欠点は、Samba .tdbファイルの定期的なバックアップを作成して、/ etc/passwdなどのユーザーマップとともに、設定が失われないようにすることです。これも設定する必要があります。共有非常に慎重に、設定を間違えるとファイルが別の値に再マップされるためです。ここでの概念は、Sambaを、Windowsと一貫性のある方法でアクセスできる「バックアップクライアント」の大まかな概算に変えることです。また、バックアップソフトウェアが必要なデルタ/圧縮機能を処理することも前提としています...

商用ソリューションとは異なり、共有は単なる別のWindowsサーバーUNCのように見えるため、これには組み込みのWindowsバックアップを使用できるという追加の利点があります。

2番目の解決策は@Brentによってすでに言及されており、検討する価値があります。これは、私が与えた方法から数ステップ上になります。彼の投稿を盗用するのではなく、 行って読んでください 代わりに。

自家製ソリューション

1つの解決策は、メタデータ(所有権属性)をデータから分離し、両方をサーバーに送信することです。これを行い、設定を別のドットファイルに保存してから、ドットファイルを内容とともに送信します。これにより、設定を維持しながらrsyncを使用できるようになります(選択した場合)。追加のボーナスとして、rsyncは同じデルタ転送メカニズムをドットファイルにも適用します。復元中に、ドットファイルから設定を抽出し、ディレクトリの内容に適用することで、プロセスを逆にします。これは時間がかかり、ディスク領域をいくらか浪費しますが、単純(何が起こっているかを可視化できます)および耐久性です(これは単なるテキストファイルなので、簡単に修正できます)。「ブルートフォース」のように見えても、単純さが最も簡単な方法である場合があります。 これを最後のオプションとして選択します。競合状態になるだけでなく(スクリプトの実行中にバックアップを開始しようとすると、ドットファイルはバックアップされる前に時間内に更新されますか?)しかし、すべてを手作業で作成する必要もあります。

必要なスクリプトは3つだけです。1つは設定用に各ディレクトリのドットファイルを再生成するため、もう1つはそれらを復元するため、もう1つは不要なときにドットファイルをクリーンアップするためです。

生成/作成時:ドットファイルが属する各ディレクトリにドットファイルを保存します。ドットファイルには基本的にls -laが含まれているため、属性がキャプチャされます。いたずらを最小限に抑えるために、ドットファイルの所有者をルートとして設定します。そのディレクトリを処理した後、戻ってドットファイルから各ディレクトリを抽出し(単純なgrepで十分です)、スクリプトでそれ自体を呼び出すことにより、各サブディレクトリに再帰的に移動します。完了すると、開始したディレクトリのブランチ全体で、各ディレクトリのすべてのドットファイルが配置されます。バックアップの前にこのスクリプトを実行して設定を「再生成」および「更新」するか、可能であれば、バックアップスクリプト自体とインラインで順次実行して、バックアップが開始する前にスクリプトが完了するようにします。

復元時:復元スクリプトは、すべてのドットファイルをリセットして所有権を修正し(これもいたずらを防ぐため)、各ディレクトリのドットファイルを再帰的に処理して、各ファイルの設定を復元します。各ドットファイルには、3つのパス、owner-group-worldのパス、所有者の名前のパス、およびグループの名前のパスが必要です。通常、ファイル操作はそれほど悪くないので、これは非常に高速で、非常に大きなディレクトリにwaaay-to-manyファイルが含まれている必要があります。

クリーンアップ時:単純で、ドットファイルを削除して各ディレクトリを繰り返します。

はい、それは醜いハックです。すぐにもっと良い答えが見つかったら、再編集します。それまでは、問題を解決します。

1
Avery Payne

本当にrsyncを使い続けたいのか、それとも増分バックアップのメリットを維持したいのかわからない。

メリットだけが必要な場合は、マルチプラットフォームのバックアップシステム(baculaなど)が優れたソリューションになる可能性があります。増分バックアップのみを作成します(それが必要な場合)が、すべてを1つ(またはいくつか)の大きなファイル(元のファイルのミラーではない)に保存します。繰り返しますが、それがあなたが望むものであるかどうかはわかりません。

0
Brent