web-dev-qa-db-ja.com

Linuxホストを新しいハードウェアにコピーする

古いハードウェアから新しいハードウェアへのホスト間の移行を行う必要があります。具体的には、HP BL460G7からHP BL460G8まで。古いサーバーと新しいサーバーの両方に2台の600GB 2.5インチドライブがあり、RAID1用に構成されています。サーバーごとに30分のダウンタイムを許容できます。

移行するサーバーは4つあり、最小のサーバーには合計120GBの論理ボリュームが割り当てられ、最大のサーバーには510GBが割り当てられています。 3つのサーバーがRHEL5を実行しており、1つがRHEL6を実行しています。

OSと重要なデータを破壊することなく、与えられた時間内にこれを行う方法に頭を悩ませてきました。

私の唯一の考えはこれです:

  • 古いサーバーから1つのドライブを削除します(サーバーの電源がオンになっています)
  • 新しいサーバーから両方のドライブを取り外します(サーバーの電源はオフになっています)
  • キャディからG7ドライブを取り外して脇に置きます
  • キャディからG8ドライブを取り外し、G7キャディにインストールします
  • 古いサーバーにG7キャディのG8ドライブをインストールする
  • rAIDコントローラがRAID1アレイを再構築するのを待ちます
  • 古いサーバーのシャットダウンが完了すると
  • g7キャディーでG8ドライブを取り外します
  • g8キャディにG8ドライブを取り付け、G8に挿入します(シングルドライブが取り付けられています)
  • ブートG8サーバー
  • oSが起動するのを待つ
  • oSが起動したら、残りのドライブを挿入します
  • rAIDアレイが再構築されるのを待ちます

これは正気に聞こえますか?

編集:RHEL5はRHEL5.10で、RHEL6はRHEL6.6です

また、システムの2つは、アプリケーションの「イベント」(重要なインフラストラクチャシステムの一部)のほぼ一定の複製を行うホット4ノードクラスタの一部であることにも注意してください。バックアップはありますが、システム全体に障害が発生した場合にのみ使用します。

以前のテストでは、システム間の最大「dd」が約50MBpsであり、遅すぎることが示されています。

編集:ハードウェアの変更をピックアップして処理するには、kudzuに依存していました。

13
user1174838

プロジェクトマネージャーは、より大きな停止ウィンドウの要求を拒否しました。

質問で概説されている提案された手順はテストでうまくいきました。ダウンタイムは20分未満でした。私はhpacucliユーティリティを使用して、G7とGen8の進行状況を監視しました。これは、これに非常に役立ちました。

私はまだ怒りながらこれを行っていませんが、述べたように、これはBL460G7からBL460 Gen8でのRHEL 5.10のテストでうまく機能しました。

ファームウェアを更新していません。

G7での最初のRAID1再同期には1時間以上かかりました。 Gen8での再同期には50分もかかりませんでした。これは私には関係していましたが、問題を見つけることができませんでした。

役立つコメントや提案をありがとうございました。

0
user1174838

ディストリビューションによっては、他の手順が必要になる場合があることに注意してください。最も顕著なのはドライバーです(@ewwhiteを指摘してくれてありがとう)

  1. Livecd/usbから新しいサーバーを起動します。
  2. 新しいドライブにパーティションとブートブロックを準備します。
    • 設定によっては、MBR /ブートブロックをコピーすることでこれを実行できます。
  3. ファイルシステムを作成します。
  4. 古いサーバーから新しいサーバーにrsyncを実行します。
    • フォローアップrsyncにかかる時間を確認するために、もう一度実行することができます。30分未満の場合は続行してください。
    • これは、新しいシステムが起動した場合に実際に試すことができる時間です。 IP(またはその他)の競合を引き起こさないように注意してください。
  5. ファイルシステムに書き込むすべてのサービスをシャットダウンします
    • できれば再起動してlivecd/usbにしてください
  6. 古いサーバーから新しいサーバーへのRsyncデータ
  7. 新しいサーバーを再起動して使用します

このようにしても、元のサーバーはそのまま残ります。そのため、何か問題が発生した場合でも、簡単に元に戻すことができます。ただし、ある程度の知識(grub/rsync/partitions)が必要であるため、実際に実行する前に、事前の準備とテストを事前に行うことをお勧めします。

18
Fox

2つのこと:

  • 私は新しくrsyncデータを構築します。
  • ダウンタイムの割り当て/ウィンドウが短すぎるようです。 30分は特定の状況で機能しますが、[〜#〜] [〜#〜]は実際にダウンタイム要件を実際に達成するために必要なものに基づいて指示するべきではありません作業?

各サーバーに含まれるデータ、データの量チャーン、およびプロビジョニングスキームによっては、必要なOSを新しいGen8 ProLiantにインストールして設定を同期するのが妥当な場合があります。データを静止できるポイントにある他のデータ部分。

おそらく、シードコピーを作成し、後続のrsyncでファイルの変更を取得するのにかかる時間からダウンタ​​イム要件を導き出します。転送プロセスを高速化する必要がある場合、または小さなファイルがたくさんある場合は、 それを支援するテクニック があります。

私はこの種の移行を頻繁に行います。同様のLinuxインストールでは、正確なパッケージリスト(YumまたはRPMで簡単に入手可能)、構成ディレクトリ(例:/etc)、およびデータパーティション以外のものが必要になることはめったにありません。キックスタートプロビジョニングシステムがまだない場合は、/root/anaconda-ks.cfgファイルを利用して、G7システムがどのように構築されたかを把握できます。

あなたが言及した特定のRHELバージョンに基づいて、単にディスクを移動することについてのあなたの質問に答えるために、これは絶対に可能です。ディスク/キャディを移動でき、HP Smartアレイメタデータは、システムに存在する可能性のあるP410コントローラーとP420コントローラー間で互換性があります。ただし、新しいシステムのドライブとコンポーネントのファームウェアを最初に完全に更新しないと、これを実行できません。

6
ewwhite

以前のOSバージョンが新しいハードウェア(主にRAIDコントローラー)を処理できる場合は、 CloneZilla を試してみてください。

あるハードウェアから別のハードウェアに移動できるかどうかを確認するには、古いサーバーから新しいサーバーにすべてのデータを渡して、ddでいくつかのトリックを実行します。

SystemRescueCD のようなライブディストリビューションで新しいサーバーを起動し、IPアドレスと次のようなddコマンドで構成します。

nc -l 8000 | dd of=/dev/sda

現在のサーバーで実行

dd if=/dev/sda | nc ${newserverip} 8000

これにより、サーバーの/ dev/sdaの未加工のコピーが新しいサーバー/ dev/sdaに作成されます。このようにして、元のサーバーでダウンタイムを発生させることなくテストを実行し、リスクをほぼゼロにすることができます。

1
alphamikevictor