Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Linux container update

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Linux container update

  1. 1. Linux Container Update KOSAKI Motohiro
  2. 2. Who am I • Linux メモリ管理コア開発者 • MM Summit(上位20人のコア開発者会議)5 年連続招待 • Ruby core committer • コミット率TOP10コミッタのうちの一人 • ボストン在住、Red Hat常駐 • Herokuは使ったことがありません
  3. 3. LSF/MM 2014 photo
  4. 4. What is Container • むつかしい言い方をすると Operating system– level virtualization • FreeBSD jail が嚆矢 • Containerという用語を最初に使い始めたの はSolaris • リソース(CPU, memory, IO, etc)の分離 + 名前 空間(pid, IP adress, chroot)の分離 + (SELinux) • ここ二年ぐらいで急速に注目度アップ
  5. 5. Linux v2.6.32 • 2009年12月リリース • Ubuntu 10.04やRHEL6で採用。広く使われている • Linuxは年4回リリース • 20バージョン近く古く、さすがにつらい • 2014年はUbuntu 14.04やRHEL7といった次世代 ロングサポート製品が出る年 • 最近(ここ5年ぐらい)のLinuxでのコンテナアップ デートを語るチャンス
  6. 6. Containers new features • 2.6.35: oom notifier • 3.0 remove the ns_cgroup • 3.3 per cgroup tcp buffer limit • 3.6 hugetlb cgroup • 3.10 memory pressure notification • 3.14 proper userns • 3.16? memory cgroup low-limit • 3.16? memory cgroup Kernel memory limit
  7. 7. OOM Notifier • OOM(out of memory) が起きた時に、いきなり 即死させるのではなく通知してくれる。 • ユーザー空間でOOM Managerを作るための 仕組み • OOMが起きた時に予測不可能な事態になる のを防ぐ
  8. 8. remove the ns_cgroup • 誰も使ってなかった機能だからどうでもいい • 名前空間はclone(2), unshare(2) syscallを使う べきということになった
  9. 9. per cgroup tcp buffer limit • TCPバッファサイズはWebアプリチューニング の最重要パラメタの1つ • 大きくするとスループット上がる • 小さくするとレイテンシ上がる • ちゃんと設定しないとbufferbloat問題 • いままではPaaSではチューニング不可能だっ た
  10. 10. hugetlb cgroup • 大きなサイズのページ(2M, 1G)のサイズを cgroupから扱うことが出来る • ほとんどのデータベースでHugetlbを使うと性 能が上がる • いままで、per cgroupの制限が出来ず、 disableにせざる得なかった
  11. 11. memory pressure notification • メモリが足りなくなってきた時に、アプリケー ションに通知がされる仕組み • アプリケーションの対応が必要 • たまに誤爆する
  12. 12. userns • UID, GIDのnamespace(ns) • 2.6.23から入っているがつい最近(3.14)まで壊 れていた • カーネルの中に名前空間を意識せずUID処 理をしてる箇所多数 • これが動かないとセキュリティの担保が大変
  13. 13. memory cgroup low-limit • いわゆるメモリ最低保証 • 自分以外のプロセスが暴れたときに、プロセ スがスワップアウトしまくると悲しい(;_;)
  14. 14. memory cgroup: Kernel memory limit • 現状のmemory cgroupはプロセスメモリーの みを管理 • 垢BAN覚悟なら、pipeなど使ってlimitを大きく 超えたメモリ量を確保して、サーバーをクラッ シュさせることも可能 • 重要サービスにPaaSは使えないというFUD • Coming soon
  15. 15. LXC • コンテナを操作するためのツール群 • 2014/2/20 LXC 1.0.0 released • 非特権コンテナをサポート • Python, Ruby, GoのAPI binding • 象徴的な意味合いが強い • 1.0になったんだからアイコン作ってくれれば いいのに
  16. 16. Checkpoint & restore • プロセスをディスクに保存し、あとで再開する • 再開先は別のマシンでもOK • KernelのNamespaceを使って再開先でpidや ネットワーク設定が変わらないよう差し替える • ライブマイグレーションの基盤技術 • linux-cr is dead. Long live CRIU! • 2013年soft-dirty実装 • ここ最近で一番の進化?
  17. 17. Docker • 去年から大流行 • PaaSに新たな地平を開いた • 手元の環境とPaaSの環境の 違いによって、バグが出るの 大変つらい • → 依存コンポーネントを 環境ごとdeploy • 使い勝手が大幅UP • OpenShift(Red Hatの運営 するHerokuもどき)はいち早く 採用を決めた
  18. 18. Thanks

×