Re: adding swap when expanding root filesystem

From: bob prohaska <fbsd_at_www.zefox.net>
Date: Tue, 08 Nov 2022 04:38:17 UTC
On Mon, Nov 07, 2022 at 04:07:08PM -0800, Mark Millard wrote:
> On Nov 7, 2022, at 12:51, bob prohaska <fbsd@www.zefox.net> wrote:
> 
> > On Mon, Nov 07, 2022 at 12:47:29PM -0600, Mike Karels wrote:
> >> On 7 Nov 2022, at 11:52, bob prohaska wrote:
> >> 
> >>> On Mon, Nov 07, 2022 at 10:10:38AM -0600, Mike Karels wrote:
> > [snip]
> > 
> >>>> I have a prototype,
> >>>> and wondered if this is a good thing to do.  Granted, this will often
> >>>> create swap on microSD, which is not optimal, but probably better than
> >>>> nothing.
> >>>> 
> > [snip]
> > 
> > Definitely better than nothing. I think it's a good thing to do.
> > 
> >>>> The current prototype creates a swap partition which is 1/10 of the disk
> >>>> if the disk is at least 15 GB and the initial root partition is no more
> >>>> than 1/3 of the disk, but only up to 1.5x of physical memory.  I would
> >>>> probably enable this by default, but provide a way to disable it via a
> >>>> kenv variable and/or a variable in /etc/rc.conf.
> >>>> 
> >>>> Thoughts?
> >>> 
> > 
> > "Yes, please!". I'd suggest 2-4x physical RAM rather than 1.5x,
> > simply because extra swap is harmless and microSD cards are 
> > amply large; 64GB was about the smallest readily available 
> > last time I looked. Now it's probably 128GB. 
> > 
> > It might be wise to add a warning about flash wearing out,
> > but it took a year of near-continuous buildworlds to kill
> > a 128GB microSD holding -current on a Pi3 with ~3 GB swap.
> > 
> > Anything done to make FreeBSD work better on Raspberry Pi
> > and competitors is worth a try. Running from microSD isn't
> > ideal but does work if used gently. It worked much better
> > under armv7. Between aarch64 and growth in compilers
> > working swap seems essential now, the more the better. 
> > 
> >>> For starters, is there any hope of making bsdinstall run from the
> >>> microSD and installing FreeBSD via the traditional process on USB?
> > [snip]
> >> 
> >> I think that???s a completely different problem.  I suspect that this
> >> is already possible, fetching packages over the net, but I don???t
> >> know the incantation.  Ideally the packages would be local, but then
> >> the image would be more like a CD-ROM.  It would be nice to have
> >> a procedure documented though.
> >> 
> > Since there's a complete system on the microSD can't that be used
> > as the initial repository?
> > 
> > I agree it is a different problem in terms of implementation. 
> > If bsdinstall can format a boot device for Raspberry Pi I should 
> > give it a try.
> 
> Remember that bsdinstall does not deal with U-Boot
> installation in general. 

Ok, I'll give up hope for now.
 
[snip]

> Also the amount of space
> U-Boot and the like takes varies. The Rock64 images
> use a 16 MiByte space for its U-Boot and the like,
> which are stored outside any file system. 

I'm not sure how anything can be stored "outside any
filesystem". Might it be better to say "in a private filesystem",
as in not known to the running kernel?

Is there any basic problem with automatically establishing a 
swap partition during a microSD card setup?  A trio of self-
hosted armv7 Pi2's with swap on microSD have been running 
happily for over two years as name, mail and webservers on 
64 GB cards. Admittely, aarch64 is a lot more swap-intensive, 
but a Pi3 ran for about a year on a 128 GB card before things 
started going wrong. That Pi3 was running buildworld
most of the time.

The Pi2's df outputs are now straddling 50% capacity without any 
cleanup, so it's probably time to think about upgrading the storage 
in some way. Treating microSD as a write-once medium isn't 
outrageous and it may be prudent for shingled mechnical disks. 
 
Configuring swap manually on a RPi microSD system is a very
considerable amount of work. Having it happen by default 
wastes at most a few percent of the card capacity. At this
point I can't see any reason to say it's a bad idea and
have some personal experience to suggest it's a good idea.

[bsdinstall limitations snipped]

It might be worth mentioning the /boot/loader.conf and 
/etc/sysctl.conf additions you've mentioned in other threads,
as adjuncts to having autoconfigured swap on microSD. They've
all been helpful in my experiments on RPi2 and RPi3. I think
they'd be constructive additions to the RPi images and perhaps
others.. 
 
Thanks for reading, and all your help!

bob prohaska