Xen導入からライブマイグレーションまで Ubuntu16.04LTSをdom0に

 

IGGG Advent Calendar 2016 19日目の記事です。

余計なまえがきは最後尾に移されました

昨日はnatuRulOさんのバイオインフォマティクスの話でした
こういう話はなんか読んでるだけでわくわくします。


本題

最近巷でライブマイグレーションが人気らしいので

今回はUbuntuをdom0としたXenの環境構築を大きく5ステップくらいで。(dom0:仮想化環境管理に使うOS環境)


 

Xenデビュー

ハイパーバイザ型仮想環境

なぜXenなのか:深い意味はありません。

 Ubuntuをインストールしましょう。minimalとかでいいんじゃないでしょうか。もちろんonベアメタルで。割愛

Xenのインストール

# apt install xen-hypervisor-4.6-amd64 xen-utils

 簡単ですね

再起動しましょう


XenBIOSと私


とりあえずSecure bootは無効 Virtualization technology を有効にしておきます 

ちなみにdom0のカーネルやinitramfsはgrubがmultiboot2のモジュールとしてロードしてくれる設定のはずなのでnvmeとかでもboot出来ると思います。

UEFI環境では

Loading Xen 4.6-amd64 ...
WARNING: no console will be available to OS
Loading Linux 4.4.0-53-generic ...
Loading initial ramdisk ...
_

efi環境でlegacy向けのxenを起動しようとすると起こります。
解決策
/boot/xen.cfg
[global]
default=xen
[xen]
options=console=vga loglvl=all noreboot
kernel=vmlinuz-4.4.0-31-generic root=UUID=<UUID> ro
ramdisk=initrd.img-4.4.0-31-generic
これを書いてefiを使用してブートすると
うまくいきます

起動


@:$ sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 15831 4 r----- 919.5
dom0 は管理用OSとなります。まだdomUを立ちあげてないのでdom0のみ表示

example.hvm

builder = "hvm"
name = "example.hvm"
memory = 256
vcpus = 2
disk = ['file:/path/mini.iso,hdc:cdrom,r']
sdl = 1
とりあえずこんなファイルを 作りましょう
xl create NAME
(VMを)作りましょう

 さてさて、domUできたかなとチェックします

SDLのウィンドウが出て

# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 15693 4 r----- 1018.0
example.hvm 15 256 1 -b---- 0.2
はい、出来ました

 

ウチくる?行く行く

#xl migrate-receive
#xl migrate NAME
基本はSSHでデータを転送します。
時間ないので自家マイグレーション

$ sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 15440 4 r----- 1025.3
migrationexample.hvm 22 256 1 -b---- 0.2
@:~$ sudo xl migrate -s "" migrationexample.hvm "sudo xl migrate-receive"
migration target: Ready to receive domain.
Loading new save file (new xl fmt info 0x3/0x0/2117)
Saving to migration stream new xl format (info 0x3/0x0/2117)
Savefile contains xl domain config in JSON format
Parsing config from
xc: info: Saving domain 20, type x86 HVM
xc: info: Found x86 HVM domain from Xen 4.6
xc: info: Restoring domain
xc: info: Restore successful
xc: info: XenStore: mfn 0xfeffc, dom 0, evt 1
xc: info: Console: mfn 0xfefff, dom 0, evt 2
migration target: Transfer complete, requesting permission to start domain.
migration sender: Target has acknowledged transfer.
migration sender: Giving target permission to start.
migration target: Got permission, starting domain.
migration target: Domain started successsfully.
migration sender: Target reports successful startup.
Migration successful
$ sudo xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 15440 4 r----- 1032.3
migrationexample.hvm 23 256 1 -b---- 0.2

(sudoersにNOPASSWDでxl migrate-receiveできるように設定)
平文で流れますが
sudo socat tcp-listen:8889,reuseaddr exec:"xl migrate-receive"
sudo xl migrate -s "nc DEST 8889" migrationexample.hvm ""
でもできます


とこんなふうに簡単にライブマイグレーションできます

 

 

 

入れ替わりブームに便乗できた気がします。

クリスマスにはVMを自己投影してXenで入れ替わりを楽しむのはいかが。
それでは
楽しいクリスマスを

 

明日はEmpe_0105さんで今までの大学生活をゆる~く振り返るだそうです。
どんな切り口で振り返るのでしょうか 僕の心が削られる内容でありませんように


あとがき(言い訳)


またもや有用性の低い記事でスミマセン。能力的な限界です

今後もちtっとふくらませていくつもりです 実験中


蛇足なイントロ


IGGG Advent Calendar
クリスマスまで一週間を切るとか切らないとかだそうですが、クリスマスに聖夜しない人がこれ書いてもいいんでしょうか。
去年は一人で戦場のメリークリスマスをリピート再生。今年は

この記事のターゲットって?

さて、前回の記事で謎扱いされてしまったcastorb100です。隠すつもりはなたのですが何者なのか察しはついてるでしょうし、まあいいや。ところでこの記事群のメインターゲットはどこになるんでしょう。自分で書いていてわからなくなりました。IGGG?高校生?群大生?外部?

前回はなんとなく語りましたが。なんとなくなままわからないです。まあいいか。ふわふわした感じで書きます。