]> git.proxmox.com Git - pve-docs.git/blobdiff - local-zfs.adoc
make dinstall: skip mediawiki deb for now
[pve-docs.git] / local-zfs.adoc
index 370bbc5c5327fe367b0f389457bc60d24948de37..2a5086e26c93c7b1914184c190d56fe702ff5ab2 100644 (file)
@@ -1,6 +1,9 @@
+[[chapter_zfs]]
 ZFS on Linux
 ------------
-include::attributes.txt[]
+ifdef::wiki[]
+:pve-toplevel:
+endif::wiki[]
 
 ZFS is a combined file system and logical volume manager designed by
 Sun Microsystems. Starting with {pve} 3.4, the native Linux
@@ -57,7 +60,7 @@ ZFS depends heavily on memory, so you need at least 8GB to start. In
 practice, use as much you can get for your hardware/budget. To prevent
 data corruption, we recommend the use of high quality ECC RAM.
 
-If you use a dedicated cache and/or log disk, you should use a
+If you use a dedicated cache and/or log disk, you should use an
 enterprise class SSD (e.g. Intel SSD DC S3700 Series). This can
 increase the overall performance significantly.
 
@@ -151,15 +154,9 @@ rpool/swap        4.25G  7.69T    64K  -
 Bootloader
 ~~~~~~~~~~
 
-The default ZFS disk partitioning scheme does not use the first 2048
-sectors. This gives enough room to install a GRUB boot partition. The
-{pve} installer automatically allocates that space, and installs the
-GRUB boot loader there. If you use a redundant RAID setup, it installs
-the boot loader on all disk required for booting. So you can boot
-even if some disks fail.
-
-NOTE: It is not possible to use ZFS as root file system with UEFI
-boot.
+Depending on whether the system is booted in EFI or legacy BIOS mode the
+{pve} installer sets up either `grub` or `systemd-boot` as main bootloader.
+See the chapter on xref:sysboot[{pve} host bootladers] for details.
 
 
 ZFS Administration
@@ -252,7 +249,19 @@ can be used as cache.
 
 .Changing a failed device
 
- zpool replace -f <pool> <old device> <new-device>
+ zpool replace -f <pool> <old device> <new device>
+
+.Changing a failed bootable device when using systemd-boot
+
+ sgdisk <healthy bootable device> -R <new device>
+ sgdisk -G <new device>
+ zpool replace -f <pool> <old zfs partition> <new zfs partition>
+ pve-efiboot-tool format <new disk's ESP>
+ pve-efiboot-tool init <new disk's ESP>
+
+NOTE: `ESP` stands for EFI System Partition, which is setup as partition #2 on
+bootable disks setup by the {pve} installer since version 5.4. For details, see
+xref:sysboot_systemd_boot_setup[Setting up a new partition for use as synced ESP].
 
 
 Activate E-Mail Notification
@@ -260,12 +269,19 @@ Activate E-Mail Notification
 
 ZFS comes with an event daemon, which monitors events generated by the
 ZFS kernel module. The daemon can also send emails on ZFS events like
-pool errors.
+pool errors. Newer ZFS packages ships the daemon in a separate package,
+and you can install it using `apt-get`:
+
+----
+# apt-get install zfs-zed
+----
 
 To activate the daemon it is necessary to edit `/etc/zfs/zed.d/zed.rc` with your
 favourite editor, and uncomment the `ZED_EMAIL_ADDR` setting:
 
+--------
 ZED_EMAIL_ADDR="root"
+--------
 
 Please note {pve} forwards mails to `root` to the email address
 configured for the root user.
@@ -297,14 +313,18 @@ time this value changes:
 ====
 
 
+[[zfs_swap]]
 .SWAP on ZFS
 
-SWAP on ZFS on Linux may generate some troubles, like blocking the
+Swap-space created on a zvol may generate some troubles, like blocking the
 server or generating a high IO load, often seen when starting a Backup
 to an external Storage.
 
 We strongly recommend to use enough memory, so that you normally do not
-run into low memory situations. Additionally, you can lower the
+run into low memory situations. Should you need or want to add swap, it is
+preferred to create a partition on a physical disk and use it as swapdevice.
+You can leave some space free for this purpose in the advanced options of the
+installer. Additionally, you can lower the
 ``swappiness'' value. A good value for servers is 10:
 
  sysctl -w vm.swappiness=10
@@ -312,7 +332,9 @@ run into low memory situations. Additionally, you can lower the
 To make the swappiness persistent, open `/etc/sysctl.conf` with
 an editor of your choice and add the following line:
 
- vm.swappiness = 10
+--------
+vm.swappiness = 10
+--------
 
 .Linux kernel `swappiness` parameter values
 [width="100%",cols="<m,2d",options="header"]