From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id wG/2FU4n/F9qewAA0tVLHw (envelope-from ) for ; Mon, 11 Jan 2021 10:24:14 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 8HbNEU4n/F/6MwAA1q6Kng (envelope-from ) for ; Mon, 11 Jan 2021 10:24:14 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D8CB8940597 for ; Mon, 11 Jan 2021 10:24:13 +0000 (UTC) Received: from localhost ([::1]:51546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kyuMu-0003yq-LA for larch@yhetil.org; Mon, 11 Jan 2021 05:24:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kyuMk-0003yi-2P for guix-patches@gnu.org; Mon, 11 Jan 2021 05:24:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:44182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kyuMj-0000Zk-Px for guix-patches@gnu.org; Mon, 11 Jan 2021 05:24:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kyuMj-0006lz-Lq for guix-patches@gnu.org; Mon, 11 Jan 2021 05:24:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#45734] [PATCH v2] gnu: update zfs. Resent-From: raid5atemyhomework Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 11 Jan 2021 10:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45734 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: "45734@debbugs.gnu.org" <45734@debbugs.gnu.org> Received: via spool by 45734-submit@debbugs.gnu.org id=B45734.161036060825990 (code B ref 45734); Mon, 11 Jan 2021 10:24:01 +0000 Received: (at 45734) by debbugs.gnu.org; 11 Jan 2021 10:23:28 +0000 Received: from localhost ([127.0.0.1]:55728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyuMC-0006l8-Db for submit@debbugs.gnu.org; Mon, 11 Jan 2021 05:23:28 -0500 Received: from mail-40132.protonmail.ch ([185.70.40.132]:44698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyuM9-0006kt-4o for 45734@debbugs.gnu.org; Mon, 11 Jan 2021 05:23:26 -0500 Date: Mon, 11 Jan 2021 10:23:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1610360598; bh=oDrL4LZN9Epw+F299DmYEU0IvF3uGqwxQIZSobemvl0=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=BbdL2rx+HJuLVUjI3NVsQVt5CqCTq07hITH5fLVmR/JkB0+lpwUYUJ+vTYqiTSQiA e/v/IcibatOLdak54JNxNaSwqMeo4MtW87u51JePKBzf+RytTiRcw4pUVUDjwVt48J d+WOn7zI6zmswfjW/ADUeRlQgQox1jv3+AC5IQvA= Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" Reply-to: raid5atemyhomework , raid5atemyhomework via Guix-patches From: raid5atemyhomework via Guix-patches via X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.85 Authentication-Results: aspmx1.migadu.com; dkim=fail (headers rsa verify failed) header.d=protonmail.com header.s=protonmail header.b=BbdL2rx+; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: D8CB8940597 X-Spam-Score: -2.85 X-Migadu-Scanner: scn1.migadu.com X-TUID: AG8EETZ73rOP For the patch to 2.0.1, I did the following testing: * Included patches https://issues.guix.gnu.org/45692 https://issues.guix.gn= u.org/45722 https://issues.guix.gnu.org/45723 * Created a new VM image that includes ZFS using `(service zfs-service-ty= pe ...)`. Linux Libre 5.4 though. * Expanded this image +10G and created a new partition and created a ZF= S pool there, with a ZFS dataset, and wrote some text files and also downlo= aded the ZFS source release into the ZFS filesystem. Then rebooted the VM = and checked that the ZFS filesystem was still automounted, the contents loo= k like they are as expected. * Created three extra disk images and booted the same image with the ex= tra disks. Added two of them as a mirror SLOG and the third as a L2ARC. T= hen rebooted and checked that the pool still mounts fine. * Started the VM again with the extra disk images rearranged. Checked = ZFS pool status, the L2ARC and SLOG devices were correctly rearranged as we= ll. Did a few more rearrangements and checked that ZFS assigned the ZFS de= vice to the correct use. * Started the VM again with one of the mirror SLOG devices missing. Ch= ecked ZFS pool status, confirmed that the SLOG mirror was degraded but the = pool is still up. So all of it seems to be working fine so far. I'm mostly satisfied with th= is. I'll probably need to add more code to make it work closer to how ZFS o= n other systems works (the current patches scan all devices rather than use= `/etc/zfs/zpool.cache`, because I don't really know what `/etc/zfs/zpool.c= ache`). With all those patches, ZFS on Guix supports: * Automatic importing and mounting of ZFS filesystems (does not use `/etc/z= fs/zpool.cache`; this theoretically speeds up the case where the computer h= as dozens or hundreds of disks, and protects in a setting where someone cou= ld potentially gain physical access to the computer and override sensitive = locations by plugging in a USB that gets auto-imported (and auto-mounted) a= t boot by ZFS). * `/home` on ZFS. * L2ARC and SLOG. * ZVOLs, accessible over `/dev/zvol/*` hierarchy. * Can have pools on LUKS containers by adding them as dependencies of the `= zfs-service-type` (untested). * `file-system` declarations mounted on ZVOLs (untested). Some other stuff is not supported yet: * `zpool.cache` file, which replaces `fstab` but is not user-editable, for = faster importing of ZFS pools. * ZFS Event Daemon. Traditionally this is configured by having the sysad m= anage a `/etc/zfs/zed.d/` directory; some bits of ZFS automation are provid= ed by the ZFS release and the sysad is supposed to either symlink to those,= or copy it and modify, or remove, or replace with their own script. * ZFS sharing over the network. Probably need to go look at how NFS and Sa= mba are started on Guix then figure this part out; NFS and Samba need to ge= t started first, but I'm not sure how ZFS talks to those to get its filesys= tems shared. * `/` on ZFS. Probably we need to have some kind of `initrd-kernel-module-s= ervice-type`, `initrd-kernel-module-loader-service-type`, and have kernel m= odule parameter configuration passed in either by the kernel command line, = or by the early `initrd` module loader (which isn't modprobe, by the way). * Mounting in "legacy" mode where datasets are declared via `(file-system .= ..)` declarations. Actually https://issues.guix.gnu.org/45643#3 has a patc= h for this as well.