About Filesystem freeze/thaw in freebsd

Konstantin Belousov kostikbel at gmail.com
Mon Feb 16 09:54:16 UTC 2015


On Mon, Feb 16, 2015 at 09:31:58AM +0000, Matthew Seaman wrote:
> On 02/16/15 09:07, zx zx wrote:
> > Hi,               I am experimenting to do a live backup of FreeBSD
> > VM. Question is do we have freeze/thaw interfaces in FreeBSD? I
> > searched a lot in web and freebsd source code, just could not find
> > the right interface.               As I know that in linux:VxFS
> > provides ioctl interfaces to application programs to freeze and thaw
> > VxFS file systems. The interfaces are VX_FREEZE, VX_FREEZE_ALL, and
> > VX_THAW.About Freeze and thaw Freezing a file system temporarily
> > blocks all I/O operations to a file system and then performs a sync
> > on the file system. Current operations are completed and the file
> > system is synchronized to disk. Freezing a file system is a necessary
> > step for obtaining a stable and consistent image of the file system
> > at the volume level. Consistent volume-level file system images can
> > be obtained and used with a file system snapshot tool. The freeze
> > operation flushes all buffers and pages in the file system cache that
> > contain dirty metadata and user data. The operation then suspends any
> > new activity on the file system until the file system is thawed.
> > Any help would be appreciated, thanks a lot!  Andy Zhang
> 
> What you want is snapshotting.  You can create a snapshot of UFS or ZFS
> filesystems, mount the snapshot and then back it up without needing to
> worry about the filesystem changing while you're trying to back it up.
> 
> See mksnap_ffs(8) and the 'snapshot' entry in zfs(8)
> 
> The snapshot is mounted separately from the actual filesystem which can
> carry on with normal activities in the mean time.
> 
> Snapshotting functionality is built into dump(8) for UFS filesystems
> (See the -L flag in that man page) or you can use zfs send / recv to
> dump filesystems to tape, which implies use of snapshots.

Snapshot is different functionality from what the OP asked.
Exactly requested feature is provided by UFSSUSPEND/UFSRESUME ioctls
on the /dev/ufssuspend, for UFS volumes.  You should consult the code
to see how to use them.

I suspect that the similar feature exists for ZFS, but I do not know
where to start looking.


More information about the freebsd-fs mailing list