User:Zulu Foxtrott/Parts/Blocks/LayoutBtrfsSubvolumes

== Default: Laying out Btrfs subvolumes ==

Btrfs is a modern copy-on-write (CoW) filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair, and easy administration. With Btrfs it's possible to use subvolumes to replicate the functionality - organizing and managing data - of what on older systems used to be implemented by an advanced partitioning scheme. Btrfs subvolumes are not block level devices, they are POSIX file namespaces. They can be created at any location in the filesystem and will act like any other directory on the system with the exception that subvolumes can be mounted and unmounted.

How many subvolumes and what for?
The layout of the Btrfs filesystem structure is highly dependent on the demands of the system. It is advised to have at least separate subvolumes for (rootfs),  and the  which will increase security and make backups and other types of maintenance easier. If Gentoo is being installed to perform as a mail server, then should be backed by a subvolume of its own as all mails are stored inside the  directory. Game servers may have a separate subvolume to mount at since most gaming server software is installed therein. The reasoning for these is similar to the directory: security, backups, and maintenance.

What about swap space?
There is no perfect value for the swap partition. The purpose of swap space is to provide disk storage to the kernel when internal memory (RAM) is under pressure. A swap space allows for the kernel to move memory pages that are not likely to be accessed soon to disk (swap or page-out), freeing memory. Of course, if that memory is suddenly needed, these pages need to be put back in memory (page-in) which will take a while (as disks are very slow compared to internal memory).

When the system is not going to run memory intensive applications or the system has lots of memory available, then it probably does not need much swap space. However, swap space is also used to store the entire memory in case of hibernation. If the system is going to need hibernation, then a bigger swap space is necessary, often at least the amount of memory installed in the system.

From here, go to Using parted to partition the disk.