タグ

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

  • Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward

    Hosting Casual Talks #5 題に入る前に、このブログエントリのネタを発表してきた勉強会の感想を。 ホスティング業界に関わるエンジニアが カジュアルに 情報交換をするという、全員発表型の勉強会 "Hosting Casual Talks #5" に参加してきました。飲みながら技術について情報交換できる カジュアルな 勉強会ではありますが、内容が全く カジュアルじゃない!! connpass.com ひとりあたり10 or 15分の LT サイズの時間割り当てなのですが、皆さんちゃんと解決したい問題があり、仮説を立て、検証して、考察すると言ったストーリー性のあるスライドになっていたり、問題を解決するためにコード書きました、こういうの作りましたというような、とても LT サイズに収まるものではなく、全員持ち時間はどこへやら、ガッツリと 6 時間、ガチな内容がひたすら続くなか

    Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
    hiroyukim
    hiroyukim 2019/03/24
  • aufs を使った一般ユーザ権限で起動するコンテナ - TenForward

    LXC ではコンテナのクローンを行う際に色々なストレージバックエンドの特徴を生かしたスナップショットクローンを行えます。この辺りは 連載の第 19 回〜 22 回 辺りで詳しく解説しています。 今まで、非特権LXCコンテナでストレージバックエンドの特徴を生かしたスナップショットクローンは、btrfs か overlayfs でしか行えませんでした。 先日、私の送ったパッチで aufs を使ったスナップショットクローンが一般ユーザ権限でもできるようになりました。 aufs: Support unprivileged clone, mount · lxc/lxc@31a882e · GitHub Support unprivileged ephemeral container using aufs · lxc/lxc@dc80aa9 · GitHub 前者は liblxc 側の変更で lxc-

    aufs を使った一般ユーザ権限で起動するコンテナ - TenForward
    hiroyukim
    hiroyukim 2015/07/07
  • シェルスクリプトで書かれた軽量コンテナ 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
  • 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
  • overlayfs と LXC 非特権コンテナの snapshot によるクローン - TenForward

    kernel に入るぞ、と言われつつ入ってない overlayfs。いつですかね? なかなか凝ったことを試す時間が取れない今日このごろ、非常に薄い内容のエントリです。 (2014-05-15 追記) LXC では、ファイルシステムの機能を利用した snapshot による clone をサポートしています。しかし、非特権コンテナで clone を作成する場合、どうしても通常の rsync による clone になってしまいます。しかし、Ubuntu のカーネルだと overlayfs が利用可能で、非特権コンテナの場合でも使用可能です。一般ユーザが overlayfs の操作が可能ということでなく、User Namespace 内の root の権限で overlayfs のマウントが可能になっているためです。(追記終わり) (2014-10-08 追記) 今はオプションで "workdi

    overlayfs と LXC 非特権コンテナの snapshot によるクローン - TenForward
    hiroyukim
    hiroyukim 2014/05/15
  • cgmanager を試す (1) - TenForward

    cgmanager についてはドキュメントがほぼないため,以下には間違いが含まれている可能性があります.見つけたら指摘してくださいね. Linux Containers - CGManager - Introduction は名前通り cgroup を管理するソフトウェアです.cgroup の管理を D-Bus 経由で行います.主に LXC からの使う事を考えて作られています.開発は Github 上で行われています. 現在,Linuxcgroup の実装は再構築が進んでいて,将来的には今のようにお気軽に誰でも cgroupfs 以下にディレクトリを作ったりするものではなくなるようです (→ Linux カーネルのすべて: cgroup の再設計 を参照).そしてシステム上には 1 つだけ cgroup を管理するようなソフトウェアが実行されるようになる,という風な事が考えられている

    cgmanager を試す (1) - TenForward
  • LXCの非特権コンテナ 〜 Ubuntu Trusty 編 - TenForward

    (2014-04-19 追記) このエントリは古い情報ですので,Ubuntu 14.04 LTS での非特権コンテナ - TenForwardの日記 をご覧ください. lxc-1.0 も rc3 まで来ており,もうすぐリリースという感じはあるのですが,相変わらずパッチは多数投稿されており,正式版が出そうな感じがしません.どうなるのかな? Ubuntu の Trusty の開発版 + lxc の daily build で非特権コンテナを試してみました.ここは日替わりで動作が変化していますので,お読みになった時点では違う動きがあるかもしれませんが,ひとまず楽に動くようにはなっていますので紹介してみます. lxc インストール まず Ubuntu Trusty 環境を準備します. LXC の daily builds のリポジトリを登録します sudo add-apt-repository p

    LXCの非特権コンテナ 〜 Ubuntu Trusty 編 - TenForward
  • Linux 3.12 と lxc - TenForward

    以下は 3.13, 3.12.9以降で動くようになっています!! (最後に追記してます) Linux 3.12 がリリースされていますね.今回で xfs への User Namespace の実装が完了して,xfs を有効にしたまま User Namespace が使えるようになっていますので,とりあえずコンテナ関係の機能のカーネルへのここしばらくの実装の大きなトピックが完了というところでしょうか. が, fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks という修正が影響して lxc-attach が動かなくなっています. lxc-devel ML の関連スレッド つまり lxc-attach は fork して,子供が setns して目的の Namespace に attach した後 clone(CLONE_PA

    Linux 3.12 と lxc - TenForward
    hiroyukim
    hiroyukim 2014/01/31
  • lxc 『子の親殺し』とコンテナ内での cgroupfs のマウント - TenForward

    『第2回 コンテナ型仮想化の情報交換会@東京』 では時間の関係でお話できなかったことで一番気になっていることの補足を. @m_bird: #lxcjp 「コンテナからホストのシャットダウンができる」僕はこれを「子の親殺し」と呼んでいる。 2013-10-05 13:40:04 via YoruFukurou そう! 『子の親殺し』(© @m_bird さん) !! 「コンテナからホストのシャットダウンができる」という件,Linux カーネルから見ると,User Namespace で解決という話ですが,現実問題,XFS への User Namespace の実装が 3.12 になりそうなので,現状のディストリビューションではこの問題がカーネル的には解決できません. 上記 Tweet の Reply に少し書いてるのですが,その辺りを少し. reboot() システムコール コンテナからホス

    lxc 『子の親殺し』とコンテナ内での cgroupfs のマウント - TenForward
  • 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
    hiroyukim
    hiroyukim 2013/06/25
  • CRIU (2) - TenForward

    通信中のプロセスを dump して restore してみます.CRIU (1)] の時と同じく SD 誌 2012/11 月号の内容とほぼ変わりません. まずは適当に wget などで少し時間のかかるものを取得してみます.wget http://example.com/plamo64-1.0_dvd.iso dump を実行します.ここで "--tcp-established" オプションを追加します.crtools dump --tcp-established -t 10588 -j すると wget のプロセスは強制終了されます. ここで iptables を見てみると,通信中のホストとの間に DROP のルールが設定されているのがわかります.# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source des

    CRIU (2) - TenForward
    hiroyukim
    hiroyukim 2013/06/03
  • CRIU (1) - TenForward

    CRIU とは "Checkpoint Restart In Userspace" で Linux のプロセスの状態を保存して停止させ,また同じ状態で再開させる機能 (の実装) の事です.面白そうな機能なので試してみました. なお,丁度 技術評論社から出ている Software Design 誌の 2012 年 11 月号 の連載「Linuxカーネル観光ガイド」のテーマが「【8】checkpoint/restoreとLTO」というもので,そこに書いてある事とほぼ同じです.きっとそちらをご覧になる方が役に立つかと. この機能に必要な実装は,まだカーネル側の機能もバンバン実装中ですし,ツールの方も開発がすごい勢いで進んでいます.現時点の stable カーネルでは動きません. 以下は Plamo-5.0(x86_64) の現時点での最新上で試しました. インストール CRIU が動く環境の準備

    CRIU (1) - TenForward
    hiroyukim
    hiroyukim 2013/06/03
  • 第1回コンテナ情報交換会で『Linuxコンテナ最新情報』というお題で発表してきました - TenForwardの日記

    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 資料) どちらも同じですが html 資料は発表用なので 1 ページが一気に表示されない所があったりするのでうっとうしいかも Speakers Deck は資料中のリンクがクリックできないので PDF をダウンロードするのが一番かも? (ココには埋め込めないのね... > Speaker Deck) Slideshare は Oops で変換できず X-( 資料中の疑問 Update 他にもあったかも? l

    第1回コンテナ情報交換会で『Linuxコンテナ最新情報』というお題で発表してきました - TenForwardの日記
    hiroyukim
    hiroyukim 2013/06/03
  • Linux 3.8 の User Namespace 機能 (3) - TenForward

    3.8 で実装が完了した! ということで楽しみにしていたユーザ名前空間 (User Namespace) ですが,3.8 の時点ではカーネルのかなりの機能を無効にしないと有効に出来ない状態でした.これでは手元のカーネルをユーザ名前空間を有効にして make できないなあと思って放置していました (テスト用の環境作れよ > オレ :p).なので 前回 までは lxc の実装からユーザ名前空間の機能を追ってみるという企画になっていました. ちなみに 3.8 の時点でオフにする必要があったのは以下 USER_NS が依存している UIDGID_CONVERTED の関係でした. config UIDGID_CONVERTED # True if all of the selected software conmponents are known # to have uid_t and gid_t

    Linux 3.8 の User Namespace 機能 (3) - TenForward
    hiroyukim
    hiroyukim 2013/05/07
  • Linux 3.8 で改良された memory cgroup (1) - TenForward

    Linux 3.8 で User Namespace 機能が入った!と浮かれていて,cgroup のメモリコントローラに入った改良に全く気づいていませんでした (^_^;) 他に freezer サブシステムにも改良加わってますよ (階層化かな). この辺りでしょうか. KS2012: memcg/mm: Improving kernel-memory accounting for memory cgroups [LWN.net] ちょっと対象となるコミットとかはまだ見れてません. さて,早速試してみました.当に試してみただけなので流行の最先端を行く方なら読むよりやったほうが早いと思います :-) まずはいつも通り新しい機能を有効にしてカーネルの再構築です. -> General setup -> Control Group support -> Resource counters ->

    Linux 3.8 で改良された memory cgroup (1) - TenForward
    hiroyukim
    hiroyukim 2013/03/22
  • 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
    hiroyukim
    hiroyukim 2013/03/01
    #lxcjp
  • Linux 3.2 の Thin Provisioning (1) - TenForward

    Linux 3.2 で入った Thin Provisioning を試してみました.Device Mapper 経由で使います. kernel 付属文書には dmsetup を使った例が載っていますが,そこにも実際は LVM2 とかのツールを使うことになるよ,みたいなことは書かれていますので,見てみたところ,LVM2 でも既に実装されているようでしたので,そちらで試しています.と思っていたら,2012/01/30 付けで LVM2 2.02.89 がリリースされていますね. 以下は kernel 3.2 に更新した Plamo64-1.0 (on kvm) で試しています. LVM2 の cvs 先端を取得.インストール.今なら前述の通り 2.02.89 のソースを取得して make します.(この後も改良が続きそうですから ChangeLog で確認してリポジトリから取得した方が良いかも

    Linux 3.2 の Thin Provisioning (1) - TenForward
    hiroyukim
    hiroyukim 2013/02/19
  • 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
    hiroyukim
    hiroyukim 2013/02/14
  • Linux Kernel の User Namespace 機能と lxc (1) - TenForward

    色々な Namespace の機能はコンテナを動かす上で重要な機能なのですが,Linux kernel でこれから実装される予定の機能がいくつかあります.そのうちの結構重要なのが User Namespace です. 今の lxc コンテナは,起動するとコンテナ内の root (uid:0) とホスト上の root が同じ権限を持つユーザなので,コンテナからホストに対して色々出来るとか,セキュリティ的にマズい事ができてしまう可能性があります.これを,コンテナ内では普通の root でありながら,ホスト上で見ると 0 以外の uid を持つユーザに見えるというような機能が User Namespace です (たぶん ^^;). この辺りの詳細は以下をご参照ください. UserNamespace - Ubuntu Wiki User namespaces – available to pla

    Linux Kernel の User Namespace 機能と lxc (1) - TenForward
    hiroyukim
    hiroyukim 2012/11/02
  • 評価を稼げと言ってる人の言う事ではない - TenForward

    こんなブログエントリを見つけました. お金より「評価」を稼げる仕事を!『評価経済社会』 お金より「評価」を稼げる仕事を! これはそうかも知れません.評価を受けるような良い仕事をすればお金もついてくるかもしれませんし.ただ,書き出しがひどい. 最近、お金って、あってもあんまり使い道ないですよね。だって音楽映画は、ネットでタダで拾えちゃう。 私は映画は別に好きではありませんが,音楽はかなり好きですから,こういうことを言われると不快です.自分がちゃんと評価した音楽にはちゃんとお金を払ってます.試聴するためにネット上のコンテンツを使う事はあっても.映画が好きな人にとってもそうではないでしょうか?音楽映画も正当な手段で手に入れる事が正当に評価することにつながると思います.良い音楽だけどネットでタダで手に入るからそれでいいや,って?糞ですな.お金だけでないですが,お金を払うということもそのものを正

    hiroyukim
    hiroyukim 2012/04/13
    もとのブログを見た限りでは既存のものにぶら下がっている人の意見かなぁというきはした。こういう生き方は僕は好きじゃないがこういう人もいるんだな。メインストリームじゃないなら。。
  • 1