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
EZIO, Torrent-based Recovery
Search
Date Huang
May 01, 2017
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
EZIO, Torrent-based Recovery
Date Huang
May 01, 2017
More Decks by Date Huang
See All by Date Huang
EuroBSDCon 2026 - Porting STUNMESH-go to FreeBSD and macOS: Building Peer-to-Peer WireGuard Networks
tjjh89017
0
32
Open Source Summit Korea 2026 - EZIO: Predictable, Fast, Scalable BitTorrent-Based Bare Metal Provisioning
tjjh89017
0
81
DevConf.CZ 2026 - vRouter-Operator: Bringing GitOps and IaC to Virtual Network Functions in Kubernetes
tjjh89017
0
72
Porting STUNMESH-go to FreeBSD and macOS: Building Peer-to-Peer WireGuard Networks
tjjh89017
0
56
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
470
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
830
從大學到出社會,這十年的參與和維護的開源專案
tjjh89017
0
1.4k
開源專案的商業困境
tjjh89017
0
530
Rapidly Deploy NFV with VyOS on Kubernetes
tjjh89017
0
640
Other Decks in Programming
See All in Programming
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
490
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
260
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
1
330
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
カツオ、ご期待ください
suneo3476
0
180
Next.js: The final boss of Web Performance
guaca
0
190
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.4k
The Rails Doctrine Decade
koic
2
570
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Between Models and Reality
mayunak
4
500
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Ruling the World: When Life Gets Gamed
codingconduct
0
400
How GitHub (no longer) Works
holman
316
150k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Optimising Largest Contentful Paint
csswizardry
37
4k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Transcript
EZIO BT-based Data Transfer Yu-Chiang Huang
Outline • CloneZilla • EZIO
CloneZilla • 猋犩牏螭ܻ敟誢 • Server Edition • Multicast-based • UDPcast
Multicast • ᗭ砮 • 盄蕦褾牧ℂ㬵䷱睞螂 • 墋ᘒԏ牧觊犲 Broadcast ጱ狶ဩ
UDPcast • Multicast • ݶྍ秚ګ
CloneZilla • 猻玊 • ݢ瓟婘 • ە玊 • 殾ಅ磪ፓ秂伛猋ਠ౮胼樄ত •
殾ݶྍ蒂ቘ牧ݢ胼䨝ݑک絑ह磧眸ጱࢩᔰ段
EZIO • BT-based • 䲆礯羬翄螭ܻ • ᪡螂绚玟璸
BT
BT • BitTorrent • P2P • ֑๐瑊犵毱疝揗斉
BT 礍䯤 • 獮๗ BT • Torrent • Tracker •
盅๗ BT • Magnet • DHT
Tracker • 戢㲘㪔ᔱ玲ٌ犢 Peer ጱ蝫娄虻懱 • Peer 戢㲘 Tracker ᛔ૩ጱ虻懱
Piece • 裾ଶ傶 2^N ጱ蝫媲玟ྦྷ • 疥ಅ磪䲆礯蝫矑牧ྯ 2^N 㴟獤傶Ӟ㮆 Piece
• 虻碘涢挨ጱ磧ੜ㻌֖ • Piece 碍ᰁ蝢ଉ䨝段蝧ଶ • 蝢ଉ Piece 碍ᰁࣁ 1000 ~ 2000 ԏ樌䨝磧֯
Torrent • 蝢圸物圵ৼ • Tracker 虻懱 • 䲆礯虻懱
Torrent Info { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Tracker { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Files { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Piece Info { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Filename { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
File Hash { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
BT • 猻玊 • 覍ݶྍ蒂ቘ • 虻碘涢挨 • ە玊 •
犋ݢ瓟婘
Implement
Implement • ल䲆礯羬翄蝱 Torrent • ፗ矑䌃蝱Ꮭ繕
Filesystem • Idea • Filesystem = Metadata + Data
Filesystem • Implement • Filesystem = Blocks • inode ∈
Block • data ∈ Block
None
None
Filesystem • Block 傶च器牧Block size ࢴਧ • 磪 Superblock 牧獵ӥ磪ֵአکጱ
Block ᮷ݢ犥Ꭳ • Block offset • Block size
Filename { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Filesystem Block • ल䲆礯羬翄蝱 Torrent • Offset —> Filename •
Length —> File Length
Write Disk Directly • 眤蘛 libtorrent.org • 䋿֢ custom_storage •
ፗ矑 Block 䌃کᏝ繕ྋ嘦ጱ֖ᗝӤ
Benchmark
Benchmark • ፓ獮ጱ䋿涢᮷氥纈䨝穉 Multicast ጱ狶ဩ盠 • To be continue
Optimization
Connection • 蝫娄碍哴ݢ胼牧Ӭ犋胼犵ෝ 2 牧犥ع蝐玕 • 姘瞱犵蝫娄碍牏ṛߝ搡蝫娄
Cache • 盠玲哴ݢ胼य़ • 碉誢蝧ଶ疰犋䨝ݑ褖ෝᏝ繕蝧ଶ • 翕᪠蝧ଶ > Ꮭ繕褰秚ਂ玲蝧ଶ
Origin Server • ܻত秚ጱ蝧ଶ段碉誢蝧ଶ • ܻত秚哴ݢ胼盠
WARNING!
Warning • ݢ胼蝧ଶ盠ک䨝虏֦ጱ Switch 稴吚 • ইຎ Switch 胙礂毱疝磪猂碘 •
森 P2P ጱ翕᪠ݢ胼䨝犋胼ֵአ
How to
How to • Standalone EZIO • EZIO integrated CloneZilla