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
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
300
新しいVibe Codingと”自走”について
watany
5
120
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
220
Claude code Orchestra
ozakiomumkj
3
1k
チームで実践する AI-DLC 思考の軌跡を残すチェックポイント設計
belongadmin
0
3k
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
170
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
130
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
3
1.1k
GoとSIMDとWasmの今。
askua
3
520
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
760
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
910
AI Testing Talks: Challenges of Applying AI in Software Testing: From Hype to Practical Use
exactpro
PRO
1
140
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Code Reviewing Like a Champion
maltzj
528
40k
Embracing the Ebb and Flow
colly
88
5.1k
The Invisible Side of Design
smashingmag
302
52k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Music & Morning Musume
bryan
47
7.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
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