こんてなぐらし!〜freebsd vpsでライブマイグレーション〜

16
@furandon_pig ~FreeBSD VPSでライブマイグレーション~

Upload: furandonpig

Post on 24-Jan-2017

2.279 views

Category:

Software


0 download

TRANSCRIPT

@furandon_pig

~FreeBSD VPSでライブマイグレーション~

自己紹介• Twitter ID: @furandon_pig • 家ではNetBSDを使っています • 興味ドリブンで勉強会開催しています • ECMA-262 Edition5.1読書会 • https://ecma262reading.doorkeeper.jp/

• 「理論から学ぶ データベース実践入門」読書会 • http://riron-db.connpass.com

• ゆるいUNIX勉強会~ゆるゆに~ • https://yry2.doorkeeper.jp/

• Live2Dで遊ぶ会 • https://enjoying-live2d.doorkeeper.jp/

本日の内容FreeBSDでのコンテナ実装である VPS(Virtual Private Systems)を 試してみた、という話です。 VPSの機能として、コンテナの ライブマイグレーションが提供 されているので、その様子を 実際にデモする形で紹介します。

VPSとは?• VPS(Virtual Private Systems) • FreeBSDにおけるコンテナ型仮想化の一実装 • 現状ではまだexperimentlな印象が強い

OS level virtualization

FreeBSDでの実装

Hypervisor

Emulation of Hardware

AIX Workload Partitions Solaris Containers

Virtuozzo/OpenVZ LXC Docker

VPS Jail

Xen VMware ESX

bochs

VPSの機能/Jailとの違い• VPSの機能 • 小さいオーバーヘッドで仮想環境を提供 • ライブマイグレーション機能 • Nested virtualization • Fine grained resource control

• Jailとの違い • Jailはセキュリテイ面からの資源分割 • VPSはコンテナ型仮想化自体を意識した設計 • Jailはグローバルテーブルを各エントリに区切っている • VPSはインスタンス毎にプロセスツリー/グループを持つ

テスト用環境• vps{03,04}のそれぞれにVPSをインストール • vps03でコンテナ作成、vps04にマイグレーション

vps03 vps04

192.168.98.0/24192.168.10.55 192.168.10.54

VPSのインストール• FreeBSD-9.1-RELEASE(i386)

• 9.1のISOイメージは既に公式サイトからは削除

• 以下のURLよりダウンロードする

• https://archive.org/details/freebsd-9.1_release_i386

• VPS関連のバイナリ

• VPS for FreeBSD

• http://www.7he.at/freebsd/vps/

FreeBSD-10でVPS• 最新のVPSバイナリはFreeBSD-10系向けの模様

• が、それでも対象はFreeBSD-10.1と若干古い

• 幾つかの機能を利用する際にpanicが発生する

• 例えばライブマイグレーション

• マイグレーション後のリストアでpanic

インストール手順# uname -rms FreeBSD 9.1-RELEASE i386 # # fetch http://www.7he.at/freebsd/vps/files/pkgs/vps-fbsd91-r130-i386-dbg.tbz # pkg_add vps-fbsd91-r130-i386-dbg.tbz # (VPS対応カーネルと関連するカーネルモジュールがインストールされる) # shutdown -r now (VPS対応カーネルで起動してくる) # /etc/rc.vpssetup.sh # # mount -t cd9660 /dev/cd0 /mnt # find /mnt/ -name base.txz /mnt/usr/freebsd-dist/base.txz # cp /mnt/usr/freebsd-dist/base.txz .

コンテナを作成する

• 公式サイトの以下の手順に従いコンテナを作成する • http://www.7he.at/freebsd/vps/docs/setup_testenv.txt

• とはいえ、毎回手順を頭から実施するのは煩雑 • 以下のスクリプトでコンテナを作成すると楽 • https://gist.github.com/furandon-pig/02f3f9c097d20f22b017

コンテナを起動する

• vpsctl startでVPSコンテナを起動する

• 起動しているコンテナはvpsctl listで確認できる

vpsctl start vps_id

vpsctl list

*コンテナのなかにいる*

• VPSコンテナに入るにはvpsctl shellを実行する

vpsctl shell vps_id

コンテナのマイグレーション(1/2)

• vpsctl migrateでコンテナをライブマイグレーションできる

• 事前にssh root@migrate_hostでログイン可能にしておく必要がある

• sshd_configで“PermitRootLoing yes”を設定する

vpsctl migrate node_id migrate_host

コンテナのマイグレーション(2/2)

vps03 vps04

192.168.98.0/24192.168.10.55 192.168.10.54

# vpsctl migrate test01 vps04

マイグレーション時の注意点• コンテナから抜けている状態でないとマイグレーションが失敗する

• 場合によってはpanicする

• 端末を掴んだ状態でのマイグレーションがダメ?

• vps0のインタフェース以外と疎通しながらマイグレーションすると効果覿面(panic的な意味で)

• これはこちらの設定に抜けがあるのかも…

まとめ• FreeBSDのVPS(Virtual Private Systems)機能の紹介とデモ

• 現状、ライブマイグレーションは古いバージョンのFreeBSDでないと試すことができない

• ライブマイグレーション機能自体がJail側に取り込まれると良いのにという気もする

• やはりまだexperimentalな感じ+FreeBSD-10,11系に対応してほしい