タグ

ブックマーク / tenforward.hatenablog.com (14)

  • shiftfs (s_user_ns version) 試してみた - TenForward

    Open Source Summit Japan 2017 で聞いた話に shiftfs の話があって、興味を持ったので試してみました。この機能の前提機能なんかに関する前提知識に欠けているため、以下には間違いが含まれている可能性が大きいです。是非指摘を頂きたいと思います。試してみただけで内部の処理とかは書いてませんよw 下に関連情報を挙げておきます (こちらを直接見たほうがいいかも)。 Container Interfaces for Storage - Are We There Yet? (Open Source Summit の James Bottomley 氏のスライド) shiftfs: uid/gid shifting filesystem (s_user_ns version) (lwn.net) Unprivileged Build Containers (James Bo

    shiftfs (s_user_ns version) 試してみた - TenForward
    labunix
    labunix 2017/07/08
  • cgroup なのか cgroups なのか - TenForward

    割とどーでもいい話(でも気になってた人多いはずw) 以前、第4回のコンテナ勉強会でも質問が出たのですが、cgroup/cgroups という機能の正式な名称は cgroup なのか cgroups なのか、というのはよくわかりませんでした。 私は、英語って単数・複数をきちんと使い分けるし、cgroup は複数のサブシステム・コントローラが存在するので、海外の人は "cgroups" と複数形で使うんだろうなあと思ってました。機能自体を指しているのか、コントローラ群を含めて指しているのかって、曖昧な文脈も多いですし。 しかし、この論争にもついにピリオドが打たれました。カーネル付属文書の cgroup-v2.txt をご覧ください。 "cgroup" stands for "control group" and is never capitalized. The singular form i

    cgroup なのか cgroups なのか - TenForward
    labunix
    labunix 2016/04/28
  • シェルスクリプトで書かれた軽量コンテナ MINCS がすばらしい (1) - TenForward

    これはだいぶ前に書いたエントリです。MINCS作者による最新の解説があるのでそちらもご覧ください。 (2016-11-21追記) コンテナは使いたいけど、たくさんコンテナを起動すると結局それぞれのコンテナに対するセキュリティアップデートなどのメンテナンスは必要だし、コンテナ内独自のプログラムやライブラリ以外はホストと共有したいよね、って話が出てきたりします。みんな考えることは同じで、bind mount を使えば良いよね、って話はでてきてました。 こないだもブログで紹介した kazuho さんの jailing 私が LXC でも結構簡単にできるよ、っていう提案を兼ねて作った lxc-bind こないだのLinuxConでもDockerでたくさんのオプションを並べて、色々工夫して bind mount を使ってやってる発表もありました (Using Docker for existing

    シェルスクリプトで書かれた軽量コンテナ MINCS がすばらしい (1) - TenForward
    labunix
    labunix 2015/07/04
  • コンテナの歴史と Linux カーネルのコンテナ関連機能についての割とどうでも良い愚痴 - TenForward

    この記事は Linux Advent Calendar 2014 の 18 日目のエントリとして書いています。 Docker が盛り上がって、Docker が使ってる「コンテナ」という技術が盛り上がって、Doker の解説がそこら中にあふれるようになったので「Docker? そんなの FreeBSD が jail でずっと前からできてたぞ」というちょっと的外れな発言を見かけることは少なくなりました。一方でコンテナの歴史を追って見る的な企画をみかけるようになりました。 みかけた歴史の解説でいくつか「ちょっと違うやろー」というものを見かけたのでここで愚痴ります。 コンテナの歴史として大体書かれているのが 1979 年 chroot(2) システムコールの Version 7 Unix への導入 1983 年 chroot(2) システムコールの 4.2BSD への導入 2000 年 FreeB

    コンテナの歴史と Linux カーネルのコンテナ関連機能についての割とどうでも良い愚痴 - TenForward
    labunix
    labunix 2014/12/22
  • Linux 3.16 から試せる cgroup の単一階層構造 (1) - TenForward

    Linux 3.16 からカーネルソースツリーの Documentation/cgroups の下に一つ文書が増えているのに気づいた方もいらっしゃるのではないでしょうか。cgroupの使い方が大幅に変わる変更がマージされています。増えた文書は以下。 Documentation/cgroups/unified-hierarchy.txt (3.16.1) 今までとの互換性 とは言ってもいきなり 3.16 からドーンと変わっているわけではなく、普通に使うには今までと何も変わりません。このドーンと変わっているのを体験するには cgroupfs を以下のようにマウントする必要があります。 # mount -n -t cgroup -o __DEVEL__sane_behavior cgroup /sys/fs/cgroup/そう、cgroupをマウントするときのオプションとして '__DEVEL_

    Linux 3.16 から試せる cgroup の単一階層構造 (1) - TenForward
    labunix
    labunix 2014/08/26
  • cgmanager を試す (2) - TenForward

    cgmanager を試す (1) - TenForwardの日記 の続編.Ubuntu 14.04 LTS で LXC をインストールしたときに一緒に入る cgmanager を使ってみます.前回試してからだいぶ変わっている感じがしますね. cgmanager を試すというより,cgmanager サポートでコンパイルされ,cgmanager が起動した状態での LXC 1.0 の cgroup の色々です. Ubuntu 14.04 の cgroupfs OpenSSH server のみインストールした Server 版の cgroup を見てみると,まず LXC をインストールしても cgroup-lite パッケージ *1がインストールされなくなり cgmanager が取って代わっているのがわかります. /sys/fs/cgroup の下もすっきりしていて root@lxcte

    cgmanager を試す (2) - TenForward
    labunix
    labunix 2014/04/20
  • Ubuntu 14.04 LTS での非特権コンテナ - TenForward

    (2014-07-06 追記してます) (2014-05-11 追記してます) (2014-04-24 追記してます) ついにリリースされましたね.Ubuntu の新しい LTS.これを目標に LXC 1.0 の開発は進められてきたわけで,きっと特に苦労する事もなく一般ユーザでのコンテナの作成と実行が出来るのだろうなあと思って試してみました.結論から言うと出来ました.なので特にこのブログエントリを読む事なく作る事が出来るのでお急ぎの方はこの後読まずにさっさとやってしまいましょう :-D 過去,Ubuntu 上で 一般ユーザでの lxc コンテナの実行 - TenForwardの日記 LXCの非特権コンテナ 〜 Ubuntu Trusty 編 - TenForwardの日記 と 2 度ほどためしていますが,徐々に簡単になって,ついに完成型になりました. まず Ubuntu 14.04 LTS

    Ubuntu 14.04 LTS での非特権コンテナ - TenForward
    labunix
    labunix 2014/04/20
  • LXC での非特権コンテナとダウンロードテンプレート - TenForward

    (2014-02-19 一部更新しています) 予定ではもう lxc-1.0 の RC の段階だったはずですが,直前で大きな変更が多数マージされている関係で,まだまだ beta 扱いということで,相変わらず更新が激しく,いつになったら RC になるのか,と思う今日このごろの LXC です.(2014-01-28 追記: 書いた直後に beta3 になっていたので,RC はまだ先ですね :-) ダウンロードテンプレート さて,その最近マージされた大きな変更の一つが,ダウンロード用テンプレートです.従来,LXC では lxc-create から呼び出す各ディストリビューション毎のテンプレートが存在し,これを使って lxc-create を実行した時に,パッケージを落としてきたり,必要な設定をしたりしてコンテナの rootfs イメージ (ディレクトリツリー) を作成していました. しかし,この

    LXC での非特権コンテナとダウンロードテンプレート - TenForward
    labunix
    labunix 2014/01/27
  • libvirt の lxc ドライバを久々に試す - TenForward

    当に試しただけ.ほぼ自分用のメモです. まあ,結論としては,まだ libvirt でコンテナを起動する意味はあまりないなあ,というところです. Ubuntu 13.04 on Ubuntu 13.04 Ubuntu の文書 だといくつか注意点が挙がってますね.主に Linux Containers との比較という意識で. 設定ファイルが libvirt のものになる.当たり前.lxc のやつは使えません コンテナを作成するツールはないから自分で作ってね デフォルトではコンテナに /dev/console がない コンテナのリブートと完全なシャットダウンはまだサポートされていない (完全なシャットダウンってなんだ?) それでもさすがに Ubuntu.やはりいちばんお気軽に試せます. 作成は lxc-create を使えば OK です.# lxc-start -n ct01 -t ubunt

    libvirt の lxc ドライバを久々に試す - TenForward
    labunix
    labunix 2013/06/28
  • docker 初体験 - TenForward

    2013/09/02 追記: docker -> コンテナ内の /sbin/init のバインドマウントの代わりに 0.6 からは docker -> /.dockerinit に変わってます.(従来通り /sbin/init の設定になってるヤツも実行可能になってる) -> Fix to "Inject dockerinit at /.dockerinit" by sridatta · Pull Request #1267 · docker/docker · GitHub 先日の第1回コンテナ情報交換会で紹介していただいた docker ですが,何かにわかに盛り上がりだしましたね.やはり著名人が話題にすると違いますな :-).というわけで急遽試してます.まだまだ分からない事が多いけど,とりあえずメモ. docker を使ってどうの,という世間一般の興味からズレて,docker がどう l

    docker 初体験 - TenForward
    labunix
    labunix 2013/06/24
  • Linux 3.8 で改良された Namespace 機能と lxc-attach コマンド - TenForward

    以前から lxc には lxc-attach というコマンドが含まれていました.このコマンドは OpenVZ やその商用版の Virtuozzo にある vzctl exec というコマンドと同じ目的のもので,コンテナ外のホスト OS 上から直接コンテナ内のコマンドを実行するためのものです.なぜ attach なのかというと,実行しようとするプロセスを既に存在する名前空間 (Namespace) に参加させるためのモノだからですね (コマンド名から動きが想像しにくい気がしますが :p). このような目的のコマンドはコンテナ環境を運用しようとすると必須のものと言えます.例えばコンテナを起動するのはホスト上から lxc-start コマンドで実行できますが,シャットダウンコマンドはコンテナ内から実行しないといけません (もちろん外から強制終了は可能ですが).その他,運用の色々な場面でコンテナ外

    Linux 3.8 で改良された Namespace 機能と lxc-attach コマンド - TenForward
    labunix
    labunix 2013/03/03
  • Linux 3.8 の User Namespace 機能 (1) - TenForward

    コンテナを実現するのにカーネルに必要な機能としては大きく分けて 名前空間 リソース制限 があります. リソース制限は cgroup として実装されています (ここではこの話は置いときます). 名前空間は,その対象となる空間と他の空間を分ける機能を持っています.コンテナを作る場合,それぞれの空間で独立した uid/gid やネットワークインターフェースが存在しなければいけませんので,その機能を実現しています.既に Linux Kernel には色々な名前空間が実装されており,未実装でコンテナを安全に使うために必須と言われていたのが User Namespace (ユーザ名前空間) です.この実装は徐々に実装されてきていましたが,影響範囲が大きく,実装も難しいため実現していませんでしたが,ようやく kernel 3.8 で実装が完了するようです. 今までもコンテナごとに /etc/passwd

    Linux 3.8 の User Namespace 機能 (1) - TenForward
    labunix
    labunix 2013/02/14
  • Debian lenny の Domain-0 に CentOS 5 の Domain-U を構築 - TenForward

    別に難しい話じゃないと思いますが,xen-tools を使ってやったので,一応メモ. 設定ファイルの作成 45c45 < # dir = /home/xen - > dir = /home/xen 83c83 < install-method = debootstrap - > install-method = rinse 133c133 < dist = etch # Default distribution to install. - > dist = centos-5 # Default distribution to install. 163,165c163,165 < # gateway = 192.168.1.1 < # netmask = 255.255.255.0 < # broadcast = 192.168.1.255 - > gateway = 192.168.1.1

    Debian lenny の Domain-0 に CentOS 5 の Domain-U を構築 - TenForward
    labunix
    labunix 2012/07/28
  • Linux 3.3 の新機能 Per-cgroup TCP buffer limits - TenForward

    Linux 3.3 の cgroup 関連新機能 - TenForwardの日記 で少し紹介した Per-cgroup TCP buffer limits を軽いノリで試してみました. (2012/04/12 追記) この機能,文字通り TCP の時のバッファサイズの制限を行うものですが,root cgroup (メモリコントローラの cgroup filesystem のルートディレクトリ) では制限は効きません.こんな機能使わない,という人がパフォーマンス劣化を起こさないための実装のようです.(2012/04/12 追記ここまで) グループを登録します.ここでは "test" というグループ.メモリコントローラ以下です.# mkdir /sys/fs/cgroup/memory/test # ls /sys/fs/cgroup/memory/test cgroup.clone_chil

    Linux 3.3 の新機能 Per-cgroup TCP buffer limits - TenForward
    labunix
    labunix 2012/04/18
  • 1