Seafile Master/slave

@Theodreyz
Je suis déjà le manuel de seafile mais le problème c’est que j’ai du mal à saisir ce qu’il faut y faire.
Notamment le “Memcached” que je ne comprend pas où l’'installer.
Peux-tu me dire si Mysql est similaire à MariaDB ? Car j’ai commencer à installer Seafile avec Mysql.

Pour mon infra virtuel, je souhaite mettre en place 2 Serveurs Seafile ainsi qu’un load balancer, donc 3 serveurs.

@valentin85,
Je ne m’en suis pas servi et c’est optionnel.
Les 2 ont été conçus par la même personne sauf que Mysql est sous la licence Oracle alors que Maria est sous “Gnu” .
Après c’est une affaire de choix et de limitations. Après sit tu veux aller loin dans ton projet, peut être qu’il vaudrait mieux pour toi de te tourner vers Maria. Après ça fonctionne aussi très bien avec !
As tu déjà dresser un plan de comment va fonctionner ton infra ? (du genre de celui que je t’ai montré)

@Theodreyz
Bonjour,

j’ai pu dresser un plan de mon infra souhaité :

Comme tu peux le voir, je souhaite que les clients seafile pointes vers une IP virtuelle et que le load balancer bascule d’un serveur à l’autre si le master rencontre un dysfonctionnement.
Peux-tu m’aider notamment si mon raisonnement est bon et sur les solution que je pourrais utiliser pour mettre cela en place ?

Merci.

Bonjour @valentin85,
Le principe est bon mais comment fais tu si ton loadbalancer tombe en rade??? :sunglasses:
Plus d’accès (du tout) pour tes utilisateurs… :rage: qui vont grogner en attendant que tu puisses rétablir l’accès.
Dans mon schéma, c’était le même principe sauf que c’est Heartbeat qui faisait le boulot du loadbalancer (ce qui est transparent pour l’utilisateur et te fais économiser une ou 2 machines (pour les load balancers). Economie sur les machines, la conso électrique et la clim… aussi sur la maintenance.
J’ai compris que tu as SRV-SEAFILE1 en master et SRV-SEAFILE2 en slave mais comment communiquent ils en eux?
Quelle solution as tu prévu pour la réplication des données de tes BDD?
Et les données elles sont où ? je ne les vois pas dans ton schéma ?!
@ bientôt :wink:

@Theodreyz
A oui en effet ^^
Donc en faite Heartbeat est capable de faire le basculement automatique ?
Si oui, je n’ai pas besoin de rajouter un serveur pour le load balancing (ça m’arrange bien :slight_smile: )
Pour la réplication de la base de données, il faut que je choisissent entre MySQL et MariaDB c’est ça ?

Oui en effet, je n’ai pas penser à mettre les données sur mon schéma. J’ai vu quelques part qu’il est possible que les données soient hébergées sur chaque serveur en local et qu’ils soient synchronisé. Peux-tu me confirmer si cela est possible ?

Merci encore

@valentin85,
C’est bien ça, Heartbeat c’est son travail s’il est bien configuré :

Côté BDD : il faut que tu choisisses en effet entre MariaDB et MySQL
Pour ma part MariaDB se révèle plus intéressent sur bien des points à long terme mais ça… c’est l’affaire de chacun.
Une fois que tu as ça, tu réfléchis à quel mécanisme vais je mettre en place pour la réplication de la BDD car elle ne se fait pas toute seule, ce serait trop simple… :slight_smile:

Côté Données, oui tu peux les hébergé en local, comment tu fais pour avoir la même chose sur les 2 serveurs dans ce cas là ? Et si ton Maitre tombe en panne est ce que tu as bien toutes les données sur le Slave ?
Ah ha… il faut bien que tu réfléchisses à ton scénario en anticipant les problématique dès le départ.
Si tu veux un conseil : commence par ce qui est le plus simple et améliore le fonctionnement au fur et à mesure de ta construction
@ bientôt

Heartbeat peu s’accommoder de gérer la partie web comme la partie bdd.

De manière personnel je préfère le couple corosync et pacemaker plutôt que hartbeat et mon mais c’est affaire de goût.

La réplication mysql peu s’effectuer par le biais de mysql replicator ou alors par un mécanisme plus
velu à base de DRBD.

Exemple trouvé sur le web rapidement (pas à jour mais c’est pas bien grave il faudra simplement adapter) :
http://denisrosenkranz.com/tuto-ha-un-cluster-drbdmysql-avec-heartbeat-sur-debian-7/

Etg en exmple pour corosyncpacemaker : https://www.linux-dev.org/2016/03/debian-jessie-8-3-short-howto-for-corosyncpacemaker-activepassive-cluster-with-two-nodes-and-drbdlvm/

@Theodreyz
Je voudrais savoir la différence entre la BDD et les données car du coup les données vont pas être stockées dans la BDD ?
Du coup je compte utiliser MySQL je pense et en données, j’ai vu qu’on peut faire avec NFS mais ça voudrais dire qu’il faut installer un serveur NFS sur chaque noeud ? Et je ne trouve pas de réplication de dossier ?

Merci.

@valentin85
La BDD va servir essentiellement à l’indexation des fichiers, je ne l’ai jamais décortiqué donc je ne saurai pas dire avec précision elle n’a jamais été très imposante mais elle est indispensable au bon fonctionnement du service.
Pour les données, le tout est de savoir comment tu souhaites y accéder, les stockées et les sauvegarder.
Il faut que ce soit transparent pour tes utilisateurs sans qu’elles soient accessibles directement.
Il faut que ce soit dimensionné correctement sans pour autant trop en faire et que cela reste évolutif en fonction de futurs besoins.
De ce côté là, il n’y a que toi qui peut savoir de quoi tu as besoin.

@Theodreyz
D’accord.
Tu peux me dire quelles solutions tu as utilisé pour ton stockage car à par le NFS je vois pas d’autre solution.
Et puis, je dois juste mettre en place la solution alors il faut pas que je fasse quelques chose de complexe non plus.

Si tu peux m’aider stp.

Merci.

Par exemple avec DRBD voir avec du Glusterfs, du moment que le volume reste acceptable pour le second et que tu ne dépasse pas les trois nœuds pour le premier ça passe sans soucis l’un comme l’autre et cela reste assez simple à mettre en place, attention toute fois, il faut mettre ne place la réplication en place avant tout déploiement de données.

@valentin85,
Dans mon cas comme c’était pour un test en local et afin de mettre la solution rapidement en place sans prise de tête avec les solutions de réplication un peu casse tête, j’avais opté pour un NAS en RAID1.
Cela permet de tester rapidement la solution à petits prix.
Après à plus grande échelle, il est vrai que la solution de @Clochette est plutôt bonne .
Faut voir de quels moyens tu disposes et de ce que tu vais faire au final !!

Bonjour @Clochette

Merci de ta réponse.
Voici mon schéma à jour :

Est-ce que ce système me permettra de redonder le service Seafile ?
Voyez-vous des SPOF ?

Merci.

Pour les ‘Single Point Of Failure’, il faut veiller a ce que les machines soient sur des alimentations redondées et surtout branchées sur deux alimentations différentes (avec des onduleur serait un plus).
La partie Switch doit elle aussi être redondé et pas brancher sur la même alimentation électrique, sinon concernant le schéma c’est d’après moi correcte.

Attention le drdb doit-être monté avant tout dépose de donnée, et à mon humble avis les fichiers de conf de seafile et la/les bases de données peuvent être mise dessus, sinon il faudra couplé une synchronisation via rsync pour les fichiers de confs et autres de seafile

Un ‘PRA’ ne serait pas non plus une chose inutile selon l’importance que tu donne à ton bouzin (un troisième machine avec un mysql-replicator serait idéale pour être maintenu sans soucis et reprendre en cas de crash monstrueux l’activité le temps de remonté l’ensemble de ta solution from scratch avec des backups.

@Clochette
C’est juste un maquettage que je dois faire donc pas besoin de penser à la partie alimentation et switch.

Donc dans l’ordre d’installation, je dois :
1 - Installation de DRBD sur les 2 noeuds
2 - Installation de Seafile
3 - Installation de MySQL
4 - Installation de Heartbeat

C’est ça ?

Tu peux installé le heartbeat au début t’assurer que sa gestion soit okay et ensuite procéder à la création du volume drbd sur le master et le slave.
Une fois que tu aura tester que tout soit en place tu pourra installé Seafile et la bdd.

Encore une fois la conf de Seafile pourra être synchro avec du rsync et une crontab au besoin, et conserver uniquement de la data sur drdb.

PS : Monte le drdb, puis ensuite au besoin monte un lvm dedans si tu veux conserver de la souplesse.

@Clochette

Merci de ta réponse.
Je vais essayer d’installer tout ça et je vous fait un retour.

@Clochette @Theodreyz

Je recherchais quelques infos sur le web quand je suis tombé sur une info : Peut-on vraiment mettre en place un cluster en HA avec la solution Seafile Community ?
Je vois qu’avec la version Pro cela est possible mais j’ai des doutes sur la version community.

Pouvez-vous m’éclaircir ?

Merci.

Bonjour @Clochette

Pourrais-tu m’expliquer la différence entre Pacemaker + COROSYNC et la solution HEARBEAT seul ?
Ainsi que les avantages inconvénients de ces solutions.

A quoi cela sert de couplé Pacemaker avec Heartbeat ?

Si tu peux me répondre rapidement stp

Merci d’avance.

Désolé pour le temps d’attente, je n’ai pas suivi le fil et avec les vacances :confused:

Personnellement Corosync + Pacemaker me permet de finement gérer l’état de santé de services, heartbeat fais à peu de chose la même mais de façon plus grossière et beaucoup plus simple.

Pour moi le plus gros avantages de Corosync c’est la possibilité de relance de service avant une éventuelle bascule, ce qui permet bien souvent d’éviter de se taper une rebascule plus tard lorsqu’il y a eu un gros flop réseau empêchant la réplication d’une base de donnée de se faire.

Je dirais que c’est affaire de goûts :stuck_out_tongue: