Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
420
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.5k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
270
Narrative of Ruby & Rust
udzura
0
240
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
470
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
820
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
760
Device access filtering in cgroup v2
udzura
1
960
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
870
Other Decks in Technology
See All in Technology
Snowflake だけで実現する “自立的データ品質管理” ~Data Quality Monitoring 解説 ~@ BUILD Meetup: TOKYO 2025
ryo_suzuki
0
130
20251222_next_js_cache__1_.pdf
sutetotanuki
0
170
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
110
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
180
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
2.2k
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
260
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
220
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
1
260
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
340
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
630
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
190
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
1
1.9k
Featured
See All Featured
How to build a perfect <img>
jonoalderson
0
4.6k
Un-Boring Meetings
codingconduct
0
160
How to train your dragon (web standard)
notwaldorf
97
6.4k
A better future with KSS
kneath
240
18k
Side Projects
sachag
455
43k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
240
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
250
sira's awesome portfolio website redesign presentation
elsirapls
0
89
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