大量のデータを WAN リンク経由で複製する場合、膨大なネットワーク帯域幅と時間を消費する可能性がある全同期は避けることが望ましいです。新しいカーネルと共に使用する場合、SIOS DataKeeper はビットマップテクノロジを使用して全同期をほぼ防ぐことができます。ただし、既存のデータを複製する場合、ミラーの初期設定時に発生する最初の全同期を回避することはできません(新規データの場合には SIOS DataKeeper は全同期を実行しないので以降の手順は不要です)。
既存のデータを複製するときに、全同期を回避する方法がいくつかあります。ここでは推奨する2とおりの方法を説明します。
方法 1 - 2番目のノードへの複製
1 番目の方法では、RAW ディスクイメージを取得してターゲットサイトに輸送します。データがターゲットシステムに到着するまで、ソースシステムのミラーをアクティブにしておくことができるので、この方法ではダウンタイムが最小になります。
手順
- ミラーを作成してください([Replicate Existing Filesystem] を選択)。ただし、ターゲットシステムにミラーを拡張しないでください。
- ミラーを out of service にしてください。
- ソースディスクまたはパーティションのイメージを取得してください。この例では、選択したディスクまたはパーティションは /dev/sda1 です
root@source# dd if=/dev/sda1 of=/tmp/sdr_disk.img bs=65536
(ブロックサイズの引数65536は単に効率的にするためです)。
ディスクまたはパーティションの RAW ディスクイメージを持つファイルが作成されます。
ファイルの代わりに、ハードドライブやその他の記憶デバイスも
使用できます。
- オプション手順 - ソースディスクまたはパーティションのチェックサムを取得してください。
root@source# md5sum /dev/sda1
- オプション手順 - ディスクイメージファイルを圧縮してください。
root@source# gzip /tmp/sdr_disk.img
- ビットマップファイルをクリアしてください。(最後の引数はリソース作成時に指定したビットマップファイルのパスに置き換えてください。)
root@source# /opt/LifeKeeper/bin/bitmap -c /opt/LifeKeeper/bitmap__dr
- ミラーと依存ファイルシステム、およびアプリケーション(存在する場合)のサービスを開始してください。ビットマップファイルにより、データがターゲットシステムに転送される間に発生した変更内容が追跡されます。
- 好みの転送方法を使用して、ターゲットシステムにディスクイメージを転送してください。
- オプション手順 - ターゲットシステムでディスクイメージファイルを圧縮解除してください。
root@target# gunzip /tmp/sdr_disk.img.gz
- オプション手順 – イメージファイルのチェックサムが、手順 4 で取得した元のチェックサムと一致することを確認してください。
root@target# md5sum /tmp/sdr_disk.img
- イメージをターゲットシステム(例: /dev/sda2)に転送してください。
root@target# dd if=/tmp/sdr_disk.img of=/dev/sda2 bs=65536
- 両方のシステムで、/etc/default/LifeKeeper に LKDR_NO_FULL_SYNC=1 を設定してください。
root@source# echo 'LKDR_NO_FULL_SYNC=1' >> /etc/default/LifeKeeper
root@target# echo 'LKDR_NO_FULL_SYNC=1' >> /etc/default/LifeKeeper
- ミラーをターゲットに拡張してください。部分的な再同期が実行されます。
- /etc/default/LifeKeeper を編集してLKDR_NO_FULL_SYNC エントリを削除します。
全再同期を行わずに 3番目のノードまたは追加のノードに拡張する
ソースからデータをコピーする方法
これらの手順では、ミラーがすでに作成され、2 番目のノード(ターゲット1)に拡張されていることを前提としています。
- 各システムの /etc/default/LifeKeeper で、LKDR_NO_FULL_SYNC=1 を設定します。
root@source# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
root@target1# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
root@target2# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
- 新しいターゲット(ターゲット2)にミラーを拡張します。部分的な再同期が実行されます。
- 新しいターゲット(ターゲット2)へのミラーを一時停止します。
- ミラーをサービス停止にします。
- ターゲット2で umount <filesystem> を実行して、ターゲット2 の一時停止したミラーのファイルシステムをアンマウントします。
- ターゲット2で mdadm --stop /dev/md# を実行して、ターゲット2で実行されている md デバイスを停止します。 # は、 /proc/mdstat で報告された値です。
- ソースノードでソースディスクまたはパーティションのコピーを作成します。これは、dd またはディスクベンダーやクラウドベンダーのツールを使用して実行できます。コピーはファイルレベルのコピーではなく、 ブロックごとに同一のコピーでなければなりません 。
- オプション手順 - チェックサムデータを収集してディスクイメージを検証します(md5sum、sha256sum など)。
- オプション手順 - ディスクイメージを圧縮します。
- ミラーとそれに依存するファイルシステムおよびアプリケーション(ある場合)を In-service にします。ビットマップファイルは、データがターゲットシステムに転送されている間に加えられた変更を追跡します。
- ターゲット2 へのミラーがまだ一時停止していることを確認します。一時停止していない場合は、手順 4 で再起動します。
- ファイルシステムと md デバイスがターゲット2 で実行されていないことを確認します。実行されている場合、ファイルシステムをアンマウントして md デバイスを停止します。
- ターゲット2 のターゲットディスクにディスクイメージを転送します。
- ディスクイメージが正しいことを確認します。ディスクの内容を検証するには、md5sum または sha256sum を使用できます。
- 一時停止したミラーをターゲット2 に対して再開します。ソース上のビットマップは、ターゲット2 が一時停止してから実施された変更を追跡していましたが、ミラーが再開されると、これらの変更はターゲット2 に送信されます。
- /etc/default/LifeKeeper を編集してLKDR_NO_FULL_SYNC エントリを削除します。
一時停止したターゲットからデータをコピーする手順
これによりダウンタイムは発生しなくなりますが、ターゲットが一時停止している間はデータの冗長性がなくなります。
- この手順では、ミラーがすでに作成され、2 番目のノード(ターゲット1)に拡張されていることを前提としています。
- 各システムの /etc/default/LifeKeeper で、LKDR_NO_FULL_SYNC=1 を設定します。
root@source# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
root@target1# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
root@target2# echo 'LKDR_NO_FULL_SYNC=1' >>/etc/default/LifeKeeper
- 新しいターゲット(ターゲット2)にミラーを拡張します。部分的な再同期が実行されます。
- 新しいターゲット(ターゲット2)へのミラーを一時停止します。
- ターゲット1 へのミラーを一時停止します。
- ターゲット2 で umount <filesystem> を実行して、ターゲット2 の一時停止したミラーのファイルシステムをアンマウントします。
- ターゲット2 で mdadm --stop /dev/md# を実行して、ターゲット2 で実行されている md デバイスを停止します。 # は、 /proc/mdstat で報告された値です。
- ターゲット1 で umount <filesystem> を実行して、ターゲット1 の一時停止したミラーのファイルシステムをアンマウントします。
- ターゲット1 で mdadm --stop /dev/md# を実行して、ターゲット1 で実行されている md デバイスを停止します。 # は、 /proc/mdstat で報告された値です。
- ターゲット1 のターゲットディスクまたはパーティションのコピーを作成します。これは、dd またはディスクベンダーやクラウドベンダーのツールを使用して実行できます。コピーはファイルレベルのコピーではなく、 ブロックごとに同一のコピーでなければなりません 。
- オプション手順 - チェックサムデータを収集してディスクイメージを検証します( md5sum、sha256sum など)。
- オプション手順 - ディスクイメージを圧縮します。
- ターゲット1 への複製を再開します。ビットマップファイルは、データがターゲット2 に転送されている間に加えられた変更を追跡します。
- ターゲット2 へのミラーがまだ一時停止していることを確認します。一時停止していない場合は、手順 4 で再起動します。
- ファイルシステムと md デバイスがターゲット2で実行されていないことを確認します。実行されている場合、ファイルシステムをアンマウントして md デバイスを停止します。
- ターゲット2 のターゲットディスクにディスクイメージを転送します。
- オプション手順 - ディスクイメージの圧縮を解除します。
- オプション手順 - ディスクイメージが正しいことを確認します(md5sum、sha256sum など)。
- 一時停止したミラーをターゲット2 に対して再開します。ソース上のビットマップは、ターゲット2 が一時停止してから実施された変更を追跡していましたが、ミラーが再開されると、これらの変更はターゲット2 に送信されます。
- /etc/default/LifeKeeper を編集してLKDR_NO_FULL_SYNC エントリを削除します。
方法 2
ターゲットシステムを簡単に輸送できる場合、またはシステムの設定時にターゲットシステムがソースと同じ場所にある場合に、この方法を使用できます。この方法では、最初の全同期を高速なローカルネットワークで実行できるように、最終的な WAN ミラーを作成するネットワークルートを LAN ミラーに一時的に変更します。以下の例では、ソースサイトはサブネット 10.10.10.0/24 にあり、ターゲットサイトがサブネット10.10.20.0/24 にあると仮定しています。ソースとターゲットのシステムの間に一時的に静的ルートを設定することにより、ローカルのイーサネット接続またはループバックケーブルを使用して「WAN」トラフィックをあるサーバから別のサーバに直接送信できます。
手順
- ソースサイトでシステムをインストールし、設定してください。
- 静的ルートを追加してください。
root@source# route add -net 10.10.20.0/24 dev eth0
root@target# route add -net 10.10.10.0/24 dev eth0
この時点で、両方のシステムが LAN 上で相互に通信できる必要があります。
- LifeKeeper でコミュニケーションパスを設定してください。
- ミラーを作成し、ターゲットに拡張してください。全同期が実行されます。
- ミラーを Pause にしてください。ミラーが再開されるまで、変更内容はビットマップファイルで追跡されます。
- 静的ルートを削除してください。
root@source# route del -net 10.10.20.0/24
root@target# route del -net 10.10.10.0/24
- ターゲットシステムをシャットダウンし、恒久的に配置する場所に輸送してください。
- ターゲットシステムを起動し、ソースとのネットワーク接続を確立してください。
- Resume Replication を実行してください。部分的な再同期が実行されます。
このトピックへフィードバック