Oracle Linuxのlxc

RHEL6にlxcが付属してないのでCentOS6にも付属してない。

以前はSourceForgeから持ってきてrebuildしてたんだけど、微妙に不具合等もあるのでどうしたものかなあと。

そんな折、Oracle Linuxにはlxcがあるのを発見。CentOS6上でビルドしてみた。

yum -y install libcap-devel docbook-utils
wget http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/lxc-0.7.5-2.0.4.el6.src.rpm
rpmbuild --rebuild lxc-0.7.5-2.0.4.el6.src.rpm
rpm -ivh rpmbuild/RPMS/x86_64/{lxc-0.7.5-2.0.4.el6.x86_64.rpm,lxc-libs-0.7.5-2.0.4.el6.x86_64.rpm,lxc-devel-0.7.5-2.0.4.el6.x86_64.rpm}
  • cgroupは自動で作成されない
  • ubuntu用のテンプレートはあるけどdebootstrapが無い(epelから入れる

epelからdebootstrap入れて

lxc-create -n ubuntu -t ubuntu

で、コンテナは出来たけどcgroupマウントされてないから立ち上がらない。
どうするのが正解かな?

今朝の作業ログ

Kindle Fire

AOKPやGummyのバージョンが38になってたので試す。

  • AOKPは特定のアプリで左下のメニューが小さくなってしまう
  • GummyはChrome Browserがインストールできない
  • AOKPベースのBlackIceも左下のメニューが小さくなる

とりあえずBlackIceで妥協

Galaxy Nexus SC-04D

しばらく見ない間にFuckDocomoのバージョンが3.1に上がっていた。永久SIMロック解除してもIMEIが書き換わらなくなったらしい。

http://forum.xda-developers.com/showthread.php?s=5aff2aefc187cdb28878ae186efdef40&t=1548210

早速適用。
ついでにBlack Ice 38にROMを変更

PySideのインストール

brewでPySideを入れようと思ったらXcode3.2.5は古いから新しいのを入れろとのこと。
AppStoreだとXcode4だしなあと思ったら、ちゃんと残されてた。 

https://developer.apple.com/downloads/index.action

でも結局PySideのサイトからバイナリ版をインストール

http://qt-project.org/wiki/PySide_Binaries_MacOSX

しかし、SnowLeopardのPythonは2.6で使えず…

その後、brewから入れてみるもpysideのビルドが完了せず…
あれこれ悩んだあげく、とりあえず全部消してからやりなおしたらpython2.6がインストールされて、無事にビルド完了

さてCentOSではどうしたものか…グフッ

Linux Container(2012/06/06)

Hypervisor型の仮想化はディスクのパフォーマンスが悪いし、メモリとかも最初にどかっととってしまうので効率が悪い。

FreeBSDとかのJail環境の場合は、ある環境で特定のポートを使ってしまうと他では使えなかったりするので、例えばHadoopクラスタのようなものを作ることはできない。

コンテナ型の仮想化としてはVserverとかOpenVZがあるけど、標準でKernelに組み込まれているLinux Containerのほうがよさそうかなあと。

以下はUbuntu12.04LTSでテストしたログ

sudo apt-get install lxc
sudo update-rc.d cgroup-lite defaults

lxcを入れただけではcgroupが出来上がらなかった。
インストールされているパッケージの中からcgroupに関係ありそうなのをみると、cgroup-liteがcgroup関係を設定したので、OS起動時に一緒に立ち上がるようにした。

コマンドをながめているlxc-createでOSが作れそう。

lxc-create -n name [-f config_file] [-t template] [-B backingstore] [-- template-options]

それっぽいのを探すと、関係あるのはこのあたりか?

$ ls /usr/share/doc/lxc/examples/
lxc-complex.conf      lxc-macvlan.conf   lxc-phys.conf  lxc-vlan.conf
lxc-empty-netns.conf  lxc-no-netns.conf  lxc-veth.conf

$ ls /usr/lib/lxc/templates/
lxc-busybox  lxc-debian  lxc-fedora  lxc-opensuse  lxc-sshd  lxc-ubuntu  lxc-ubuntu-cloud

lxc-create(シェルスクリプト)の中をながめていると、/usr/lib/lxc/templates/lxc- の下を見ていたので

$ sudo lxc-create -n test1 -f /usr/share/doc/lxc/examples/lxc-veth.conf -t ubuntu

と与えてみる。ビンゴ。lxc-ubuntuを使ってOSのインストールがはじまった。

早速、起動してみるがエラー

$ sudo lxc-start -n test1
lxc-start: failed to attach 'veth8UjPTS' to the bridge 'br0' : No such device
lxc-start: failed to create netdev
lxc-start: failed to create the network
lxc-start: failed to spawn 'test1'
lxc-start: No such file or directory - failed to remove cgroup '/sys/fs/cgroup/cpuset//lxc/test1'

ubuntu12.04ではbr0じゃなくてvirbr0でネットワークインターフェイスが作られていた。

$ /sbin/ifconfig virbr0
virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2512 (2.5 KB)  TX bytes:2414 (2.4 KB)

/var/lib/lxc/test1/config の lxc.network.linkをbr0からvirbr0に書き換えたら起動した。

$ lxc-start -n test1


Ubuntu 12.04 LTS test1 console

test1 login: ubuntu
Password: 
Last login: Wed Jun  6 09:00:51 UTC 2012 from XXXXXXXXX on pts/0
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
ubuntu@test1:~$ /sbin/ifconfig 
eth0      Link encap:Ethernet  HWaddr 4a:49:43:49:79:bf  
          inet addr:10.2.3.5  Bcast:10.2.3.255  Mask:255.255.255.0
          inet6 addr: 2003:db8:1:0:214:1234:fe0b:3597/64 Scope:Global
          inet6 addr: fe80::4849:43ff:fe49:79bf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1754 (1.7 KB)  TX bytes:2010 (2.0 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ubuntu@test1:~$ 

ホスト側からもログインできた

$ ssh -l ubuntu 10.0.3.241
ubuntu@10.0.3.241's password: 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
Last login: Wed Jun  6 09:01:52 2012
ubuntu@test1:~$ 


起動がちょっぱや