Differences between version 6 and previous revision of SambaShadowCopyHowto.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 6 | Last edited on Friday, April 28, 2006 11:57:12 am | by CraigBox | Revert |
Older page: | version 4 | Last edited on Thursday, April 27, 2006 3:29:24 pm | by CraigBox | Revert |
@@ -17,16 +17,19 @@
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]
+* An [LVM] volume. Create one, if you haven't already.
-[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|http://www.tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html] - be sure yours does before choosing something other than
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. However, this [doesn't actually work|http://oss.sgi.com/bugzilla/show_bug.cgi?id=400] right now
. Many filesystems in the kernel support [waiting until the filesystem is consistent before taking a snapshot|http://www.tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html] - you might wish to research this in more detail, but for this HOWTO we will use
XFS.
!Steps
1. Join a Windows domain, if you need to. I followed [this howto|http://www.ubuntuforums.org/showthread.php?t=91510], 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.
+It's always handy to keep in time with your Windows network, so install ntp-simple and edit /etc/ntp.conf to parent off your AD server.
+
+
2. Set up a Samba share to the root of
your LVM volume. Unfortunately, shadow copies don't work if you share a directory inside the volume. You can use "deep mounting" on Windows 2000 clients (net use Z: \\server\share\directory\directory) if you wish to get around this
.
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:
@@ -43,9 +46,55 @@
Source: [udev: LVM snapshots don't work|http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343671#msg20]
It would also appear that with XFS, you should ignore any websites that tell you to use xfs_freeze, as [this will hang lvcreate|http://oss.sgi.com/bugzilla/show_bug.cgi?id=400].
+
+5. Configure Samba.
+
+I have used something a little like this:
+
+<pre>
+[data]
+ comment = Snapshotted storage
+ path = /array/storage
+ read only = no
+ browseable = yes
+ force create mode = 0664
+ force directory mode = 0775
+ force group = "MYDOMAIN+Domain Users"
+ writeable = yes
+ vfs objects = shadow_copy
+</pre>
+
+The important part is, of course, the shadow_copy VFS module.
+
+You end up with an /array/storage directory that looks like this:
+<pre>
+drwxr-xr-x 8 root MYDOMAIN+domain users 4096 2006-05-02 12:14 .
+drwxr-xr-x 3 root root 4096 2006-04-27 11:28 ..
+drwxr-xr-x 8 root MYDOMAIN+domain users 4096 2006-05-02 07:00 @GMT-2006.05.02-07.00.00
+drwxr-xr-x 9 root MYDOMAIN+domain users 4096 2006-05-02 12:00 @GMT-2006.05.02-12.00.00
+drwxr-xr-x 9 root MYDOMAIN+domain users 4096 2006-05-03 07:00 @GMT-2006.05.03-07.00.00
+drwxr-xr-x 7 root MYDOMAIN+domain users 148 2006-05-03 12:00 @GMT-2006.05.03-12.00.00
+drwxrwxr-x 2 root MYDOMAIN+domain users 31 2006-04-27 14:56 public
+</pre>
+
+Samba presents you all of this, @GMT-date dirs and all. Seems you have to have this - you can't share /array/storage/public and have the shadow copies work (see point 2, above).
+
+5. Create some scripts to do the work for you.
+
+!Scripts
+
+OK, here's the fun part.
+
+I have created a rotation I call 'halfdaily', matching Windows 2003 by taking snapshots at 7am and 12pm; "before work" and "before lunch".
+
+; /etc/snapshots/halfdailytab : The table of snapshot date/times. Scripts will mount and umount these at boot/shutdown, and rotate them as appropriate.
+
+; /usr/local/sbin/create-snapshot : Creates a snapshot.
+
+
!Links
* [How to use the Shadow Copy client|http://www.petri.co.il/how_to_use_the_shadow_copy_client.htm]
* [Some useful information about XFS & snapshots|http://c.mills.ctru.auckland.ac.nz/Samba/XfsAclWinAuth.html]