Más contenido relacionado
La actualidad más candente (20)
Similar a Lxc cf201207-presen (20)
Lxc cf201207-presen
- 3. 2009 年 12 月の
東京エリア Debian 勉強会の
ネタの焼き直しです
. . . . . .
- 4. 自己紹介
まえだこうへい
▶ Debian JP Project Leader(2011, 2012) / CouchDB JP
▶ 勤務先:渋谷の会社
▶ Python 関連の Debian パッケージのメンテナンスなど
▶ 職場で使用している OpenStack の構築・運用で必要な、
周辺ツールの開発、構築とか
▶ 執筆
▶ Git によるバージョン管理 (オーム社)
▶ KVM 徹底入門 (翔泳社)
▶ ゆったリラックス! CouchDB があるところ (@IT) #5
▶ 知って見るみる KVM(@IT)
▶ 今日は (一応)lxc JP として呼ばれたようです
. . . . . .
- 5. 宣伝。
Google group で lxc JP 1
流量の少ない緩いやりとり
をしてます:)
1
https://groups.google.com/group/lxc-jp/about?hl=ja
. . . . . .
- 6. LXC とは?
▶ Linux Containers のこと
▶ コンテナを稼働させるホスト自体のカーネルの機能
▶ LXC を管理するための lxc-* コマンドラインツール
▶ LXC で使えるコンテナ
▶ システムコンテナ:いわゆる OS の仮想化
▶ アプリケーションコンテナ:特定のプロセスの分離
▶ para,full-virtualization とは違うのでホストカーネル上で
動くものしかコンテナでは使えない
▶ 他のコンテナ技術:OpenVZ, Linux-VServer,Solaris
Containers, FreeBSD jail
. . . . . .
- 9. kernel option 確認
$ lxc-checkconfig
Kernel config /proc/config.gz not found, looking in other places...
Found kernel config file /boot/config-3.0.0-1-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration
. . . . . .
- 11. 確認する
即席コンテナで稼働確認
$ sudo lxc-execute -n hoge -f -- /bin/bash
# lxc-info -n hoge
state: RUNNING
pid: 4520
$ sudo lxc-stop -n hoge <-別のシェルで実行。
. . . . . .
- 12. システムコンテナを使う
1. ネットワークの設定
2. cgroup ファイルシステムのマウント
3. コンテナの rootfs 作成
4. コンテナのファイルの微調整
5. コンテナの起動
簡単に Debian 環境を増やせて、すぐ起動できるのが良いで
すね!
. . . . . .
- 13. lxc のライフサイクル
他の仮想マシンのライフサイクルと大差ない。
lxc-freeze
FROZEN
RUNNING lxc-unfreeze
lxc-stop
error
lxc-start STARTING ABORTING
lxc-create STOPPING
STOPPED
lxc-destroy
. . . . . .
- 14. リソースの管理
▶ cgroup(Control Group) を使う
▶ UI として lxc-cgroup コマンドが用意されている
▶ cgroup ファイルシステム経由でリソース管理する
cgroup /sys/fs/cgroup cgroup defaults 0 0
▶ システムコンテナの rootfs はどこでも良い。Debian で
は/var/lib/lxc 以下に置くのがデフォルト
▶ Debian では/etc/default/grub に下記を設定し、
update-grub2 の実行が必要。2
GRUB_CMDLINE_LINUX="cgroup_enable=memory"
2
http://wiki.debian.org/LXC . . . . . .
- 15. libvirt の話
▶ Squeeze では使えない。
▶ Wheezy/Sid の libvirt(0.9.12) では一部機能制限があるが
使える。
▶ 一部:shutdown, reset, reboot ができない
▶ Upstream の 7/12 のコミット 97d7f02 で shutdown が一
部制限付きで Fix されたので、0.9.14 からは使えるか
も。3
3
Wheezy では使えない、ということですね…. . . . . .
- 16. domain XML のサンプル
(test.xml)
<domain type=’lxc’>
<name>test</name>
<memory>500000</memory>
<os>
<type>exe</type>
<init>/sbin/init</init>
</os>
<vcpu>1</vcpu>
<clock offset=’utc’/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
<filesystem type=’mount’>
<source dir=’/var/lib/lxc/debian/rootfs’/>
<target dir=’/’/>
</filesystem>
<interface type=’network’>
<source network=’default’/>
</interface>
<console type=’pty’ />
</devices>
</domain>
. . . . . .
- 17. 起動と確認
$ sudo virsh --connect net-start default
$ sudo virsh --connect lxc:/// define text.xml
$ sudo virsh --connect lxc:/// start test
$ sudo virsh --connect lxc:/// list
Id Name State
----------------------------------
5579 test running
. . . . . .
- 19. 現状
▶ 常用としては、さくらの VPS で Debian Squeeze でカス
タムビルドカーネル& lxc パッケージを使用
▶ ネットワークの設定は/etc/network/if-up.d/に NIC およ
びブリッジの再設定を行うスクリプトを実行させて
いる
. . . . . .
- 20. 私の悩み
▶ lxc コマンド群は、LXC を可動するホスト上でしか使え
ない
▶ 複数ホストノードを扱う場合は不便
▶ libvirt を使いたいが、XML 用意するのは面倒
▶ VirtManager とか使いたくない。コマンドラインでやり
たい
. . . . . .
- 22. 開発の動機
▶ 7/6 に@yssk22 に発表依頼されたので、2 年半前のネタ
を焼き直しすることにした4
▶ 実は 7/28 の pyfes で Git ネタ発表内容にもどうしようか
悩んでいた
▶ libvirt 経由で LXC 管理なら OpenStack も、とか一瞬考
えたが、妻子持ちの個人環境としては面倒
4
https://twitter.com/yssk22/status/221236629631803394.
. . . . .