Browse Prior Art Database

Fast Initialization of file system snapshot

IP.com Disclosure Number: IPCOM000020430D
Original Publication Date: 2003-Nov-20
Included in the Prior Art Database: 2003-Nov-20
Document File: 2 page(s) / 59K

Publishing Venue

IBM

Abstract

A program is disclosed that minimizes the amount of time needed to create a file system snapshot. A file system snapshot establishes a consistent block level image of the file system at a point-in-time. A snapshot is used for creating backups of an active file system. When a file system snapshot is created, the file system must block all writes to the file system during the initialization of the snapshot. The main part of snapshot initialization involves synchronous initialization of a data structure that is proportional to the size of the file system. This takes too much time for modern large file systems. The problem solved is to minimize the amount of time needed to create the snapshot.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

Fast Initialization of file system snapshot

A program is disclosed that minimizes the amount of time needed to create a file system snapshot. A file system snapshot establishes a consistent block level image of the file system at a point-in-time. A snapshot is used for creating backups of an active file system. When a file system snapshot is created, the file system must block all writes to the file system during the initialization of the snapshot. The main part of snapshot initialization involves synchronous initialization of a data structure that is proportional to the size of the file system. This takes too much time for modern large file systems.

A two-level mapping data structure is used to minimize the amount of time needed to create a snapshot. Only the upper level of the map is initialized during snapshot creation. This provides a delayed and dynamic initialization of the lower level of the map. This also allows only the regions accessed to be initialized.

The snapshot contains the main data structures of: the snapshot summary map (ssMap), and the snapshot map (sMap).

The sMap pages describe the in-use and copied state for every block in the primary file system. Each sMap page covers 512 file system blocks (2 Megabytes for 4 Kbyte block size).

Each ssMap page has 256 entries. Each ssMap entry describes the initialized state of a region of the primary file system. For each region described by the ssMap there are 32 sMap pages. Therefore, each ssMap page covers 16 Gigabytes.

During creation:

The number of sMap pages needed to cover the entire primary file system is determined. The number of ssMap pages necessary to cover all of the sMap pages needed are initialized. Every ssMap entry is marked to indicate the corresponding sMap pages covering the region has not been initialized yet. This is done by setting the entire page to 0.

During run-time when a copy-on-write (COW) or copy-on-delete (COD) action is initiated:

The ssMap page which describes the region containing the primary file system block to be written is read. The ssMap entry is checked to determine if the sMap pages cover...