X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=local-zfs.adoc;h=2a5086e26c93c7b1914184c190d56fe702ff5ab2;hp=370bbc5c5327fe367b0f389457bc60d24948de37;hb=a45c999b4586734621bbc968d67f87390739b270;hpb=e300cf7dabefee4420ff2be46bf64d0c38a52d8a diff --git a/local-zfs.adoc b/local-zfs.adoc index 370bbc5..2a5086e 100644 --- a/local-zfs.adoc +++ b/local-zfs.adoc @@ -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 + zpool replace -f + +.Changing a failed bootable device when using systemd-boot + + sgdisk -R + sgdisk -G + zpool replace -f + pve-efiboot-tool format + pve-efiboot-tool init + +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="