[Cloud] VirtualBox VMのOracle Cloud Infrastructureへのインポート/Importing VirtualBox Virtual Machines into Oracle Cloud Infrastructure

原文はこちら。
https://blogs.oracle.com/cloud-infrastructure/importing-virtualbox-virtual-machines-into-oracle-cloud-infrastructure



大きな企業では多くの種類のOSを使っているものです。Oracle Cloud Infrastructureは新しいもの古いもの両方の様々なOSをサポートしています。また、お客様がオンプレミス環境のOracle VM、VMware、KVM、そして今日ではさらにVirtualBoxなどのさまざまなソースから、rootボリュームをインポートすることをサポートしています。

VirtualBoxはエンタープライズ向けのパワフルなx86およびAMD64/Intel64の仮想化プロダクトです。このブログポストと関連するビデオであるImporting VirtualBox Virtual Machines to Oracle Cloud Infrastructureでは、VirtualBoxでSUSE Linux 15仮想マシン(VM)を作成し、それをインポートするのに必要なステップを解説していきます。この手順は既存のVMにも適用可能なもので、Oracle Cloud Infrastructureへの"move and improve"移行が簡単に行うことができます。

VirtualBox VMの作成

まずシンプルなVirtualBox VMを作りましょう。詳細はビデオをご覧くださいね。繰り返しますが、この手順は既存のVMにも適用可能ですよ。

VirtualBox VMのインポートの準備

クラウドで起動できるよう、VMのイメージがインポートできるようになっているか確認しましょう。イメージは以下の要件を満たしている必要があります:
  • 300 GiB未満
  • マスターブートレコード(MBR)を含んでいる
  • (UEFIではなく)BIOSを使うよう設定されている
  • 単一ディスク
  • VMDKまたはQCOW2ファイルである
このポストで扱っている例は、openSUSE Leapをデフォルトセッティングでインストールしたものです。
また、インスタンスのセキュリティ設定がクラウド環境として適切であるかも確認してください。たとえばファイアウォールが有効であり、秘密鍵認証を利用するSSHログインのみが許可されている、などです。カスタムイメージの条件についてもっと詳細が知りたい場合は、Bring Your Own Custom Image for Paravirtualized Mode Virtual Machinesの"Custom Image Requirements"の章をチェックしてください。
必要に応じて、以下のタスクも実施してください:
  • のちのトラブルシュートのために、インスタンスにシリアルコンソールインターフェースを追加しておく
  • KVM paravirtualizedドライバの追加
  • プライマリNICにDHCPの設定をする

シリアルコンソールの有効化

イメージの設定の確認後に、必要に応じて、のちのVMのトラブルシューティング用にシリアルコンソールを有効化します。
  1. /etc/default/grubファイルを開き、以下のように更新します:
    • resume= は起動時間をかなり長くするので、カーネルパラメータから削除します
    • GRUB_TERMINAL="gfxterm" を GRUB_TERMINAL="console serial" に書き換え、シリアルコンソールを使うようにします
    • GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200" を追加し、grubのシリアル設定を行います
    • GRUB_CMDLINE_LINUX="" を GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200" に書き換え、シリアルコンソールをLinuxカーネル起動パラメータに追加します
  2. initramfs を以下のコマンドで再作成します:
    grub2-mkconfig -o /boot/grub2/grub.cfg
  3. 念のためマシンを再起動し、dmesg を実行して更新したカーネルパラメータをチェックしましょう:
    dmesg | grep console=ttyS0
これらの準備についての詳細は、Preparing a Custom Linux Image for Importの"Enabling Serial Console Access"の章をご覧ください。

Paravirtualizedの有効化

次に、VMのinitrd にvirtioドライバを構成することで、paravirtualizedデバイスサポートを追加しましょう
  1. この操作はLinuxカーネルバージョン3.4以降でしか有効でないため、システムのカーネルバージョンが新しいことをチェックしましょう:
    uname -a
  2. initrd を dracut ツールでリビルドし、qemu モジュールを追加させましょう:
    dracut --logfile /var/log/dracut.log --force --add qemu
  3. lsinitrd tをチェックし、virtioドライバが存在することを確認しましょう
    lsinitrd | grep virtio
詳細はdracut(8)lsinitrd(1)のマニュアルをご覧ください。

ダイナミックネットワーク接続の有効化

次に、VirtualBox内では利用できていたインターフェースをVMが使い続けようとすることがないように、永続化されたネットワーク接続設定をクリアしておきましょう。
以下のコマンドで 70-persistent-net.rules ファイルの中身を空にします(ファイル自体は消去しません):
> /etc/udev/rules.d/70-persistent-net.rules
注意:この変更はVMが再起動されるとリセットされます。インポートする前にVirtualBox内でVMを再起動した場合は、このステップをもう一度実施する必要があります。
詳しくはudev(7)のマニュアルとPredictable Network Interface Namesを参照くださいませ。

VMの電源停止

準備ができたら以下のようにインスタンスを停止しましょう:
halt –p
これでVMは準備完了です。

イメージのアップロード

VMの電源をオフにしたら、あなたのPC上からObject StorageへとVMディスクをコピーしましょう。あなたのPCにはOracle Cloud Infrastructure CLIをインストール、設定しておく必要があります。初めて行う場合にはCLI Quickstartをご覧ください。
ファイルをアップロードするにはOCI CLIを使いましょう。Object StorageのWebコンソールは2GiB以内のファイルしかサポートしておらず、これはちょっとイメージのアップロードには使えそうにありません。イメージが十分に小さかったとしても、CLIでアップロードするほうがぜんぜん速いです。
  1. Oracle VM VirtualBoxマネージャのウィンドウで、VM indexを開きます。
  2. 目的のVMを右クリックし、Show in Finderを選択します。VMディスクのディレクトリパスとファイル名を控えておきます。
  3. ターミナルを開き、VMのディレクトリパスとファイル名、およびOracle Cloud Infrastructureのテナンシーネームスペース、Object Storageバケット名を指定してアップロードします:
    VM_DIR="/Users/j/VirtualBox VMs/openSUSE-Leap-15.0/"
    VM_FILE="opensuse-leap-15.0.vmdk"
    NAMESPACE="intjosephholsten"
    BUCKET_NAME="images"
    
    cd "${VM_DIR}"
    oci os object put -ns "${NAMESPACE}" -bn "${BUCKET_NAME}" --file "${VM_FILE}"
アップロードにはイメージのサイズとネットワーク帯域によってはいくらか時間がかかります。
アップロードに関してさらに詳しく知りたい場合、Managing ObjectsでObjectバケットへのアップロードに関するCLIの使い方を見てください。

イメージのインポート

アップロードが完了したら、Oracle Cloud Infrastructureコンソールにログインしてイメージをインポートしましょう。
  1. イメージをアップロードしたバケットの詳細ページに行き、イメージの詳細を開いてURLを調べましょう。このURLは後で使います。
    VM Image URL in the Object Details console
  2. ナビゲーションメニューからCompute、そしてCustom Imagesを選択します。
  3. Import Imageをクリックします。
    paravirtualizedドライバを使えるようにしておいた場合は、paravirtualizedモードを選んでおくことで最高のパフォーマンスが得られます。
    Select Launch Mode: Paravirtualized in the Instance Create dialog
インポートプロセスがスタートし、しばらくすると完了します。
詳細な情報はImporting Custom Linux-Based Imagesをご覧ください。

インスタンスへのアクセス

イメージのインポートを終えたら、image detailsのページから直接インスタンスを起動できるようになります。
Create Instance button on Image Details page
インスタンスが起動したら、そのパブリックIPアドレス、およびVirtualBoxでの稼働時に使っていたものと同じ認証情報を用いてSSH接続しましょう。
Successful ssh connection, with Public IP field on Instance Detail page in background
VirtualBox VMをOracle Cloud Infrastructureへのインポートを完了できました!
あなたもやってみてください。 Oracle Cloudアカウントをまだお持ちでない場合は、http://cloud.oracle.com/tryitでフリートライアルに登録しましょう!

0 件のコメント:

コメントを投稿