Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
360
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
270
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
400
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
4.6k
約10年間MIXIのインフラを 支えてきたPagerDutyの活用事例 / PagerDuty on Tour 2024
isaoshimizu
6
1.3k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
2
2k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
18
9.2k
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
isaoshimizu
2
470
Other Decks in Technology
See All in Technology
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
510
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
170
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
720
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
家のリアーキテクト・リファクタリング
suguruooki
0
110
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
170
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
320
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
190
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
360
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
100
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Code Reviewing Like a Champion
maltzj
528
40k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Bash Introduction
62gerente
615
220k
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