On Oct 25, 2011, at 7:51 PM, [email protected] wrote:
> 
> The snapshot has no effect on the master, and yes, we've already said and
> we already know it is a weakness in LVM that if you don't extend your
> snapshots you lose them. This can be mitigated by monitoring and automatic
> volume extension.

You missed it.  This isn't about what happens to master.  It's what happens to 
b when a disappears.  If master<-a<-b and a disappears due to reaping then b 
becomes useless.  Or b is reaped, too.  Either way you're dealing with data 
loss.  This is why LVM will not do what you originally asked about.

Monitoring has problems.  If the volume fills up faster than the monitor polls 
capacity then you lose your data.  If the volume fills up faster than it can be 
extended then you lose your data.  If the volume cannot be extended because the 
volume group has no more extents available then you lose your data.  Like I 
wrote at the start: LVM will quite happily bite your face off.

Now, to address your most recent question:

How do I back up a 1TB disk.  Think about this: how do you intend to do a 
restore from this backup?  The most important part of a backup system is being 
able to restore from backup in a timely fashion.

I have in production a compute server with two 8TB file systems and a 9TB file 
system, all sitting on LVM volumes.  I have an automated backup that runs every 
night on this server.  It's an incremental file system backup so I'm only 
backing up the changes every night.  This is, as you might expect, quite faster 
than trying to do full backups of 25TB every night -- which I can't because it 
would take three days to do it.

On smaller capacity volumes, in the several hundred GB range, I use rsnapshot 
to do incremental file snapshots to a storage server.  Again, I don't back up 
the raw disk partitions every time.  I only back up the changed files.

In both cases -- and in fact with all my backups -- they are file level 
backups.  The reason being that if I need to restore a single file or directory 
then I don't have to rebuild the entire volume to do so.  I can restore as 
little or as much as I need to recover from a mistake or a disaster.

Suppose the case of a live volume that needs to be in a frozen state for doing 
a backup.  Database servers are prime examples of this.  Here, I would freeze 
the database, make a snapshot of the underlying volume, and then thaw the 
database.  Now I can do my backup of the read-only snapshot volume without 
interfering with the running system.  I would delete the snapshot when the 
backup is complete.

If I were using plain LVM and ext3 for my users' home directories then I would 
do something similar with read-only snapshots.  There would be no freeze step, 
and I would keep several days worth of snapshots on the file server to make 
error recovery faster than going to tape or network storage.  As it is, I use 
OpenAFS which has file system snapshots so I don't need to do any of this and 
users can go back in time just by looking in .clone in their home directories.  
I still have nightly backups to tape for long-term archives.

Now, time to poke holes in your proposal.  I have a physics graduate student 
doing his thesis research project on a shared compute server along with a dozen 
others.  They collectively have 7.5TB of data on there.  This is a real-world 
case on the aforementioned compute server.  Said student accidentally wipes out 
his entire thesis project, 200GB worth of files.  It's 9:30 PM and he needs his 
files by 8am or he fails his thesis defense, doesn't graduate and I'm looking 
for a new job.

With my file level backup system I can have his files restored within a couple 
of hours at the outside without affecting anyone else's work.

With your volume level backup system I would spend the night on Monster looking 
for a new job.  The problem with it is that I can't restore individual files 
because it isn't individual files that are backed up.  It's the disk blocks.  I 
can't just drop those backed-up blocks onto the volume.  Here:

  master->changes->changes->changes
       \->backup

If I dumped the backup blocks onto the volume then I'd scramble the file 
system.  Restoration would require me to replicate the entire volume at the 
block level as it was when the backup was made.  This would destroy all the 
other researchers' work done in the past however many hours since that backup 
was made.  I would fire myself for gross incompetence if I were relying on this 
kind of backup system.  It's that bad.

It gets worse.  What happens when the whole thing fails outright?  Total 
disaster on your 1TB disk.  Now it's not just 29 minutes to restore last 
night's blocks.  It's two hours to restore the initial replica and then 30 
minutes times however many deltas have been made.  Six deltas means 5 hours to 
do a full rebuild.  I can do a complete restore from TSM or rsnapshot in half 
that time, maybe less depending on how much data was actually there.

Data point: It takes ~19 hours to restore 7.5TB from enterprise-class Tivoli 
Storage Manager over 1GB Ethernet to a 12x1TB SATA (3Gb/s) RAID 6 volume.  I 
had to do it this past spring after the RAID controller on that volume went 
stupid and corrupted the whole thing.

--Rich P.

_______________________________________________
Discuss mailing list
[email protected]
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to