読者です 読者をやめる 読者になる 読者になる

TenForward

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

Linux 3.8 で改良された memory cgroup (1)

Linux 3.8 で User Namespace 機能が入った!と浮かれていて,cgroup のメモリコントローラに入った改良に全く気づいていませんでした (^_^;) 他に freezer サブシステムにも改良加わってますよ (階層化かな).この辺りでしょうか. KS2012: memcg/mm: Improv…

Linux 3.8 の User Namespace 機能 (2)

ブログのテーマを変えてみました.数日間,今のとはまた別のでしたが,コードの表示部分が見にくかったのでまた変えました ^^;閑話休題Linux 3.8 の機能と書きましたが,今回はそれを利用している側を少し見てみました.lxc の開発中のコードが github にあ…

Linux 3.8 の User Namespace 機能 (1)

コンテナを実現するのにカーネルに必要な機能としては大きく分けて 名前空間 リソース制限 があります.リソース制限は cgroup として実装されています (ここではこの話は置いときます).名前空間は,その対象となる空間と他の空間を分ける機能を持っていま…

Ubuntu 12.04 の lxc (2)

間があいてますが 前回 の続きです.全くたいした内容ではありません.以下は 12.04 だけでなく 12.10 でも通用するお話です.lxc は,Linux kernel 標準で提供されているコンテナ関係の機能 (namespace と cgroup) を使って作られているわけですが,まだ ke…

Linux Kernel の User Namespace 機能と lxc (1)

色々な Namespace の機能はコンテナを動かす上で重要な機能なのですが,Linux kernel でこれから実装される予定の機能がいくつかあります.そのうちの結構重要なのが User Namespace です.今の lxc コンテナは,起動するとコンテナ内の root (uid:0) とホス…

Ubuntu 12.04 の lxc (1)

続くかわかりませんが,一応 (1) としときます.:-)Ubuntu 12.04 の lxc (libvirt じゃない) で起動した Ubuntu 12.04 ですが,特にコンテナ特有のパッケージがインストールされてるわけでもなさそうなので,どういう仕組みでコンテナかどうか判断してるのか…

lxc の仮想ネットワークのパフォーマンス測定

先日,kvm の仮想 NIC やネットワーク構成を変えてパフォーマンス測定を行いました (→SR-IOV を有効にする(3) - TenForwardの日記) が,それと同じようなテストを lxc でネットワーク構成を変えてやってみました. テスト環境 lxc を稼働させた PC は 日本HP…

lxc で SR-IOV ハマり道

SR-IOV で出現した VF は lxc から見たら普通のネットワークインターフェースに見えるので lxc.network.type=phys lxc.network.link=eth3 lxc.network.flags=upとか書けば普通に使えるんですが,「あれ〜?ネットワーク通じないなあ」とハマっていたら,なん…

virt-manager の LXC サポート (3)

前回, コンテナ上でシャットダウンすると,なぜかホストが突然死します. http://d.hatena.ne.jp/defiant/20111101/1320146265 なんてことを書いていましたが,ログを見ると lxcContainerDropCapabilities:1012 : libcap-ng support not compiled in, unabl…

/dev/ptmx でハマり道

lxc を使用する際,仮想端末回りをセキュアにするために newinstance オプションを付けて devpts をマウントするのは,以前 紹介ずみです.ココでも少しハマりましたが,またハマったのでメモっておきます. devpts の newinstance オプション カーネル付属…

virt-manager の LXC サポート (2)

間が開きましたが virt-manager の LXC サポート (1) - TenForwardの日記 の第2弾.libvirt 上で lxc の OS コンテナを動かすお話です.あまり中身がないエントリなのは前回と同じ.こんな環境上で実験しています. Plamo Linux 5.0 開発版 (x86_64) kernel …

virt-manager の LXC サポート (1)

何気に virt-manager の ChangeLog を見ていると, Basic 'New VM' wizard support for LXC guestsおおっ!早速試してみました. OSコンテナ 「接続を追加する」を選択すると LXC が選択肢にあります. 「新しい仮想マシンの作成」をやると,接続先の選択肢…

libvirt 上で Fedora15 コンテナ

が動く模様.詳しくは lxc-jp の google group を.また何か試したりしたらここでも書くかも?

LXC-jp / 日本語で lxc (やその他コンテナ) のお話ができる場所

日本語でlxcとかコンテナの話や質問が出来る場が欲しいなあ。どっかありませんかね? https://twitter.com/#!/ten_forward/status/86633606956597249 というのに応えて @mkouhei さんが作ってくださいました!! lxc JP (Googleグループ) 興味のある方はどしど…

lxc でコンテナ内でコマンド実行

OpenVZ/Virtuozzo だと vzctl exec 101 ls とかやるとコンテナ101内で ls を実行したのと同じになります.lxc の場合は lxc-console も lxc-execute も同じようには使えません.以下でそれに使えるようなコマンドが紹介されています.(vzctl enter と同等の…

lxc-debian テンプレートで作った Debian コンテナの reboot 問題

なんか reboot の話題ばっかり.どんだけコンテナを reboot するのが好きやねん...というわけで debian コンテナの話題です.こちらは Ubuntu の問題と違って,おそらくどんなホスト OS 上で実行しても起きる問題な気がします.これは配布物に含まれる lxc-d…

RHEL6 の lxc 関係情報

RHEL6 を使った lxc のよくまとまった情報があったので紹介しておきます. RHEL6.0 で LXC (Linux コンテナ) - めもめも Control Groups (cgroups) - めもめも

(解決!) natty 上の lxc の natty コンテナの reboot の問題

先日書いたreboot問題,普通に Natty をインストールして,普通に lxc-create コマンドで作成しても起きる問題なので,重い腰を上げて英語で質問を lxc-users ML に投げましたよ.ホント恥ずかしいレヴェルの英語です.すると,Daniel Lezcano さんから速攻…

natty 上の lxc の natty コンテナの reboot の問題

Ubuntu natty を入れて,その上で # lxc-create -t natty -n 001みたいに natty コンテナを作ります.コンテナを # lxc-start -n 001 -dと起動させて # lxc-console -n 001でコンソールにアクセスし,ログインします.その後,reboot コマンドを投入すると..…

lxc コンテナ上の iptables のログ

lxc コンテナ上でホストの iptables ルールとは別のルールで iptables を使うことは可能ですが,そこでログを吐くとコンテナの syslog に吐かれたり,ホストの syslog に吐かれたりします.ちょっと調べてみましたが,まだその辺りは解決出来てないようです…

lxc のネットワーク仮想化の phys

今まで母艦でブリッジ作って,コンテナは veth でアタッチ,ってのばかりでしたが,phys ってのをやってみました.だから? って話ですが (^_^;),一応メモ.Ubuntu 10.10 上で ubuntu@ubuntu001:~$ sudo lxc-execute -n test -s lxc.network.type=phys -s lx…

linux 2.6.37 の新機能 "I/O throttling" (2)

昨日の『linux 2.6.37 の新機能 "I/O throttling"』の続編. # ls -l /dev/sdc* brw-rw---- 1 root disk 8, 32 1月 12日 19:01 /dev/sdc brw-rw---- 1 root disk 8, 33 1月 12日 19:02 /dev/sdc1 というディスクに対してまずは書き込み. # mount -t cgroup …

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…