Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Using LXC on Production
Search
Isao Shimizu
September 06, 2014
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Using LXC on Production
第4回 コンテナ型仮想化の情報交換会@東京
Isao Shimizu
September 06, 2014
More Decks by Isao Shimizu
See All by Isao Shimizu
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
370
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
4.2k
約10年間MIXIのインフラを 支えてきたPagerDutyの活用事例 / PagerDuty on Tour 2024
isaoshimizu
6
1.3k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
2
1.9k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
18
9.2k
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
isaoshimizu
2
450
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
12
3.4k
全世界1,800万人が利用する「家族アルバム みてね」におけるNew Relic活用法 / FutureStack Tokyo 2023
isaoshimizu
1
640
Other Decks in Technology
See All in Technology
Databricks における 生成AIガバナンスの実践
taka_aki
1
330
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
210
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
590
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
1k
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
310
LLMを「主役」にしないための 3つの原則
techtekt
PRO
0
120
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
170
EventBridge Connection
_kensh
4
590
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
200
Building applications in the Gemini API family.
line_developers_tw
PRO
0
1.9k
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
160
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
7
4.1k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Agile that works and the tools we love
rasmusluckow
331
21k
Designing for Timeless Needs
cassininazir
1
250
How to Talk to Developers About Accessibility
jct
2
220
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
We Have a Design System, Now What?
morganepeng
55
8.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Transcript
Using LXC on Production ୈ4ճ ίϯςφܕԾԽͷใަձˏ౦ژ 2014.9.6 Isao SHIMIZU @isaoshimizu
ࠓճͷݩωλ http://alpha.mixi.co.jp/entry/2014/12171/ ͜ͷΤϯτϦΛগ͠ΞϨϯδ͓ͯ͠͠·͢ɻ
ࣗݾհ ਗ਼ਫ ܄ ʢIsao SHIMIZUʣ ! גࣜձࣾϛΫγΟ ϞϯετελδΦॴଐ ! ݱࡏ4ʢ2011ೖࣾʣ
mixiͷΠϯϑϥӡ༻ ϞϯελʔετϥΠΫͷΠϯϑϥɾαʔόӡ༻ʢݱࡏʣ ΤϯδχΞϒϩάࣥචʢFedoraɺOpenStackɺLXCͳͲʣ ! લ৬: 2003ʙ2011 SIerͰاըɺ։ൃɺΠϯϑϥӡ༻ ΈࠐΈɺWebɺεϚϑΥΞϓϦɺಈը৴ͳͲ
ࠓͷൃදͷܦҢ
LXCಋೖʹࢸΔ·Ͱ
mixiʹ͓͚ΔԾԽڥ ͍··Ͱ͜͏ͩͬͨ
KVM Kernel-based Virtual Machine
ԾԽڥͰKVMΛଟ༻͍ͯͨ࣌͠ • ԾԽڥKVM͔͍ͬͯ͠ͳ͔ͬͨ • ༻్։ൃڥɺεςʔδϯάڥ͕΄ͱΜͲ • ߏஙࣗ࡞ͷγΣϧεΫϦϓτͰ • ϒϦοδΠϯλϑΣʔεͷ࡞ •
Cobblerͱͷ࿈ܞʢϗετ໊ͷ࿈൪ԽIPͷॏෳࢭʣ • virt-install, Kickstart ! • جຊख࡞ۀͰ໘͍͘͞
KVMͷ͍͍ͱ͜Ζ • ܰͷར༻ͰेͳύϑΥʔϚϯε͕ग़Δ • ήετOSʹϚγϯͱಉ͡ѻ͍͕Ͱ͖Δ • ϊϋͨ͘͞Μ • Ϋϥυܥͷπʔϧ͕ॆ࣮͍ͯ͠Δ
KVMͷͭΒ͍ͱ͜Ζ • ԾԽʹΑΔϘτϧωοΫ͕େ͖͍ʢͱ͘ʹσΟεΫIOʣ • σΟεΫ༰ྔΛଟ͘ফඅ͢ΔʢOS͕େ͖͍ʣ • BIOSઃఆͷґଘʢIntel VTͱ͔AMD-Vͱ͔ʣ
OpenStackͷಋೖ
OpenStack • 2013य़ࠒʹݕূ։࢝ • VersionGrizzly 2013.01 • ಉͷՆࠒʹຊ൪ಋೖ • ༻్ࣾϓϩμΫτ͚ͷPaaSʢGizmoͱݺΕΔʣ
• ΞϓϦαʔόಠࣗͷσϓϩΠπʔϧΛͬͯ • ϛυϧΣΞͷߏChefͰ • MySQLɺRedisɺJenkinsͳͲ • μογϡϘʔυʢHorizonʣศར • ͷͪʹ։ൃڥʹల։
mixiʹ͓͚ΔԾԽڥ ͍·ͷӡ༻
LXC Linux Containers
LXCΛ͏લͷҹ • ͱʹ͔͍ܰ͘Β͍͠ʢͰΑ͘Θ͔ͬͯͳ͍ʣ • KVMͱ͔ͱԿ͕ҧ͏ͷ͔͍·͍ͪΘ͔ͬͯͳ͍ • LXCͷόʔδϣϯ͕͕͖͍͋ͬͯͯͯͦΖͦΖ͍͍ײ͔͡ʁ • Kernelগ্͛͠Ε͑ͦ͏ •
৽͍ٕ͠ज़ؾʹͳΔɺͬͯΈ͍ͨ • ຊ൪Ͱ͍ͬͯΔ΄ͱΜͲͳ͍ • ͪΐ͏ͲLinuxCon Japan 2013ͰLXCͷΛฉ͍ͨ • ͰࣾͰ୭৮ͬͯͳ͔ͬͨ
LXCʹ͍ͭͯ • KVMͷΑ͏ʹϋʔυΣΞͳͲͷΤϛϡϨʔγϣϯͷ্ʹԾ ϚγϯΛಈ࡞ͤ͞ΔͷͰͳ͍ • ϓϩηεωοτϫʔΫɺϢʔβʔۭؒͳͲΛͯ͠ɺԾ తͳڥΛఏڙ • KernelͷػೳΛͬͯ͞Εͨڥ •
KVMͰى͖͍ͯͨΑ͏ͳɺCPUσΟεΫIOͳͲͷύϑΥʔ ϚϯεྼԽ͕جຊతʹൃੜ͠ͳ͍ • ىಈ͕͍ʢinitҎ߱ͷىಈ͚ͩʣ • ͪΖΜΦʔϓϯιʔε
LXCͷϨϙδτϦ https://github.com/lxc/lxc
LXCͷίϛοτਪҠ https://github.com/lxc/lxc
KVMͱLXC
LXCͷݕূΛ࢝ΊΔ • όʔδϣϯ0.8.0ʢ2012.11.11ϦϦʔεʣ͔Β0.9.0 ʢ2013.4.5ϦϦʔεʣΞοϓσʔτ͞Ε͍ͯͨ • 1.0.020142݄Λ༧ఆ͍ͯͨ͠ʢͯͳ͍ʣ • ·ͣɺ0.9.0Λݕূͯ͠Έ͍ͨ • ·ͣͬͨ͜ͱ
• templatesʹ͋ΔFedoraͷγΣϧεΫϦϓτΛͬͯ LXCͷΠϝʔδ࡞Γ • ͢ΜͳΓಈ͔ͳ͍ • Fedora͚ʹϝϯς͞Εͯͳ͍ͷ͔͍Ζ͍Ζमਖ਼ • ͱΓ͋͑ͣࢼߦࡨޡͯ͠ಈ͍ͨʢख࡞ۀίϚϯυϨϕϧʣ
ͦΜͳݕূΛ͍ͯ͠Δ͏ͪʹ ΞϨ͕ʹ ! ࣌201310݄ࠒ
DockerͷτϨϯυ -9$ͷݕূ࢝Ίͨࠒ
ؾʹͳ͍ͬͯͨDockerͷଘࡏ • ࣌ͷόʔδϣϯ 0.6.xʢݱࡏ1.2.0ʣ • AUFSؾʹͳΔ • Docker Registryศརͦ͏ •
GoͷϙʔλϏϦςΟ͢Β͍͠ ! • IPϚεΧϨʔυͪΐͬͱ໘͍͘͞ • ίϯςφʹIPΛݸผʹৼͬͯɺԾϚγϯͷΑ͏ʹѻ͍͍ͨ ʢmacvlan͍͍ͨʣ • taggedVLANͷڥͰͳ͍͍ͨ͘ • όʔδϣϯΞοϓ͕ܹ͍͠
ಠࣗπʔϧͷ։ൃ
trailer ʢτϨΠϥʔʣ
trailerͱ • RubyͷࣗࣾͰ։ൃͨ͠πʔϧ • LXCͷϥούʔ • ӡ༻ʹඞཁͳػೳͷΈΛ࣮ • IPɺMACΞυϨεͷ࠾൪ʢARMͱݺΕΔαʔόͱ࿈ܞʣ •
ίϯςφΠϝʔδΛμϯϩʔυͯ͠ల։͢Δ • ىಈதͷίϯςφ͔ΒΠϝʔδΛ࡞Δ • TrailerfileͱݺΕΔίϯςφఆٛ
trailerͷߏ
trailerΛͬͨίϯςφىಈϑϩʔ ᶃ͋Β͔͡Ί࡞ΒΕͨΠϝʔδΛϨϙδτϦαʔό͔Βμϯϩʔυʢtrailer pullʣ ᶄΠϝʔδΛىಈʢtrailer startʣ (1)ϩʔΧϧʹμϯϩʔυ͞ΕͨΠϝʔδΛΠϯελϯε༻ͷσΟϨΫτϦʹల։ (2)ARMͱݺΕΔͷΞυϨεཧπʔϧʹରͯ͠APIΞΫηε͠ɺIPΞυϨεͱ MACΞυϨε͕͍ग़͞ΕΔʢARMAPIΞΫηεՄೳͳDHCPαʔόͷΑ͏ͳͷʣ (3)औಘͨ͠IPΞυϨεͱMACΛΠϯελϯεʹઃఆ ʢmacvlan
bridgeϞʔυʣͯ͠ɺinitʢsystemdʣΛىಈ (4)trailer start࣮ߦ͔ΒsshͰଓՄೳʹͳΔ·Ͱʹ͔͔Δ࣌ؒ10ඵఔ ʢΠϝʔδαΠζʹΑͬͯଟগͷมಈ͋Γʣ
trailerΛͬͨίϯςφఀࢭϑϩʔ ᶃఀࢭίϚϯυΛ࣮ߦʢtrailer stopʣ (1)LXCͷϓϩηεͷఀࢭɺσΟϨΫτϦͷআ
trailerΛͬͨΠϝʔδͷ࡞ͱ ϨϙδτϦαʔόͷΞοϓϩʔυͷϑϩʔ ᶃϕʔεͱͳΔΠϝʔδΛىಈʢtrailer startʣ ᶄΠϯελϯεʹରͯ͠ChefͰϨγϐΛద༻ʢknife-soloΛར༻ʣ ᶅϧʔτϑΝΠϧγεςϜʢσΟϨΫτϦπϦʔʣΛѹॖ͢Δʢtrailer snapshotʣ ᶆΠϝʔδใ͕ॻ͔ΕͨyamlϑΝΠϧͱrootfs.gzΛtarballʹ͢Δʢtrailer archiveʣ ᶇϨϙδτϦαʔόΞοϓϩʔυʢtrailer
pushʣ
LXC͚ʹ༻ҙͯ͋͠ΔΠϝʔδ •ϕʔεΠϝʔδ •Reverse Proxy (mod_proxy) •Varnish •Q4M (Job Queue) •Application
Server (mod_perl) •Tokyo Tyrant •Memcached
LXCΛӡ༻͢Δ্ͰؾΛ͚ͭΔ͜ͱ
εϨουɺPID্ݶ •kernel.threads-max •kernel.pid_max •vm.max_map_count •/etc/security/limits.d/90-nproc.conf Λunlimited ʹ •༻్ʹԠͯ͡File DescriptorɺTCP/IPपΓͷKernelύϥϝʔλ ͷௐ͕ඞཁɻ
•ΠϯελϯεଆͰઃఆͰ͖ͳ͍Kernelύϥϝʔλ͕͋ͬͨΓ͢ ΔͷͰɺsysctlechoͳͲͰઃఆ͢Δࡍʹཁҙɻ
ͦͷଞɺؾΛ͚ͭΔ͜ͱ wར༻Ϧιʔεͷ༧ଌɺݟੵΓ wଞͷίϯςφʹѱӨڹΛٴ΅͞ͳ͍ઃܭ͕ඞཁ wσΟεΫ༰ྔ w༰ྔ੍ݶͰ͖ͳ͍ wϞχλϦϯά wάϥϑେࣄ
trailerͷσϞ
ࢀߟࢿྉ
•OpenStackͱLXCΛಋೖͨ͠ - mixi Engineers' Blog •http://alpha.mixi.co.jp/entry/2014/12171/ •LXCͰֶͿίϯςφೖ ʵܰྔԾԽڥΛ࣮ݱ͢Δٕज़ •http://gihyo.jp/admin/serial/01/linux_containers •Lxc
Ͱ࢝ΊΔένένԾԽੜ׆ʁʂ - SlideShare •http://www.slideshare.net/enakai/lxc-8300191 •LXC - Linux Containers •https://linuxcontainers.org/jp/ •LXC(Linux Container) •http://events.linuxfoundation.org/sites/events/files/cojp13_feng.pdf •DockerΛࢧ͑Δٕज़ •http://www.slideshare.net/enakai/docker-34668707 •GitHub - lxc/lxc •https://github.com/lxc/lxc