Penguin
Note: You are viewing an old revision of this page. View the current version.

What are shadow copies?

Shadow copies of shared folders are point-in-time snapshots of a shared folder that are exposed to Windows 2000+ users by way of the "Previous Versions" tab on a shared file.

<<<<<<< Your version The shadow copies client is built into Windows 2003 and Windows XP SP1 and above, and available for download for Windows 2000.

Can I run a 'shadow copy server' on Linux?

Yes, it is supported in Samba by way of a Samba VFS module.

The only source of documentation on setting up Samba to provide shadow copies to Microsoft clients is the Stackable VFS modules section of the Samba HOWTO.

This document will give you a good idea of how to set this all up.

Requirements

This document is written using Ubuntu Dapper, but you should be able to use the information on any distribution with new enough components.

  • Samba 3.0.3 or higher
  • A kernel that supports LVM and XFS

LVM provides a method for taking a snapshot of a volume; it is these snapshots that will be shared and provided to Windows clients as shadow copies. XFS supports freezing a file system, buffering writes to it until it is thawed again. Many filesystems in the kernel support waiting until the filesystem is consistent before taking a snapshot - be sure yours does before choosing something other than XFS.

Steps

1. Join a Windows domain, if you need to. I followed this howto, which should be rolled into our wiki, which is a huge mess of conflicting information about joining Windows domains that really needs some Aristotle love.

2. Set up a Samba share to somewhere inside your LVM volume.

3. If "lsmod | grep dm" doesn't report dm_snapshot, add "dm_snapshot" to /etc/modules.

4. If you're on Debian or Ubuntu, check /etc/udev/udev.rules or /etc/udev/rules.d/20-names.rules for a line such as:

KERNEL=="dm-[0-9]*",                     NAME="dm/%n"

udev doesn't like the creation of devices without it having a say, so change it to

KERNEL=="dm-[0-9]*",                     OPTIONS+="ignore_device"

Source: udev: LVM snapshots don't work

Links