1NILFS(8) System Manager's Manual NILFS(8)
2
3
4
6 NILFS - the new implementation of a log-structured file system
7
9 Overview of the NILFS file system and the related tools.
10
12 NILFS is a log-structured file system developed for Linux. NILFS pro‐
13 vides versioning capability of an entire file system and continuous
14 snapshotting that allows users to restore files mistakenly overwritten
15 or destroyed a while ago.
16
17 The current major version of NILFS is version 2, which is referred to
18 as NILFS2. NILFS2 is equipped with an online garbage collector (also
19 called cleaner) that reclaims disk space in the background with keeping
20 multiple snapshots.
21
22 When data is written or any change is made to a NILFS2 file system, it
23 automatically creates a checkpoint. A checkpoint represents a consis‐
24 tent state of the NILFS2 file system of a certain instant. It becomes
25 mountable after being changed into a snapshot. A snapshot is the
26 checkpoint marked not to be deleted by the cleaner. NILFS2 creates a
27 number of checkpoints at regular intervals (unless there is no change)
28 or with synchronous writings. There is no practical limit on the num‐
29 ber of checkpoints and snapshots.
30
31 The following tools are available to manage the checkpoint and the
32 snapshot:
33
34 lscp lists checkpoints or snapshots
35
36 mkcp makes a checkpoint or a snapshot
37
38 chcp changes an existing checkpoint to a snapshot or vice versa
39
40 rmcp invalidates specified checkpoint(s)
41
42 These tools give the versioning capability to NILFS2; a user can select
43 significant versions among continuously created checkpoints and can
44 change them to snapshots to be preserved for long periods.
45
46 Every checkpoint except for the snapshot will become unprotected from
47 the cleaner after a given period of time. This period is controlled by
48 the protection_period parameter defined in the /etc/nilfs_clean‐
49 erd.conf(5) file.
50
52 Refer to the mount.nilfs2(8).
53
55 mkfs -t nilfs2 /dev/sdb1
56 creates a NILFS2 file system on a block device `/dev/sdb1'.
57
58 mount -t nilfs2 /dev/sdb1 /nilfs
59 mounts the NILFS2 file system on a mount point `/nilfs' like an
60 ordinary POSIX file system. This will invoke a cleaner process
61 nilfs_cleanerd(8) through an external mount program (i.e.
62 mount.nilfs2(8)).
63
64 lscp lists checkpoints created in the file system as follows:
65
66 CNO DATE TIME MODE FLG BLKCNT ICNT
67 1 2014-01-18 20:49:54 cp - 4 2
68 2 2014-01-18 20:51:45 cp - 3990 11
69 3 2014-01-18 20:51:45 cp - 6058 3
70 4 2014-01-18 20:51:49 cp - 4807 6
71 5 2014-01-18 20:51:49 cp - 262 3
72 ...
73
74 chcp ss 2
75 changes the checkpoint whose checkpoint-number is two to a snap‐
76 shot. Then the checkpoint list will become as follows:
77
78 CNO DATE TIME MODE FLG BLKCNT ICNT
79 1 2014-01-18 20:49:54 cp - 4 2
80 2 2014-01-18 20:51:45 ss - 3990 11
81 3 2014-01-18 20:51:45 cp - 6058 3
82 4 2014-01-18 20:51:49 cp - 4807 6
83 5 2014-01-18 20:51:49 cp - 262 3
84 ...
85
86 mount -t nilfs2 -r -o cp=2 /dev/sdb1 /snapshot
87 mounts the snapshot on another directory `/snapshot' as a read-
88 only file system. Here the snapshot mount requires at least two
89 options, a read-only option (-r or -o ro) and the cp option (-o
90 cp=checkpoint-number). Note that a read/write mount and one or
91 more snapshots are mountable independently, so the online backup
92 is possible through the snapshot mounts.
93
94 # mount -t nilfs2
95 /dev/sdb1 on /nilfs type nilfs2 (rw,gcpid=13296)
96 /dev/sdb1 on /snapshot type nilfs2 (ro,cp=2)
97
98 umount /nilfs
99 unmounts the NILFS2 file system mounted on `/nilfs' and will
100 shutdown the nilfs_cleanerd(8) through an external umount pro‐
101 gram (umount.nilfs2(8)) for the read/write mount.
102
104 NILFS2 was developed by NILFS development team.
105
107 mkfs.nilfs2(8), mount.nilfs2(8), umount.nilfs2(8), nilfs_cleanerd(8),
108 nilfs_cleanerd.conf(5), nilfs-tune(8), nilfs-clean(8), nilfs-resize(8),
109 lscp(1), mkcp(8), chcp(8), rmcp(8), lssu(1), dumpseg(8)
110
111 https://nilfs.sourceforge.io/
112
113
114
115nilfs-utils version 2.2 Apr 2014 NILFS(8)