J’aimerais vous annoncer la publication d’un nouveau module puppet-lizardfs (offrez moi un petit « star » sur le Github de Puppet-Lizardfs pour encourager le projet puppet-lizardfs, cela me fera plaisir 😉 ) qui vous permettra de configurer le système de fichier distribué LizardFS sous Linux (Debian et CentOS/RedHat) avec le gestionnaire de configuration Puppet.

lizardfs

Fonctionnalités du module:

  • Configuration du LizardFS Master/Shadow (pour le metadata)
  • Configuration du LizardFS Chunkservers (le contenu des fichiers / chunks)
  • Configuration du LizardFS Metaloggers (backup du metadata)
  • Configuration de l’interface LizardFS CGI (GUI pour les LizardFS Master)
  • LizardFS client
  • Haute-disponibilité du LizardFS Master/Shadow avec Keepalived et un script de failover automatique
  • Bientôt: haute-disponibilité grâce à Pacemaker (une version alpha est dans le dépôt Git puppet-lizardfs)

Voici un exemple simple (1 serveur avec LizardFS master + 1 chunkserver) de configuration Puppet, qui permet de déployer LizardFS master + chunkserver avec Puppet et le module puppet-lizardfs:

# l'adresse IP du serveur où le serveur master sera configuré
host { 'mfsmaster':
  ip => 'x.x.x.x',
}

# déployer le LizardFS Master
class {'lizardfs::master':
  ensure              => 'present',
  first_personality   => 'MASTER',
  exports             => ['*    /    ro'],
}

# installe le client (qui permet de monter un point de montage LizardFS)
class {'lizardfs::client':
}
# installer et configurer le chunkserver (il sera automatiquement connecté au Master)
class {'lizardfs::chunkserver':
  ensure => present,
}

Lancez ensuite Puppet pour que la configuration ci-dessus soit appliquée.

La configuration ci-dessus va installer, configurer LizardFS Master + LizardFS Chunkserver automatiquement. Vous pourrez ajouter cette ligne à /etc/fstab:

mfsmount        /mnt/lizardfs   fuse    mfsmaster=mfsmaster,mfsport=9421,mfssubfolder=/,_netdev,noauto  0       0

Cela vous permettra de monter dans /mnt/lizardfs LizardFS votre premier LizardFS déployé avec Puppet.

Le module Puppet-LizardFS permet des réaliser des scénarios beaucoup plus compliqués que l’exemple ci-dessus, avec un déploiement hautement disponible sur plusieurs serveurs, plusieurs chunkservers, plusieurs masters (et shadows) qui peuvent faire un failover automatique dans le cas d’un incident.

Je vous recommande de lire la documentation de LizardFS, ainsi que le header des codes sources comme master.pp (pour LizardFS master) ou chunkserver.pp du module Puppet pour comprendre comment configurer LizardFS avec différents paramètres.

Liens externes relatifs à Puppet-LizardFS: