Présentation & Installation
Note
La première version date de 2012, donc, les informations présentées dans ces premières pages sont outdated.
TL;DR: Pour les plus pressés, j'ai déjà répondu à un certain nombre de questions, et le récapitulatif des réglages commence en partie 7.
Suivant : ZFS on Linux - 2
1.0 - Introduction
Cette série d'articles sur ZFS a été écrite courant 2012 par Emmanuel Quemener, Kevin Reverchon et moi-même. Le site d'origine n'étant plus accessible, je la reprends ici à mon compte, en la mettant un peu à jour. J'ai viré la partie benchmarks et conservé le côté DIY.
Argument d'autorité : (en 2012) Le LLNL participe activement à ZFS on Linux en employant un développeur à plein temps.
Licence : ZFS est soumis à la licence CDDL, incompatible avec la GPL. Cela oblige à une petite circonvolution : L'interface SPL. (quand à la licence de ces articles, c'est du CC-BY-4.0)
La première partie traite trés rapidement de l'installation de ZFS on Linux sur Debian, à l'époque des Release Candidate (2012, Squeeze, Wheezy).
Les parties suivantes décriront les plateformes matérielles sur lesquelles nous avons installé et testé ZFS on Linux.
Les dernières parties traiteront des configurations (tips & tricks, tuning) de Linux, ZFS et les outils autour entre 2012 et aujourd'hui (2019).
1.1 - ZFS, qu'est-ce que c'est ?
ZFS intègre le RAID logiciel, le gestionnaire de volume et le système de fichiers dans un tout unifié accessible en deux commandes CLI : zpool et zfs.
ZFS prends tout son sens dès qu'on veut adresser des volumétries importantes (jusqu'à plusieurs centaines de Téra-octets par volume) ou un grand nombre de disques (120 ou plus, c'est le matériel qui devient limitant).
Cela étant dit, avec deux disques, on a un mode mirroir (ou RAID1) qui permet déjà de s'amuser. Et si on a plein de disques SATA, SAS, dans des DAS connectés via un HBA, pour avoir du JBOD, c'est encore mieux !
(C'est pas du chinois, c'est juste pour placer un maximum de notes de bas de pages tout de suite ;o)
- zpool va remplacer un contrôleur RAID matériel, et/ou mdadm. Il n'y a pas vraiment de limite (si 2^128 est une limite...) au nombre de disques qu'il peut gérer. Il aggrège les disques selon l'équivalent RAID1 (mirror), RAID5 (raidz1), RAID6 (raidz2), mieux-que-RAID6 (raidz3), et assure la gestion des disques de spare et des disques de cache (en écriture et en lecture).
L'aggrégat (ou volume primaire, ou pool) est déjà un système de fichiers, utilisable en l'état. Ça n'est pas recommandé ! Il sera nommé pool dans la suite de ces articles.
- zfs va remplacer LVM et votre système de fichiers préféré (ext2/3/4, xfs, jfs, ...). Il intègre des fonctions de prise d'instantané(s) (snapshot, clone) et de réplication (send | receive). Il gère aussi les quotas.
C'est à l'intérieur du pool que seront créés les systèmes de fichiers (ou volumes, ou datasets).
Exemples :
1 2 3 4 | zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
data 5,44T 1,80T 3,63T - 4% 33% 1.00x ONLINE -
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | zpool status -L data
pool: data
state: ONLINE
scan: scrub repaired 0 in 1h18m with 0 errors on Sun Mar 2 01:42:44 2013
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
errors: No known data errors
|
1 2 3 4 5 6 7 | zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 1,50T 2,87T 33,2K /data
data/test1 1,47T 542G 1,47T /data/test1
data/proto 27,2G 22,8G 26,7G /data/proto
data/toto 61,5M 2,87T 61,5M /data/toto
|
1.2 - Installation sur Debian
Note
La première version de ces articles date de 2012, donc, les informations présentées ici sont outdated.
Système support : Debian 7 Squeeze out of the box, (valable aussi sur Debian 8 Wheezy, aux différences du noyau (3.2) et du gcc (4.7) par défaut).
- Nettoyage et Préparation :
1 2 | apt-get purge nano vim-tiny nfs-common portmap
apt-get install vim tmux htop smartmontools
|
et mettez-vous dans un tmux pour la suite.
- Création d'un répertoire temporaire et récupération des sources :
1 2 3 4 | mkdir -p zol && cd zol/
wget http://github.com/downloads/zfsonlinux/spl/spl-0.6.0-rc6.tar.gz
wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc6.tar.gz
tar -xzf *-0.6.0-rc6.tar.gz
|
- Solaris Porting Layer :
1 2 3 4 5 | apt-get install build-essential gawk alien fakeroot linux-headers-2.6.32-5-amd64
cd ~/zol/spl-0.6.0-rc6/
./configure
make deb
dpkg -i *_amd64.deb
|
Tester tout de suite si ça fonctionne avec la SPL regression test suite :
1 2 | modprobe splat
/usr/sbin/splat -a
|
Tout doit être à Pass.
- ZFS on Linux :
1 2 3 4 5 | apt-get install zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi
cd ~/zol/zfs-0.6.0-rc6/
./configure
make deb
dpkg -i *_amd64.deb
|
Et on teste avec la ZFS regression test suite :
1 2 3 4 5 6 7 | /usr/libexec/zfs/zfault.sh -c
raid0 raid10 raidz raidz2 raidz3
1 soft write error Pass Pass Pass Pass Pass
2 hard write error Pass Pass Pass Pass Pass
3 all write errors Pass Pass Pass Pass Pass
4 soft read error Pass Pass Pass Pass Pass
5 hard read error Fail (33)
|
Le dernier test peut failed sans conséquence.
Note
Edit 2019 : Maintenant, oubliez tout ça !
Sur une Debian Stable, installez spl, spl-dkms, zfs-dkms, zfs-zed et zfsutils-linux.
Suivant : ZFS on Linux - 2
ZFS on Linux - Footnotes
date: | 2019-03-25 |
---|---|
category: | HPC |
tags: | ZFS |
(notes de bas de page des articles ZFS on Linux, pasque DRY)
CBP : Centre Blaise Pascal
CDDL : Common Development and Distribution License
CLI : Command Line Interface (interface en ligne de commande)
COW : Copy On Write (copie sur écriture)
CPU : Central Processing Unit (Processeur Central)
DAS : Direct_Attached_Storage
DIY : Do It Yourself : *Fais-le toi-même.*
DRY : Don't Repeat Yourself : *Ne te repête pas.*
GUID : Global Unique Identifier
HBA : Host Bus Adapter
HT : HyperThreading
JBOD : Just a Bunch Of Disks
LLNL : Laurence Livermore National Laboratory
LVM : Logical Volume Manager ou Gestion par Volumes Logiques
NFS : Network File System
OS : Operating System, ou Système d'Exploitation
PSMN : Pôle Scientifique de Modélisation Numérique (là où je passe l'essentiel de mes journées)
RAID : Redundant Array of Inexpensive Disks
RAM : Random Access Memory, ou Mémoire Vive
SAS : Serial Attached SCSI
SATA : Serial Advanced Technology Attachment
SPL : Solaris Porting Layer, see github
SSD : Solid State Drive
ZFS :
SPDX-License-Identifier : CC-BY-4.0