SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
@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/24
192.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/24
192.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系に対
応してほしい

Mais conteúdo relacionado

Mais procurados

[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Akihiro Kuwano
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
Akira Kaneda
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
 

Mais procurados (20)

[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
 
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
[Vitocha.iso] FreeBSDカスタムiso作ってみた
[Vitocha.iso] FreeBSDカスタムiso作ってみた[Vitocha.iso] FreeBSDカスタムiso作ってみた
[Vitocha.iso] FreeBSDカスタムiso作ってみた
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
 
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
 
20131012 nodejs
20131012 nodejs20131012 nodejs
20131012 nodejs
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
FreeBSD の小ネタ
FreeBSD の小ネタFreeBSD の小ネタ
FreeBSD の小ネタ
 
FreeBSD を VirtualBox にインストールしてみた
FreeBSD を VirtualBox にインストールしてみたFreeBSD を VirtualBox にインストールしてみた
FreeBSD を VirtualBox にインストールしてみた
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
 
クラウドのようなVPS 「ConoHa」 を使ってみよう。
クラウドのようなVPS 「ConoHa」 を使ってみよう。クラウドのようなVPS 「ConoHa」 を使ってみよう。
クラウドのようなVPS 「ConoHa」 を使ってみよう。
 
このべん第一回 ~ 「ConoHaってどんなVPS?」を勉強して3,000円クーポンをもらっちゃおうの会
このべん第一回 ~ 「ConoHaってどんなVPS?」を勉強して3,000円クーポンをもらっちゃおうの会このべん第一回 ~ 「ConoHaってどんなVPS?」を勉強して3,000円クーポンをもらっちゃおうの会
このべん第一回 ~ 「ConoHaってどんなVPS?」を勉強して3,000円クーポンをもらっちゃおうの会
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
 

Destaque

Destaque (8)

第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
 
Smart OS入門
Smart OS入門Smart OS入門
Smart OS入門
 
My sqlで遭遇したトランザクションとロックのお話
My sqlで遭遇したトランザクションとロックのお話My sqlで遭遇したトランザクションとロックのお話
My sqlで遭遇したトランザクションとロックのお話
 
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
 
Meta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural Network
 
コンテナー型仮想環境の情報交換会
コンテナー型仮想環境の情報交換会コンテナー型仮想環境の情報交換会
コンテナー型仮想環境の情報交換会
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
 

Semelhante a こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜

動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
tamtam180
 

Semelhante a こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜 (9)

第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
 
nginxに追加された新モジュール それがHTTP/2モジュールです
nginxに追加された新モジュール それがHTTP/2モジュールですnginxに追加された新モジュール それがHTTP/2モジュールです
nginxに追加された新モジュール それがHTTP/2モジュールです
 
Nishimoto 170603-mruby
Nishimoto 170603-mrubyNishimoto 170603-mruby
Nishimoto 170603-mruby
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
 
Softlayerを申込んでみた参考資料 140730
Softlayerを申込んでみた参考資料 140730Softlayerを申込んでみた参考資料 140730
Softlayerを申込んでみた参考資料 140730
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
20150317 firefox os勉強会
20150317 firefox os勉強会20150317 firefox os勉強会
20150317 firefox os勉強会
 
さくらのクラウドDNS経由でワイルドカード証明書を後からインストールしたcertbotで取得する方法
さくらのクラウドDNS経由でワイルドカード証明書を後からインストールしたcertbotで取得する方法さくらのクラウドDNS経由でワイルドカード証明書を後からインストールしたcertbotで取得する方法
さくらのクラウドDNS経由でワイルドカード証明書を後からインストールしたcertbotで取得する方法
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 

Mais de furandon_pig

x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
furandon_pig
 

Mais de furandon_pig (7)

CoderDojoの日常
CoderDojoの日常CoderDojoの日常
CoderDojoの日常
 
TDEで透過的暗号化
TDEで透過的暗号化TDEで透過的暗号化
TDEで透過的暗号化
 
ジャパリパークさいかいけーかく
ジャパリパークさいかいけーかくジャパリパークさいかいけーかく
ジャパリパークさいかいけーかく
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
 
プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話
 
x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
 
elasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみたelasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみた
 

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