[PATCH 0/27] nilfs2: continuous snapshotting file system

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ryusuke Konishi
Date: Sunday, September 14, 2008 - 12:07 pm

This is a new patch set for the nilfs2 file system.

The first submission is found at:

 http://marc.info/?l=linux-fsdevel&m=121920195516073

The old patch was not divided, and this time I divided it into 27
patches:

 The patch #1 adds a document to Documentation/filesystems/
 The patch #2 adds a header file of the disk format to include/linux/
 The patches #2-#26 adds nilfs2 source files to fs/nilfs2/
 and the patch #27 updates Makefile and Kconfig.

This patch set also includes some cleanups and improvements.  The main
changes from the previous patch are as follows:

 * Use the standard mm/ cache instead of uniquely implemented page
   cache to hold B-tree node buffers; the peculiar page cache was
   removed by this.

 * Integrate two similar allocators found in DAT and inode file.

 * Read requests for GC blocks are now submitted in parallel to
   mitigate GC overhead.

More than 2,000 lines are reduced by the cleanups.


The patch set is available from

 http://www.nilfs.org/pub/patch/nilfs2-2.6.27-rc6/

If you like a git tree:

 http://git.nilfs.org/nilfs2-2.6.git nilfs2
 ( gitweb: http://www.nilfs.org/git/?p=nilfs2-2.6.git )

The userland tools are included in the nilfs-utils package
which is available on

 http://www.nilfs.org/en/download.html


Example:
In this example, /dev/sdb1 is used as a nilfs2 partition.

- To use nilfs2 as a local file system, simply:

 # mkfs -t nilfs2 /dev/sdb1
 # mount -t nilfs2 /dev/sdb1 /dir

 This will also invoke the cleaner through the mount helper program
 (mount.nilfs2).

- Checkpoints and snapshots are managed by the following commands.
 Their manpages are included in the nilfs-utils package.

  lscp     list checkpoints or snapshots.
  mkcp     make a checkpoint or a snapshot.
  chcp     change an existing checkpoint to a snapshot or vice versa.
  rmcp     invalidate specified checkpoint(s).

 For example,

 # lscp /dev/sdb1

 will list checkpoints on the device.
 The block device argument is omissible if there is no other nilfs2
 partition.

 # chcp ss 2

 will change the past checkpoint No. 2 into snapshot.

 # mkcp -s

 will make a snapshot of the current state.

 # lscp -s

 will list snapshots

- To mount a snapshot, use the read-only option and cp= option.

 # mount -t nilfs2 -r -o cp=<cno> /dev/sdb1 /snap_dir

 where <cno> is the checkpoint number of the snapshot.
 Snapshots are mountable concurrently with the writable mount.



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/27] nilfs2: continuous snapshotting file system, Ryusuke Konishi, (Sun Sep 14, 12:07 pm)
[PATCH 01/27] nilfs2: add document, Ryusuke Konishi, (Sun Sep 14, 12:07 pm)
[PATCH 02/27] nilfs2: disk format and userland interface, Ryusuke Konishi, (Sun Sep 14, 12:07 pm)
[PATCH 03/27] nilfs2: add inode and other major structures, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 04/27] nilfs2: integrated block mapping, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 05/27] nilfs2: B-tree based block mapping, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 06/27] nilfs2: direct block mapping, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 07/27] nilfs2: B-tree node cache, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 08/27] nilfs2: buffer and page operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 09/27] nilfs2: meta data file, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 10/27] nilfs2: persistent object allocator, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 11/27] nilfs2: disk address translator, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 12/27] nilfs2: inode map file, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 13/27] nilfs2: checkpoint file, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 14/27] nilfs2: segment usage file, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 15/27] nilfs2: inode operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 16/27] nilfs2: file operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 17/27] nilfs2: directory entry operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 18/27] nilfs2: pathname operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 19/27] nilfs2: operations for the_nilfs core object, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 20/27] nilfs2: super block operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 21/27] nilfs2: segment buffer, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 22/27] nilfs2: segment constructor, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 23/27] nilfs2: recovery functions, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 24/27] nilfs2: another dat for garbage collection, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 25/27] nilfs2: block cache for garbage collection, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 26/27] nilfs2: ioctl operations, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
[PATCH 27/27] nilfs2: update makefile and Kconfig, Ryusuke Konishi, (Sun Sep 14, 12:08 pm)
Re: [PATCH 01/27] nilfs2: add document, Pavel Machek, (Mon Sep 15, 2:54 am)
Re: [PATCH 18/27] nilfs2: pathname operations, Pekka Enberg, (Mon Sep 15, 11:20 am)
Re: [PATCH 01/27] nilfs2: add document, konishi.ryusuke, (Mon Sep 15, 1:10 pm)
Re: [PATCH 18/27] nilfs2: pathname operations, konishi.ryusuke, (Mon Sep 15, 10:31 pm)
Re: [PATCH 01/27] nilfs2: add document, Chris Mason, (Tue Sep 16, 6:38 am)
Re: [PATCH 01/27] nilfs2: add document, Jörn, (Wed Sep 17, 7:54 am)
Re: [PATCH 02/27] nilfs2: disk format and userland interface, Ryusuke Konishi, (Wed Sep 17, 8:51 am)
Re: [PATCH 01/27] nilfs2: add document, Ryusuke Konishi, (Wed Sep 17, 10:52 am)
Re: [PATCH 25/27] nilfs2: block cache for garbage collection, Ryusuke Konishi, (Wed Sep 17, 12:09 pm)
Re: [PATCH 25/27] nilfs2: block cache for garbage collection, Ryusuke Konishi, (Sat Sep 20, 3:43 am)