TenForward

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

ドライブレコーダー取り付け

DIY

数年に一度の DIY カテゴリー,意外にアクセス数多いんです (コンテナのエントリよりよっぽどw).というわけで久々に.ピンポイントな話すぎてほとんどの人に役に立たないし,同じような情報は検索すると出てくるのですがねw車は Audi A3 (8Pという先代(2代…

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…

cgmanager を試す (1)

cgmanager についてはドキュメントがほぼないため,以下には間違いが含まれている可能性があります.見つけたら指摘してくださいね.Linux Containers - CGManager - Introduction は名前通り cgroup を管理するソフトウェアです.cgroup の管理を D-Bus 経…

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 …

[Plamo] (メモ) Plamo Linux で非特権コンテナ

lxc-create までは確認. shadow-4.1.5.1 に userns 関連のパッチを当ててインストール (Ubuntu の patch を全部当ててみた) lxc-usernsexec とかで上記パッチで生成されるコマンドを使用する 何も考えずに全部のパッチを当てたので /etc/login.def の FAIL_…

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 の実装の話でも書こうかと思っ…

libvirt の lxc ドライバを Plamo Linux 5.1 で試す

前回の続きです.毎度ですが,あまり大した内容ではありません.Ubuntu Saucy だと Ubuntuサーバーガイドの仮想化のLXCページにあるように Configuration is stored in xml format There no tools to facilitate container creation By default there is no …

Linux 3.12 と lxc

以下は 3.13, 3.12.9以降で動くようになっています!! (最後に追記してます)Linux 3.12 がリリースされていますね.今回で xfs への User Namespace の実装が完了して,xfs を有効にしたまま User Namespace が使えるようになっていますので,とりあえずコン…

CRIU (3)

(ちょっと雑なのであとで書き直すかも?)前回,CRIU を試してから丁度 1 年.前回はカーネルは 3.7 ベースで専用のもの,CRIU は 0.2 の頃でした.実はこの時も LXC コンテナで dump/restore するのを試したのですが,やり方が悪かったのか,まだ機能的に無理…

Plamo Linux のススメ (2)

連休中なので技術的要素の全くないお話を (酔っぱらいだし) :)lxc 的 Plamo Linux のススメ - TenForwardの日記 の続編.serverspec というサーバ設定・動作の継続的なテストを行える素晴らしいツール *1 が最近話題ですが,私も手元で管理する Plamo Linux …

lxc 的 Plamo Linux のススメ

連休中なので技術的要素のあまりないお話を :)私が Linux を使い始めた頃といえば,Distribution は Slackware Linux で,そこに JE という日本語環境を整えるパッケージを集めたものを追加でインストールするのが主流でした.そこに現れたのが? Plamo Linux…

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 が動作するよう…

Plamo Linux 5.1 で vagrant-lxc を使う

(2013-10-30追記) lxc 1.0 の開発が進み,Plamo の lxc パッケージも 0.9.0 から 1.0 開発版になったのに伴い,vagrant-lxc は動かなくなっていましたが,vagrant-lxc のバージョンアップでまた動くようになっています.とりあえず手元では vagrant-lxc 0.6.…

PID Namespace 内の reboot システムコール

lxc-devel ML をなんとなく眺めていたら "On any recent kernel, reboot syscall from inside a non-init pid-ns will not reboot the host." なんて書いてありました.ほほぅ.というわけで調べてみると kernel/sys.c にありました. SYSCALL_DEFINE4(reboo…

Plamo Linux 5.1 で vagrant は vagrant-kvm の方が楽だった

(2014-01-15 追記) Vagrant 1.4 系だとまだ vagrant-kvm はちゃんと動かないようです.ご参考さっき『Plamo Linux 5.1 で vagrant を Libvirt Provider 経由で使う - TenForwardの日記』って書いたばっかりなのに,次は vagrant-kvm っての試してみようかと…

Plamo Linux 5.1 で vagrant を Libvirt Provider 経由で使う

(追記)こちらのエントリの方法の方が断然オススメです!!久々の更新なのに,今回も公式文書にある通りにやったら出来た,程度なので相変わらず情報が少ないです... (長いわりにねえ) :p最近何か色々な所で何かやろうとすると「vagrant を使います」みたいな記…

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 環境…

libvirt の lxc ドライバを久々に試す

本当に試しただけ.ほぼ自分用のメモです.まあ,結論としては,まだ libvirt でコンテナを起動する意味はあまりないなあ,というところです. Ubuntu 13.04 on Ubuntu 13.04 Ubuntu の文書 だといくつか注意点が挙がってますね.主に Linux Containers との…

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 機能 (4)

前回で 3.9 kernel での準備が出来たので,今回は少しだけユーザ名前空間を体験してみました.なお,今回の評価はもうすぐ新しいバージョン 5.1 がリリース予定の Plamo Linux 5.1beta1 相当の環境上で行っています(宣伝).ここに自前でビルドした 3.9 カー…

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 上から直接コンテナ内のコマンドを実行するためのものです…

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

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

Linux 3.2 の Thin Provisioning (3)

Linux 3.2 の Thin Provisioning (2) - TenForwardの日記の続編.ついこないだ試したと思ったら,試したのってもう 1 年前なことに気づき,時間の経つのが早い事に愕然としています... (>_既に 3.8 kernel がリリースされたのに「何が Linux 3.2 だ」と思わ…

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) とホス…

CRIU (2)

通信中のプロセスを dump して restore してみます.CRIU (1)] の時と同じく SD 誌 2012/11 月号の内容とほぼ変わりません. まずは適当に wget などで少し時間のかかるものを取得してみます.wget http://example.com/plamo64-1.0_dvd.iso dump を実行しま…

CRIU (1)

CRIU とは "Checkpoint Restart In Userspace" で Linux のプロセスの状態を保存して停止させ,また同じ状態で再開させる機能 (の実装) の事です.面白そうな機能なので試してみました.なお,丁度 技術評論社から出ている Software Design 誌の 2012 年 11 …

Ubuntu 12.04 の lxc (1)

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

ext3, 4 のジャーナルファイルのデフォルトのサイズ

e2fsprogs にこんなコードが. /* * Find a reasonable journal file size (in blocks) given the number of blocks * in the filesystem. For very small filesystems, it is not reasonable to * have a journal that fills more than half of the filesys…

Linux 3.3 の新機能 Network priority cgroup (2)

前回,Linux 3.3 の新機能 Network priority cgroup - TenForwardの日記で行った Network priority cgroup を久々に調べていました.調べたのはこの優先度の設定がどこで設定されるか?って所ですが,この機能のコミットは結構シンプルなので,すぐにわかり…

Linux 3.3 の新機能 Per-cgroup TCP buffer limits (3)

Linux 3.3 の新機能 Per-cgroup TCP buffer limits (2) - TenForwardの日記 の続編.かなり間が開いてしまって,自分でも忘れかけてます.前回と同様に,カーネルのコードを読んだりしていますが,私はその辺りの知識は殆どありませんので,間違いがある場合…

Linux 3.3 の新機能 Per-cgroup TCP buffer limits (2)

(2014-03-06 追記) この部分のコード,sysctl パラメータ経由で TCP buffer に対して制限をかけるというコードはうまく動かないようで Linux 3.13 で削除されています.これがなんか値が合わないなあ,ってなってた原因ですかね? (新しいコード見てないので…

Linux 3.3 の新機能 Per-cgroup TCP buffer limits

Linux 3.3 の cgroup 関連新機能 - TenForwardの日記 で少し紹介した Per-cgroup TCP buffer limits を軽いノリで試してみました. (2012/04/12 追記) この機能,文字通り TCP の時のバッファサイズの制限を行うものですが,root cgroup (メモリコントローラ…

Linux 3.3 の新機能 Network priority cgroup

Linux 3.3 の cgroup 関連新機能 - TenForwardの日記 で少し紹介した 3.3 の新機能である Network priority cgroup を簡単に試してみました.net_prio に関連するのは以下のうち, $ ls /sys/fs/cgroup/net_prio/ cgroup.clone_children cgroup.procs net_pr…

Linux 3.3 の cgroup 関連新機能

Linux 3.3 が出たので入れてみました.とりあえずいつものように cgroup 関係の新機能を.この辺りですかね. CONFIG_CGROUP_MEM_RES_CTLR_KMEM CONFIG_NETPRIO_CGROUPとりあえずメモリコントローラ関連のパラメータとして $ ls /sys/fs/cgroup/memory/*kmem…

Plamo64-1.0 で VMware Player 4.0.2

最近 libvirt 経由の KVM で楽々,という感じでしかデスクトップで使っている Plamo Linux 上では仮想マシンは使っていませんでしたが,ML で質問があったのをきっかけに試してみました.ハマり所満載ですが,一応動きましたのでメモしておきます. 前提 Pla…