Filesystem considerations for embedded devices
ELC2015
03/25/15
Tristan Lelong
Senior embedded software engineer
Filesystem considerations for embedded devices ELC2015 03/25/15 - - PowerPoint PPT Presentation
Filesystem considerations for embedded devices ELC2015 03/25/15 Tristan Lelong Senior embedded software engineer Filesystem considerations ABSTRACT The goal of this presentation is to answer a question asked by several customers: which
03/25/15
Senior embedded software engineer
Filesystem considerations
2
Filesystem considerations
4
Filesystem considerations Introduction
6
Filesystem considerations Introduction
7
Filesystem considerations Block devices
9
Filesystem considerations Block devices
10
Filesystem considerations Block devices
11
Filesystem considerations Block devices
12
Filesystem considerations Block devices
13
Filesystem considerations Block devices
14
Filesystem considerations Block devices
Source: Micron marketing via jedec.org 15
Filesystem considerations Block devices
Price (USD)
Source: chinaflashmarket.com 16
Filesystem considerations Block devices
17
Filesystem considerations Block devices
◮ Important for boot time for instance ◮ Not the same figures (x5 to x100)
18
Filesystem considerations Available filesystems
20
Filesystem considerations Available filesystems
21
Filesystem considerations Available filesystems
22
Filesystem considerations Available filesystems
23
Filesystem considerations Available filesystems
24
Filesystem considerations Available filesystems
25
Filesystem considerations Available filesystems
26
Filesystem considerations Available filesystems
27
Filesystem considerations Available filesystems
28
Filesystem considerations Available filesystems
29
Filesystem considerations Available filesystems
30
Filesystem considerations Available filesystems
31
Filesystem considerations Available filesystems
32
Filesystem considerations Available filesystems
33
Filesystem considerations Available filesystems
34
Filesystem considerations Available filesystems
35
Filesystem considerations Available filesystems
◮ Journal is consistent: we replay the journal at mount
◮ Journal is not consistent: we drop the modification 36
Filesystem considerations Available filesystems
37
Filesystem considerations Available filesystems
38
Filesystem considerations Available filesystems
39
Filesystem considerations Available filesystems
40
Filesystem considerations Available filesystems
41
Filesystem considerations Performances
43
Filesystem considerations Performances
44
Filesystem considerations Performances
45
Filesystem considerations Performances
46
Filesystem considerations Performances
47
Filesystem considerations Performances
48
Filesystem considerations Performances
49
Filesystem considerations Performances
◮ ex: boot time
◮ ex: data write into database
◮ ex: video streaming
◮ ex: video capture/recording
◮ ex: a real system with high I/O load 50
Filesystem considerations Performances
51
Filesystem considerations Performances
1 name=<test name> 2 rw=[randread | randwrite | read | write] 3 size=500MB 4 blocksize=[4MB | 4kB] 5 nrfiles=50 6 direct=[0 | 1] 7 buffered=[1 | 0] 8 numjobs=1 9 ioengine=libaio 52
Filesystem considerations Performances
Bandwidth (MB/s)
53
Filesystem considerations Performances
Bandwidth (MB/s)
54
Filesystem considerations Performances
Percentage xlabel
Percentage xlabel
55
Filesystem considerations Performances
56
Filesystem considerations Performances
Bandwidth (MB/s)
57
Filesystem considerations Performances
Bandwidth (MB/s)
58
Filesystem considerations Performances
59
Filesystem considerations Performances
Bandwidth (MB/s)
60
Filesystem considerations Performances
61
Filesystem considerations Performances
62
Filesystem considerations Performances
63
Filesystem considerations Performances
64
Filesystem considerations Performances
65
Filesystem considerations Performances
Time (ms)
66
Filesystem considerations Performances
Time (ms)
67
Filesystem considerations Performances
Time (ms)
68
Filesystem considerations Performances
69
Filesystem considerations Performances
Time (ms)
70
Filesystem considerations Performances
71
Filesystem considerations Performances
Ticks
72
Filesystem considerations Performances
73
Filesystem considerations Performances
Percentage
74
Filesystem considerations Performances
Percentage (normalized)
75
Filesystem considerations Performances
76
Filesystem considerations Tools
78
Filesystem considerations Tools
79
Filesystem considerations Tools
80
Filesystem considerations Tools
81
Filesystem considerations Tools
82
Filesystem considerations Tools
83
Filesystem considerations Tools
84
Filesystem considerations Tools
◮ subvolume Manages subvolumes ◮ filesystem Manages options ◮ balance device replace Manages devices ◮ scrub Erase a filesystem ◮ check Filesystem check ◮ rescue Filesystem rescue 85
Filesystem considerations Tools
86
Filesystem considerations Tools
87
Filesystem considerations Tools
88
Filesystem considerations Tools
89
Filesystem considerations Reliability
91
Filesystem considerations Reliability
◮ Ignore all writes after a certain period using
◮ Corrupt writes after a certain period using
◮ Corrupt reads after a certain period using
92
Filesystem considerations Reliability
93
Filesystem considerations Reliability
Percentage
94
Filesystem considerations Reliability
Percentage
95
Filesystem considerations Reliability
◮ Corrupt all writes after 10 seconds ◮ Corrupt all writes for 1 seconds then allow writes for 1
◮ Write a 30MB random file and sync the device ◮ Write multiple 1MB file and sync the disk
96
Filesystem considerations Reliability
Ocurrences
97
Filesystem considerations Reliability
◮ Sometime turns filesystem RO ◮ fsck required ◮ Output file is present but zeroed or emptied 98
Filesystem considerations Reliability
◮ Sometime turns filesystem RO ◮ Loses the corrupted file or present files with I/O error ◮ Filesystem keeps running as expected ◮ Can be unfixable if internal structure checksums are
◮ Best detection of corruption 99
Filesystem considerations Reliability
◮ Most robust to this kind of corruption ◮ Sometime turns filesystem RO ◮ Auto recovery recovers most of the data (file is there
◮ File is sometimes corrupted with no warning but
100
Filesystem considerations Reliability
◮ ◮ Sometime feezes the filesystem ◮ Auto recovery recovers from small corruptions ◮ Recovered file can be truncated. 101
Filesystem considerations Reliability
◮ No way to recover anything since no fsck ◮ Auto recovery recovers most of the data (file is there
◮ File is sometimes corrupted with no warning but
◮ Umounting a corrupted NILFS2 system can hang
102
Filesystem considerations Reliability
103
Filesystem considerations Conclusion
105
Filesystem considerations Conclusion
◮ Moto X, G, E family ◮ Userdata partition only ◮ System still a ro EXT4 106
Filesystem considerations Conclusion
107
Filesystem considerations Conclusion
108
Filesystem considerations Conclusion
109
Filesystem considerations Conclusion
110