ZFS root File System
Pawel Jakub Dawidek
pjd at FreeBSD.org
Fri Feb 27 23:47:29 PST 2009
On Fri, Feb 27, 2009 at 07:21:15PM -0800, Matthew Dillon wrote:
> My experience with one of our people trying to do the same thing
> w/ HAMMER... we got it working, but it is not necessarily cleaner.
>
> I'd rather just boot from a small UFS /boot partition on 'a' (256M
> or 512M), followed by swap on 'b', followed by the big-ass root
> partition on 'd' using your favorite filesystem.
That's what I do on almost all of my company's servers. Except for...
> The boot code already pretty much handles this state of affairs, one only
> needs:
>
> (1) To partition it this way.
>
> (2) Add line to /boot/loader.conf pointing the kernel at the actual root,
> e.g. (in my case):
>
> vfs.root.mountfrom="hammer:ad6s1d"
This is not needed if you have etc/fstab with this one entry on your
boot partition.
> (3) Adjust sysctl kern.bootfile in e.g. /etc/sysctl.conf. Since the
> boot loader thinks the kernel is on / instead of /boot (because
> /boot is the root from the point of view of the bootloader),
> it might set this to "/kernel" instead of "/boot/kernel". So
> you may have to override it to make crash dumps and name lists
> work properly.
This is also not needed. My boot partition has boot/ and etc/
directories and I mount it under /bootdir.
Then I create symlink /boot -> bootdir/boot.
> (4) Add a mount for the little /boot partition in /etc/fstab.
>
> Trying to create one large root on 'a' puts the default spot for swap
> on 'b' at the end of the disk instead of near the beginning. The end
> of the disk (closer to the spindle) is a bad place for swap. Having
> a small /boot partition there instead retains the ordering and puts the
> swap where it is expected to be.
>
> # df
> Filesystem 1K-blocks Used Avail Capacity Mounted on
> /dev/ad6s1d 193888256 1662976 192225280 1% /
> /dev/ad6s1a 257998 110896 126464 47% /boot
>
> --
>
> In anycase, if RAID is an issue the loader could always be adjusted to
> look for a boot partition on multiple disks. One could then have a /boot
> on two independant disks, or even operate it as a soft-raid-mirror. It
> seems less of an issue these days since someone with that sort of
> requirement who isn't already net-booting can just pop in a SSD for
> booting which will have approximately the same or better MTBF as the
> motherboard electronics.
My 'a' (boot) and 'b' (swap) partitions are mirrored using gmirror.
For example:
puppet:root:~# mount -t ufs,zfs
system/root on / (zfs, local, noatime)
/dev/mirror/boot on /bootdir (ufs, local, noatime)
system/jails on /jails (zfs, local, noatime)
system/tmp on /tmp (zfs, local, noatime, nosuid)
system/usr on /usr (zfs, local, noatime)
system/home on /usr/home (zfs, local, noatime, nosuid)
system/home/pjd on /usr/home/pjd (zfs, local, noatime, nosuid)
system/usr/obj on /usr/obj (zfs, local, noatime)
system/usr/ports on /usr/ports (zfs, local, noatime)
system/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, noatime)
system/usr/share on /usr/share (zfs, local, noatime)
system/usr/src on /usr/src (zfs, local, noatime)
system/var/log on /var/log (zfs, local, noatime)
system/var/tmp on /var/tmp (zfs, local, noatime, nosuid)
puppet:root:~# swapctl -l
Device: 1024-blocks Used:
/dev/mirror/swap.eli 4194300 0
Some file systems like /tmp, /usr/src, /usr/ports, /usr/share, /var/log
and /var/tmp are compressed.
--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD.org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20090228/511a3594/attachment.pgp
More information about the freebsd-stable
mailing list