web-dev-qa-db-ja.com

LinuxマシンをXenServerからHyper-Vに変換する

XenServer VMの最後のいくつかをHyper-Vに変換しているところです。

それらの大部分はWindowsマシンであり、Windowsバックアップを使用してバックアップと復元を実行しました。一部のウィンドウボックスでは、XenServerエクスポートプロセスを使用してXVAファイルを作成し、それをHyper-Vで使用できるVHDに変換しました。

どちらの方法も完全に機能しましたが、いくつかのLinuxボックスのエクスポートと変換のプロセスを行おうとすると、うまくいきませんでした。

XVAを作成し、Xenconvertを使用してVHDを変換および作成しましたが、これらをHyper-Vに接続すると、VM点滅するカーソルが表示されました。いくつかの調査を行った結果、 HDDの名前の付け方が異なります。たとえば、/dev/の元のマシンはxvda, xvda1.....と表示されますが、Hyper-Vではsda, sda1......と表示されます

ここで少し迷ってしまいました。変換されたマシンのブートメニューでマシンの1つを起動し、メニューと引数のオプションを見ましたが、xvdaへの参照がありませんでした。それで、私の仮定が上で間違っているか、間違った場所を探しているのか、またはその両方ですか?

まったく異なる方法でこれを行うことを提案している場合でも、どんな助けもいただければ幸いです。

EDIT1:(ブートメニュー情報の追加)
ブートメニューの最初の項目を選択してeを押すと、次のメッセージが表示されます

root (hd0,0)  
kernel /vmlinuz-2.6.32-573.12.1.e16.x86_64 ro root=dev/mapper/VolGroup-lv_root rd_NOLUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0 KEYTABLE=us rd_LVM_LV=VolGroup/lv_swap SYSFONT=latacyrheb-Sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root rd_NO_DM
initrd /initramfs-2.6.32-573.12.1.e16.x86_64.img

EDIT2:(Linuxバージョンおよびfstab)

LinuxバージョンはCentos 6.7です

/ etc/fstabのコピー(スタブを取り、UUIDを新しいディスクのUUIDに変更してみましたが、うまくいきませんでした copy of /etc/fstab

5
Drifter104

EDITED ANSWER:私はあなたの問題を考えていました、そして私はrsyncまたはddバックアップ/復元が最善の策であると思います。動的に増加するvhddを使用している場合は、rsyncがおそらく最善の策であり、静的に定義されたディスクを使用している場合は、おそらくddが最善の策です。

オプション1:最初に、sambaまたはcfs共有を作成するか、他の手段で物理ドライブを接続してデータをバックアップする必要があります。バックアップ先を接続したら、rsyncまたはddコマンドを実行してドライブをバックアップする必要があります。

Rsyncの例(Archを使用): https://wiki.archlinux.org/index.php/full_system_backup_with_rsync

DDの例: http://www.thegeekstuff.com/2010/10/dd-command-examples/

ポータブルファイルを作成する場合は、rsyncをgzipにパイプできると確信しています。

次に、Centosを新しいhyper-vマシンにインストールする必要があります。次に、バックアップイメージを復元するタスクを実行する必要があります(イメージの作成に使用したコマンドによって異なります)。

オプション2:または、新しいCentOS VMを最初に作成してから、エクスポートされた他のVHDファイルをHyper-Vの下で同じ仮想マシン。両方のドライブが同じマシンにマウントされるため、その時点で移行プロセスを実行できます。バックアップドライブをマウントし、そこにブートローダーを移行したら、マウント解除できます交換VMドライブ。その後、同じドライブを再利用して他のマシンを移行できます(移行する必要があるVMごとにリンスして繰り返します)。多くのマシンがある場合、このプロセスのスクリプトを作成しようとするか、すでにそこにバックアップスクリプトを見つけることができます。

オプション3:ハイパーVを使用して新しいVHD/VHDXファイルを作成し、複製するXenserverゲストにアタッチしてマウントします。その方法で直接バックアップします。

私はジャンプするために多くのフープがあることを知っています、多分あまり手間をかけずに動作する3つの確かなオプションがあります。私はLinuxの初心者ですが、以前はDDを使用してHD画像をかなり簡単に移動したことがあり、なぜここではうまく機能しないのかわかりません。

元の回答:

LVMを使用している場合、HDDが問題の原因ではなく、変換後にHDリンクが損なわれていないはずですが、私は専門家ではありません。 Hyper-VでのLinuxの使用経験はかなりありますが、XenServerマシンをHyper-Vに変換していません。とはいえ、表示されているエラーは、Linuxカーネルに問題がある可能性があることを示唆しています。使用しているLinuxディストリビューションを知っておくと役に立ちます。

XenServerには2つのVMタイプがあります:

HVM VM-これらはHyper-V VMと同等であり、変更する必要はありません。これらのVMは、従来の方法(VHDをコピーするか、Microsoftが推奨するSystem Center 2012 Virtual Machine Manager(VMM)を使用)でHyper-Vマシンに変換できます。

PV VM-これらは「準仮想化」VMであり、完全なブートカーネルはありません。これらは、VMのOSにバインドされ、ブートローダーの一部をbootstrapマシンに共有します。PVカーネル(kernel-xen)を置き換える必要があります。 VMとpaeカーネル(kernel-pae)で)。

どのLinuxディストリビューションを使用しているかはわかりませんが、実際のソリューションに影響を与える可能性がありますが、VMがPV VMであると仮定すると、次のリンクにLinuxボックスにPVカーネルをインストールする手順が記載されているため、 toこれらの指示の逆を行い、Linuxディストリビューションに適応します。次に、エクスポートプロセスが機能します。

http://itproctology.blogspot.ca/2009/06/pv-enabling-hvm-from-vmware-on.html

この回答は、Xenserver VMでPVカーネルを使用していることを想定しており、それが起動エラーの原因となっている問題であると想定しています。また、System Center 2012 Virtual Machine Manager(VMM)を使用してVMを変換しようとしていることも前提としています(Microsoftのベストプラクティスに従って、次のリンクに示されている手順に従います)。

https://technet.Microsoft.com/en-ca/library/gg610672.aspx

最終メモ:

  • セキュアブートを無効にして、それが違いを生むかどうかを確認してみます。
  • Linux VMのMicrosoftベストプラクティスに従ってください(使用しているディストリビューションによって異なります)。これらは次のリンクにあります。エクスポートプロセスを実行する前に、VMに変更を加えてみてください(必ず仮想マシンを最初にバックアップしてください):

Universal Linux VM Hyper-Vのベストプラクティス: https://technet.Microsoft.com/en-ca/library/dn720239.aspx

ディストリビューション固有のLinux VM Hyper-Vのベストプラクティス: https://technet.Microsoft.com/en-ca/library/dn531030.aspx

最後に、仮想マシンのLinuxカーネルパラメータ(Ubuntu/Debian)は次のようになります(/ etc/default/grubにあり、後でSudo update-grubを実行してください)。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1366x768 elevator=noop numa=off"

Video = hyperv_fbオプションは、hyper-v統合ツールがVM(ディストリビューション固有)にインストールされている場合にのみ機能します。

4

この答えは遅くなることは知っていますが、どうやってこれを回避したかを共有したいと思いました。 CentOS7 VMをXenServer 6.5からHyper-V 2016に移行するための回答も探していました。StarwindからXVAアプライアンスとしてエクスポートし、XenConvert 2.3.1を使用して変換するまで、すべてを試してみました。

ソリューションは実際には非常にシンプルで、初めて機能しました:このISOをダウンロードしてください https://sourceforge.net/projects/boot-repair-cd/

私が取った高レベルの手順:

  1. XEN VM= OVAにエクスポート(または、Starwindなどのツールを使用して.xva XENアプライアンスを変換)
  2. Hyper-VでNEW VMを作成し、以前にエクスポートしたVHDをアタッチします
  3. 上記のリンクからISOを新しいHyper-V VMのDVD/CDROMドライブにマウントし、そこから起動します。
  4. プロンプトに従ってください(注意!!! VMにNIC接続され、DHCPとインターネットアクセスを提供する外部ネットワークに接続する)が接続されていることを確認してください)
  5. 自動修復を選択します(NB !!がGRUBを再インストールするステップで、yumコマンドの変更が必要になる場合があります。私の場合、「yum erase grub * -common」の代わりに「yum erase grub *」を使用する必要がありました。
  6. Linuxを再起動してお楽しみくださいVM Hyper-Vで実行中:)
2
user440188

Xvdaへの参照は、xen構成にあります。

例えば:

# Created Mon Oct 12 08:38:43 CEST 2015

name='clone0'

kernel='/etc/xen/vm-kernels/vmlinuz-3.2.0-4-AMD64'
ramdisk='/etc/xen/vm-kernels/initrd.img-3.2.0-4-AMD64'

memory=256

# Networking
nics   = 1
vif = [ 'bridge=xenbr0' ]
disk  = [ 'phy:/dev/vg0/clone0.root,xvda1,w', # there you can rename device name
          'phy:/dev/vg0/clone0.swap,xvda2,w'  # in you VM
        ]

root   = '/dev/xvda1 ro'  #this tell boot device 

on_reboot = 'restart'
on_crash = 'restart'

vcpus = 1
0
Maxiko