Re: Back to the future.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <nigel@...>
Cc: Linus Torvalds <torvalds@...>, Rafael J. Wysocki <rjw@...>, Pekka J Enberg <penberg@...>, LKML <linux-kernel@...>
Date: Friday, April 27, 2007 - 9:03 pm

On Apr 27, 2007, at 18:07:46, Nigel Cunningham wrote:


Actually, it's a lot simpler than that.  We can just combine the  
device-mapper snapshot with a VM+kernel snapshot system call and be  
almost done:

   sys_snapshot(dev_t snapblockdev, int __user *snapshotfd);

When sys_snapshot is run, the kernel does:

1)  Sequentially freeze mounted filesystems using blockdev freezing.   
If it's an fs that doesn't support freezing then either fail or force- 
remount-ro that fs and downgrade all its filedescriptors to RO.   
Doesn't need extra locking since process which try to do IO either  
succeed before the freeze call returns for that blockdev or sleep on  
the unfreeze of that blockdev.  Filesystems are synchronized and made  
clean.
2)  Iterate over the userspace process list, freezing each process  
and remapping all of its pages copy-on-write.  Any device-specific  
pages need to have state saved by that device.
3)  All processes (except kernel threads) are now frozen.
4)  Kernel should save internal state corresponding to current  
userspace state.  The kernel also swaps out excess pages to free up  
enough RAM and prepares the snapshot file-descriptor with copies of  
kernel memory and the original (pre-COW) mapped userspace pages.
5)  Kernel substitutes filesystems for either a device-mapper  
snapshot with snapblockdev as backing storage or union with tmpfs and  
remounts the underlying filesystems as read-only.
6)  Kernel unfreezes all userspace processes and returns the snapshot  
FD to userspace (where it can be read from).

Then userspace can do whatever it wants.  Any changes to filesystems  
mounted at the time of snapshot will be discarded at shutdown.   
Freshly mounted filesystems won't have the union or COW thing done,  
and so you can write your snapshot to a compressed encrypted file on  
a USB key if you want to, you just have to unmount it before the  
snapshot() syscall and remount it right afterwards.

Cheers,
Kyle Moffett

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Back to the future., Nigel Cunningham, (Thu Apr 26, 2:04 am)
Re: Back to the future., Jan Engelhardt, (Thu Apr 26, 4:38 am)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 5:33 am)
Re: Back to the future., Pekka Enberg, (Thu Apr 26, 3:28 am)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 3:42 am)
Re: Back to the future., Linus Torvalds, (Thu Apr 26, 12:56 pm)
Re: Back to the future., Chase Venters, (Thu Apr 26, 2:22 pm)
Re: Back to the future., David Lang, (Thu Apr 26, 2:50 pm)
Re: Back to the future., Linus Torvalds, (Thu Apr 26, 1:07 pm)
Re: Back to the future., Pavel Machek, (Fri Apr 27, 8:49 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 5:26 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 6:12 pm)
Re: Back to the future., Pavel Machek, (Thu Apr 26, 6:42 pm)
Re: Back to the future., David Lang, (Thu Apr 26, 6:24 pm)
Re: Back to the future., Pavel Machek, (Thu Apr 26, 7:12 pm)
Re: Back to the future., David Lang, (Thu Apr 26, 6:49 pm)
Re: Back to the future., Olivier Galibert, (Thu Apr 26, 8:23 pm)
Re: Back to the future., Pavel Machek, (Thu Apr 26, 7:27 pm)
Re: Back to the future., David Lang, (Thu Apr 26, 6:56 pm)
Re: Back to the future., Pavel Machek, (Thu Apr 26, 6:40 pm)
Re: Back to the future., Pekka Enberg, (Fri Apr 27, 1:41 am)
Re: Back to the future., Pavel Machek, (Fri Apr 27, 10:55 am)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 5:39 pm)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 3:56 pm)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 12:52 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 4:44 pm)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 2:08 am)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 2:18 am)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 2:29 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 5:24 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 5:44 pm)
Re: Back to the future., Jeremy Fitzhardinge, (Fri Apr 27, 8:18 pm)
Re: Back to the future., Matthew Garrett, (Fri Apr 27, 9:00 pm)
Re: Back to the future., Jeremy Fitzhardinge, (Fri Apr 27, 9:05 pm)
Re: Back to the future., Pavel Machek, (Thu May 3, 11:14 am)
Re: Back to the future., Eric W. Biederman, (Fri Jun 1, 3:00 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 9:08 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 6:04 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 6:08 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 6:41 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 6:26 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 7:21 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 7:01 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 8:02 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 7:17 pm)
Re: Back to the future., Pavel Machek, (Thu May 3, 11:25 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 7:45 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 7:59 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 8:18 pm)
Re: Back to the future., Pavel Machek, (Sat May 5, 7:42 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 9:00 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 9:12 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 8:54 pm)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 9:44 pm)
Re: Back to the future., Pavel Machek, (Sat Apr 28, 4:50 am)
Re: Back to the future., David Lang, (Sat Apr 28, 2:32 pm)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 3:14 pm)
Re: Back to the future., David Lang, (Sat Apr 28, 2:44 pm)
Re: Back to the future., Linus Torvalds, (Sat Apr 28, 12:28 pm)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 1:50 pm)
Re: Back to the future., Linus Torvalds, (Sat Apr 28, 5:25 pm)
Re: Back to the future., Pavel Machek, (Sun Apr 29, 4:23 am)
Re: Back to the future., Rafael J. Wysocki, (Sun Apr 29, 5:22 am)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 7:03 pm)
Re: Back to the future., Linus Torvalds, (Sat Apr 28, 7:45 pm)
Re: Back to the future., Kyle Moffett, (Sat Apr 28, 11:43 pm)
Re: Back to the future., Rafael J. Wysocki, (Sun Apr 29, 4:57 am)
Re: Back to the future., Pavel Machek, (Sun Apr 29, 4:59 am)
Re: Back to the future., Rafael J. Wysocki, (Sun Apr 29, 5:32 am)
Re: Back to the future., Nigel Cunningham, (Sat Apr 28, 8:01 pm)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 5:24 am)
Re: Back to the future., Daniel Hazelton, (Fri Apr 27, 10:51 pm)
progress meter in s2disk (was Re: Back to the future.), Pavel Machek, (Sat Apr 28, 3:00 am)
Re: Back to the future., Paul Mackerras, (Fri Apr 27, 8:50 pm)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 7:57 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 7:50 pm)
Re: Back to the future., Linus Torvalds, (Fri Apr 27, 8:40 pm)
Re: Back to the future., Pavel Machek, (Thu May 3, 1:18 pm)
Re: Back to the future., David Lang, (Sun May 6, 10:13 pm)
Re: Back to the future., Kyle Moffett, (Sun May 6, 11:33 pm)
Re: Back to the future., Pavel Machek, (Mon May 7, 8:48 am)
Re: Back to the future., Oliver Neukum, (Mon May 7, 8:52 am)
Re: Back to the future., , (Mon May 7, 10:37 am)
Re: Back to the future., Pavel Machek, (Mon May 7, 3:51 pm)
Re: Back to the future., , (Mon May 7, 3:55 pm)
Re: Back to the future., Pavel Machek, (Mon May 7, 4:38 pm)
Re: Back to the future., Disconnect, (Tue May 8, 1:36 pm)
Re: Back to the future., Oliver Neukum, (Sat Apr 28, 2:58 am)
Re: Back to the future., Pekka J Enberg, (Sat Apr 28, 5:16 am)
Re: Back to the future., David Lang, (Sat Apr 28, 2:28 pm)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 6:07 pm)
Re: Back to the future., Kyle Moffett, (Fri Apr 27, 9:03 pm)
Re: Back to the future., Pavel Machek, (Thu May 3, 11:10 am)
Re: Back to the future., Kyle Moffett, (Thu May 3, 12:53 pm)
Re: Back to the future., David Greaves, (Fri May 4, 3:52 am)
Re: Back to the future., Kyle Moffett, (Fri May 4, 9:27 am)
Re: Back to the future., Rafael J. Wysocki, (Fri Apr 27, 9:15 pm)
Re: Back to the future., David Lang, (Fri Apr 27, 8:51 pm)
Re: Back to the future., Kyle Moffett, (Fri Apr 27, 9:25 pm)
Re: Back to the future., Oliver Neukum, (Fri Apr 27, 5:50 am)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 6:12 am)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 6:35 am)
Re: Back to the future., David Lang, (Sat Apr 28, 2:43 pm)
Re: Back to the future., Rafael J. Wysocki, (Sat Apr 28, 3:37 pm)
Re: Back to the future., Oliver Neukum, (Fri Apr 27, 3:07 pm)
Re: Back to the future., Pekka Enberg, (Sat Apr 28, 5:22 am)
Re: Back to the future., Oliver Neukum, (Sat Apr 28, 9:37 am)
Re: Back to the future., Pavel Machek, (Thu May 3, 8:06 am)
Re: Back to the future., Indan Zupancic, (Fri May 4, 5:52 pm)
Re: Back to the future., Pavel Machek, (Sat May 5, 5:16 am)
Re: Back to the future., Indan Zupancic, (Sat May 5, 8:02 am)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 2:34 am)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 2:50 am)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 3:03 am)
Re: Back to the future., Pekka J Enberg, (Fri Apr 27, 3:24 am)
Re: Back to the future., Bill Davidsen, (Sat Apr 28, 3:09 pm)
Re: Back to the future., Xavier Bestel, (Thu Apr 26, 1:03 pm)
Re: Back to the future., Linus Torvalds, (Thu Apr 26, 1:34 pm)
Re: Back to the future., Pekka Enberg, (Fri Apr 27, 3:51 am)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 4:08 pm)
Re: Back to the future., Linus Torvalds, (Thu Apr 26, 4:45 pm)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 4:50 pm)
Re: Back to the future., Olivier Galibert, (Thu Apr 26, 8:10 pm)
Re: Back to the future., Daniel Pittman, (Fri Apr 27, 6:21 am)
Re: Back to the future., Nigel Cunningham, (Fri Apr 27, 7:19 pm)
Re: Back to the future., Rafael J. Wysocki, (Thu Apr 26, 6:08 pm)
Re: Back to the future., Linus Torvalds, (Thu Apr 26, 7:15 pm)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 6:20 pm)
Re: Back to the future., Theodore Tso, (Thu Apr 26, 5:38 pm)
Re: Back to the future., Christoph Hellwig, (Fri Apr 27, 6:10 am)
Re: Back to the future., Pekka Enberg, (Thu Apr 26, 4:17 am)
Re: Back to the future., Nigel Cunningham, (Thu Apr 26, 5:28 am)
Re: Back to the future., Luca Tettamanti, (Thu Apr 26, 1:29 pm)