Installation FreeBSD sur ZFS
Contents
1 Introduction
J'adore ZFS et pour me faire un gros NAS, j'ai besoin de FreeBSD qui est capable de faire du ZFS et tout particulièrement l'utiliser sur la partition root également.
Pour celà j'ai donc eu besoin de 5 disques de même capacité et du DVD de FreeBSD (j'insiste sur le DVD car la version livefs ou CD ne contiennent pas tout ce qu'il faut pour pouvoir booter sur du ZFS).
2 Formatage des disques
2.1 Création des partitions
Bootez sur le DVD de FreeBSD et lancez le menu Fixit.
Une fois dedans, je vous invite à prendre connaissance des noms des devices installés sur votre OS :
ls |
> ls /dev/ad* /dev/ad10 /dev/ad12 /dev/ad4 /dev/ad6 /dev/ad8 |
Avant de créer les partitions et les slices, sachez que vous pouvez à n'importe quel moment regarder l'état de vos disque comme ceci :
gpart |
gpart show ad10 |
Nous allons définir le type des format des disques en GPT :
gpart |
gpart create -s gpt ad10 gpart create -s gpt ad12 gpart create -s gpt ad4 gpart create -s gpt ad6 gpart create -s gpt ad8 |
Ensuite nous allons créer une partition de boot :
Et une partition de swap (4Go par exemple) :
Pour calculer en cylindres la taille souhaiter, c'est assez simple, voici la formule en Mb avec un exemple pour nos 4Go :
taille cylindre = x * 4 * 512 8388608 = 4096 * 4 * 512
Et pour terminer les partitions de données, là ou sera le raid-z :
A vous d'adapter en fonction de l'espace restant (voir 'gpart show' pour savoir ce qu'il vous reste).
On installe le protected MBR et le gptzfsboot à chaque disques :
2.2 Création du ZFS
Nous allons avoir besoin de charger les modules ZFS :
kldload |
kldload /mnt2/boot/kernel/opensolaris.ko kldload /mnt2/boot/kernel/zfs.ko |
Et enfin on créer le raidz :
mkdir /boot/zfs zpool create zroot raidz1 /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 /dev/gpt/disk2 /dev/gpt/disk3 /dev/gpt/disk4 zpool set bootfs=zroot zroot |
Maintenant nous allons créer les points de montage nécessaires ainsi que les options ZFS pour installer le système.
On active la vérification par checksum sur le filesystem :
zfs |
zfs set checksum=fletcher4 zroot |
On créer une partition pour le /tmp avec quelques options sympas :
zfs |
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp chmod 1777 /zroot/tmp |
Et voilà, c'est terminé pour la partie ZFS.
3 Installation de FreeBSD
Nous allons décompresser une partie e ce qui se trouve sur le DVD dans notre zpool fraichement créer :
On se chroot dans notre nouvel environnement :
chroot |
chroot /zroot |
Et on configure le fichier rc.conf :
/etc/rc.conf |
zfs_enable="YES" hostname="freebsd.deimos.fr" ifconfig_re0="DHCP" |
Et le fichier bootloader :
/boot/loader.conf |
zfs_load="YES" vfs.root.mountfrom="zfs:zroot" |
3.1 Configuration
On configure le password de root :
passwd |
passwd |
La timezone :
tzsetup |
tzsetup |
Les alias mail :
cd /etc/mail make aliases |
On démonte et sort du chroot :
umount /dev exit |
Et on copie le cache du zpool :
cp |
cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache |
On créer le fstab :
On démonte le zpool :
export |
export LD_LIBRARY_PATH=/mnt2/lib zfs unmount -a |
Et on configure les points de montage de nos zfs :
zfs set mountpoint=legacy zroot zfs set mountpoint=/tmp zroot/tmp |
Il ne reste plus qu'a sortir du mode fixit et du sysinstall pour rebooter.
4 FAQ
4.1 RaidZ2 degraded
Qu'est-ce qu'il se passe si vous avez un disque en mode dégradé ? C'est simple déjà, on va faire un status histoire de voir ce que ça donne :
Là on peut voir l'état "DEGARDED". Pour aller au plus simple :
- Si la machine est allumée : remplacez le disque défectueux par un neuf.
- Si la machine est éteinte ou que vous souhaitez l'éteindre : bootez sur le DVD de FreeBSD, chargez les modules de ZFS.
Recréez ensuite les partitions comme vous avez fait pour les autres disques. Puis nous allons ajouter le nouveau disque dans le raidz2 afin que celui ci reconstruise automatiquement ce qu'il faut :
zpool |
zpool replace zroot /dev/gpt/disk3 |
Ici mon disk3 était défectueux, j'ai donc recréer exactement les mêmes partitions sur le nouveau disque et l'ajoute. Lorsque l'on fait un status, on peut voir que les autres disques reconstruisent le nouveau :
Une fois terminé, vous pouvez soit rebooter si vous avez choisis la solution d'avoir booter sur le DVD de FreeBSD, soit rien à faire si votre machine était déjà allumée.
5 Ressources
http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/RAIDZ1
Documentation on How to install FreeBSD 7.0 under ZFS
http://www.sun.com/bigadmin/features/articles/zfs_part2_ease.jsp