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
250
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
390
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
4.5k
約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
460
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
12
3.4k
Other Decks in Technology
See All in Technology
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
250
ラジオの科学
frievea
0
310
SmartHR Engineering Team Deck
smarthr
1
2.1k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
270
Flutterをカメラで動かしたかった話
sony
1
140
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
23
430k
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
100
Model Studio CLI × Token Plan
maigo999
0
180
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
関東Kaggler会発表資料
takoi
1
230
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Building Applications with DynamoDB
mza
96
7.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Mobile First: as difficult as doing things right
swwweet
225
10k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
390
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
480
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Making the Leap to Tech Lead
cromwellryan
135
10k
Test your architecture with Archunit
thirion
1
2.3k
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