Title: Étendre une «pool» ZFS racine après une installation Ubuntu
Date: 2021-01-03 21:55
Modified: 2021-04-30
Summary: 1ère étape après une installation d'Ubuntu sur ZFS
Category: Bloc-notes
Tags: zfs, ubuntu, admin, shell, cli, performance, logiciel libre,
Status: Published
Lang: fr
Slug: extend-zfs-root-pool-after-ubuntu-installation

Depuis [Eoan Ermine (Ubuntu 19.10)](https://ubuntu.com/blog/enhancing-our-zfs-support-on-ubuntu-19-10-an-introduction), l'installeur Ubuntu (pour _desktop_) peut utiliser [ZFS](https://github.com/openzfs/zfs) comme système de fichier racine.

La version LTS du moment, [Focal Fossa (Ubuntu 20.04)](https://ubuntu.com/blog/zfs-focus-on-ubuntu-20-04-lts-whats-new) propose seulement une installation mono-disque, voici comment transformer une installation mono-disque en une installation à _disques miroirs_ pour utiliser la résilience des données fournie par ZFS.

🚧 _ZFS on root reste expérimental_ 🚧


🔧 Mode d'emploi
----------------

* `sda` est le disque utilisé par l'installeur
* `sdb` est le disque que l'on va ajouter pour créer un miroir

```
user@focal:~$ lsblk -a
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931,5G  0 disk
├─sda1   8:1    0   513M  0 part
├─sda2   8:2    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
├─sda6   8:6    0     2G  0 part
└─sda7   8:7    0   927G  0 part
sdb      8:16   0 931,5G  0 disk
```

```bash
user@focal:~$ blkid
/dev/sda1: UUID="BFE4-2413" TYPE="vfat" PARTUUID="f0771fca-01"
/dev/sda5: UUID="42456868-afc5-4dea-8b73-11257b84890e" TYPE="swap" PARTUUID="f0771fca-05"
/dev/sda6: LABEL="bpool" UUID="11578277722432725130" UUID_SUB="9520999198366150859" TYPE="zfs_member" PARTUUID="f0771fca-06"
/dev/sda7: LABEL="rpool" UUID="13693210375688435814" UUID_SUB="8709443765040685487" TYPE="zfs_member" PARTUUID="f0771fca-07"
```

Ubuntu crée 2 [`pools`](https://www.freebsd.org/doc/handbook/zfs-term.html#zfs-term-pool) :

1. `bpool` : coontient la _pool_ de `boot`
1. `rpool` : contient la _pool_ avec tout le système de fichier

```bash
user@focal:~$ zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
bpool  1,88G  91,2M  1,79G        -         -     0%     4%  1.00x    ONLINE  -
rpool   920G  3,19G   917G        -         -     0%     0%  1.00x    ONLINE  -
```

```bash
user@focal:~$ zpool status
  pool: bpool
 state: ONLINE
  scan: none requested
config:

	NAME           STATE     READ WRITE CKSUM
	bpool          ONLINE       0     0     0
	  f0771fca-06  ONLINE       0     0     0

errors: No known data errors

  pool: rpool
 state: ONLINE
  scan: none requested
config:

	NAME           STATE     READ WRITE CKSUM
	rpool          ONLINE       0     0     0
	  f0771fca-07  ONLINE       0     0     0
```

Lancer `fdisk` pour copier  la table de partition de `sda` vers `sdb` avec un fichier de script compatible `sfdisk` ([_voir la page de manuel_](https://manpages.ubuntu.com/manpages/focal/en/man8/fdisk.8.html#script%20files)).

```bash
user@focal:~$ fdisk /dev/sda #copy to file with O
user@focal:~$ fdisk /dev/sdb #import from file with I
```

```bash
user@focal:~$ lsblk -a
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931,5G  0 disk
├─sda1   8:1    0   513M  0 part
├─sda2   8:2    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
├─sda6   8:6    0     2G  0 part
└─sda7   8:7    0   927G  0 part
sdb      8:16   0 931,5G  0 disk
├─sdb1   8:17   0   513M  0 part
├─sdb2   8:18   0     1K  0 part
├─sdb5   8:21   0     2G  0 part
├─sdb6   8:22   0     2G  0 part
└─sdb7   8:23   0   927G  0 part
```

[Attacher](https://www.freebsd.org/doc/handbook/zfs-zpool.html#zfs-zpool-attach) les partitions jumelles a leur _pool_ :

```bash
user@focal:~$ sudo zpool attach bpool f0771fca-06 /dev/sdb6
user@focal:~$ sudo zpool attach rpool f0771fca-07 /dev/sdb7
```

🎉 Tada!


```bash
user@focal:~$ zpool status
  pool: bpool
 state: ONLINE
  scan: resilvered 92,2M in 0 days 00:00:01 with 0 errors on Sun Jan  3 22:22:09 2021
config:

	NAME             STATE     READ WRITE CKSUM
	bpool            ONLINE       0     0     0
	  mirror-0       ONLINE       0     0     0
	    f0771fca-06  ONLINE       0     0     0
	    sdb6         ONLINE       0     0     0

errors: No known data errors

  pool: rpool
 state: ONLINE
  scan: resilvered 4,05G in 0 days 00:01:06 with 0 errors on Sun Jan  3 22:24:05 2021
remove: Removal of vdev 1 copied 3,36M in 0h0m, completed on Sun Jan  3 21:14:16 2021
    456 memory used for removed device mappings
config:

	NAME             STATE     READ WRITE CKSUM
	rpool            ONLINE       0     0     0
	  mirror-0       ONLINE       0     0     0
	    f0771fca-07  ONLINE       0     0     0
	    sdb7         ONLINE       0     0     0

errors: No known data errors
```

📝 MàJ du 30/4/2021
-------------------

1. Étapes compatible avec l'installeur de la [version `21.04` «_Hirsute Hippo_»](https://discourse.ubuntu.com/t/hirsute-hippo-release-notes/19221).
    * la numérotation des partitions semble être continue désormais
1. Étendre la `swap` avec la partition disponible sur le disque ajouté :

```bash
user@hirsute:~$ free -h
              total       utilisé      libre     partagé tamp/cache   disponible
Mem:           11Gi       974Mi        10Gi       7,0Mi       259Mi        10Gi
Swap:          2,0Gi      0B           2,0Gi

user@hirsute:~$ sudo mkswap /dev/sdb5
Configure l'espace d'échange (swap) en version 1, taille = 2 GiB (2147479552 octets)
pas d'étiquette, UUID=bbbbbbbb-bbbbb-bbbb-bbbb-bbbbbbb

user@hirsute:~$ grep swap /etc/fstab
UUID=aaaaaaaa-aaaaa-aaaa-aaaa-aaaaaaa	none	swap	sw	0	0
UUID=bbbbbbbb-bbbbb-bbbb-bbbb-bbbbbbb	none	swap	sw	0	0

user@hirsute:~$ sudo swapon -U bbbbbbbb-bbbbb-bbbb-bbbb-bbbbbbb

user@hirsute:~$ free -h
              total       utilisé      libre     partagé tamp/cache   disponible
Mem:           11Gi       1,0Gi        10Gi       7,0Mi       261Mi        10Gi
Swap:          4,0Gi      0B           4,0Gi
```

---

🔖 Références
-------------


1. [_ZFS Features and Terminology_](https://www.freebsd.org/doc/handbook/zfs-term.html) - `www.freebsd.org`
1. [_The Z File System (ZFS)_](https://www.freebsd.org/doc/handbook/zfs-quickstart.html) - `www.freebsd.org`
1. [_OpenZFS_](https://github.com/openzfs/zfs) - `github.com`
1. [_Enhancing our ZFS support on Ubuntu 19.10 – an introduction_](https://ubuntu.com/blog/enhancing-our-zfs-support-on-ubuntu-19-10-an-introduction) - `ubuntu.com`
1. [_ZFS focus on Ubuntu 20.04 LTS: what’s new?_]() - `ubuntu.com`
1. [_zpool manpage_](https://manpages.ubuntu.com/manpages/focal/en/man8/zpool.8.html) - `manpages.ubuntu.com`
1. [_zfs manpage_](https://manpages.ubuntu.com/manpages/focal/en/man8/zfs.8.html) - `manpages.ubuntu.com`
