導入 現在、5 年間稼働している VMware の完全なセットを保有しています。サーバーが徐々に廃棄されるにつれて、すべての VMware 仮想ホストを OpenStack に移行することにしました。 OpenStack は Kolla を使用してデプロイされた Train バージョンの高可用性環境であり、Ceph は独立してデプロイされた Nautilus バージョンです。 現在、220 台を超える VMware 仮想マシン (Linux および Windows) を VMware ESXi から OpenStack に移行する必要があります。 VMware ホストに加えて、少数の Hyper-V 仮想ホストも移行する必要があります。この記事では、仮想マシンの移行に使用する手順とコマンドについて説明します。これらの手順とコマンドを使用すると、移行を自動化するスクリプトを簡単に作成できます。 この移行には V2V のみが含まれ、P2V は含まれません。 比較すると、libguestfs-tools と qemu-img convert の新しいバージョンは VMDK ファイルを適切に処理できるため (ツールの古いバージョンにはいくつか問題があります)、移行はより効率的です。移行プロセスにより、VMDK から VMDK (単一ファイル) への変換手順と VMDK から RAW への変換手順が不要になります。これらの手順を減らすことで、移行速度が 2 倍になります。 この記事で紹介したコマンドの中には非常に強力なものがあり、Ceph および OpenStack の設定やデータを破壊する可能性があるため、移行プロセス中に使用するコマンドには注意してください。したがって、関連するコマンドは注意して使用してください。 グローバルステップ
テクニカル指標 移行に使用されるインフラストラクチャの仕様は次のとおりです。
必要 Linux「移行サーバー」(Ubuntu 14.04/16.04/18.04、CentOS6/CentOS7、Redhat6/Redhat7、Fedora19-22 が使用可能)であり、次の要件を満たす必要があります。
私たちが使用したサーバーは、8 コアの Intel Xeon E3-1230 @ 3.3 GHz、64 GB RAM、8 台の 1 TB SSD で構成されており、1 時間あたり 500 GB を超えるデータを移行できました。ただし、これは実際にはインスタンスのディスク容量の使用量によって異なります。私の古い会社用ラップトップ (Core i5、8GB RAM、古い 4500rmp HDD) も動作しますが、パフォーマンスは明らかにひどいです。 移行前に次の要件を満たす必要があります。
ステップ 1. VirtIOドライバーを挿入する 1.1 Windows Server 2012 Windows Server 2012 および Windows 8.0 以降では、ドライバーは Windows によって保護されます。オフラインの Windows ディスクにドライバーを挿入するのは非常に困難です。 Windows Server 2012 は、デフォルトでは VirtIO ハード ディスクから起動できません。そこで、次の手順を実行して、VirtIO ドライバーを Windows にインストールしました。これらの手順は、テスト済みのすべての Windows バージョン (2008/2012/2016) で機能するはずです。
1.2 Linux (カーネル 2.6.25 以降) Linux カーネル 2.6.25 以降には、VirtIO ハードウェアのサポートが組み込まれています。したがって、VirtIO ドライバーを挿入する必要はありません。 VirtIO ハードウェアを使用して新しい KVM 仮想マシンを作成して起動します。 LVM パーティションが自動的にマウントされない場合は、次のコマンドを実行して修復します。
(再起動後、すべての LVM パーティションがマウントされ、Linux が正常に起動するはずです) 完了したら仮想マシンをシャットダウンします。 1.3 Linux (カーネル 2.6.25 以前) 一部の Linux ディストリビューションでは、古いカーネル バージョン用の VirtIO モジュールが提供されています。
古いカーネルの手順は次のとおりです。
1.4 Windows Server 2008 (および以前のバージョン)推奨されません 2012 より前のバージョンの Windows の場合は、次の手順に従ってドライバーを挿入することもできます。
レジストリ ファイル (VirtIO ストレージ情報のみを保持するため、mergeviostor.reg とも呼ばれます)。
これらの手順を実行すると、Windows は BSOD なしで VirtIO ディスクから起動するはずです。 Windows の起動時に、他のすべてのドライバー (ネットワーク、バルーンなど) も自動的にインストールされます。 参照: https://support.microsoft.com/en-us/kb/314082 (Windows XP 用に書かれていますが、Windows 2003 および 2008 でも使用できます)。 参照: http://libguestfs.org/virt-copy-in.1.html および http://libguestfs.org/virt-win-reg.1.html 2. パーティションを拡張する(オプション) 移行された一部の Windows サーバーでは、Windows パーティション上の使用可能なディスク領域が限られていました。新しい管理アプリケーションをインストールするための十分なスペースがありません。したがって、vmware-vdiskmanager ツールを使用してディスクのサイズを増やすことができます。その後、OS からパーティションを拡張する必要があります。次の手順で仮想マシンをカスタマイズするときにこれを実行できます。 3. 仮想マシンをカスタマイズする(オプション) OpenStack で実行できるようにオペレーティング システムを準備するには、一部のソフトウェア (VMware Tools やドライバーなど) をアンインストールし、パスワードを変更し、新しい管理ツールをインストールするなどする必要がある場合があります。スクリプトを作成することで、これを自動化できます。 virt-copy-in コマンドを使用して、スクリプトとファイルを仮想ディスクに挿入できるはずです。 3.1 Linuxでスクリプトを自動的に起動する 移行する必要のある Linux サーバーは少数であったため、Linux でスクリプトを手動で開始しました。そして簡単に自動化できます。 3.2 Windowsでスクリプトを自動的に起動する RunOnce メソッドはすべての Windows バージョンで機能するため、Windows の起動時にスクリプトを開始するように選択できます。レジストリ ファイルを挿入することで、スクリプトを RunOnce に組み込むことができます。 RunOnce スクリプトは、ユーザーがログオンしている場合にのみ実行されます。したがって、Windows 管理者のユーザー名、パスワード、および AutoAdminLogon も値「1」で挿入する必要があります。 Windows が起動すると、定義したユーザーで自動的にログインします。完了したら、必ず仮想マシンをシャットダウンしてください。 Windows に自動的にログオンし (ユーザー「Administrator」、パスワード「Password」を使用)、C:StartupWinScript.vbs を起動するサンプル レジストリ ファイル:
4. Glanceイメージを作成する 現在の OpenStack プラットフォームでは、ストレージとイメージのバックエンドとして Ceph を使用しています。クラウド ディスクではなくイメージから起動してクラウド ホストを作成する場合は、glance-api を介してイメージをアップロードする必要があります。 vMware 上のクラウド ホストのシステム ディスク データ サイズは約 200G です。大きな RAW イメージまたは qcow2 イメージをアップロードする場合は、glance-api を介してアップロードする必要があるため、アップロード速度が遅くなります。この場合、まず Ceph にアップロードしてから、Glance で作成することができます。 Ceph バックエンドへの接続は通常 10G 光ポートであるため、アップロード速度は非常に速くなります。 具体的な手順は次のとおりです。
5. シンダーボリュームを作成する インポートするディスクごとに、Cinder ボリュームを作成する必要があります。次のステップで Ceph ブロックデバイスを削除 (および ceph 直接インポートで再作成) するため、Cinder コマンドで指定するボリューム サイズは重要ではありません。 Cinder と Ceph 間のリンクを作成するために、Cinder ボリュームのみを作成します。 ただし、ボリュームはインポートする予定のディスクと同じサイズにする必要があります。これは、OpenStack 管理インターフェース (Horizon) を持つユーザーにとっては簡単です。 次のコマンドを使用して cinder ボリュームを作成します (サイズは GB 単位です。cinder type-list で使用可能なボリューム タイプを確認できます)。
次の手順で必要になるので、ボリューム ID をメモしておきます (次のコマンドを使用してボリューム ID を見つけることもできます)。
Cinder コマンド情報: http://docs.openstack.org/cli-reference/content/cinderclient_commands.html 6. VMDKをCephに変換する Cinder ボリュームが作成されると、VMDK ディスク ファイルを RBD ブロック (Ceph) に変換できます。ただし、最初に実際の Ceph ディスクを削除する必要があります。必ず正しい Ceph ブロックデバイスを削除してください。 まず、ディスクがどの Ceph プールに存在するかを知る必要があります。次に、Ceph からボリュームを削除します (volume-id は、前の手順「Cinder ボリュームの作成」で記録したボリューム ID です)。
次のステップは、VMDK ファイルを Ceph 上のボリュームに変換することです (すべての ceph パラメータはパフォーマンスを向上させるためのものです。vmdk_disk_file 変数は vmdk ファイルへのフルパスです。volume-id** は、前に書き留めた ID です)。
仮想マシンのすべての仮想ディスクに対してこれを実行します。 気をつけて! rbd コマンドは非常に強力です (意図したよりも多くの Ceph 上のデータが破壊される可能性があるため、注意して使用してください)。 7. Neutron ポートを作成する (オプション) 場合によっては、固定 IP アドレスまたは MAC アドレスを設定する必要があります。これを行うには、Neutron を使用してポートを作成し、次のステップ (OpenStack でのインスタンスの作成および起動時の関連付け) でそのポートを使用します。まず、network_name (nova net-list) が何であるかを知っておく必要があります。そのためには、「Label」を使用する必要があります。必須は network_name のみです。追加することでセキュリティ グループを追加することもできます。
このパラメータはセキュリティ グループごとに追加します。つまり、6 つのセキュリティ グループを追加する場合は、このパラメータを 6 回追加する必要があります。
次のステップで必要になるので、Neutron ポートの ID をメモしておきます。 8. OpenStackでインスタンスを作成して起動する これで、Cinder ボリュームとオプションで Neutron ポートを持つインスタンスを作成する準備が整いました。起動ディスクのボリューム ID をメモします。ここで、選択するフレーバーの ID を知る必要があります。目的のフレーバーのフレーバー ID を取得するには、nova flavor-list を実行します。 これで、新しいインスタンスを作成して起動できます。
インスタンス ID をメモします。次に、次のコマンドを実行して、インスタンスに追加のディスクを追加します (ボリュームを追加する場合)。
要約する 特に Windows では、移行プロセス中に障害が発生する可能性があります。ドライバーのバージョンが間違っていると、Windows システムでブルー スクリーンが発生する可能性が高くなるため、ドライバーを正しくインストールすることが非常に重要です。より大きなデータ ディスクの場合、このケースでは Ceph への直接アップロードを使用して、同じサイズの空のボリュームを置き換えます。 Image Glance 経由でアップロードしてからクラウド ディスクを作成すると、数倍の時間がかかります。したがって、Ceph を合理的かつ柔軟に使用すると、移行プロセスを大幅に高速化できます。 この記事では主に操作手順について説明します。バッチ操作の場合は、対応するオーケストレーション スクリプトを記述してバッチ移行を実行できます。スクリプトを実行する前に必ず徹底的にテストしてください。 |
<<: Alibaba Cloud + DingTalk = PC + Windows? DingTalkは未来志向のオペレーティングシステムを目指しています
>>: MongoDBは分散データソースを統合し、クラウドデータベースはデータレイクと検索機能をサポートします
vds6.net は、それほど昔に設立されたアメリカの企業です。運用サーバーは、オランダのアムステル...
エッジ コンピューティングは現在、テクノロジー業界のあらゆる分野の企業顧客に販売されていますが、「パ...
2012年に百度がアルゴリズムを何度も更新した後、今年はすべてのウェブマスターが少し成熟したと思いま...
この投稿は主に海外サーバー(海外の低価格サーバー、超格安サーバー)を収集しており、コアはより人気のあ...
ウェブサイトを構築し、十分に最適化されたと感じたら、次の手順とツールを使用して、最適化が必要な詳細を...
Adsemer の検索マーケティング技術ブログを始めようと計画していた頃、私はまだとあるネットワーク...
この記事はLeiphone.comから転載したものです。再印刷が必要な場合は、Leiphone.co...
1994 年に設立された Atlantic.Net は、VPSAE16 (SOC)、TYPE II ...
これ以上言う意味がないので、まずは写真を載せておきます。写真が真実を物語っています。信じられないなら...
暇な時に、過去数年間の入札経験について簡単にお話しし、皆さんと共有したいと思います。まずフローチャー...
ウェブサイトの最適化には多くの詳細事項が関係していることは誰もが知っています。これらの細かい詳細は、...
1. 孤立コンピュータ ネットワークは階層的に実装されており、異なるプロトコルが異なる階層で動作しま...
多くの個人ウェブマスターは、記事を書くときに無駄なテキストリンクをたくさん追加して、内部リンクの重み...
みなさんこんにちは。私はHongtu Internetです。私は1年以上ウェブサイトの最適化に携わっ...
2019年4月11日、アマゾンウェブサービス(北京)有限公司(以下、「AWS」)は、中国高速航空有限...