/tmp, /var/log, /var/tmp as /dev/md - why?

Warner Losh imp at bsdimp.com
Tue Jul 1 15:35:23 UTC 2014


On Jul 1, 2014, at 3:25 AM, Anton Shterenlikht <mexas at bris.ac.uk> wrote:

> Why is it a good idea to mount /tmp and some var dirs on memory disks:
> 
> root at raspberry-pi:/usr/ports # df -m
> Filesystem     1M-blocks Used Avail Capacity  Mounted on
> /dev/mmcsd0s2a     14694  777 12742     6%    /
> devfs                  0    0     0   100%    /dev
> /dev/mmcsd0s1         16    3    13    20%    /boot/msdos
> /dev/md0              28    4    22    16%    /tmp
> /dev/md1              14    0    12     0%    /var/log
> /dev/md2               4    0     4     0%    /var/tmp
> root at raspberry-pi:/usr/ports # 
> 
> Is this about speed or power, or maybe space?
> 
> Can I not put all these dirs on sd card?
> 
> I'm new to arm, so maybe things are different
> to other arches.

It isn’t so much about ARM as it is about SD cards. Each write to a file causes wear and tear on the card. Each update of metadata likewise. There are things that can be done (like enabling trim) that reduce the wear and tear on the card, NAND flash only has so much life. Do you really want to use it for data that’s at best disposable? No. SD cards these days are made from NAND that’s lucky to get 3k separate writes to it (or even worse: 500 in the case of TLC NAND). Given such a limited resource, nanobsd, and others, use MD devices to eliminate that wear and tear. It is the same rason there’s no swap partition...

Having said that, I’ve run many development systems without doing this. They work fine, but doing it in production has shown to result in some SD cards (not all) breaking prematurely.

Warner

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20140701/2d7a57d5/attachment.sig>


More information about the freebsd-arm mailing list