IFB.glusterfs
Rôle GlusterFS
- Créer un volume LVM thin et un système de fichiers (XFS) sur
storage_devices
- Configurer firewalld pour GlusterFS
- Installer glusterfs
- Ne pas gérer le volume Gluster :warning: Étape manuelle :warning:
- Activer les volumes glusterfs
- Monter les volumes glusterfs
Installation
Jouer le rôle
Gérer le volume manuellement
Sur un serveur gluster, connecter les pairs et créer des volumes
# Créer un pool de serveurs de confiance
gluster peer probe 192.168.103.32
gluster peer probe 192.168.103.33
gluster peer probe 192.168.103.34
gluster peer probe 192.168.103.35
gluster peer probe 192.168.103.36
# Volume /scratch (distribué)
gluster volume create scratch \
192.168.103.32:/bricks/scratch/brick1/brick \
192.168.103.33:/bricks/scratch/brick1/brick \
192.168.103.34:/bricks/scratch/brick1/brick \
192.168.103.35:/bricks/scratch/brick1/brick \
192.168.103.36:/bricks/scratch/brick1/brick
# Volume /data (répliqué-distribué 2 réplicas + arbitre)
gluster volume create data replica 3 arbiter 1 \
192.168.103.32:/bricks/data/brick1/brick 192.168.103.33:/bricks/data/brick2/brick 192.168.103.34:/bricks/data/arbiter/brick \
192.168.103.33:/bricks/data/brick1/brick 192.168.103.34:/bricks/data/brick2/brick 192.168.103.35:/bricks/data/arbiter/brick \
192.168.103.34:/bricks/data/brick1/brick 192.168.103.35:/bricks/data/brick2/brick 192.168.103.36:/bricks/data/arbiter/brick \
192.168.103.35:/bricks/data/brick1/brick 192.168.103.36:/bricks/data/brick2/brick 192.168.103.32:/bricks/data/arbiter/brick \
192.168.103.36:/bricks/data/brick1/brick 192.168.103.32:/bricks/data/brick2/brick 192.168.103.33:/bricks/data/arbiter/brick
- Jouer le rôle à nouveau
Sources
Largement inspiré de:
zaxos/glusterfs-ansible-role
George Zachariadis
Licence GPLv2
https://github.com/zaxos/glusterfs-ansible-rolemodule ansible gluster_volume
http://docs.ansible.com/ansible/latest/gluster_volume_module.htmlmodules LVM ansible
http://docs.ansible.com/ansible/latest/lvg_module.html
http://docs.ansible.com/ansible/latest/lvol_module.html
Variables du rôle
glusterfs_version
= Version de GlusterFS à installer en utilisant les packages CentOS Storage SIG. La valeur par défaut est la version "4.1".glusterfs_vg
= Liste des VG :vgname
,storage_devices
(Liste de dispositifs séparés par des virgules)glusterfs_thinpool
= Liste des thinpool :vgname
,poolname
,poolsize
(éviter les valeurs flottantes)glusterfs_lv
= Liste des volumes logiques LVM thin :lvname
,vgname
,poolname
(optionnel),lvsize
,mountpath
glusterfs_nodes
= Liste des nœuds dans le cluster GlusterFS. Par défaut, cette liste est peuplée par le groupe défini dans l'inventaireglusterfs_volumes
= Liste des volumes :volume
(nom),state
,options
,mount
: serveur, options, chemin,...firewalld_enabled
: Configurer le pare-feu
---
# Configurer le pare-feu
firewalld_enabled: true
# Configurer GlusterFS
glusterfs_volumes:
- volume: volume1 # Répliqué
state: present
replica: 3
mount:
path: "/mnt/volume1"
- volume: volume2 # Distribué sur 2 nœuds
state: present
nodes:
- node2.glusterfs.example
- node3.glusterfs.example
options:
performance.cache-size: 256MB
mount:
server: "node2.glusterfs.example"
options: "defaults,_netdev,backupvolfile-server=node3.glusterfs.example"
path: "/mnt/volume2"
owner: exampleuser # Par défaut : root
group: examplegroup # Par défaut : root
mode: "0770" # Par défaut : 0755
Options de montage
Voir :
- http://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Clients/#mounting-volumes
- man mount.glusterfs
Remarques sur le montage :
- Le serveur spécifié dans la commande de montage est uniquement utilisé pour récupérer le fichier de configuration gluster décrivant le nom du volume. Par la suite, le client communiquera directement avec les serveurs mentionnés dans le fichier de configuration (qui peuvent même ne pas inclure celui utilisé pour le montage).
- L'option backupvolfile-server permet de spécifier un autre serveur/volume de sauvegarde.
Exemple complet
---
glusterfs_version: "4.1"
glusterfs_vg:
- vgname: "vgscratch"
storage_devices: "/dev/sdb"
- vgname: "vgdata"
storage_devices: "/dev/sdc"
glusterfs_thinpool:
- vgname: "vgdata"
poolname: "thinpooldata"
poolsize: "9G"
glusterfs_lv:
- lvname: "scratch-brick1"
vgname: "vgscratch"
lvsize: "9G"
mountpath: "/bricks/scratch/brick1"
- lvname: "data-brick1"
vgname: "vgdata"
poolname: "thinpooldata"
lvsize: "4G"
mountpath: "/bricks/data/brick1"
- lvname: "data-brick2"
vgname: "vgdata"
poolname: "thinpooldata"
lvsize: "4G"
mountpath: "/bricks/data/brick2"
- lvname: "data-arbiter"
vgname: "vgdata"
poolname: "thinpooldata"
lvsize: "1G"
mountpath: "/bricks/data/arbiter"
glusterfs_volumes:
# RAID-0 sur ssd, distribué
- volume: scratch
state: present
mount:
# http://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Clients/#mounting-volumes
# man mount.glusterfs
server: "192.168.103.32"
options: "defaults,_netdev"
path: "/shared/scratch"
# RAID-6 sur disques SAS, répliqué-distribué (2 réplicas + arbitre)
- volume: data
state: present
mount:
# http://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Clients/#mounting-volumes
# man mount.glusterfs
server: "192.168.103.32"
options: "defaults,_netdev"
path: "/shared/data"
Installer
ansible-galaxy install IFB.glusterfs
Licence
gpl-2.0
Téléchargements
9.3k
Propriétaire
National Infrastructure of Bioinformatics, and French node of the ELIXIR ESFRI