Submit Search
人間たちとsystemd
0 likes
1,684 views
Uchio Kondo
@コンテナ勉強会福岡 http://ct-study.connpass.com/event/28449/
Technology
Read more
1 of 64
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
More Related Content
PDF
ペパボ福岡支社におけるRubyの活用事例
Uchio Kondo
PDF
ペパボのサービスとRuby
Uchio Kondo
PDF
Ruby way-openstack.keynote
Uchio Kondo
PDF
minneで学ぶクラウド脳
Uchio Kondo
PDF
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
PDF
OSC 2013 .Enterprise
Katsuya Hidaka
PDF
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
PDF
Rubyボードハンズオンテキスト
三七男 山本
ペパボ福岡支社におけるRubyの活用事例
Uchio Kondo
ペパボのサービスとRuby
Uchio Kondo
Ruby way-openstack.keynote
Uchio Kondo
minneで学ぶクラウド脳
Uchio Kondo
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
OSC 2013 .Enterprise
Katsuya Hidaka
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
Rubyボードハンズオンテキスト
三七男 山本
What's hot
(20)
PDF
Python × Herokuで作る 雑談slack bot
dcubeio
PDF
GR-CITRUSの紹介
三七男 山本
PDF
Ruby24
Masahiro Tomita
PDF
Building Static Website With Github And Jekyll
Yoji Shidara
PDF
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
PDF
Ruby on cygwin (2019/8月号)
fd0
PPTX
Hubotを使ってbotをつくろう!
Daisuke Kikuchi
PDF
RubyではじめるIoT(Wakayama.rb活動報告)
三七男 山本
KEY
OSS Reporting Solution ThinReports
ThinReports
PPT
分散Key/Valueストア Kai事例紹介
Tomoya Hashimoto
KEY
hubotで快適BOT生活
Kazufumi Otani
PPTX
Android 開発を加速するオープンソースライブラリ
Kenichi Tatsuhama
PPTX
GitLab Meetup Tokyo#2 Rancher gitlab container registry
Tetsurou Yano
PDF
hubot-slack v4移行時のハマりどころ #hubot_chatops
knjcode
PPTX
Rancher jp1周年振り返り anniversary meetup slide summary
Tetsurou Yano
PDF
Hubotをはじめる
nasa9084
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
PDF
Rubyistのためのkotlin紹介
豊明 尾古
PDF
Kotlinの紹介
豊明 尾古
PPTX
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Tetsurou Yano
Python × Herokuで作る 雑談slack bot
dcubeio
GR-CITRUSの紹介
三七男 山本
Ruby24
Masahiro Tomita
Building Static Website With Github And Jekyll
Yoji Shidara
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
Ruby on cygwin (2019/8月号)
fd0
Hubotを使ってbotをつくろう!
Daisuke Kikuchi
RubyではじめるIoT(Wakayama.rb活動報告)
三七男 山本
OSS Reporting Solution ThinReports
ThinReports
分散Key/Valueストア Kai事例紹介
Tomoya Hashimoto
hubotで快適BOT生活
Kazufumi Otani
Android 開発を加速するオープンソースライブラリ
Kenichi Tatsuhama
GitLab Meetup Tokyo#2 Rancher gitlab container registry
Tetsurou Yano
hubot-slack v4移行時のハマりどころ #hubot_chatops
knjcode
Rancher jp1周年振り返り anniversary meetup slide summary
Tetsurou Yano
Hubotをはじめる
nasa9084
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
Rubyistのためのkotlin紹介
豊明 尾古
Kotlinの紹介
豊明 尾古
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Tetsurou Yano
Ad
Similar to 人間たちとsystemd
(20)
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
PDF
インフラ自動化とHashicorp tools
Uchio Kondo
ODP
とっとるびー(2回目)発表資料
ionis111
PDF
コミュニティのある風景
Ryunosuke SATO
PPTX
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
PDF
RubyKaigi Lightning Talks TwYM episode2
Kuniaki Igarashi
PPT
ROMA on JRuby at JRubyKaigi 2010
Rakuten Group, Inc.
PDF
長いの
emasaka
PPTX
20111029 rubyon php
do_aki
PDF
【とらラボLT】go言語でのweb apiの作り方3選
虎の穴 開発室
PDF
ros2_cmd_api : ROS2コマンド機能のAPIを提供するROS2パッケージ.pdf
Takayuki Goto
PDF
dokku を本番環境で使ってみた話
Kazuhiro Nishiyama
PPT
JavaEdge第3回ライブセッション
Yoichiro Tanaka
PDF
20150228_渋谷Webエンジニア朝会LT資料
慎平 仁藤
PDF
RでつくるWebアプリ~rApache編~
Kazuya Wada
PDF
ROS2.0時代に備えたc++11/14
Takashi Ogura
PDF
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
ODP
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
PDF
nomlab_okayamaruby_slide
nomlab
PDF
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
インフラ自動化とHashicorp tools
Uchio Kondo
とっとるびー(2回目)発表資料
ionis111
コミュニティのある風景
Ryunosuke SATO
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
Yohei Sasaki
RubyKaigi Lightning Talks TwYM episode2
Kuniaki Igarashi
ROMA on JRuby at JRubyKaigi 2010
Rakuten Group, Inc.
長いの
emasaka
20111029 rubyon php
do_aki
【とらラボLT】go言語でのweb apiの作り方3選
虎の穴 開発室
ros2_cmd_api : ROS2コマンド機能のAPIを提供するROS2パッケージ.pdf
Takayuki Goto
dokku を本番環境で使ってみた話
Kazuhiro Nishiyama
JavaEdge第3回ライブセッション
Yoichiro Tanaka
20150228_渋谷Webエンジニア朝会LT資料
慎平 仁藤
RでつくるWebアプリ~rApache編~
Kazuya Wada
ROS2.0時代に備えたc++11/14
Takashi Ogura
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
nomlab_okayamaruby_slide
nomlab
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
Ad
More from Uchio Kondo
(8)
PDF
Puppet of-2015-forupload
Uchio Kondo
PDF
Hashicorpツールズ
Uchio Kondo
PDF
Consul は 全自動オーケストレーションの 夢を見るか?
Uchio Kondo
PDF
Drone.io のご紹介
Uchio Kondo
PDF
Testing in Sinatra
Uchio Kondo
PDF
Start-padrino
Uchio Kondo
PDF
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
PDF
otomodachi-kakumei
Uchio Kondo
Puppet of-2015-forupload
Uchio Kondo
Hashicorpツールズ
Uchio Kondo
Consul は 全自動オーケストレーションの 夢を見るか?
Uchio Kondo
Drone.io のご紹介
Uchio Kondo
Testing in Sinatra
Uchio Kondo
Start-padrino
Uchio Kondo
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
otomodachi-kakumei
Uchio Kondo
人間たちとsystemd
1.
systemdざっくり入門 GMO Pepabo, Inc. Uchio
Kondo 2016/04/23 コンテナ型仮想化の情報交換会@福岡 人間たちとsystemd
2.
人間の紹介
4.
近藤うちお > GMOペパボ所属 > 技術基盤チーム
🍮 > 福岡支社勤務 > Fukuoka.rb > RailsGirls Fukuoka #1 総合雑用/コーチまとめ
7.
!?
8.
興味 > Ruby /
Golangを少々 > Docker / LXC > Puppet > Hashicorp tools > OpenStack > Electron / React http://www.slideshare.net/udzura/hashicorp-tools
9.
7 years old
Rubyist > Rails 2.1.0 ごろからのルビースト(2008 ) > Rubyをこじらせて著作あり > Web+DB Press Ruby連載(2012 2014) > パーフェクトRuby (2013) > パーフェクトRails (2014) > Web+DB Press vol. 92 新人特集号 [New!]
12.
Founder of
14.
制限事項 > OSなどのレイヤー、正直わかっていないし、 カーネルのコードも読んだことがありません > 「実は……さっきから足が震えているッ……」
15.
人間たちのための systemd概要
16.
init(あるいはその代替) > 最初に起動して、たくさんのサービスどもを 立ち上げて管理する > CentOS
5 など … sysvinit > CentOS 6 / Ubuntu … Upstart > OS X … launchd > ……
17.
init script
18.
Upstart
19.
systemdざっくり 採用 ディストリ サービス 定義 OS 縛り cgroup/ namespace と連携 操作コマンド init script CentOS 5 などいろいろ init script (Shellスクリプト) -
ない スクリプト直 /service Upstart CentOS 6 最近までの Ubuntu 独自形式の conf (/etc/init/*.conf) - ない service/initctl systemd CentOS 7 Ubuntu 15.10 ほか Unitファイル Linux のみ やっていく systemctl (/service) ※ Ubuntu 13.04 から利用は可能
20.
Rethinking of PID
1 > 長文だが… > ざっくり > 起動スクリプト、結局全部シェルスクリプトだったり、一 個一個起動でしんどかったり、cgroupとかナウい奴との 連携も大変だよね…… > そこでsystemd、という感じらしい ※ http://0pointer.de/blog/projects/systemd.html
21.
systemdを 使ってみる
22.
Unitファイル > 独自形式(ini風) > 宣言的 >
「target」「mount」「service」「device」 などの種類がある > Unit同士は依存関係がある
23.
例: バイナリ一個のサービス
24.
例: バイナリ一個のサービス 説明のほか、依存するUnitファイル、 起動順序を記述 コマンド、実行ユーザー、 前後に発行するコマンド、環境変数、 cgroupsの制限など ランレベル相当を記述
25.
例: 定期実行タイマー
26.
Logging > journald というサービスが担当する >
systemdの一部という扱い > サービス側は、基本はとにかく標準出力にログを出せばいい (12factor app感) > 罠: systemd 208 では、journaldを再起動すると サービスが落ちることもある…… > CentOS 7.1 のデフォルト > CentOS 7.2でsystemd 219になり、直ってる
27.
systemdと リソース制限
28.
ulimit > リソースをいい感じに制限するやつ > CPU、メモリ、ファイルディスクリプタ数……
29.
Unitファイル > Unitファイルはシェルスクリプトじゃない > initスクリプトみたいにulimitを書けばいいとい う話じゃない >
ulimitはバイナリではないのでExecStartPreでキックでき ない、など > バイナリひとつみたいなときは、ラッパーをかま す?いやいや……
30.
man systemd.exec http://www.freedesktop.org/software/systemd/man/systemd.exec.html#LimitCPU=
31.
man systemd.exec > Unitファイルに宣言的に書く→わかりやすい! >
ulimitでいうどれに相当するかが書いてあって 便利 > LimitCPU= ➡ ulimit -t > LimitRSS= ➡ ulimit -m > LimitNOFILE= ➡ ulimit -n
32.
セットするとどうなる?
33.
こういう感じになる > 無事、CPUを10秒占有した後killされる
34.
もう一つの方法 > man systemd.resource-control
35.
cgroupとの 連携
37.
systemd-cgtop
38.
CPUQuota= してみましょう
39.
なるほど
40.
へ∼
41.
cgroupなので > 動的にリソースの利用率を変更することも可能 > demoします
43.
どっちがいいんだろう…… > man見た感じの印象、resource-control押し。 > Also
note that LimitRSS= is not implemented on Linux, and setting it has no effect. > ????? > ulimitから移行しやすいようにLimit*がある感じ。 > なるべくresource-controlしたほうがいいのでは
44.
systemdと ファイルシステムの 分離
45.
PrivateTmp設定
46.
自動でディレクトリができる ※ サービスを落とすとディレクトリも消える
47.
サービス側では/tmp
48.
深追い > 起動前に > ファイルシステムを
unshare する > /tmp を /tmp/systemd-private-*** に バインドマウントする > というだけ > なので正確には、mount namespaceの分離を 利用している
49.
unshare(2) とは > Linux
namespaceとは > プロセスごとに、アクセスできるリソースを分けることが できる機能 > unshare を呼ぶと当該プロセスで 新しいネームスペースを作る (mount、ネットワーク、PID……)
50.
systemdの例 mnt のネームスペース だけが変わっている ことがわかる
51.
その他のmount分離 > http://enakai00.hatenablog.com/entry/20130923/1379927579
52.
ReadOnlyDirectries
53.
そのプロセスからは変更できない > 一方で、他のプロセスからは可能
54.
そのプロセスでは > こちらも、unshareされたあと、 /etc/readonly-test をroでバインドマウントしなお していることがわかる >
一方、他のプロセスではそのマウントが確認できない
55.
もう少しだけ 深追い
56.
unshare になろう > hibomaさんという方の記事 >
rubyで unshare(2) 呼び出して マウント名前空間を分離 > http://d.hatena.ne.jp/hiboma/20120518/1337337393 > 拡張ライブラリ書かなくて呼び出せるようなの で便利
57.
irbでやろう
58.
irbでやろう
59.
総括
60.
systemd > ただのinitの代替ではない > cgroupやLinux
namespaceと 結構密接に連携でき、色々な使い道がありそう > (そういえば割愛しましたが、capabilityもいじれます) > CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW …
61.
systemdのメリット所感 > Unitファイルで宣言的にサービス定義、 依存、リソースの配分、分離を定義できる > cgroup/linux
namespaceの詳細なAPIに 詳しくなくても、systemdのディレクティブが ラップしてくれるので、容易に利用できる > systemdは人間たちに優しい!
62.
container vs systemd >
systemdだけでもできることが結構ある > できないこともある。PIDの分離とかがそう > Dockerとsystemdの連携の例もある > http://enakai00.hatenablog.com/entry/20140427/1398576165 > 相反するものでもなく、得意分野で使い分け
63.
Try! systemd
64.
参考文献 > Systemd入門シリーズ (id:enakai00
さん) > http://enakai00.hatenablog.com/entry/20130914/1379146157 > というか非常に詳しく、僕の発表要るんだろうか…… > systemd徹底入門@Linux女子部 (同) > http://www.slideshare.net/enakai/linux-27872553 > 僕の発表ry > consul-templateをsystemdで動かすときの学び > http://tomohisaoda.com/posts/2015/use_systemd_with_consul-template.html
Download