# Configuration du disque de calcul export VER_conf_disks="0.0.6" # ------------------------------------------------------------------------------ # Cas de ZFS conf_zfs() { prnt I "Création du volume calcul en ZFS." # On crée les répertoires d'accueil mkdir -pv /calcul/$HOSTNAME # Installation de ZFS pkginst zfsutils-linux # Chargement du module et vérification modprobe zfs || ( prnt E "Échec de chargement du module noyau, abandon." die 2 ) sleep 1 prnt I "Création du pool zcalc..." if [[ $FORCEBLANK ]]; then local opt="--force" for drv in $CALCDRV; do if [[ ! $(sfdisk -d $drv 2>&1) == "" ]]; then prnt I "Effacement des donnée de $drv..." dd if=/dev/zero of=$drv bs=1024 count 1000000 fi done fi if [[ $(zpool create zcalc -m /calcul/$HOSTNAME $CALCLEVEL $opt $CALCDRV) ]]; then # On active la compression par défaut zpool set zcalc compression=lz4 if [[ $WITH_VM == true ]]; then prnt I "Création du conteneur pour la future VM..." zfs create zcalc/vm fi else prnt E "Erreur de création du pool zcalc ($CALCLEVEL) avec les disques $CALCDRV" die 3 fi } # ------------------------------------------------------------------------------ # Création des partitions pour XFS et Ext4 mkpart() { prnt I "Création d'une nouvelle table de partition GPT..." #fdisk -g } # ------------------------------------------------------------------------------ conf_ext4() { mkpart # A finir } # ------------------------------------------------------------------------------ conf_xfs() { prnt I "Installation des outils XFS..." pkginst xfsprogs mkpart # A finir } # ------------------------------------------------------------------------------ conf_disks() { [[ $STOP_CONF_DISK ]] && return 0 if [[ ! $CALCDRV ]]; then prnt I "Pas de disque de calcul défini, rien à faire." return 0 fi prnt I "Installation des outils de partitionnement..." pkginst parted conf_$CALCTYPE && ( prnt I "Attribution des droits sur le disque de calcul." chown -Rv $MAINUSER:$MAINUSER /calcul/$HOSTNAME ) } # ------------------------------------------------------------------------------ precheck_conf_disks() { if [[ ! $(type -t conf_$CALCTYPE) == "function" ]]; then prnt E "Format de disque inconnu ($CALCTYPE) !" die 5 fi prnt I "Vérification des lecteurs pour disque de calcul." local drvcount=0 for drv in $CALCDRV; do if [[ -e $drv ]]; then if [[ $(/sbin/sfdisk -d $drv 2>&1) == "" ]]; then prnt I "Le dique $drv est vierge, il sera formaté en $CALCTYPE." else prnt W "Le disque $drv n'est pas vierge !" if [[ $FORCEBLANK==true ]]; then prnt W "Le disque $drv sera réinitialisé !" else prnt E "La réinitialisation de $drv n'est pas autorisé, rien ne sera fait !" export STOP_CONF_DISK=1 fi fi else prnt E "Le disque $drv n'existe pas. Abandon." die 5 fi (( drvcount+=1 )) done if [[ ! $CALCTYPE=="zfs" && drvcount -gt 1 ]]; then prnt E "Plusieurs diques impossibles avec Ext4 ou XFS !" die 5 fi } export -f conf_disks export -f precheck_conf_disks