原文はこちら。
https://blogs.oracle.com/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のトラブルシューティング用にシリアルコンソールを有効化します。
- /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カーネル起動パラメータに追加します
- initramfs を以下のコマンドで再作成します:
grub2-mkconfig -o /boot/grub2/grub.cfg
- 念のためマシンを再起動し、dmesg を実行して更新したカーネルパラメータをチェックしましょう:
dmesg | grep console=ttyS0
これらの準備についての詳細は、Preparing a Custom Linux Image for Importの"Enabling Serial Console Access"の章をご覧ください。
Paravirtualizedの有効化
次に、VMのinitrd にvirtioドライバを構成することで、paravirtualizedデバイスサポートを追加しましょう
- この操作はLinuxカーネルバージョン3.4以降でしか有効でないため、システムのカーネルバージョンが新しいことをチェックしましょう:
uname -a
- initrd を dracut ツールでリビルドし、qemu モジュールを追加させましょう:
dracut --logfile /var/log/dracut.log --force --add qemu
- 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でアップロードするほうがぜんぜん速いです。
- Oracle VM VirtualBoxマネージャのウィンドウで、VM indexを開きます。
- 目的のVMを右クリックし、Show in Finderを選択します。VMディスクのディレクトリパスとファイル名を控えておきます。
- ターミナルを開き、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コンソールにログインしてイメージをインポートしましょう。
- イメージをアップロードしたバケットの詳細ページに行き、イメージの詳細を開いてURLを調べましょう。このURLは後で使います。
- ナビゲーションメニューからCompute、そしてCustom Imagesを選択します。
- Import Imageをクリックします。paravirtualizedドライバを使えるようにしておいた場合は、paravirtualizedモードを選んでおくことで最高のパフォーマンスが得られます。
インポートプロセスがスタートし、しばらくすると完了します。
詳細な情報はImporting Custom Linux-Based Imagesをご覧ください。
インスタンスへのアクセス
イメージのインポートを終えたら、image detailsのページから直接インスタンスを起動できるようになります。
インスタンスが起動したら、そのパブリックIPアドレス、およびVirtualBoxでの稼働時に使っていたものと同じ認証情報を用いてSSH接続しましょう。
VirtualBox VMをOracle Cloud Infrastructureへのインポートを完了できました!
あなたもやってみてください。 Oracle Cloudアカウントをまだお持ちでない場合は、http://cloud.oracle.com/tryitでフリートライアルに登録しましょう!