TenForward

技術ブログ。はてなダイアリーから移転しました

Container

linux 2.6.37 の新機能 "I/O throttling"

今まで (2.6.33 以降) も cgroup には blkio サブシステムがあったので,I/O のコントロールは可能でしたが,従来のは "IO weight controller" でした.早速 2.6.37 カーネルを make して,マウントしてみました.I/O throttling を使うのにカーネル構築の際…

cgroup ハマり道

cgroup での,知ってる人からすると当たり前かも知れないハマりポイント./etc/fstab で cgroup /cgroup cgroup defaults 0 0とかやって,デフォルトでマウントしたりして,cgroup ファイルシステム上にグループを作って,そこに pid を登録しようとすると "…

lxc を使って Plamo-64 on Plamo-64

64bit の Plamo の開発が進んでいますが,この開発環境を lxc 上で動かしてみたらどうだろう? ということでやってみました.基本は http://plamo.linet.gr.jp/drupal6/node/151 の P-Plamo64 環境をコピーして作った chroot 環境.Plamo の場合,結構起動の …

cgroup の device コントローラと lxc

lxc のコンテナ設定ファイルで lxc.tty = 4 と設定して tty を 4 つまで作成出来るようにする.この設定と lxc.cgroup.devices.deny = a lxc.cgroup.devices.allow = c 4:0 rwm lxc.cgroup.devices.allow = c 4:1 rwm lxc.cgroup.devices.allow = c 4:2 rwm …

libvirt 経由で lxc を触ろうと思ってハマる (6)

ついにこのシリーズも 6 回目.(^_^;)前回は,libvirt の XML ファイルで定義したメモリ制限が効いてないぞ,というお話でした.手元では Plamo 4.73 (kernel 2.6.32.16, libvirt-0.8.2) Plamo 4.73 (kernel 2.6.36, libvirt-0.8.2) Fedora 13 (kernel 2.6.3…

libvirt 経由で lxc を触ろうと思ってハマる (5)

(2010/11/02 更新) lxc ツールキットを使った実験の時はメモリ制限が働いていたと書いてましたが,修正前の例だと働いてませんでした(実験ミス ;_;)."lxc.cgroup.memory.memsw.limit_in_bytes" の記述を追加しました.前回 は,lxc ツールキットを使っても…

kernel 2.6.36 での cgroup

設定項目増えてますね. .config - Linux Kernel v2.6.36 Configuration ────────────────────────────────────────────────────────────────────────────── ┌───────────────────────── Control Group support ─────────────────────────┐ │ Arrow keys nav…

libvirt 経由で lxc を触ろうと思いハマる (4)

前回,一応隔離された環境で実行が可能になったけど,/proc/meminfo とか /proc/cpuinfo がおかしい (親環境の値が表示される) というのがあって,libvirt 経由で起動した場合だけなのか,lxc のツールキットを使っても同じかを確認してみました.lxc の設定…

libvirt 経由で lxc を触ろうと思いハマる (3)

前回,libvirt では chroot 環境の /sbin/init プログラムからシステム起動が出来ないっぽい事が分かったので,とりあえず単独のコマンドを実行してみようと. xml の定義ファイルを書く.とりあえず libvirt: LXC container driver の最初の例そのまま. vm…

libvirt 経由で lxc を触ろうと思いハマる (2)

前回 は iproute2 のバージョンのおかげで define が出来なかった libvirt 経由の lxc ですが,次に新たな問題が. 定義ファイルを libvirt: LXC container driver を参考に作成. debian 32768 exe /sbin/init 1 destroy restart destroy /usr/libexec/libv…

libvirt 経由で lxc を触ろうと思いハマる

kvm や Xen などの仮想環境を触るのに libvirt という API/ライブラリ/デーモン/コマンド群があり,RedHat, Debian 系でもよく使われます.これを Plamo 4.73 でも使おうと思ってハマりました.libvirt は 0.8.2 を使っています. libvirtd には dnsmasq が…

lxc で CentOS 5 コンテナ

ちょっと聞かれたので即席でやる方法を. lxcの動作に必要な設定をします.例えば, cgroupマウント ブリッジの設定 OpenVZ の precreated なテンプレートキャッシュを取得する. ftp://ftp.iij.ad.jp/pub/openvz/contrib/template/precreated/ あたりにあり…

Plamo Linux 4.73 で lxc 0.7.2 (後編)

前編 で書いたように,普通に lxc のコンテナを起動すると,母艦の Desktop 環境上でターミナルが開きません.これは debian や ubuntu の lxc 環境では起きません.コンテナ側の処理依存で,debian じゃない別の環境だと問題はないかも知れないけど,よくわ…

Plamo Linux 4.73 で lxc 0.7.2 (前編)

以前,lxc-0.6.2 で行なったときは何事もなくうまくいったのですが,今回 lxc がバージョンアップして,イマイチうまくいかない部分があったので,とりあえず方法をメモ. カーネル再構築 Plamo 標準カーネルは cgroup など,lxc の動作に必要なオプションが…

OpenVZ で仮想イーサネットデバイス (2)

OpenVZ で仮想イーサネットデバイス(1) では,ハードウェアノード (HN) 上でルーティングを行って,コンテナ (CT) の外部との通信を行いましたが,一々ルーティングなってやってられるか! ってことで,ブリッジを使った方法の試してみました. 以下の例は vz…

OpenVZ で仮想イーサネットデバイス(1)

OpenVZ でコンテナ (CT) を作るとき,何も考えずに # vzctl set 100 --ipadd 192.168.0.100 --saveなどとやると,venet という仮想ネットワークデバイスが作成されます.CT 内だと venet0 とか venet0:0 とか言うインターフェースが上がっていて,それに vzc…

OpenVZ が kernel 2.6.32 対応

ちょうど「http://www.virtualization.info/jp/2010/04/linux-foundationcontainersparallels2010.html」を読んでいて,OpenVZ が 2.6.32 に対応しているのに気づいた.Virtuozzo Container もまだまだ続くのね.:-) 2.6.32 is here - OpenVZ 残念ながら Ubu…

LXC (3)

さて,最低限の sshd 実行がコンテナ内で出来たので,次は Debian を動かしてみました.lxc を make すると,lxc-debian というコマンドがインストールされますが,これは chroot 環境を作るのに,内部で debootstrap を使っていますので,Plamo では動きま…

LXC (2)

気を取り直して,Plamo Linux 4.71 で lxc を. 準備 lxc-0.6.4.tar.gz をダウンロード.展開. カーネル再構築 標準カーネルではオプションが足りないので,有効にする.lxc アーカイブ中の doc/lxc.7 を見ると,以下を有効にせよ,と書いてあります.READM…

LXC

on Ubuntu 9.10 $ sudo apt-get install lxc bridge-utils debootstrap $ sudo ifconfig eth0 down $ sudo brctl addbr br0 $ sudo brctl setfd br0 0 $ sudo brctl addif br0 eth0 $ sudo ifconfig eth0 0.0.0.0 up $ sudo ifconfig br0 inet 192.168.0.130…