2 serveurs OVH Advance-4 Gamme 2026 (1 Master / 1 Slave) :
CPU : AMD EPYC 4585PX - 16c/32t - 4.3GHz/5.7GHz
RAM : 128GB DDR5 5600MHz
Disques : 4×7.68 To SSD NVMe Soft RAID
1 serveur OVH Advance-STOR Gamme 2026 (Backup) :
CPU : AMD EPYC 4345P - 8c/16t - 3.8 GHz/5.5 GHz
RAM : 128GB DDR5 5600MHz
Disques : 2×960 Go SSD NVMe Soft RAID + 4×24 To HDD SAS Soft RAID

L’installeur OVH utilise 2 disques sur 4 au hasard (ici nvme2 et nvme3) :
# fdisk -l /dev/nvme*n1
Disk /dev/nvme0n1: 6.99 TiB, 7681501126656 bytes, 15002931888 sectors
Disk model: SAMSUNG MZQL27T6HBLA-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: F57BB925-0B46-4398-826A-1EBD837A902D
Device Start End Sectors Size Type
Disk /dev/nvme1n1: 6.99 TiB, 7681501126656 bytes, 15002931888 sectors
Disk model: SAMSUNG MZQL27T6HBLA-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: F57BB925-0B46-4398-826A-1EBD837A902D
Device Start End Sectors Size Type
Disk /dev/nvme2n1: 6.99 TiB, 7681501126656 bytes, 15002931888 sectors
Disk model: SAMSUNG MZQL27T6HBLA-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: F57BB925-0B46-4398-826A-1EBD837A902D
Device Start End Sectors Size Type
/dev/nvme2n1p1 2048 1048575 1046528 511M EFI System
/dev/nvme2n1p2 1048576 3145727 2097152 1G Linux RAID
/dev/nvme2n1p3 3145728 15002927103 14999781376 7T Linux filesystem
Disk /dev/nvme3n1: 6.99 TiB, 7681501126656 bytes, 15002931888 sectors
Disk model: SAMSUNG MZQL27T6HBLA-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 1E48E8CA-E071-4980-A603-1BAB6CA2827B
Device Start End Sectors Size Type
/dev/nvme3n1p1 2048 1048575 1046528 511M EFI System
/dev/nvme3n1p2 1048576 3145727 2097152 1G Linux RAID
/dev/nvme3n1p3 3145728 15002927103 14999781376 7T Linux filesystem
Copier le partitionnement sur les disques vierges :
sgdisk --replicate=/dev/nvme0n1 /dev/nvme2n1
sgdisk --replicate=/dev/nvme1n1 /dev/nvme2n1
Dans le cas d’un serveur qui démarre en EFI, il peut être utile d’avoir au moins deux entrées entrées pour pouvoir démarrer même lorsque le disque qui héberge la partition EFI est hors service. Il n’est pas possible de mettre la partition EFI dans du RAID logiciel, donc il faut dupliquer la partition à la main.
cp /dev/nvme2n1p1 /dev/nvme0n1p1
cp /dev/nvme2n1p1 /dev/nvme1n1p1
apt install efibootmgr
efibootmgr -c -g -d /dev/nvme0n1 -p 1 -L debian -l '\EFI\debian\grubx64.efi'
efibootmgr -c -g -d /dev/nvme1n1 -p 1 -L debian -l '\EFI\debian\grubx64.efi'
L’installeur OVH a configuré un RAID 1 soft avec les deux premiers disques. On va ajouter les deux autres en plus :
root@ns3264579:/home/debian# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 nvme3n1p2[0] nvme2n1p2[1]
1046528 blocks super 1.2 [2/2] [UU]
unused devices: <none>
root@ns3264579:/home/debian# mdadm /dev/md2 --add /dev/nvme0n1p2
mdadm: added /dev/nvme0n1p2
root@ns3264579:/home/debian# mdadm /dev/md2 --add /dev/nvme1n1p2
mdadm: added /dev/nvme1n1p2
root@ns3264579:/home/debian# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 nvme1n1p2[3](S) nvme0n1p2[2](S) nvme3n1p2[0] nvme2n1p2[1]
1046528 blocks super 1.2 [2/2] [UU]
unused devices: <none>
L’installeur OVH a normalement créé un pool ZFS mirror :
root@ns3264579:/home/debian# zpool status
pool: zp0
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zp0 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme2n1p3 ONLINE 0 0 0
nvme3n1p3 ONLINE 0 0 0
Il faut maintenant ajouter un autre vdev mirroir pour avoir un équivalent RAID10 :
root@ns3264579:/home/debian# zpool add zp0 mirror /dev/nvme0n1p3 /dev/nvme1n1p3
root@ns3264579:/home/debian# zpool status
pool: zp0
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zp0 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme2n1p3 ONLINE 0 0 0
nvme3n1p3 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
nvme0n1p3 ONLINE 0 0 0
nvme1n1p3 ONLINE 0 0 0
Enfin il faut mettre à jour les quotas :
root@ns3264579:/home/debian# zfs get quota,refquota zp0/zd0
NAME PROPERTY VALUE SOURCE
zp0/zd0 quota 6.98T local
zp0/zd0 refquota none default
root@ns3264579:/home/debian# zfs set quota=none zp0/zd0
root@ns3264579:/home/debian# zfs get quota,refquota zp0/zd0
NAME PROPERTY VALUE SOURCE
zp0/zd0 quota none local
zp0/zd0 refquota none default
root@ns3264579:/home/debian# df -h /
Filesystem Size Used Avail Use% Mounted on
zp0/zd0 14T 1.5G 14T 1% /
Afin de tirer parti des performances de ZFS, il faut séparer les LOGS et les DATAS. Pour créer les datasets :
zfs create -p -o recordsize=16K -o compression=lz4 -o atime=off -o primarycache=metadata -o logbias=throughput -o mountpoint=/mariadb-data zp0/mariadb/data
zfs create -o compression=off -o sync=always -o primarycache=metadata -o mountpoint=/mariadb-logs zp0/mariadb/logs
chown mysql:mysql /mariadb-data
chown mysql:mysql /mariadb-logs

L’installeur OVH a normalement créé un pool ZFS mirror avec les deux premiers disques NVMe :
root@ns31830291:/home/debian# zpool status
pool: zp0
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zp0 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme0n1p3 ONLINE 0 0 0
nvme1n1p3 ONLINE 0 0 0
Il faut maintenant créer un autre pool (équivalent RAID10) avec les disques SAS :
zpool create zp1 mirror /dev/sda /dev/sdb
zpool add zp1 mirror /dev/sdc /dev/sdd
zfs set mountpoint=none zp1
root@ns31830291:/home/debian# zpool status
pool: zp0
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zp0 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme0n1p3 ONLINE 0 0 0
nvme1n1p3 ONLINE 0 0 0
errors: No known data errors
pool: zp1
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zp1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
Afin de tirer parti des performances de ZFS, il faut séparer les LOGS et les DATAS. Pour créer les datasets : Attention : le dataset des logs est créé sur le pool ZFS des disques NVMe
zfs create -p -o recordsize=16K -o compression=lz4 -o atime=off -o primarycache=metadata -o logbias=throughput -o mountpoint=/mariadb-data zp1/mariadb/data
zfs create -o compression=off -o sync=always -o primarycache=metadata -o mountpoint=/mariadb-logs zp0/mariadb/logs
zfs create -o mountpoint=/mariadb-dumps zp1/mariadb/dumps
chown mysql:mysql /mariadb-data
chown mysql:mysql /mariadb-logs
Si besoin de debug ajouter : “-vvv -e ‘debops__no_log=false’”
ansible-playbook -i inventory/100_hosts playbooks/debops_bootstrap.yml --vault-id @prompt --flush-cache --user debian --limit <server>.pkgdata.net
ansible-playbook -i inventory/100_hosts playbooks/debops_site.yml --vault-id @prompt --flush-cache --limit <server>.pkgdata.net