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
CRIUをホスティングで試していく #hostingcasual / My CRIU Life...
Search
KONDO Uchio
March 22, 2019
Technology
0
410
CRIUをホスティングで試していく #hostingcasual / My CRIU Life in Progress
@ホスティングカジュアル #5
直近のイベント宣伝等を抜いています。
KONDO Uchio
March 22, 2019
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.4k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
250
Narrative of Ruby & Rust
udzura
0
220
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.7k
Talk of RBS
udzura
0
450
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
780
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
730
Device access filtering in cgroup v2
udzura
1
910
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
830
Other Decks in Technology
See All in Technology
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
4
3.8k
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
3
7.6k
Yahoo!しごとカタログ 新しい境地を創るエンジニア募集!
lycorptech_jp
PRO
0
110
Operating Operator
shhnjk
1
590
OPENLOGI Company Profile
hr01
0
67k
Backlog ユーザー棚卸しRTA、多分これが一番早いと思います
__allllllllez__
1
150
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
300
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
140
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
310
ゼロからはじめる採用広報
yutadayo
3
930
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
260
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Building an army of robots
kneath
306
45k
The Invisible Side of Design
smashingmag
301
51k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Cult of Friendly URLs
andyhume
79
6.5k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
4 Signs Your Business is Dying
shpigford
184
22k
Transcript
ϗεςΟϯάͰ$3*6Λ͓͏ ۙ౻Ӊஐ࿕(.01FQBCP *OD ϗεςΟϯάΧδϡΞϧ <)BDPOJXB$3*6ਐḿ><ݕࡧ>
γχΞɾϓϦϯγύϧΤϯδχΞ ۙ౻ Ӊஐ࿕ / @udzura https://blog.udzura.jp/ Uchio Kondo ٕज़෦ ٕज़ج൫νʔϜ
ίϯςφ
None
ϗεςΟϯάʹಋೖ
Web Proxy Web Request Dispatcher FastContainer Runtime CMDB ❌ FastContainer
Killed 1. Check 2. Boot 3. Forward 4. Terminate
ϦΫΤετ Ұఆ࣌ؒͷఀࢭ ఀࢭޙͷ࣍ͷϦΫΤετͰ Ұ͔Βىಈ OHY@NSVCZ $POUBJOFST ݱࡏͷڍಈ
࠶ىಈͷίετ
None
Memory dump Network conf File descriptors cgroup params ...... CRIU
Target process Syscalls, /proc files ... Kernel $3*6ͰΠϝʔδΛ࡞ɺ͔ͦ͜Βىಈ ˞ࢀߟ
ϦΫΤετ ఀࢭޙͷ࣍ͷϦΫΤετͰ $3*6Πϝʔδ͔Βىಈ OHY@NSVCZ $3*6ಋೖ ඇಉظͰ Πϝʔδͷ࠶࡞ $POUBJOFST $3*6JNBHF
ޮՌଌఆ
ڥ Ұ෦ Bench(Bastion) Compute(Users) Web Proxy Core API CMDB 8
Core 51GB Mem 1 Core 2GB Mem
ܭଌ݁Ռ
ܭଌ݁Ռ DPOUFOUSPPUFYU
ܭଌ݁Ռ
ܭଌ݁Ռ 3FTQPOTF5JNF NT ✴"QBDIF͕Ϩεϙϯε Λฦͨ࣌ؒ͠Λൺֱɻ ✴"QBDIFͯ͢ͷϫʔ Χʔ্ཱ͕͕ͪΔલʹ ϨεϙϯεΛฦͤΔ͜ ͱ͕ޙʹΘ͔ͬͨ
࣮
ϦετΞ͞ΕͨϓϩηεΛɺ )BDPOJXBͷԼʹ͍ͨ͠ɻ Haconiwa sv-sv \- criu restore \- Container Haconiwa
sv-sv \- Haconiwa sv \- Container ௨ৗىಈ CRIUܦ༝ͷىಈ ϑοΫॲཧ ओʹ͜͜Ͱߦ͏ ʁʁʁ
ํ๏ TXSLNPEF SFTUPSFTJCMJOH shd: vagrant@pts/0 \_ -bash \_ sudo
../mruby/bin/mruby example/restore_child.rb \_ ../mruby/bin/mruby example/restore_child.rb <- libcriuΛݺͼग़ͨ͠mruby script \_ /usr/local/apache2/bin/httpd -DFOREGROUND -X <- ͜Ε͕ίϯςφϓϩηε \_ /usr/local/sbin/criu swrk 6 <- ͜Ε͕swrkϞʔυͰ্ཱ͕ͪͬͨαʔϏεͰɺ cr_restore_tasks() ͜͜ͰಡΜͰ͍Δ \_ sh -c ps auxf <- ֬ೝͷͨΊʹ system() ͨ͠ͷ \_ ps auxf
$3*6ͷTXSLNPEF w·ͣTXSLϞʔυͷઆ໌Ͱ͕͢ɺ͜ΕMJCDSJVͰؔΛݺͼग़ͨ͠ࡍʹɺ ΞυϗοΫʹDSJVόΠφϦͦͷͷΛݺͼग़ͯ͠αʔϏεΛ࡞͠ɺݟ͔͚ ্αʔϏεͳ͠ͰDSJVͷػೳΛ͏ϞʔυͰ͢ʢਤ̎ࠨʣɻ
DMPOF $-0/&@1"3&/5 $ ./clone-tarou parent --use-clone-parent [!] Hey, maybe a
new sibling is added 26627 pts/1 S+ 0:00 \_ ./clone-tarou parent --use-clone-parent 26628 pts/1 S+ 0:00 \_ clone-tarou tarou --use-clone-parent 26629 pts/1 S+ 0:00 \_ clone-tarou jirou [!] exit: PID=26628 [!] exit: PID=26629 <DMPOFͷ$-0/&@1"3&/5ϑϥάͷڍಈΛ؍͢Δ><ݕࡧ>
clone(fun, ..., CLONE_PARENT|CLONE_NEWPID) ɺΧʔωϧͷόʔδϣϯʹΑͬͯ ಈ͔ͳ͍Β͍͠ $3*6ͷίϝϯτΑΓ
ํ๏ FYFDDNEͬͪ͜Λ࠾༻ Haconiwa sv \- criu restore \- Container
Haconiwa sv \- haconiwa _restored \- Container FYFD XBJU wDSJVίϚϯυͰϦετΞ͔ͯ͠ΒɺҙͷϓϩάϥϜʹFYFDWF Ͱ͖Δ wFYFDલʹGPSLͨ͠ϓϩηεΛɺ৽͍͠ϓϩάϥϜଆͰXBJU Ͱ͖Δ
&YUFSOBMCJOENPVOUରԠ /path/to/pivot_root `- / (bind-mount self) `- /etc -> /other/etc
`- /home/foo -> /other2/home `- /var/log -> /other3/log wSPPUGTͷ֎ଆʹ͋ΔϑΝΠϧγεςϜSPPUΛCJOENPVOUͯ͠ɺ DISPPUQJWPU@SPPU ͔ͯ͠Β͑ΔΑ͏ʹ͢Δ͜ͱ͕Α͋͘Δ™ wͦ͏͍͏֎ଆͷϑΝΠϧγεςϜΛ$3*6͕ཧղͰ͖ΔΑ͏ʹ͢Δ ͜͜ʹpivot_root
&YUFSOBMCJOENPVOU͕͏·͍͔͘Μ
Φϓγϣϯ͗͢ΜͶΜ
Ṗʹͭͳ͕Βͳ͍ωοτϫʔΫ
ωοτϫʔΫϩοΫ͕1"5)͕ͳ͍ͷͰ ղআ͞Εͳ͍ɻ
ͯ͠Δʁ Hotstart Start from CRIU
Web Proxy Web Request Dispatcher FastContainer Runtime CMDB ❌ FastContainer
Killed 1. Check 2. Boot 3. Forward 4. Terminate 'BTU3FNPUF$IFDLͱ͍͏ NHFNΛར༻͍ͯͬͯ͠Δ͕ɺ ઃఆ͕มʁ
'BTU3FNPUF$IFDLͷύϥϝʔλௐ
None
IUUQTHJUIVCDPNIBDPOJXBIBDPOJXBQVMMT RJT"QS JT"DMPTFE ͦͷ΄͔ wࡉʑͱࠔͬͨ͜ͱ͕͕͋ͬͨɺׂͱҰ௨ΓରԠͰ͖ͨؾ͕͢Δɻ wԼهࢀߟΣοϒϖʔδͰ͢
ࠓޙ
ϦϦʔεͰ͖ΔΑ͏ؤுΔͧʙ OPEB͞Μ͕
(SFOBEJOFͱ͍͏ͷΛ࡞ͬͨ
None