#56 Updates for Btrfs and ZRAM swap by default
Merged 9 months ago by pbokoc. Opened 9 months ago by chrismurphy.
Unknown source f33-btrfszram-default  into  master

@@ -4,14 +4,14 @@

  [[sect-installation-gui-manual-partitioning-btrfs]]

  ==== Creating a Btrfs Layout

  

- _Btrfs_ is a type of file system, but it has several features characteristic of a storage device. It is designed to make the file system tolerant of errors, and to facilitate the detection and repair of errors when they occur. It uses checksums to ensure the validity of data and metadata, and maintains snapshots of the file system that can be used for backup or repair.

+ _Btrfs_ is a type of file system, but it has several features characteristic of a storage device. It is designed to make the file system tolerant of errors, and to facilitate the detection and repair of errors when they occur. It uses checksums to ensure the validity of data and metadata, and supports snapshots that can be used for backup, replication, and namespace isolation (e.g. for use in containers).

  

  Creating a Btrfs layout is somewhat similar to LVM (described in xref:Installing_Using_Anaconda.adoc#sect-installation-gui-manual-partitioning-lvm[Creating a Logical Volume Managament (LVM) Layout]) with slightly different terminology. A Btrfs _volume_ is the equivalent of an LVM volume group, and a Btrfs _subvolume_ is similar to a LVM logical volume. An important difference to note is how [application]*Anaconda* reports sizes for separate mount points: For LVM, the exact size of each logical volume is shown next to each mount point in the left pane, while with Btrfs, the total size of the entire volume is shown next to each subvolume.

  

  [WARNING]

  ====

  

- Some partition types - notably the `/boot` and `/usr` directories and the BIOS Boot and EFI partitions - can not be placed on Btrfs subvolumes. Use standard physical volumes for them (or an LVM logical volume for `/usr`). See xref:Installing_Using_Anaconda.adoc#sect-installation-gui-manual-partitioning-recommended[Recommended Partitioning Scheme] for more information.

+ Some partition types - notably the BIOS Boot and EFI partitions - cannot be placed on Btrfs subvolumes. Use standard physical volumes for them. See xref:Installing_Using_Anaconda.adoc#sect-installation-gui-manual-partitioning-recommended[Recommended Partitioning Scheme] for more information.

  

  ====

  
@@ -24,7 +24,7 @@

  .Creating Btrfs Subvolumes and Volumes

  . Click the `+` button at the bottom of the list showing existing mount points. A new dialog window will open.

  

- . In the new dialog window, specify a mount point for which you want to create a separate logical volume - for example, `/`. Optionally, specify a size for the volume using standard units such as MB or GB (for example, `50GB`). Then, click `Add mount point` to add the volume and return to the main partitioning screen.

+ . In the new dialog window, specify a mount point for which you want to create a separate subvolume - for example, `/`. Anaconda will create a Btrfs subvolume for each mount point you create. Similar to directories, subvolumes have no discrete size of their own. Finally, click `Add mount point` to add the subvolume and return to the main partitioning screen.

  +

  [NOTE]

  ====
@@ -33,29 +33,27 @@

  

  ====

  

- . The mount point has now been created using the default settings, which means it has been created as an LVM logical volume. Select the newly created mount point in the left pane to configure it further, and convert it to a Btrfs subvolume by changing the `Device Type` option to `Btrfs`. Then, click `Update Settings` in the bottom right corner of the screen.

+ . Once the mount point is created, select the newly created mount point in the left pane, and configure it further in the right pane. When finished, click `Update Settings` in the bottom right corner of the screen.

  

- . In the `Volume` menu, you can see that the subvolume has been assigned to an automatically created volume, which is named after the {PRODUCT} variant you are installing (for example, `fedora-server00`. Click the `Modify` button under the drop-down menu to access the volume settings.

+ . In the `Volume` area, you can see that the mount point's subvolume has been assigned to an automatically created volume. Click the `Modify` button under the drop-down menu to access the configure volume settings.

  

- . In the `Configure Volume` dialog, you can change the volume's name, its `RAID level` (see xref:Installing_Using_Anaconda.adoc#sect-installation-gui-manual-partitioning-filesystems[Device, File System and RAID Types] for information about available RAID types), and you can also specify which physical devices (disks) this volume should reside on. You can select one or more disks which will be used to hold this volume by holding down kbd:[Ctrl] and clicking each disk in the list.

+ . In the `Configure Volume` dialog, you can change the volume's name, whether it's encrypted, its `RAID level` (see xref:Installing_Using_Anaconda.adoc#sect-installation-gui-manual-partitioning-filesystems[Device, File System and RAID Types] for information about available RAID types), and you can also specify which physical devices (disks) this volume should reside on. You can select one or more disks which will be used to hold this volume by holding down kbd:[Ctrl] and clicking each disk in the list.

  +

  [NOTE]

  ====

  

- If you select a redundant RAID type (such as `RAID1 (Redundancy)`), the volume will take up twice its actual size on your disks. A 5 GB volume with RAID1 will take up 10 GB of space.

+ The installer supports LUKS encryption of entire Btrfs volumes. To enable, click on the Modify button under Volume. Then check Encrypt. See the [citetitle]_{PRODUCT} Security Guide_, available at link:++https://docs.fedoraproject.org/++[], for information about LUKS disk encryption.

  

  ====

  +

- You can also make sure that the volume is encrypted by selecting the `Encrypt` option; this will enable LUKS encryption for the entire volume. See the [citetitle]_{PRODUCT} Security Guide_, available at link:++https://docs.fedoraproject.org/++[], for information about LUKS disk encryption.

- +

  Additionally, you can set a fixed size for the volume by selecting the `Fixed` option from the `Size policy` menu and entering a size for the volume group.

  +

  After you finish configuring the Btrfs volume settings, click `Save` to return to the main `Manual Partitioning` screen.

  

- . If you need to create more than one Btrfs volume, open the `Volume` drop-down menu and select the `Create a new volume group` option. A new dialog window will open, identical to the one described in the previous step. Again, select a name, storage devices, encryption settings, RAID level and size policy for the new volume, and click `Save`. The new volume will then become available in the `Volume Group` drop-down menu; you can then go through your existing mount points and change this setting to assign them to a different volume.

+ . If you need to create more than one Btrfs volume, open the `Volume` drop-down menu and select the `Create a new volume` option. A new dialog window will open, identical to the one described in the previous step. Again, select a name, storage devices, encryption settings, RAID level and size policy for the new volume, and click `Save`. The new volume will then become available in the `Volume` drop-down menu; you can then go through your existing mount points and change this setting to assign them to a different volume.

  

- . Configure other settings specific to the subvolume - its `Mount Point`, `Desired Capacity`, `File System`, and `Name`. Press `Update Settings` to apply any changes to the configuration.

+ . Configure other settings specific to the subvolume - its `Mount Point`, `Device Type`, and `Name`. Press `Update Settings` to apply any changes to the configuration.

  

  Repeat this procedure for any additional Btrfs subvolumes you want to create. Note that when creating additional subvolumes, a new volume is not automatically created each time; instead, any additional subvolumes are assigned to an existing volume.

  

- For each mount point you create, review its settings and make sure that it is assigned to the correct volume, that it has sufficient capacity, and that it has a descriptive name so you can identify the subvolume later if you need to.

+ For each mount point you create, review its settings and make sure that it is assigned to the correct volume, that it has sufficient capacity, and that it has a descriptive name so you can identify the subvolume.

@@ -6,20 +6,20 @@

  

  In most cases, at least the following mount points should always be created:

  

- `/boot` - 500 MB::  This partition contains the operating system kernel, which allows {PRODUCT} to boot. It also contains other files used during the bootstrap process. Due to the limitations of most firmware, creating a separate, small standard partition for this directory is recommended. In most scenarios, a 500 MB `/boot` partition is adequate.

+ `/boot` - 1 GB::  This partition contains the operating system kernel, which allows {PRODUCT} to boot. It also contains other files used during the bootstrap process. Due to the limitations of most firmware, creating a separate, small standard partition for this directory is recommended. In most scenarios, a 1 GB `/boot` partition is adequate.

  +

  [IMPORTANT]

  ====

  

  If your system has a hardware RAID controller, be aware that some BIOS types do not support booting from it. In that case, the `/boot` partition must be created on a partition outside of the RAID array, such as on a separate hard drive.

  

- Also note that the `/boot` directory can not be placed on a LVM logical volume or a Btrfs subvolume. Use a standard partition.

+ Also note that the `/boot` directory can not be placed on a LVM logical volume. Use a standard partition.

  

  ====

  

- `/` (root) - 10 GB::  This is where the root directory is located. The root directory is the top level of the directory structure. By default, all files are written to this partition unless a different partition is mounted in the path being written to (for example, `/boot` or `/home`). If you follow the recommended scheme described in this section, this will be the partition where most software packages will be installed.

+ `/` (root) - 25 GB::  This is where the root directory is located. The root directory is the top level of the directory structure. By default, all files are written to this partition unless a different partition is mounted in the path being written to (for example, `/boot` or `/home`). If you follow the recommended scheme described in this section, this will be the partition where most software packages will be installed.

  +

- For a minimal installation, a 5 GB root partition will be sufficient. However, for most common installations which include extra packages and a graphical user interface, the root partition should be at least 10 GB; with 20 GB being sufficient for most common use cases.

+ For a minimal installation, a 10 GB root partition will be sufficient. However, for most common installations which include extra packages and a graphical user interface, the root partition should be at least 25 GB; with 75 GB being sufficient for most common use cases.

  +

  [NOTE]

  ====
@@ -36,6 +36,13 @@

  +

  When the system runs out of swap space, the kernel terminates processes as the system RAM memory is exhausted. Configuring too much swap space results in storage devices being allocated but idle and is a poor use of resources. Too much swap space can also hide memory leaks. The maximum size for a swap partition and other additional information can be found in the `mkswap(8)` man page.

  +

+ [NOTE]

+ ====

+ 

+ Beginning with Fedora 33, disk-based swap is no longer created by default. Instead, ZRAM-based swap is automatically used. See `man zram-generator` and `man zram-generator.conf` for more information. Should you choose to create disk-based swap, you will have two swap devices: disk-based with a lower priority, and ZRAM-based with a higher priority.

+ 

+ ====

+ +

  The table below provides the recommended size of a swap partition depending on the amount of RAM in your system and whether you want sufficient memory for your system to hibernate. If you let the installation program partition your system automatically, the swap partition size will be established using these guidelines. Automatic partitioning setup assumes hibernation is not in use, and the maximum size of the swap partition is limited to 10% of the total size of the hard drive. If you want to set up enough swap space to allow for hibernation, or if you want to set the swap partition size to more than 10% of the system's storage space, you must edit the partitioning layout manually.

  +

  .Recommended System Swap Space

@@ -39,7 +39,7 @@

  

  After you select all disks you want to install {PRODUCT}, select one of the three options in the `Storage Configuration` section:

  

- * `Automatic` - If this option is selected, then after you press `Done` in the top left corner of the screen, the installer will determine the total amount of space on all selected disks, and it will create a _Logical Volume Management_ (LVM) layout suitable for your system. The specifics of this layout depend on whether your system uses BIOS or UEFI firmware, the total amount of free space on your disks, and the amount of RAM on your system (which determines the size of your swap space).

+ * `Automatic` - If this option is selected, then after you press `Done` in the top left corner of the screen, the installer will determine the total amount of space on all selected disks, and it will create a Btrfs layout suitable for your system. The specifics of this layout depend on whether your system uses BIOS or UEFI firmware, and the total amount of free space on your disks. A disk-based swap partition is not created, ZRAM-based swap is used instead.

  +

  With automatic partitioning, you can also select the `I would like to make additional space available` option below. Use this option if you want to reclaim space from an existing partitioning layout - for example, if a disk you want to use already contains a different operating system, and you want to make this system's partitions smaller to allow more room for {PRODUCT}. The `Reclaim space` dialog which opens if this option is selected is described later in this section.

  

This contains the minimum changes for Btrfs by default and ZRAM-based swap by default, plus related clarifications and recommended sizes.

I intended for #55 to be non-btrfs updates, and #56 to be btrfs+zram updates; so that they could be applied in order. But it looks like #56 has all the changes.

@chrismurphy You're seeing the results of how Git commits work. Once #55 is merged, then the commit list will shrink to just the Btrfs changes in this one.

Metadata Update from @pbokoc:
- Request assigned

9 months ago

rebased onto 1d5b1de

9 months ago

Same as #55, thank you for your contributions!

Pull-Request has been merged by pbokoc

9 months ago