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
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
220
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
380
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
4.4k
約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
Other Decks in Technology
See All in Technology
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
160
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
940
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
110
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
160
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2.2k
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
1
260
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
160
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
340
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.6k
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
250
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
2
420
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
3.7k
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
420
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Automating Front-end Workflow
addyosmani
1370
210k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
Abbi's Birthday
coloredviolet
3
8.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
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