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

TenForward

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

ip netns コマンドが意外にきめ細やかにコンテナを作ってくれる

(2016-07-26: 誤記修正しました "setns -> nsenter")お手軽にシェルスクリプトなんかでコンテナを作る場合の強い味方といえば util-linux の unshare/nsenter コマンド iproute2 の ip netns コマンド が代表的でしょう。"ip netns" は Network Namespace 作…

Linux 4.3 の Process Number Controller (1)

連載書いたり、勉強会で発表したりしているとなかなかブログが更新できませんね。久々の更新です。これを書いている時点では Linux カーネルの 4.3-rc1 がリリースされていますが、久々に cgroup に新しいコントローラが追加されそうですね。 pids.txt 説明…

シェルスクリプトで書かれた軽量コンテナ MINCS がすばらしい (2)

これはだいぶ前に書いたエントリです。MINCS作者による最新の解説があるのでそちらもご覧ください。 (2016-11-21追記)先に書いた シェルスクリプトで書かれた軽量コンテナ MINCS がすばらしい (1) - TenForwardの日記 は私もびっくりの、このブログを書き始…

aufs を使った一般ユーザ権限で起動するコンテナ

LXC ではコンテナのクローンを行う際に色々なストレージバックエンドの特徴を生かしたスナップショットクローンを行えます。この辺りは 連載の第 19 回〜 22 回 辺りで詳しく解説しています。今まで、非特権LXCコンテナでストレージバックエンドの特徴を生か…

シェルスクリプトで書かれた軽量コンテナ MINCS がすばらしい (1)

これはだいぶ前に書いたエントリです。MINCS作者による最新の解説があるのでそちらもご覧ください。 (2016-11-21追記)コンテナは使いたいけど、たくさんコンテナを起動すると結局それぞれのコンテナに対するセキュリティアップデートなどのメンテナンスは必…

4.0.2 kernel と非特権コンテナ

(2015-06-11 追記) 以下の問題は 4.0.5 カーネルで解決しています。手元 (Plamo 5.3) では 4.0.2 カーネルで LXC の非特権コンテナを起動するとカーネルが固まります。その時のログは以下です (netconsole 経由で取ったので見にくい)。 https://gist.github.…

lxd を使ったライブマイグレーション (2)

このエントリの情報はおそらく古いです前のエントリ はネットワークの設定なしで行いましたが、そこに veth でホストと通信可能なネットワークの設定を行って試しました。一度で書けよって内容ですが :-pまず非特権コンテナで veth が使える設定を行います (…

lxd を使ったライブマイグレーション (1)

このエントリの情報はおそらく古いです先月、LXD 0.3 のリリースでライブマイグレーションサポート、というアナウンスがあったので早速試しましたが失敗しました (> lxd を使ったライブマイグレーション(未完) - TenForwardの日記)。これはバグがあったよう…

lxd を使ったライブマイグレーション(未完)

(2015-04-15 追記) マイグレーションできたブログエントリを書きました > lxd を使ったライブマイグレーション (1) - TenForwardの日記 (2015-03-18 追記) lxd 0.4 が出たので試してますが、今度はマイグレーション先の lxd がこんなログを吐いてしまいます …

10 分で試せる lxd 0.3

このエントリの情報は古いです(2015/04/08 追記) ubuntu-lxc の PPA の構成が変わっていますので、以下の add-apt-repository コマンドの例はそのまま実行できません。PPA の詳細は公式ページでご確認ください。 前回 (その1、その2) lxd を試したことを書い…

LXD でリモートの LXD ホストのコンテナを操作してみる

LXD 0.1 がリリースされたのでLXD を試してみた続きです。LXD の特徴は複数の LXD ホストをリモートから管理できることです。というわけでリモートの LXD ホストの操作を試してみました。とりあえず動くのを確かめただけです。 テスト用の LXD ホストは Ubun…

LXD を試してみた

公式ページに簡単なクライアントプログラムの使い方が載りました (2015-02-27 更新) LXD 0.1 がリリースされましたので LXD を試してみました。こちらも参考に。ただし、現時点では以下とは少しコマンドが違うようです。 LXDを試してみた Plamo 5.3 で試して…

コンテナの歴史と Linux カーネルのコンテナ関連機能についての割とどうでも良い愚痴

この記事は Linux Advent Calendar 2014 の 18 日目のエントリとして書いています。Docker が盛り上がって、Docker が使ってる「コンテナ」という技術が盛り上がって、Doker の解説がそこら中にあふれるようになったので「Docker? そんなの FreeBSD が jail …

docker の CPU 隔離性

某所で話題になってたので。3.17.1 kernel で試してます (Plamo Linux 5.2)docker でも何でもなくて単に Linux kernel の cgroup がちゃんと動いてるかって話なんですが。:-)(2014-10-29 追記) なんか docker ってキーワード入ってるからかわかりませんが、…

lxc-checkpoint で CRIU を使って LXC コンテナの checkpoint/restore 処理

CRIUを最後に試したのは昨年11月でした。 CRIU (3) - TenForwardの日記 CRIU (2) - TenForwardの日記 CRIU (1) - TenForwardの日記 いつの間にやらバージョンも 1.3 とかで進化しています。でも LXC できちんと動かないよという話だったので動向だけ見守って…

cgroup の devices サブシステムのどうでも良いトリヴィア

lxc-checkpoint が動かないのでデバッグしたり、パッチ書いたり、リジェクトされたりしてる時に気づいたどうでも良い知識。cgroup の devices サブシステムは デバイスタイプ デバイスノード番号 アクセス権 をスペース区切りした文字列を devices.allow, de…

Linux 3.16 から試せる cgroup の単一階層構造 (2)

前回の続きです。 グループで使えるサブシステム "cgroup.subtree_control" ファイルにサブシステムを指定することで子グループで使えるサブシステムが指定できることを前回説明しました。これに対して、あるグループで使えるコントローラを一覧できる "cgro…

Linux 3.16 から試せる cgroup の単一階層構造 (1)

Linux 3.16 からカーネルソースツリーの Documentation/cgroups の下に一つ文書が増えているのに気づいた方もいらっしゃるのではないでしょうか。cgroupの使い方が大幅に変わる変更がマージされています。増えた文書は以下。 Documentation/cgroups/unified-…

setns を UTS Namespace をネタにおっかける

Linux:実行中プロセスの名前空間切り替え - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ masami256 さんのコンテナシリーズ、勉強になりますね。Linux カーネルの Namespace (名前空間) を扱うシステムコールのうち、既存のプロセスの Namespace を制御する …

UTS Namespace (名前空間) を追っかける

コンテナが盛り上がってるので、エラい人たちが結構色々な情報を色々な所に書いてくれるので、簡単に知識が手に入るようになってきましたね。というわけで、私のようななんちゃってな人でも気軽に処理を追っかけることができるようになってきましたから、久…

第 24 回山陰 ITPro 勉強会に参加しました

7/26(土) に第 24 回山陰 ITPro 勉強会 でコンテナについてお話したあと、色々勉強してきました。当日の私の資料は一部変更して speakerdeck に置いてあります。 Linuxコンテナを支える技術とLXC、Dockerのキホン (2014-07-26) // Speaker Deck ツイートのま…

Namespace Cgroup

全く役に立たないエントリ。こんな Cgroup 使わないように。とりあえず折角調べたので忘れないようメモ。昔々、ns cgroup なるものがありました。正式名称は "Namespace Cgroup" どうやら namespace と cgroup を連携させるものだったようで。しかし、2.6.37…

第 24 回山陰 ITPro 勉強会でコンテナについて話します

なんと開催 24 回の、活発で著名なすごい人が多数講師を務めている 山陰ITPro勉強会 に呼んでいただきました!!今までの勉強会と同様に Linux カーネルのコンテナ関連の機能についてと、LXC について話すだけでなく、Docker についても話します。Docker はそ…

linux 3.14.8, 3.15.1 での非特権コンテナ

(追記: 2014-07-01) この問題に関するパッチがマージされました。 Fix to work lxc-start with unprivileged containers on recent kernel · lxc/lxc@1bd3214 · GitHub Fix to work lxc-destroy with unprivileged containers on recent kernel · lxc/lxc@30…

技術評論社さんのサイトでLXCの連載をはじめました

LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社 技術評論社のサイトで LXC を題材にしたコンテナの記事の連載をはじめました。よろしくお願いいたします。このようなチャンスをくださった技術評論社さんありがとうござ…

Ubuntu 14.04 LTS での非特権コンテナ

(2014-07-06 追記してます) (2014-05-11 追記してます) (2014-04-24 追記してます)ついにリリースされましたね.Ubuntu の新しい LTS.これを目標に LXC 1.0 の開発は進められてきたわけで,きっと特に苦労する事もなく一般ユーザでのコンテナの作成と実行が…

Plamo Linux 5.2 での非特権コンテナ

Ubuntu はもうすぐ出そうなので出てから試すとして,Plamo 5.2 で非特権コンテナを試してみました.カーネルだけは自前で make してます (Plamo ユーザならカーネル再構築はインストール後のお決まりの仕事ですよ :-) $ uname -r 3.14.1-plamo64-karmaプロン…

『第3回 コンテナ型仮想化の情報交換会@大阪』を開催し『Linuxコンテナ入門』というお題で発表してきました

4/12 に大阪でコンテナに関する仮想化の勉強会を開催し,『Linux コンテナ入門』というお題で発表してきました.前日はDocker Meetup Tokyo #2で,最終の新幹線に飛び乗り,翌日午前から準備をして (前日,私がいない間に準備してくれて助かった!!),午後か…

Docker Meetup Tokyo #2 にちょっとだけ参加してきました

定員 100 名の所に 450 名くらいの参加登録が殺到した人気イベント,Docker Meetup Tokyo #2 に参加してきました.もう色々なイベントのまとめがされているのであまり書く意味もないですが (^_^;) @ten_forward そういえば、4/11 19:00〜Docker Meetup #2を…

(改訂版) docker 0.9 で導入された libcontainer の Namespace 関連の処理

先に書いたエントリ はそれなりにアクセスがあるようですが,実は結構デタラメで間違いがあることに気づいたので,改めて調べて書きなおしてみました.相変わらず Go シロートですので,このエントリも間違ってる可能性はありますので,興味のある方はご自分…

(内容おかしいので書き直し中) docker 0.9 で導入された libcontainer の Namespace 関連の処理

(2014-03-25) 書き直しました.このエントリも参考になる部分はあるので置いときます ^^; → (改訂版) docker 0.9 で導入された libcontainer の Namespace 関連の処理 - TenForwardの日記 (2014-03-25) このエントリは色々おかしいので書きなおし中です (201…

lxc コンテナの config から libvirt 用の定義を生成

libvirt 1.2.2 の新機能に bhyve: add a basic driver (Roman Bogorodskiy), add LXC from native conversion tool (Cédric Bosdonnat), vbox: add support for v4.2.20+ and v4.3.4+ (Jean-Baptiste Rouault), Introduce Libvirt Wireshark dissector (Yuto…

lxc 1.0.0 リリース!!

されました!! :-) LXC 1.0.0 release announcement

LXCの非特権コンテナ 〜 Ubuntu Trusty 編

(2014-04-19 追記) このエントリは古い情報ですので,Ubuntu 14.04 LTS での非特権コンテナ - TenForwardの日記 をご覧ください.lxc-1.0 も rc3 まで来ており,もうすぐリリースという感じはあるのですが,相変わらずパッチは多数投稿されており,正式版が…

LXC での非特権コンテナとダウンロードテンプレート

(2014-02-19 一部更新しています)予定ではもう lxc-1.0 の RC の段階だったはずですが,直前で大きな変更が多数マージされている関係で,まだまだ beta 扱いということで,相変わらず更新が激しく,いつになったら RC になるのか,と思う今日このごろの LXC …

LXC 1.0 までのマイルストーン

(2014-01-16 追記) 以下の予定が発表されてから,あまりにも多くの変更 (仕様レベルの変更,機能追加) がされたため,Version 表記は rc1 でなく beta2 になっています.download テンプレート,cgmanager 対応のコードもマージされています.今年もよろしく…

大阪でもコンテナ型仮想化の勉強会で盛り上がりましょう!!

春くらいに大阪でコンテナ型仮想化の勉強会を開催できれば良いな,と思って,atnd にイベントページを作成しました. 第3回 コンテナ型仮想化の情報交換会@大阪 (コンテナ型VMや関連するカーネル等の技術が話題の勉強会) : ATND 第 1 回の参加者が極端に集…

一般ユーザでの lxc コンテナの実行

(2014-04-19 追記) このエントリは古い情報ですので,Ubuntu 14.04 LTS での非特権コンテナ - TenForwardの日記 をご覧ください.カーネル/VM Advent Calendar 2013 - Qiita のために書いたエントリです.2 回も書く気はなかったけど,折角コンテナ関係のこ…

lmctfy を試す (1)

カーネル/VM Advent Calendar 2013 - Qiita のために書いたエントリです.(1) としましたが,(2) があるかどうかは未定です ^^;既にこのカーネル/VM Advent Calendar] はすごいネタが集まっているので,私も頑張って Namespace の実装の話でも書こうかと思っ…

lxc 『子の親殺し』とコンテナ内での cgroupfs のマウント

『第2回 コンテナ型仮想化の情報交換会@東京』 では時間の関係でお話できなかったことで一番気になっていることの補足を.@m_bird: #lxcjp 「コンテナからホストのシャットダウンができる」僕はこれを「子の親殺し」と呼んでいる。2013-10-05 13:40:04 via …

『第2回 コンテナ型仮想化の情報交換会@東京』を開催し『Linux コンテナ入門』というお題で発表してきました

(2013/10/13 追記) アンケートの結果を公開しました!! → アンケート結果]10/5 に東京でコンテナ型仮想化の勉強会を開催し,『Linux コンテナ入門』というお題で発表してきました.きちんと数えてませんが,100 名前後の参加だったでしょうか (もっと多い?)@m…

Linux 3.10 で memory cgroup に追加された Memory Pressure 通知機能

3.8 リリース後は,コンテナに関連する Namespace, cgroup について,大きな変更はありませんが,それぞれ細かい改良が加えられて進化はしています.3.10 では memory サブシステムに Memory Pressure 通知の機能が追加されました.従来からある eventfd を…

Plamo Linux 5.1 で docker

Plamo Linux は aufs をサポートしていますし,lxc パッケージもありますので,docker を動かすベースとしての必要条件は満たしています.そこで動かしてみましたよ. lxc パッケージをインストールしていない場合はインストールします.(lxc が動作するよう…

docker で 32bit コンテナイメージを作成する

(2013/10/09 追記) docker バイナリは static link されるようになっていますので以下の対応は不要です. 以下を読まなくてもここを読めば OK (^^) → 32-bit container on a 64-bit system · Issue #611 · docker/docker · GitHub lxc を使って x86_64 環境…

docker 初体験

2013/09/02 追記: docker -> コンテナ内の /sbin/init のバインドマウントの代わりに 0.6 からは docker -> /.dockerinit に変わってます.(従来通り /sbin/init の設定になってるヤツも実行可能になってる) -> Fix to "Inject dockerinit at /.dockerinit" …

第1回コンテナ情報交換会で『Linuxコンテナ最新情報』というお題で発表してきました

6/1 に 第1回コンテナ情報交換会 をまったりと神戸で開いてきました.そこでの資料です. https://speakerdeck.com/tenforward/linux-kontenazui-xin-qing-bao-2013-06-01 (Speakers Deck) https://guinan.ten-forward.ws/lxc-20130601/ (オリジナルの html …

Linux 3.8 の User Namespace 機能 (3)

3.8 で実装が完了した! ということで楽しみにしていたユーザ名前空間 (User Namespace) ですが,3.8 の時点ではカーネルのかなりの機能を無効にしないと有効に出来ない状態でした.これでは手元のカーネルをユーザ名前空間を有効にして make できないなあと…

util-linux の nsenter コマンド

util-linuxの 2.23 (現在 2.23-rc1) で nsenter なるコマンドが追加されてるみたいですね.lxc-attach と同様の事ができそうです,と思って試してみました. lxc-start でコンテナ起動# lxc-start -n test01 -d lxc-info で init の PID を調査# lxc-info -n…

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

ここに書いてあるのはカーネル付属のドキュメントに書かれてある事ですので,正確な情報はそちらをご参照ください. ;)前回 (Linux 3.8 で改良された memory cgroup (1) - TenForwardの日記) 試したように,Linux 3.8 からカーネルメモリに対して制限をかけ…

Linux 3.8 で改良された Namespace 機能と lxc-attach コマンド

以前から lxc には lxc-attach というコマンドが含まれていました.このコマンドは OpenVZ やその商用版の Virtuozzo にある vzctl exec というコマンドと同じ目的のもので,コンテナ外のホスト OS 上から直接コンテナ内のコマンドを実行するためのものです…