LoginSignup
3
4

More than 5 years have passed since last update.

OracleCloud 仮想マシンの移行をしてみた (VyOSをOCIに移行)

Last updated at Posted at 2019-05-01

はじめに

Oracle Cloud Infrastructure 上で動かすインスタンスは、Oracle側で用意したOSのイメージやマーケットプレイス上のイメージを使用して作成することが出来ます。Windows, Oracle Linux, Cent OS, Ubuntu などが標準で用意されています。
これに対して、独自に用意した仮想マシンイメージを Custom Image としてBYOI(仮想マシンの移行)することで、任意の仮想マシンイメージを使用してインスタンスを起動することができます。

今回の記事は、Virtual Box で作成した仮想マシン をインポートして、インスタンスとして稼働させる方法を記載していきます。

Custom Imageについて

独自の仮想マシンイメージをBYOIする時には、2つの選択肢が存在しています。

  • 準仮想化モード : Linux(カーネルバージョンが3.4以上)のものが対応
  • エミュレーションモード(完全仮想化モード) : 古いLinux, Windows イメージが対応

詳細は省略しますが、パフォーマンスの面で準仮想化モードを選択するのが推奨です。カーネルバージョンが3.4以上のLinuxイメージをBYOIする場合は、積極的に準仮想化モードを使用するのが良いと思います。

その他注意事項は以下のDocumentに記載があります。

準仮想化モード
https://docs.cloud.oracle.com/iaas/Content/Compute/References/customimagesparavirtualizedmode.htm

エミュレーションモード
https://docs.cloud.oracle.com/iaas/Content/Compute/References/customimagesemulationmode.htm

移行元のイメージを作成

Virtual Box で仮想マシン作成

移行元のイメージを、VirtualBoxを使用して準備します。個人的な理由で、オープンソースの仮想ネットワークOSで有名なVyOS(元vyatta)をOCI上で使いたいため、VyOSの仮想マシンをVirtualBoxに作成します。

Virtual Box で仮想ディスクのフォーマットを選択可能です。OCIではVMDKとQCOW2の2種類の形式がサポートされているため、今回はVMDKを選択します。既存の仮想マシンのフォーマットが異なる場合は、変換などを行うことが出来るようです。

001.gif

仮想マシンのスペック

  • Disk : 50GBのVMDKファイル
  • ネットワークインターフェース : 1個

VyOS Install

VyOSのインストール用ISOイメージを読み込ませ、仮想マシンを起動します。
VyOS Download
https://downloads.vyos.io/?dir=rolling/current/amd64

VyOSのインストールは、下の手順に従います。
インストーラのLiveISOのアカウントは、ID : vyos Pass : vyos でログインが可能です。
https://support.vyos.io/en/guides/vyos-user-guide/user-guide/installation

インストール完了後、ISOイメージを取り外し再起動すると、VyOSのログインプロンプトが表示されるので、入力したパスワードでログインをします。

VyOS Configure

configure mode に入ります

vyos@vyos$ configure
vyos@vyos#

ネットワークインターフェースを、DHCP有効にします。

set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'OUTSIDE'

SSHを有効にします。

set service ssh port '22'

設定値を保存します。commitしたタイミングで、DHCPやSSHが有効になり、SSHを使用したアクセスが出来るようになります。

commit
save

InterfaceのMacAddressを削除します

delete interfaces ethernet eth0 hw-id

config を確認します

vyos@vyos# show
 interfaces {
     ethernet eth0 {
         address dhcp
         description OUTSIDE
-        hw-id 08:00:27:a0:e1:fa
     }
     loopback lo {
     }
 }
 service {
     ssh {
         port 22
     }
 }
 system {
     config-management {
         commit-revisions 100
     }
     console {
         device ttyS0 {
             speed 9600
         }
     }
     host-name vyos
     login {
         user vyos {
             authentication {
                 encrypted-password secret
                 plaintext-password ""
             }
             level admin
         }
     }
     ntp {
         server 0.pool.ntp.org {
         }
         server 1.pool.ntp.org {
         }
         server 2.pool.ntp.org {
         }
     }
 }

configuration を保存します

commit
save

VyOSのLinux Kernel バージョンを確認します。4.16.36が使われています。

# uname -a
Linux vyos 4.19.36-amd64-vyos #1 SMP Sun Apr 21 10:39:20 CEST 2019 x86_64 GNU/Linux

VyOSを停止します

poweroff

BYOIのための準備

以下のDocumentに、BYOI(仮想マシンイメージの持ち込み)をする前に、推奨される準備作業が記載されています。これに従って、作業を進めます。
https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/preparingcustomimage.htm

(VyOSの場合はGRUBのmkconfigに失敗したので、実施しないで次の手順に進みます)

Custom Imageの作成

VMDKファイルをアップロード

以下のディレクトリに、Virtual Box で作成した VyOSの VMDK ファイルが格納されています。

C:\Users\susugiya\VirtualBox VMs

これを、OCIのObject Storage へ アップロードします。

oci os object put --bucket-name customimage --file 'vyos-1.2.0.vmdk' --name vyos-1.2.0.vmdk --profile ashburn

VMDKファイルを、Custom Image として Import

Object Storage へアップロードした VMDK ファイルの、URLをコピーします。Object Storage のコンソール上から、URLを表示することができます。

002.gif

Compute メニューの、Custom Image から、vmdk ファイルをImportすることができます

003.gif

Image Import を押すと、IMPORTING ステータスとなります。Available となるまで一定時間待機します。自自分の環境の場合、500MBのイメージで、約15分ほど待機する必要がありました。

Instanceの設定

IPアドレス

Custom Image を使用して、OCIでInstanceを作成します。自分のVyOSの設定方法が悪かったのか、移行元で設定したeth0が消えており、eth1として認識されてしまったため、DHCPで接続することができない状態です。設定変更するために、VNCコンソールで作成したInstanceに接続します。

Interface eth1 に対して、DHCPを有効にするconfig を設定します

set interfaces ethernet eth1 address dhcp
set interfaces ethernet eth1 description 'OUTSIDE'

OCI上で名前解決が行えるように、DNSサーバの設定を行います

set system name-server 127.0.0.53

設定を保存します

commit
save

これで、InterfaceにIPアドレスが設定され、他のInstanceからSSHが出来るようになりました。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:00:17:01:08:1c brd ff:ff:ff:ff:ff:ff
    inet 10.100.0.3/24 brd 10.100.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::200:17ff:fe01:81c/64 scope link
       valid_lft forever preferred_lft forever

パスワードの変更

安全のために、パスワードを変更します

set system login user vyos authentication plaintext-password <new-password>

設定の保存

commit
save

SSHのポート番号変更

さらに安全のために、SSHのポートを変更します

set service ssh port <port>
delete service ssh port 22

設定の保存

commit
save

参考URL

Custom Imageについて
https://docs.cloud.oracle.com/iaas/Content/Compute/References/bringyourownimage.htm

準仮想化モード用のカスタムイメージの作成
https://docs.cloud.oracle.com/iaas/Content/Compute/References/customimagesparavirtualizedmode.htm

エミュレーションモード用のカスタムイメージの作成
https://docs.cloud.oracle.com/iaas/Content/Compute/References/customimagesemulationmode.htm#drivers

VirtualBoxの仮想マシンを簡単にOracle Cloud(OCI)へBYOIできた
https://qiita.com/feifo/items/6810b5635854175a0c4f

Virtual Box から OCI へ Export
https://docs.oracle.com/cd/E97728_01/E97727/html/ovf.html#ovf-export-oci

VyOS QuickStart Guide
https://support.vyos.io/en/guides/vyos-user-guide/user-guide/quick-start-guide

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4