本を読む

読書やコンピュータなどに関するメモ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

第111回カーネル読書会に参加

カーネル読書会に向かう

 Linuxカーネルに関する勉強会の第111回カーネル読書会に参加してきました。

 今回のテーマは、前の週に開催されたLinuxCon Japanの話や、そこでもしばしば話題に挙がっていたDockerの話でした。

DockerでPaaSをつくる(@deeeet)

 Dockerで隔離環境を作るのが簡単になったという背景で、DockerベースのPaaSソフト3種類を紹介してくださいました。

dokku
いちばん有名。100行ぐらいのbashスクリプト。herokuと同じくgitでデプロイ。
building
dokkuと同じ感じで、より簡単。カレントディレクトリにあるソースを、Dockerfileからデプロイ。
Flynn
アプリというよりサービスを作るもの。サービスディスカバリとの2層構成。
  • Q: Dockerアプリのデータの永続化はどうするか。
  • A: よく話題に上る。ホストのディレクトリをマウントするという方法など。

LinuxCon Japanでボランティアをやるということ(小笠原さん)

 「LinuxCon Japan」のボランティアに参加した小笠原さんのレポートでした。ボランティアの仕事は、来場者受付からセッション進行、お弁当……などなど、たくさんあるけど、つまり、どうしたら参加者が快適になるかを考えることだとのこと。「イベントを楽しむこともボランディアの仕事」「聴きたいセッションの手伝いをすると、スピーカーさんとお話できる」「スピーカーの次に楽しいのがボランティア」という呼びかけでした。

Dockerを支える技術(中井さん)

 今回のメインイベント。もともと2時間コース用のネタを、圧縮して話してくださいました。

 まず、コンテナについての説明ですが、このへんは略。で、コンテナではディレクトリイメージを作るのが面倒で、そうしたディスクイメージを簡単にしてくれるのがDockerという説明でした。そのかわり、仮想マシンと違って、カーネルに依存する(/procや/sysを参照する)ようなアプリを動かすとか、ホストでSELinuxを有効にしていてコンテナがSELinuxを無視するとかだと問題になると。

  • Q: OpenVZに比べてのメリット
  • A: ディスクイメージを簡単に作れること。バージョニングも含めて
  • Q: カーネルの違いを吸収できるか?
  • A: カーネルABIは、なるべく仕様を変更しないことになっている
  • (会場よしおかさん)とはいえ結果として変更されることがよくある

 DockerではRed Hatが商用サービスをアナウンスしています。カーネルの違いの問題をどうするかということで、ひとつのやりかたとしては、「Red HatのDockerで動かすカーネルはこのバージョン」と決めてしまうこと。

 さらに、Red Hatでは、Dockerのホストに機能を絞ったAtomic Hostを予定しているそうです。

  • Q: Atomic Hostはどこまでの機能を? CoreOSのようにオーケストレーションなども?
  • A: 不明。geardなどを使って、ネットワーク管理に手を入れるのではないか、とは想像している。

 続いて、Dockerの仕組み的なキモであるファイルシステムの差分管理。かつてaufsを使っていたのを、現在ではDevice Mapper(DM)のシンプロビジョニングを使ったものにデフォルトを変更(選択式)。DMのシンプロビジョニングにある、Copy on Writeのスナップショット機能を使って実現しているそうです。DMのシンプロビジョニングというとLVMですが、LVMのスナップショットはDMのシンプロビジョニングを使っておらず、一方DockerはLVMを使わず独自にDMを操作しているそうです。

 ディスクイメージについては、JSONの管理情報を読んで独自にdm-setupで操作することもできるというワザも紹介されました。

  • Q: aufs対応のカーネルでは、現時点でDMとaufsのどちらがお勧めか。DMでリソースが開放されないという問題も聞いたが。
  • A(会場):Red Hat Summitで、DockerでのDM vs. aufs vs. btrfsの資料が出ていた。参考になるのでは。

 その次はNetwork Namespaceの話。Network NamespaceはOpenStack Neutronで、1台で複数のiptablesを動かすのに使われているそうです。で、Dockerでは仮想NICをホストとコンテナで作ってクロスケーブルで結んだような状態にしているとか。

 さらに、Network Namespaceは“ip netns”コマンドで操作できるという話から、後からコンテナにvethを追加してブリッジに直接接続する話、それをするスクリプトpipeworkの紹介などもありました。

  • Q: コンテナからホストのvethを経由すると、性能は
  • A: Dockerはいまのところ手軽さが売りなので、性能を気にする段階にないのではないか。性能を出すには、専用の物理NICを用意して直接割り当てるのがよい。

 最後に、cgroupとsystemdの話。RHELの実装では、Dockerコンテナを動かすとsystemdのunitが作られてcgroupが割り当てられ、プロセスはそのunitの配下に入るそうです。ただ、sytemdとcgroupの統合自体は、現在進行中とのこと。

  • Q: Red HatはなぜLXCでなくDockerで売る?
  • A: RHEL 7でLXCを正式サポートするにあたり、libvirtベースで似た位置づけのLibvirtSandboxを開発していた。Dockerがポピュラーになってきたので、Dockerに移行した。

 その他、会場では主にOS寄りの視点からの議論がいろいろ。ちなみに私は、LinuxCon Japanのクラウドパネルで「Dockerが成功したのは、OS側からアプリ側に視点を反転させた点」と語られた言葉が腑に落ちています。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/1238-8304059a

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。