[PC-BSD Dev] Wild idea to speed up boot process
claudio at hpgcc3.org
Sat Aug 10 09:07:06 PDT 2013
On 08/09/2013 14:38, Radio młodych bandytów wrote:
> Some thoughts:
> 1. W/out UnionFS hacking it's unsafe in case of power failure
Yes, I guess it would have to be resolved by using a sync mode where a
written file gets written on both the upper and lower layers. That would
make it easier to keep things in sync.
Another idea would be to simply mark the files that are modified as
"dirty" on the ram disk, and write them only to the lower layer. On next
boot, any files that are "dirty" would be re-read from the root filesystem.
> 2. It would lose ZFS end-to-end checksumming
Not necessarily, since the ram disk backup can be on the same zfs root
filesystem, checksum would be handled by the underlying ZFS.
> 3. Obviously, it wastes RAM.
Yes, it would double the ram usage during boot, then it would be
released. But since the ramdisk can be uncached, that would be memory
that would otherwise be used by the zfs cache anyway. And if the ram is
available, why not use it?
The idea is to release all ram after booting is finished.
> 4. man mount_unionfs says: "THIS FILE SYSTEM TYPE IS NOT YET FULLY
> SUPPORTED (READ: IT DOESN'T WORK)". Major work is needed. Though there's
> also unionfs in FUSE, it may or may not work.
Yes, I saw that, and doesn't inspire much confidence. But I think the
functionality that would be required is not exactly that of the existing
unionfs, so we wouldn't be able to use the existing unionfs anyway.
> 5. We should measure the bottlenecks of the current procedure before
> trying to improve it. Is it going to be faster at all?
A lot of people already did that. Just look at the speedups you get from
booting on a normal hard disk w/SSD caching (Momentus XT?), which is
basically the same I'm proposing: a persistent cache that provides high
IOPS on top of a standard filesystem layer.
> 6. The illumos camp works on persistent L2ARC. It's a much better
> option, though requires hardware that not everybody has.
Obviously, if you already have cache with high IOPS (like an SSD), the
improvement from using a ram cache will be much less. But I think it
could still provide some speedup.
This idea is more to provide the benefits of a persistent cache to
everybody, whether you have one or not.
More information about the Dev