tag:linuxfr.org,2005:/tags/glusterfs/publicLinuxFr.org : les contenus étiquetés avec « glusterfs »2019-02-27T11:39:32+01:00/favicon.pngtag:linuxfr.org,2005:WikiPage/3682019-02-27T11:39:32+01:002020-07-01T20:40:01+02:00Glusterfs-server Que se passe-t-il en cas de split brain (conflit de fichiers)<h2 id="toc-glusterfs-server-que-se-passe-t-il-en-cas-de-split-brain-conflit-de-fichiers">Glusterfs-server Que se passe-t-il en cas de split brain (conflit de fichiers)</h2>
<p>Attention : cet article est un retour d'expérience.</p>
<h3 id="toc-introduction">Introduction</h3>
<p>Un <a href="https://fr.wikipedia.org/wiki/Split-brain">split brain</a> est une expression indiquant des conflits sur un ou plusieurs fichiers. Ces conflits résultent de modifications sur un même fichier répartis sur plusieurs machines. Les split brain arrivent généralement lorsqu'on utilise deux machines (replica 2) ou que la grappe est réparties de façon homogène sur deux réseaux perturbés par une coupure. Avec glusterfs-server, à part en replica 3 ou en replica 3 arbiter 1 pour ceux chez qui il fonctionne, vous tomberez tôt ou tard sur un split brain. </p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f77696b692e3072696f6e2e6e65746c69622e72652f6c69622f6578652f66657463682e7068703f6d656469613d646f63756d656e746174696f6e5f66723a73637265656e73686f742d323031375f31315f32322d676c757374657266732d7365727665725f73706c69745f627261696e5f72657061726174696f6e5f64656d6f2e706e67/fetch.php?media=documentation_fr:screenshot-2017_11_22-glusterfs-server_split_brain_reparation_demo.png" alt="screenshot-2017_11_22-glusterfs-server_split_brain_reparation_demo" title="Source : https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_fr:screenshot-2017_11_22-glusterfs-server_split_brain_reparation_demo.png"><br>
<img src="//img.linuxfr.org/img/68747470733a2f2f77696b692e3072696f6e2e6e65746c69622e72652f6c69622f6578652f66657463682e7068703f6d656469613d646f63756d656e746174696f6e5f66723a73637265656e73686f742d323031375f31315f32332d6e657874636c6f75645f6c6f672d73706c69745f6261696e5f676c757374657266732e706e67/fetch.php?media=documentation_fr:screenshot-2017_11_23-nextcloud_log-split_bain_glusterfs.png" alt="screenshot-2017_11_23-nextcloud_log-split_bain_glusterfs" title="Source : https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_fr:screenshot-2017_11_23-nextcloud_log-split_bain_glusterfs.png"></p>
<h3 id="toc-réparation">Réparation</h3>
<p>NB : Lors de mon essai, après avoir fixé le split brain sur un replica 2, glusterfs-server a commencé à planter plein tube (l'autre machine la voit connecté, mais elle est incapable d'accomplir un “gluster peer status” sans renvoyer “peer status: failed” et ce jusqu'à avoir ré-installé glusterfs-server sur la dite machine et surtout <a href="//linuxfr.org/wiki/tuto-howto-ubuntu-debian-chiffrer-ses-volumes-glusterfs">reforgé complètement les clés TLS</a>). Le lendemain le volume a split brain à nouveau et les commandes indiquées ci-bas n'ont menées à RIEN. Si vous le pouvez, n'utilisez pas glusterfs-server.</p>
<ol>
<li>
<strong>Lancez la fonction heal sur votre volume.</strong> (qui sert à ???)</li>
</ol>
<pre><code>gluster volume heal nomVolume
</code></pre>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f77696b692e3072696f6e2e6e65746c69622e72652f6c69622f6578652f66657463682e7068703f6d656469613d646f63756d656e746174696f6e5f66723a73637265656e73686f742d323031375f31315f32332d676c757374657266732d7365727665725f637261705f736f6674776172655f6275675f647572696e675f6865616c5f73706c69745f627261696e2e706e67/fetch.php?media=documentation_fr:screenshot-2017_11_23-glusterfs-server_crap_software_bug_during_heal_split_brain.png" alt="screenshot-2017_11_23-glusterfs-server_crap_software_bug_during_heal_split_brain" title="Source : https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_fr:screenshot-2017_11_23-glusterfs-server_crap_software_bug_during_heal_split_brain.png"></p>
<ol>
<li><strong>Lancez la commande ls -R pour afficher les fichiers éventuellement “cassé”.</strong></li>
</ol>
<pre><code>ls -R /media/partitionGluster/
</code></pre>
<ol>
<li><strong>Démontez votre volume.</strong></li>
</ol>
<pre><code>umount /media/partitionGluster/
</code></pre>
<ol>
<li><strong>Affichez les éléments.</strong></li>
</ol>
<pre><code>getfattr -d -m . -e hex /media/chemin/nomVolume
</code></pre>
<ol>
<li><strong>Forcez la valeur d'un attribut.</strong></li>
</ol>
<pre><code>setfattr -n nom_attribut -v valeur_de_lattribut /media/chemin/nomVolume
</code></pre>
<ol>
<li><strong>Re-montez votre volume.</strong></li>
</ol>
<pre><code>mount /media/partitionGluster/
</code></pre>
<ol>
<li><strong>Affichez son contenu pour déclencher automatiquement la fonction heal de glusterfs. (à vérifier ;) )</strong></li>
</ol>
<pre><code>ls -l /media/partitionGluster/
</code></pre>
<h3 id="toc-retour-dexpérience-et-anecdotes">Retour d'expérience et anecdotes</h3>
<p>Pour une raison obscure, la réparation a provoqué l'expiration des clés TLS, j'ai donc dû les reforger.</p>
<p>J'ai aussi du retirer de la grappe une machine accessible en WAN car, bien que cette dernière ne fasse pas partie du raid, la fonction heal ne fonctionnait pas a cause d'un commit qui ne se transmettait pas.</p>
<p>Nextcloud ne fonctionnait plus du tout sauf sur un nom de domaine où, pour une raison obscure, on pouvait encore se connecter à la WEBUI sauf si on avait tenté de se connecter depuis les autres hostname (dans quel cas il fallait supprimer ses cookies avant de ré-essayer). Les montages davfs2 et les clients de synchronisation continuait de fonctionner et ce malgré que les comptes ne pouvaient plus se connecter à la WEBUI.</p>
<p>Nextcloud a enchaîné plein de bug assez surprenant ainsi que des lags bien relou.</p>
<h3 id="toc-farm-link">Farm Link</h3>
<ul>
<li><a href="https://github.com/gluster/glusterfs/blob/master/doc/debugging/split-brain.md">Steps to recover from File split-brain.</a></li>
<li>
<a href="http://pjpxyxbxckp3hac6ogzwuqpwqrqex2emsn6b2fizn2hqqf5zhjoqi7ad.onion/doku.php?id=documentation_fr:glusterfs_server_que_se_passe_il_en_cas_de_split_brain_conflit_fichiers">0rion - Glusterfs-server Que se passe-t-il en cas de split brain (conflit de fichiers)</a> (article d'origine)</li>
</ul>
<div><a href="https://linuxfr.org/wiki/glusterfs-server-que-se-passe-t-il-en-cas-de-split-brain-conflit-de-fichiers.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/116534/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/glusterfs-server-que-se-passe-t-il-en-cas-de-split-brain-conflit-de-fichiers#comments">ouvrir dans le navigateur</a>
</p>
voxdemonixhttps://linuxfr.org/nodes/116534/comments.atomtag:linuxfr.org,2005:Post/385632017-10-10T14:29:27+02:002017-10-10T15:24:37+02:00Glusterfs-server - pourquoi l'arbitre se rempli-t-il de données ?<ol>
<li><p>Quelqu'un saurait-il pourquoi l'<a href="http://docs.gluster.org/en/latest/Administrator%20Guide/arbiter-volumes-and-quorum/#how-arbiter-works">arbitre</a> de mon volume Glusterfs (<a href="//linuxfr.org/wiki/glusterfs-sur-ubuntu-debian#cr%C3%A9er-un-volume-avec-un-arbitrer-replica-3-arbiter-1">replica 3 arbiter 1</a>) se rempli de données?</p></li>
<li><p>N'est-il pas censé stocker uniquement des fichiers vide?</p></li>
</ol><p><img src="//img.linuxfr.org/img/68747470733a2f2f6672616d617069632e6f72672f48774e77474435445650544e2f755657444d6b4f76566b34362e706e67/uVWDMkOvVk46.png" alt="screenshot-2017_10_10-GLusterfs-server-Arbitre_volume_replica_arbiter1_conso_stockage" title="Source : https://framapic.org/HwNwGD5DVPTN/uVWDMkOvVk46.png"></p>
<ol>
<li>Quand vous tapez "<em>gluster volume info</em>", vos volumes avec arbitre sont-ils aussi affiché comme de vulgaire replica 3? (moi ça indique "<em>Number of Bricks: 1 x 3 = 3</em>" et dans les infos n'est <em>pas</em> indiqué quel bricks est l'arbitre bref rien à voir avec se qui est indiqué dans la doc (<a href="http://docs.gluster.org/en/latest/Administrator%20Guide/arbiter-volumes-and-quorum/">voir ici</a>))</li>
</ol><p><img src="//img.linuxfr.org/img/68747470733a2f2f6672616d617069632e6f72672f4d71784658754866737943442f30444458626144516e6741442e706e67/0DDXbaDQngAD.png" alt="screenshot-2017_10_10-glusterfs-server_volume_infos-Volume_replica3_arbiter1" title="Source : https://framapic.org/MqxFXuHfsyCD/0DDXbaDQngAD.png"></p>
<p>Note : lors de la création du volume j'ai bien vérifié que quand je crée un fichier texte l'arbitre stocke un fichier vide et sur le coups c'est bien se qu'il s'était déroulé.</p>
<p>PS: auriez-vous une alternative crédible à glusterfs ne nécessitant pas 10ans d'étude ni d'avoir l'anglais comme langue natale?</p><div><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/glusterfs-server-pourquoi-l-arbitre-se-rempli-t-il-de-donnees.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112850/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/glusterfs-server-pourquoi-l-arbitre-se-rempli-t-il-de-donnees#comments">ouvrir dans le navigateur</a>
</p>
TutoMakerhttps://linuxfr.org/nodes/112850/comments.atomtag:linuxfr.org,2005:WikiPage/3292017-09-25T12:58:57+02:002019-04-27T02:52:38+02:00[Tuto/HowTo] [Ubuntu/Debian] Chiffrer ses volumes Glusterfs<p><strong>/!\ suite à une erreur lors de la création de l'article, le titre n'est pas bon. Cet article traite du chiffrement des communications entre les machines. Pas du chiffrement sur les disques.</strong></p>
<h2 id="toc-chiffrer-les-communications-de-glusterfs">Chiffrer les communications de GlusterFS</h2>
<h2 id="toc-introduction">Introduction</h2>
<p>Par défaut les communications de glusterfs-server et de glusterfs-client ne sont pas chiffrées. Glusterfs peut néanmoins utiliser <a href="https://fr.wikipedia.org/wiki/Transport_Layer_Security">TLS</a> (ex SLL) pour <a href="https://fr.wikipedia.org/wiki/Chiffrement">chiffrer</a> les communications et casser ainsi toute tentative de <a href="https://fr.wikipedia.org/wiki/MITM">MITM</a>.<br>
Ensemble, nous allons voir comment.</p>
<p><strong>Note :</strong> Pour une raison inconnue (Ré-installation d'un des node? Bug après un reboot?), il peut arriver que les certificats TLS expirent. Vous vous retrouverez avec des "<em>State: Peer in Cluster (Disconnected)</em>" lorsque vous lancez la commande "<em>gluster peer status</em>". Dans <em>/var/log/glusterfs/etc-glusterfs-glusterd.vol.log</em> vous trouverez des lignes du style "<em>SSL routines:ssl3_read_bytes:sslv3 alert certificate expired</em>". Reforger les certificats et les clés privées semble régler le problème.</p>
<h2 id="toc-les-fichiers-dont-à-besoin-glusterfs-pour-le-chiffrement-via-tls">Les fichiers dont à besoin glusterfs pour le chiffrement via TLS</h2>
<ul>
<li>
<em><strong>/etc/ssl/glusterfs.pem</strong></em> => Votre certificat. Ce fichier unique doit être sur chaque noeud et ne doit pas être partagé.</li>
<li>
<em><strong>/etc/ssl/glusterfs.key</strong></em> => Votre clés privée. Elle doit être disponible sur chacun des Noeuds et clients.</li>
<li>
<em><strong>/etc/ssl/glusterfs.ca</strong></em> => Ce fichier doit être à l'identique sur toutes les machines du cluster, autant client que serveur.</li>
<li>
<em><strong>/var/lib/glusterd/secure-access</strong></em> => Fichier vide dont l'existence permet à glusterfs de savoir qu'il doit activer TLS. Doit être présent sur toutes les machines du cluster.</li>
</ul>
<h2 id="toc-mise-en-place">Mise en place</h2>
<h3 id="toc-installer-le-module-de-chiffrement">Installer le module de chiffrement</h3>
<ul>
<li><strong>On se rend dans le dossier <em>/etc/ssl</em></strong></li>
</ul>
<pre><code>cd /etc/ssl/
</code></pre>
<ul>
<li><strong>Création des clés</strong></li>
</ul>
<pre><code>sudo openssl genrsa -out glusterfs.key 2048
</code></pre>
<ul>
<li><strong>Création des certificats, remplacez hostnameNode par vos valeus - à répéter pour chaque node (server & client)</strong></li>
</ul>
<pre><code>sudo openssl req -new -x509 -key glusterfs.key -subj "/CN=hostnameNODE" -out glusterfs_hostnameNode.pem
</code></pre>
<ul>
<li><strong>Concaténation des certificats (client & server), pour les serveurs</strong></li>
</ul>
<pre><code>cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_server.ca
</code></pre>
<ul>
<li><strong>Concaténation des certificats (server), pour les clients</strong></li>
</ul>
<pre><code>cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_client.ca
</code></pre>
<ul>
<li>
<p><strong>Note :</strong> autant utiliser directement celle juste ci-haut</p>
<ul>
<li><strong>On prépare l'export</strong></li>
</ul>
</li>
</ul>
<pre><code>mkdir /tmp/gluster
cp /etc/ssl/gluster* /tmp/gluster/
chmod 777 -R /tmp/gluster/
</code></pre>
<ul>
<li>
<strong>Envoyez sur chaque Noeuds sa clés privé (.key) et son certificat (.pem)</strong>
<ul>
<li>Exemple en lançant la commande depuis un client</li>
</ul>
</li>
</ul>
<pre><code>scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_hostnameNode.pem /etc/ssl/
</code></pre>
<ul>
<li>
<strong>On exporte maintenant le certificat concaténé sur tout les serveurs</strong>
<ul>
<li>Exemple en lançant la commande depuis un client</li>
</ul>
</li>
</ul>
<pre><code>scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_server.ca /etc/ssl/glusterfs_server.ca
</code></pre>
<ul>
<li>
<strong>On exporte maintenant le certificat concaténé sur tout les clients</strong>
<ul>
<li>Exemple en lançant la commande depuis un client</li>
</ul>
</li>
</ul>
<pre><code>scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_client.ca /etc/ssl/glusterfs_client.ca
</code></pre>
<ul>
<li><strong>Activer le chiffrement côté serveur (à reproduire sur chaque serveur)</strong></li>
</ul>
<pre><code>sudo touch /var/lib/glusterd/secure-access
service glusterfs-server restart
</code></pre>
<ul>
<li><strong>Activer le chiffrement côté client (à reproduire sur chaque client)</strong></li>
</ul>
<pre><code>sudo touch /var/lib/glusterd/secure-access
</code></pre>
<h3 id="toc-activer-le-chiffrement-des-communications-dun-volume">Activer le chiffrement des communications d'un volume</h3>
<p><strong>Note :</strong> il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients. </p>
<pre><code>gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl on
gluster volume set VOLNAME client.ssl on
gluster volume start VOLNAME
</code></pre>
<h3 id="toc-désactiver-le-chiffrement-des-communications-dun-volume">Désactiver le chiffrement des communications d'un volume</h3>
<p><strong>Note :</strong> il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients. </p>
<pre><code>gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl off
gluster volume set VOLNAME client.ssl off
gluster volume start VOLNAME
</code></pre>
<h2 id="toc-farm-link">Farm Link</h2>
<ul>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=94&t=667">Gluster et TLS (SSL)</a> (tutoriel d'origine)</li>
<li><a href="https://fr.wikipedia.org/wiki/MITM">Attaque de l'homme du milieu</a></li>
<li><a href="https://www.cyberciti.biz/faq/how-to-enable-tlsssl-encryption-with-glusterfs-storage-cluster-on-linux/">NixCraft - How to enable TLS/SSL encryption with Glusterfs storage cluster on Linux</a></li>
<li><a href="https://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/">Gluster Doc - Setting up GlusterFS with SSL/TLS</a></li>
</ul>
<div><a href="https://linuxfr.org/wiki/tuto-howto-ubuntu-debian-chiffrer-ses-volumes-glusterfs.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112745/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/tuto-howto-ubuntu-debian-chiffrer-ses-volumes-glusterfs#comments">ouvrir dans le navigateur</a>
</p>
TutoMakerhttps://linuxfr.org/nodes/112745/comments.atomtag:linuxfr.org,2005:WikiPage/3192017-06-27T00:01:31+02:002020-07-22T17:59:31+02:00Monter un volume/répertoire GlusterFS sur Ubuntu/Debian<p><strong>Testé sur :</strong> Ubuntu 16.04, Raspbian Jessie<br>
Ce wiki traite de la partie <a href="https://fr.wikipedia.org/wiki/Client_(informatique)">client</a> de GlusterFS pour la partie <a href="https://fr.wikipedia.org/wiki/Serveur_informatique">serveur</a> voyez ce wiki : <a href="//linuxfr.org/wiki/glusterfs-sur-ubuntu-debian">GlusterFS sur Ubuntu/Debian</a></p>
<h2 id="toc-introduction">Introduction</h2>
<ul>
<li>On utilise <a href="https://doc.ubuntu-fr.org/fuse">FUSE</a> pour monter un dossier <a href="https://fr.wikipedia.org/wiki/GlusterFS">GlusterFS</a>. Ces dossiers sont distribués entre X quantités de serveurs selon ce que vous avez configuré et sont assez tolérant face aux pannes. Vous ne pouvez hélas pas configurer le client pour contacter votre grille mais un serveur qui lui sera en contact (bittorent) avec les autres serveurs (via aussi des liens direct (hostname)).</li>
</ul>
<h2 id="toc-montage-dun-volume-glusterfs">Montage d'un volume GlusterFS</h2>
<h3 id="toc-pré-requis">Pré-requis</h3>
<h4 id="toc-passez-en-admin-root">Passez en admin (root)</h4>
<p><strong>Sur Ubuntu/Raspbian</strong></p>
<pre><code>sudo su
</code></pre>
<p><strong>Sur Debian/Ubuntu minimal</strong></p>
<pre><code>su
</code></pre>
<h4 id="toc-installez-glusterfs-client">Installez <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Gluster_Native_Client">glusterfs-client</a>
</h4>
<pre><code>apt-get install glusterfs-client
</code></pre>
<h4 id="toc-création-du-point-de-montage-local">Création du point de montage local</h4>
<pre><code>mkdir /media/monNouveauMontage
</code></pre>
<h3 id="toc-montage-en-ligne-de-commande-dun-répertoire-glusterfs">Montage en ligne de commande d'un répertoire GlusterFS</h3>
<h4 id="toc-adaptez-puis-entrez-cette-commande-dans-votre-terminal">Adaptez puis entrez cette commande dans votre terminal</h4>
<pre><code>mount -t glusterfs HOSTNAME:PORT:/NomVolume /media/monNouveauMontage
</code></pre>
<ul>
<li>
<em><strong>HOSTNAME</strong></em> => peut valoir l'ip, le nom de domaine ou tout path réseau valable</li>
<li>
<em><strong>:PORT</strong></em> => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>
<em><strong>:/NomVolume</strong></em> => le nom du volume dans dans la grille GlusterFS</li>
<li>
<em><strong>/media/monNouveauMontage</strong></em> => mon point de montage local</li>
<li>
<strong>Infos :</strong> <a href="http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Setting%20Up%20Clients/?highlight=Windows#manual-mount">Manually Mounting Volumes</a>
</li>
</ul>
<h3 id="toc-monter-le-répertoire-au-démarrageboot-via-script-fait-maison">Monter le répertoire au démarrage/boot via script fait maison</h3>
<h4 id="toc-passez-en-admin-root-1">Passez en admin (root)</h4>
<p><strong>Sur Ubuntu/Raspbian</strong></p>
<pre><code>sudo su
</code></pre>
<p><strong>Sur Debian/Ubuntu minimal</strong></p>
<pre><code>su
</code></pre>
<h4 id="toc-ouvrez-votre-éditeur-de-texte-en-créant-votre-script-optscriptsmountglusterpartitionsh">Ouvrez votre éditeur de texte en créant votre script <em>/opt/scripts/mountGlusterPartition.sh</em>
</h4>
<pre><code>nano /opt/scripts/mountGlusterPartition.sh
</code></pre>
<ul>
<li>( <strong><em>CTRL + X</em></strong> => Save&Quit )</li>
</ul>
<h4 id="toc-ajoutez-dedans-les-lignes-après-les-avoir-adapté-à-votre-config">Ajoutez dedans les lignes après les avoir adapté à votre config</h4>
<pre><code class="bash"><span class="ch">#!/bin/bash</span>
sleep <span class="m">10</span> <span class="c1">#req if system is on SSD</span>
sudo mount -t glusterfs <span class="m">127</span>.0.0.1:/NomVolume /media/monNouveauMontage</code></pre>
<ul>
<li>
<em><strong>127.0.0.1</strong></em> => votre boucle locale</li>
<li>
<em><strong>:PORT</strong></em> => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>
<em><strong>:/NomVolume</strong></em> => le nom du volume dans dans la grille GlusterFS</li>
<li>
<em><strong>/media/monNouveauMontage</strong></em> => mon point de montage local</li>
<li>
<strong>Infos :</strong> <a href="http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Setting%20Up%20Clients/?highlight=Windows#manual-mount">Manually Mounting Volumes</a>
</li>
</ul>
<h4 id="toc-rendez-votre-script-exécutable-et-accordez-lui-les-bons-droits-daccès">Rendez votre script exécutable et accordez lui les bons droits d'accès</h4>
<pre><code>chmod 551 /opt/scripts/mountGlusterPartition.sh
</code></pre>
<h4 id="toc-Éditez-etcrclocal-et-ajoutez-lappel-de-votre-script-juste-avant-exit-0-afin-de-le-lancer-au-démarrage">Éditez <em>/etc/rc.local</em> et ajoutez l'appel de votre script juste avant <em>exit 0</em> afin de le lancer au démarrage.</h4>
<pre><code>nano /etc/rc.local
</code></pre>
<h4 id="toc-ajoutez-la-ligne-suivante-en-ladaptant-si-nécessaire">Ajoutez la ligne suivante (en l'adaptant si nécessaire)</h4>
<pre><code>/opt/scripts/mountGlusterPartition.sh
</code></pre>
<h2 id="toc-farm-link">Farm Link</h2>
<ul>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=288&p=749#p749">[Tuto/HowTo] Monter un volume/répertoire GlusterFS sur Raspberry Pi & Ubuntu/Debian</a> (tutoriel d'origine)</li>
<li><a href="//linuxfr.org/wiki/glusterfs-sur-ubuntu-debian">GlusterFS sur Ubuntu/Debian</a></li>
<li><a href="http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Setting%20Up%20Clients/?highlight=Windows#manual-mount">Manually Mounting Volumes</a></li>
</ul>
<div><a href="https://linuxfr.org/wiki/monter-un-volume-repertoire-glusterfs-sur-ubuntu-debian.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112158/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/monter-un-volume-repertoire-glusterfs-sur-ubuntu-debian#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/112158/comments.atomtag:linuxfr.org,2005:WikiPage/3182017-06-26T19:30:39+02:002018-05-18T13:23:25+02:00GlusterFS sur Ubuntu/Debian<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#quest-ce-que-glusterfs">Qu'est-ce que GlusterFS ?</a><ul>
<li><ul>
<li><a href="#glusterfs-supporte-">GlusterFS supporte :</a></li>
<li><a href="#les-types-de-volumer%C3%A9pertoire-sont-">Les types de volume/répertoire sont :</a></li>
<li><a href="#la-mise-en-place-est-simple-">La mise en place est simple :</a></li>
<li><a href="#fonctionnement">Fonctionnement</a></li>
</ul></li>
</ul>
</li>
<li>
<a href="#installer-glusterfs-server">Installer GlusterFS Server</a><ul>
<li><ul>
<li><a href="#passez-en-admin-root">Passez en admin (root)</a></li>
<li><a href="#installez-le-logiciel-glusterfs-server">Installez le logiciel glusterfs-server</a></li>
<li><a href="#donner-le-droits-dacc%C3%A8s-rw-au-fichiers-log">Donner le droits d'accès (rw) au fichiers log</a></li>
<li><a href="#lancez-le-d%C3%A9mon">Lancez le démon</a></li>
</ul></li>
</ul>
</li>
<li>
<a href="#d%C3%A9sinstaller-glusterfs-server">Désinstaller glusterfs-server</a><ul>
<li><ul>
<li><a href="#passez-en-admin-root-1">Passez en admin (root)</a></li>
<li><a href="#supprimez-gluster-sans-supprimer-les-donn%C3%A9es-volumes-peer-etc">Supprimez gluster sans supprimer les données (volumes, peer, etc)</a></li>
<li><a href="#supprimez-gluster-et-ses-donn%C3%A9es">Supprimez gluster ET ses données</a></li>
</ul></li>
</ul>
</li>
<li>
<a href="#cr%C3%A9ation-de-raid">Création de Raid</a><ul>
<li>
<a href="#cr%C3%A9er-un-volume-type-raid1-avec-choix-du-nombre-de-r%C3%A9plication">Créer un volume type RAID1 avec choix du nombre de réplication</a><ul>
<li><a href="#adaptez-puis-entrez-cette-commande-dans-votre-terminal">Adaptez puis entrez cette commande dans votre terminal</a></li>
<li><a href="#ensuite-d%C3%A9marrez-votre-volumer%C3%A9pertoire">Ensuite démarrez votre volume/répertoire</a></li>
</ul>
</li>
<li><a href="#cr%C3%A9er-un-volume-avec-un-arbitrer-replica-3-arbiter-1">Créer un volume avec un Arbitrer (replica 3 arbiter 1)</a></li>
</ul>
</li>
<li>
<a href="#options--utilisations">Options & Utilisations</a><ul>
<li><a href="#ajouter-un-noeudnode-ajouter-peer">Ajouter un Noeud/Node (ajouter peer)</a></li>
<li><a href="#retirer-un-noeudpeers-supprimer-peer">Retirer un Noeud/peers (supprimer peer)</a></li>
<li>
<a href="#retirer-un-noeudpeers-et-les-bricks-li%C3%A9s">Retirer un Noeud/peers et les bricks liés</a><ul>
<li><a href="#r%C3%A9cup%C3%A9rez-les-infos-des-bricks-%C3%A0-supprimer">Récupérez les infos des bricks à supprimer</a></li>
<li><a href="#soit-on-supprime-le-peer-de-son-bricks">Soit on supprime le peer de son bricks</a></li>
<li><a href="#soit-on-supprime-le-bricks">Soit on supprime le bricks</a></li>
<li><a href="#lancez-enfin-la-commande-pour-d%C3%A9tachez-le-nodepeers">Lancez enfin la commande pour détachez le Node/peers</a></li>
</ul>
</li>
<li><a href="#ajouter-un-ou-plusieurs-serveurs-%C3%A0-un-volume--augmenter-la-taille-dun-volume">Ajouter un ou plusieurs serveurs à un volume / augmenter la taille d'un volume</a></li>
<li><a href="#afficher-le-status-des-connexions-en-cours">Afficher le status des connexions en cours</a></li>
<li><a href="#afficher-les-infos-des-volumes">Afficher les infos des volumes</a></li>
<li><a href="#supprimer-un-serveur-dun-volume-en-cours-en-mode-r%C3%A9pliqu%C3%A9-raid-diminuer-un-volume">Supprimer un serveur d'un volume en cours en mode répliqué (raid) /diminuer un volume</a></li>
<li><a href="#supprimer-un-volume">Supprimer un volume</a></li>
<li><a href="#lister-les-fichiers-logs">Lister les fichiers logs</a></li>
<li><a href="#restreindre-lacc%C3%A8s-%C3%A0-une-ou-plusieurs-ipplage-dip">Restreindre l'accès à une ou plusieurs IP/plage d'IP</a></li>
</ul>
</li>
<li>
<a href="#foire-aux-questions">Foire Aux Questions</a><ul>
<li><ul>
<li><a href="#que-se-passe-t-il-si-on-ajoute-sur-le-serveur-comme-point-de-montage-un-dossier-dans-lequel-il-y-a-un-ou-des-fichiersdossiers">Que se passe-t-il si on ajoute sur le serveur comme point de montage un dossier dans lequel il y a un ou des fichiers/dossiers?</a></li>
<li><a href="#que-se-passe-t-il-si-on-ajoute-sur-le-client-comme-point-de-montage-un-dossier-dans-lequel-il-y-a-un-ou-plusieurs-fichiersdossiers">Que se passe-t-il si on ajoute sur le client comme point de montage un dossier dans lequel il y a un ou plusieurs fichiers/dossiers ?</a></li>
<li><a href="#si-un-serveur-doit-lire-des-donn%C3%A9es-va-t-il-uniquement-le-lire-localement-o%C3%B9-va-t-il-utiliser-les-autres-serveurs-afin-de-compenser-la-latence-des-disques-dur">Si un serveur doit lire des données, va-t-il uniquement le lire localement où va-t-il utiliser les autres serveurs afin de compenser la latence des disques dur?</a></li>
<li><a href="#que-se-passe-t-il-si-un-des-bricksdisques-dur-tombe-en-panne-en-cours-avec-un-volume-fonctionnement">Que se passe-t-il si un des bricks/disques dur tombe en panne en cours avec un volume fonctionnement ?</a></li>
<li>
<a href="#peut-on-synchroniser-des-serveurs-en-local-malgr%C3%A9-un-loopback-foireux-hairpinning">Peut-on synchroniser des serveurs en local (malgré un loopback foireux (</a><a href="https://fr.wikipedia.org/wiki/Hairpinning">Hairpinning</a>)</li>
<li>
<a href="#quelques-filtres-daffichages-wireshark-pour-zieuter-tout-cela">Quelques filtres d'affichages </a><a href="https://fr.wikipedia.org/wiki/Wireshark">wireshark</a> pour zieuter tout cela ?</li>
<li><a href="#les-communications-sont-elles-chiffr%C3%A9es">Les communications sont-elles chiffrées ?</a></li>
<li><a href="#les-donn%C3%A9es-stock%C3%A9es-sur-les-serveurs-sont-elles-chiffr%C3%A9es">Les données stockées sur le(s) serveur(s) sont-elles chiffrées ?</a></li>
<li><a href="#quels-sont-les-ports-utilis%C3%A9s-par-les-serveurs-gluster">Quels sont les ports utilisés par les serveurs gluster ?</a></li>
<li><a href="#si-on-a-un-volume-r%C3%A9pliqu%C3%A9-sur-deux-nodesserveurs-replicate-2-et-que-lun-deux-nest-pas-pr%C3%A9sent-au-d%C3%A9marrage-de-lautre-le-volume-fonctionne-t-il">Si on a un volume répliqué sur deux Nodes/Serveurs ("replicate 2") et que l'un d'eux n'est pas présent au démarrage de l'autre, le volume fonctionne-t-il?</a></li>
<li><a href="#quelle-est-la-diff%C3%A9rence-entre-le-param%C3%A8tre-replicate-et-geo-replication">Quelle est la différence entre le paramètre "replicate" et "geo-replication"?</a></li>
<li><a href="#que-se-passe-t-il-si-le-point-de-montage-tombe-en-panne-en-cours-de-fonctionnement">Que se passe-t-il si le point de montage tombe en panne en cours de fonctionnement ?</a></li>
<li><a href="#que-se-passe-t-il-si-on-fait-un-raid-local-sur-la-m%C3%AAme-machine-et-que-la-carte-r%C3%A9seau-nest-pas-connect%C3%A9e">Que se passe-t-il si on fait un raid local (sur la même machine) et que la carte réseau n'est pas connectée</a></li>
</ul></li>
</ul>
</li>
<li><a href="#farm-link">Farm Link</a></li>
</ul><p>Ce wiki traite de la partie <a href="https://fr.wikipedia.org/wiki/Serveur_informatique">serveur</a> de GlusterFS pour la partie <a href="https://fr.wikipedia.org/wiki/Client_(informatique)">client</a> voyez ce wiki : <a href="//linuxfr.org/wiki/monter-un-volume-repertoire-glusterfs-sur-ubuntu-debian">Monter un volume/répertoire GlusterFS sur Ubuntu/Debian</a></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6672616d617069632e6f72672f6944304c42535a6a415070762f683365654f4f56694b7876742e706e67/h3eeOOViKxvt.png" alt="logo glusterfs fourmis qui mange une feuille" title="Source : https://framapic.org/iD0LBSZjAPpv/h3eeOOViKxvt.png"></p>
<h2 id="quest-ce-que-glusterfs">Qu'est-ce que GlusterFS ?</h2>
<p><a href="https://www.gluster.org/">GlusterFS</a> permet de créer des volumes/répertoires virtuels agrégeant un nombre X de serveurs. Pour cela GlusterFS crée des volumes (sorte de partition JBOD) à cheval sur les serveurs que vous stipulez lors de la création du volume et dispose d'un mode de redondance (<a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.1:_Configuring_Distributed_Replicated_Volumes">replication</a>) afin de lutter contre les pannes de stockage. Par défaut, sans réplication, gluster fait une sorte de raid0 (si vous uploader 10 fichiers sur un pool contenant deux Servers/Node, vous aurez 5 fichiers par server) (<a href="http://www.gluster.org/community/documentation/index.php/QuickStart#Step_7_-_Testing_the_GlusterFS_volume">source</a>). Vous pouvez utiliser l'argument stripe nombreDecoupage si vous souhaitez que les fichiers soient découpé avec leur data propre dispersée sur les différents stockages (le but étant d'augmenter les performances en lecture).<br>
En une phrase, il permet de faire un <a href="https://fr.wikipedia.org/wiki/Grappe_de_serveurs">cluster</a> de stockage.</p>
<h4 id="glusterfs-supporte-">GlusterFS supporte :</h4>
<ul>
<li>Les accès simultanés depuis plusieurs clients.</li>
<li>
<a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Managing_Directory_Quota">Les Quotas</a> (définir des tailles max pour les volumes)</li>
<li>
<a href="https://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Starting_GlusterFS_Geo-replication">géo-réplication</a> (utilise un mécanisme Master/Slave, certains préfèrent <a href="http://blog.bittorrent.com/2013/09/10/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage/">passer par bittorent</a>)</li>
<li>
<a href="https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Managing%20Snapshots/">Snapshot</a> (<a href="https://fr.wikipedia.org/wiki/Instantan%C3%A9_%28informatique%29">instantanné</a> - <a href="http://www.gluster.org/community/documentation/index.php/Features/Gluster_Volume_Snapshot">Documentation</a>).</li>
<li>Gestion du nombre de <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.1:_Configuring_Distributed_Replicated_Volumes">replication/copie</a> par volume/repertoire</li>
</ul><h4 id="les-types-de-volumerépertoire-sont-">Les types de volume/répertoire sont :</h4>
<ul>
<li>
<strong>RAID0 non Strip / JBOD</strong> (fichier) (les fichiers sont répartis sur les différentes unités de stockage (bricks), si vous perdez une unité les données sur les autres bricks sont encore valable et accessible)</li>
<li>
<strong>RAID0 Strip</strong> (data) (chaque fichier est découpé N fois et ses datas respective distribuées sur N espaces de stockage, en cas de perte d'une unité de stockage TOUTES les données sont perdues; <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Creating_Striped_Volumes">infos</a>)</li>
<li>
<strong>Replication X</strong> - Raid1 (les fichiers sont dupliqués X fois à travers les Nodes comme du Raid1, perdre une unité de stockage n'a aucune incidence sur les données)</li>
<li>
<strong>Distributed Replicated</strong> (les fichiers sont distribué sur certains nodes et dupliqués sur d'autres comme du Raid10; <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Storage/2.1/html/Administration_Guide/sect-User_Guide-Setting_Volumes-Distributed_Replicated.html">infos</a>)</li>
<li>
<strong>Distributed Stripped Replicated - RAID10 Strip</strong> (chaque fichier est découpé en N morceau répartis sur N Nodes et répliqué X fois sur X Nodes)</li>
</ul><h4 id="la-mise-en-place-est-simple-">La mise en place est simple :</h4>
<ol>
<li>vous installez le serveur sur au moins une machine</li>
<li>vous connectez les serveurs entre eux.</li>
<li>vous créez un volume virtuel</li>
<li>avec un logiciel client vous pouvez accéder à votre volume (qui se comporte comme une partition) en vous connectant à n'importe lequel des deux Serveurs/Nodes.</li>
</ol><p><strong>Note :</strong> vous pouvez <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=289&p=763#p763">créer un raid local sur plusieurs disques</a>. Par contre vous ne pouvez hélas pas créer un raid gluster dans un autre raid/jbod gluster.</p>
<h4 id="fonctionnement">Fonctionnement</h4>
<p>ndlr : simple et si possible imagé</p>
<p>_</p>
<hr><p>_</p>
<h2 id="installer-glusterfs-server">Installer GlusterFS Server</h2>
<h4 id="passez-en-admin-root">Passez en admin (root)</h4>
<p><strong>Sur Ubuntu/Raspbian</strong></p>
<pre><code>sudo su
</code></pre>
<p><strong>Sur Debian/Ubuntu minimal</strong></p>
<pre><code>su
</code></pre>
<h4 id="installez-le-logiciel-glusterfs-server">Installez le logiciel glusterfs-server</h4>
<pre><code>apt-get install glusterfs-server attr
</code></pre>
<p><strong>Note :</strong> si vous souhaitez installer une version spécifique de Gluster utilisez l'attribut --version=id_version par exemple : </p>
<pre><code>apt-get install glusterfs-server --version=3.7.15-ubuntu1~xenial1
</code></pre>
<p>Pour connaître la version du package installé, entrez dans un terminal</p>
<pre><code>apt-show-versions glusterfs-server
</code></pre>
<h4 id="donner-le-droits-daccès-rw-au-fichiers-log">Donner le droits d'accès (rw) au fichiers log</h4>
<pre><code>sudo chmod 644 /var/log/glusterfs/*.log
</code></pre>
<h4 id="lancez-le-démon">Lancez le démon</h4>
<pre><code>service glusterfs-server restart
</code></pre>
<p>_</p>
<hr><p>_</p>
<h2 id="désinstaller-glusterfs-server">Désinstaller glusterfs-server</h2>
<h4 id="passez-en-admin-root-1">Passez en admin (root)</h4>
<p><strong>Sur Ubuntu/Raspbian</strong></p>
<pre><code>sudo su
</code></pre>
<p><strong>Sur Debian/Ubuntu minimal</strong></p>
<pre><code>su
</code></pre>
<p>Au choix :</p>
<h4 id="supprimez-gluster-sans-supprimer-les-données-volumes-peer-etc">Supprimez gluster sans supprimer les données (volumes, peer, etc)</h4>
<pre><code>apt-get remove glusterfs-server
</code></pre>
<h4 id="supprimez-gluster-et-ses-données">Supprimez gluster ET ses données</h4>
<pre><code>apt-get purge --auto-remove glusterfs-server
rm -R /etc/glusterfs
rm -R /var/lib/glusterd
</code></pre>
<p>_</p>
<hr><p>_</p>
<h2 id="création-de-raid">Création de Raid</h2>
<h3 id="créer-un-volume-type-raid1-avec-choix-du-nombre-de-réplication">Créer un volume type RAID1 avec choix du nombre de réplication</h3>
<h4 id="adaptez-puis-entrez-cette-commande-dans-votre-terminal">Adaptez puis entrez cette commande dans votre terminal</h4>
<pre><code>sudo gluster volume create NomVolume replica 2 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/superPartition force
</code></pre>
<ul>
<li>
<em><strong>HOSTNAME</strong></em> => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster</li>
<li>
<em><strong>NomVolume</strong></em> => le nom du volume dans dans la grille GlusterFS</li>
<li>
<em><strong>replica 2</strong></em> => le nombre de fois que les fichiers doivent être dupliqué</li>
<li>
<strong><em>transport tcp</em></strong> => on utilise <a href="https://fr.wikipedia.org/wiki/Transmission_Control_Protocol">TCP/IP</a>
</li>
<li>
<em><strong>force</strong></em> => ne se met qu'à la fin de la commande, permet d'utiliser le mode root</li>
<li>exemple officiel : gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp,rdma] NEW-BRICK…</li>
</ul><h4 id="ensuite-démarrez-votre-volumerépertoire">Ensuite démarrez votre volume/répertoire</h4>
<pre><code>sudo gluster volume start NomVolume
</code></pre>
<p><strong>Note :</strong> remplacez <em><strong>start</strong></em> par <em><strong>stop</strong></em> pour arrêter un volume (c'est un <a href="http://wawadeb.crdp.ac-caen.fr/iso/tmp/ressources/linux/doc.mandrakelinux.com/MandrakeLinux/100/fr/Command-Line.html/fs-and-mntpoints-mount.html">umount</a> version gluster)</p>
<h3 id="créer-un-volume-avec-un-arbitrer-replica-3-arbiter-1">Créer un volume avec un Arbitrer (replica 3 arbiter 1)</h3>
<p><strong>infos :</strong> <a href="https://gluster.readthedocs.io/en/latest/Administrator%20Guide/arbiter-volumes-and-quorum/">Arbiter volumes and quorum options in gluster</a><br>
(ndlr : à tester et corriger)<br>
Le Nœud Arbitrer est chargé d'aider à élire un Noeud Maitre après une coupure réseau importante (<a href="//linuxfr.org/users/nicolasecarnot/journaux/systeme-de-fichiers-clusterise-ocfs2-gfs2-glusterfs-autres#comment-1705885">split brain</a>). Il est choisit automatiquement par GlusterFS parmi les Noeuds, il prend le troisième Nœud (bricks) et il n'est pas possible de le configurer/modifier (<a href="http://staged-gluster-docs.readthedocs.io/en/release3.7.0beta1/Features/afr-arbiter-volumes/">source</a>).<br>
Le paramètre replica doit être à 3 pour pouvoir utiliser un Arbitrer. Il faut donc au minimum 3 machines pour ce mécanisme.<br><strong>Note :</strong> en raid1 (replica 2) lorsqu'une machine est absente tout est cassé. Ici (replica 3 arbiter 1) tant qu'au moins deux machines sur 3 de chaque séries sont connectées entre elles (peu importe lesquelles), tout continue de fonctionner.</p>
<pre><code>sudo gluster volume create NomVolume replica 3 arbiter 1 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/disque2 HOSTNAME_server3:/media/mon/path force
</code></pre>
<ul>
<li>
<em><strong>HOSTNAME</strong></em> => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster</li>
<li>
<em><strong>NomVolume</strong></em> => le nom du volume dans dans la grille GlusterFS</li>
<li>
<em><strong>replica 3</strong></em> => le nombre de fois que les fichiers doivent être dupliqué</li>
<li>
<strong><em>transport tcp</em></strong> => on utilise <a href="https://fr.wikipedia.org/wiki/Transmission_Control_Protocol">TCP/IP</a>
</li>
<li>
<em><strong>force</strong></em> => ne se met qu'à la fin de la commande, permet d'utiliser le mode root</li>
<li>exemple officiel : gluster volume create replica 3 arbiter 1 </li>
</ul><p>_</p>
<hr><p>_</p>
<p>_</p>
<hr><p>_</p>
<h2 id="options--utilisations">Options & Utilisations</h2>
<p><strong>Note :</strong> Pour utiliser les commandes suivantes dans un script vous devez ajouter en fin de commande <strong><em>force --mode=script</em></strong> </p>
<h3 id="ajouter-un-noeudnode-ajouter-peer">Ajouter un Noeud/Node (ajouter peer)</h3>
<pre><code>sudo gluster peer probe HOSTNAME
</code></pre>
<p><em><strong>HOSTNAME</strong></em> peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des server du cluster<br><strong>Note :</strong> Une fois que le pool est établi, seuls les membres de confiance (trust) peuvent ajouter de nouveaux serveurs au pool. Un nouveau serveur ne peut PAS s'ajouter au pool, il doit être ajouté par le pool. (<a href="http://www.gluster.org/community/documentation/index.php/QuickStart#Step_5_-_Configure_the_trusted_pool">source</a>)</p>
<h3 id="retirer-un-noeudpeers-supprimer-peer">Retirer un Noeud/peers (supprimer peer)</h3>
<pre><code>sudo gluster peer detach HOSTNAME
</code></pre>
<p><em><strong>HOSTNAME</strong></em> peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des serveurs du cluster<br><strong>Note :</strong> Tout les volumes ouvert en commun entre ses pairs (peers) doivent être stoppé AVANT.</p>
<h3 id="retirer-un-noeudpeers-et-les-bricks-liés">Retirer un Noeud/peers et les bricks liés</h3>
<h4 id="récupérez-les-infos-des-bricks-à-supprimer">Récupérez les infos des bricks à supprimer</h4>
<pre><code>sudo gluster volume info
</code></pre>
<h4 id="soit-on-supprime-le-peer-de-son-bricks">Soit on supprime le peer de son bricks</h4>
<pre><code>sudo gluster volume remove-brick nomBricks replica 1 HOSTNAME:/media/monDisk/monDossier force
</code></pre>
<h4 id="soit-on-supprime-le-bricks">Soit on supprime le bricks</h4>
<pre><code>sudo gluster volume delete nomBricks
</code></pre>
<h4 id="lancez-enfin-la-commande-pour-détachez-le-nodepeers">Lancez enfin la commande pour détachez le Node/peers</h4>
<pre><code>sudo gluster peer detach HOSTNAME
</code></pre>
<p><em><strong>HOSTNAME</strong></em> peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des server du cluster<br><strong>Note :</strong> Tout les volumes ouvert en commun entre ses pairs (peers) doivent être stoppé AVANT.</p>
<h3 id="ajouter-un-ou-plusieurs-serveurs-à-un-volume--augmenter-la-taille-dun-volume">Ajouter un ou plusieurs serveurs à un volume / augmenter la taille d'un volume</h3>
<pre><code>sudo gluster volume add-brick NomVolume HOSTNAME:/media/maPartition
</code></pre>
<p><strong><em>NomVolume</em></strong> => le nom du volume dans dans la grille GlusterFS<br><strong><em>HOSTNAME</em></strong> => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster<br><strong><em>/media/maPartition</em></strong> => le path où stocker les données sur le serveur<br>
Exemple officiel : <em>gluster volume add-brick VOLNAME NEW-BRICK</em><br>
Source : <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Expanding_Volumes">http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Expanding_Volumes</a></p>
<h3 id="afficher-le-status-des-connexions-en-cours">Afficher le status des connexions en cours</h3>
<pre><code>sudo gluster peer status
</code></pre>
<h3 id="afficher-les-infos-des-volumes">Afficher les infos des volumes</h3>
<pre><code>sudo gluster volume info
</code></pre>
<h3 id="supprimer-un-serveur-dun-volume-en-cours-en-mode-répliqué-raid-diminuer-un-volume">Supprimer un serveur d'un volume en cours en mode répliqué (raid) /diminuer un volume</h3>
<pre><code>sudo gluster volume remove-brick monVolume replica 2 HOSTNAME:/media/maPartition
</code></pre>
<p><strong><em>NomVolume</em></strong> => le nom du volume dans dans la grille GlusterFS<br><strong><em>replica 2</em></strong> => le nombre de replication<br><strong><em>HOSTNAME</em></strong> => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster<br><em><strong>/media/maPartition</strong></em> => le path où stocker les données sur le serveur<br><strong>Source :</strong> <a href="https://support.rackspace.com/how-to/add-and-remove-glusterfs-servers/">https://support.rackspace.com/how-to/add-and-remove-glusterfs-servers/</a></p>
<h3 id="supprimer-un-volume">Supprimer un volume</h3>
<pre><code>sudo gluster volume delete NomVolume
</code></pre>
<p><strong>Note :</strong> ça ne supprime pas les fichiers.<br><strong>Le volume doit être stoppé avant via</strong></p>
<pre><code>sudo gluster volume stop NomVolume
</code></pre>
<h3 id="lister-les-fichiers-logs">Lister les fichiers logs</h3>
<pre><code>sudo ls /var/log/glusterfs/
</code></pre>
<h3 id="restreindre-laccès-à-une-ou-plusieurs-ipplage-dip">Restreindre l'accès à une ou plusieurs IP/plage d'IP</h3>
<pre><code>sudo gluster volume set nomVolume auth.allow 192.168.1.2,192.168.*.1
</code></pre>
<p><em><strong>nomVolume</strong></em> => le nom identifiant votre volume<br><em><strong>192.168.1.2,192.168.*.1</strong></em> => un exemple d'ip suivis d'un exemple de plage d'ip à autoriser<br><strong>Note :</strong> Fonctionne aussi si le volume est en cours de fonctionnement.</p>
<h2 id="foire-aux-questions">Foire Aux Questions</h2>
<h4 id="que-se-passe-t-il-si-on-ajoute-sur-le-serveur-comme-point-de-montage-un-dossier-dans-lequel-il-y-a-un-ou-des-fichiersdossiers">Que se passe-t-il si on ajoute sur le serveur comme point de montage un dossier dans lequel il y a un ou des fichiers/dossiers?</h4>
<p><strong>Réponse :</strong> Le ou les fichiers sont ignoré par GlusterFS purement et simplement. Ils sont toujours accessible via le système de fichier du serveur mais pas via un quelconque volume glusterfs.</p>
<h4 id="que-se-passe-t-il-si-on-ajoute-sur-le-client-comme-point-de-montage-un-dossier-dans-lequel-il-y-a-un-ou-plusieurs-fichiersdossiers">Que se passe-t-il si on ajoute sur le client comme point de montage un dossier dans lequel il y a un ou plusieurs fichiers/dossiers ?</h4>
<p><strong>Réponse :</strong> Le ou les fichiers disparaissent jusqu'à ce que le volume soit démonté (<a href="https://doc.ubuntu-fr.org/montage#en_ligne_de_commande1">umount</a>), il ne semble rien leur arriver de malheureux. Lorsque le volume est démonté en cas d'écriture vers son point de montage, alors les données sont écrites sur le disque dur principal (système), ce qui peut être un problème pour certains usages (<a href="https://doc.ubuntu-fr.org/motion">motion</a> sur raspberry pi entre autre).</p>
<h4 id="si-un-serveur-doit-lire-des-données-va-t-il-uniquement-le-lire-localement-où-va-t-il-utiliser-les-autres-serveurs-afin-de-compenser-la-latence-des-disques-dur">Si un serveur doit lire des données, va-t-il uniquement le lire localement où va-t-il utiliser les autres serveurs afin de compenser la latence des disques dur?</h4>
<p><strong>Réponse :</strong> les données sont envoyées/reçues vers les différents serveurs en même temps.</p>
<h4 id="que-se-passe-t-il-si-un-des-bricksdisques-dur-tombe-en-panne-en-cours-avec-un-volume-fonctionnement">Que se passe-t-il si un des bricks/disques dur tombe en panne en cours avec un volume fonctionnement ?</h4>
<p>Réponse : Si vous êtes en raid1, il n'y a aucune perte de données et le service continue de fonctionner mode osef. Si vous êtes en JBOD/raid0 non stripping, le point de montage est toujours accessible et seules les datas présentent sur le bricks planté ne sont plus accessible. Il va de soit que si le disque dur en panne était le seul ou le dernier représentant d'un volume, le volume tombe aussi.</p>
<h4 id="peut-on-synchroniser-des-serveurs-en-local-malgré-un-loopback-foireux-hairpinning">Peut-on synchroniser des serveurs en local (malgré un loopback foireux (<a href="https://fr.wikipedia.org/wiki/Hairpinning">Hairpinning</a>)</h4>
<p>Impossible d'utiliser le nom de domaine depuis l'intérieur du réseau) pour ensuite les disséminer sur d'autres connexions sans changer la configuration ? (et sans utiliser Tor)</p>
<p><strong>Réponse :</strong> Une solution est de configurer en utilisant un hostname, puis en modifiant le ficher <em>/etc/hosts</em> (<a href="http://www.commentcamarche.net/faq/5993-modifier-son-fichier-hosts">infos</a>) pour indiquer les IP locales des différents Nodes correspondant à chaque nom de domaine. Une fois que les machines quittent votre réseau local vous devez bien entendu allez supprimer les valeurs temporaires.</p>
<h4 id="quelques-filtres-daffichages-wireshark-pour-zieuter-tout-cela">Quelques filtres d'affichages <a href="https://fr.wikipedia.org/wiki/Wireshark">wireshark</a> pour zieuter tout cela ?</h4>
<p><strong>Réponse :</strong> Entrez une des valeurs suivantes pour voir se qu'il se passe : <em><strong>glusterfs</strong></em>. Vous pouvez trouver la <a href="https://www.wireshark.org/docs/dfref/g/glusterfs.html">liste des valeurs ici</a>.</p>
<h4 id="les-communications-sont-elles-chiffrées">Les communications sont-elles chiffrées ?</h4>
<p><strong>Réponse :</strong> Par défaut Non, mais vous pouvez activer le chiffrement par TLS (ex-ssl) en suivant ce tuto : <a href="http://www.gluster.org/community/documentation/index.php/GlusterFS_Security">GlusterFS Security</a>.</p>
<h4 id="les-données-stockées-sur-les-serveurs-sont-elles-chiffrées">Les données stockées sur le(s) serveur(s) sont-elles chiffrées ?</h4>
<p><strong>Réponse :</strong> Par défaut Non. Une feature/extension (<a href="http://www.gluster.org/community/documentation/index.php/Features/disk-encryption">Doc - Features/disk-encryption</a>) est en fin de conception afin de rendre gluster compatible avec le chiffrement côté serveur (disk encryption).</p>
<h4 id="quels-sont-les-ports-utilisés-par-les-serveurs-gluster">Quels sont les ports utilisés par les serveurs gluster ?</h4>
<p><strong>Réponse :</strong> 111 (<a href="https://fr.wikipedia.org/wiki/Portmap">portmap/rpcbind</a>), 24007 (<a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.1:_Starting_the_glusterd_Daemon">GlusterFS Daemon</a>), 24008 (GlusterFS Management) et un port par volume/répertoire à partir de 49152. Si vous utilisez <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Using_NFS_with_Gluster">NFS</a> alors les ports 38465, 38466 et 38467 sont aussi requis.<br><strong>Source :</strong> <a href="https://support.rackspace.com/how-to/getting-started-with-glusterfs-considerations-and-installation/">Get started with GlusterFS - considerations and installation</a></p>
<h4 id="si-on-a-un-volume-répliqué-sur-deux-nodesserveurs-replicate-2-et-que-lun-deux-nest-pas-présent-au-démarrage-de-lautre-le-volume-fonctionne-t-il">Si on a un volume répliqué sur deux Nodes/Serveurs ("replicate 2") et que l'un d'eux n'est pas présent au démarrage de l'autre, le volume fonctionne-t-il?</h4>
<p><strong>Réponse :</strong> Non, afin d'éviter un split brain (gluster ne pouvant savoir si le serveur est a jour ou non). Monter le volume devient impossible même en local (127.0.0.1).</p>
<h4 id="quelle-est-la-différence-entre-le-paramètre-replicate-et-geo-replication">Quelle est la différence entre le paramètre "replicate" et "geo-replication"?</h4>
<p><strong>Réponse :</strong> replicate applique les modifications en temps réelle sur tout les Serveurs d'un Volume et lit les données sur X Serveurs en même temps. Geo-replication par contre fait des mises à jours régulières des modifications du système de fichier depuis un serveur Maître vers des serveurs Esclaves et ne lit les données que depuis le serveur Maitre.</p>
<h4 id="que-se-passe-t-il-si-le-point-de-montage-tombe-en-panne-en-cours-de-fonctionnement">Que se passe-t-il si le point de montage tombe en panne en cours de fonctionnement ?</h4>
<p><strong>Réponse :</strong> Il est automatiquement remplacé par un autre en cas de mirroring.</p>
<h4 id="que-se-passe-t-il-si-on-fait-un-raid-local-sur-la-même-machine-et-que-la-carte-réseau-nest-pas-connectée">Que se passe-t-il si on fait un raid local (sur la même machine) et que la carte réseau n'est pas connectée</h4>
<p><strong>Réponse :</strong> le raid/jbod ne sera pas accessible tant que la machine ne sera pas connectée au réseau et ce même si le raid/jbod est uniquement local.</p>
<p>_</p>
<hr><p>_</p>
<h2 id="farm-link">Farm Link</h2>
<ul>
<li>
<a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">[Tuto/HowTo] [Debian] [cluster] GlusterFS Server</a> (tuto d'origine)</li>
<li><a href="//linuxfr.org/wiki/monter-un-volume-repertoire-glusterfs-sur-ubuntu-debian">Monter un volume/répertoire GlusterFS</a></li>
<li><a href="https://www.guillaume-leduc.fr/le-stockage-distribue-avec-glusterfs.html">[Projet] Le stockage distribué avec GlusterFS</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/HowTo:geo-replication">HowTo:geo-replication</a></li>
<li><a href="//linuxfr.org/news/glusterfs%C2%A032-%E2%80%94%C2%A0la-g%C3%A9o%E2%80%90r%C3%A9plication">LinuxFr - GlusterFS 3.2 — La géo‐réplication</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Creating_Replicated_Volumes">DOC : Gluster 3.2: Creating Replicated Volumes</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.1:_Automatically_Mounting_Volumes">DOC : Gluster 3.1: Automatically Mounting Volumes</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/Getting_started_install">DOC : Getting started install</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.1:_Configuring_Distributed_Replicated_Volumes">DOC : Gluster 3.1: Configuring Distributed Replicated Volumes</a></li>
<li><a href="https://wiki.archlinux.org/index.php/fstab">ArchWiki - fstab</a></li>
<li><a href="http://www.supinfo.com/articles/single/171-mise-place-stockage-partage-avec-glusterfs">Mise en place d'un stockage partagé avec GlusterFS</a></li>
<li><a href="http://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/?highlight=tls">Setting up GlusterFS with SSL/TLS</a></li>
<li><a href="https://www.cvedetails.com/vendor/12480/Gluster.html">Gluster : Vulnerability Statistics</a></li>
<li><a href="https://www.cvedetails.com/vulnerability-list/vendor_id-12480/Gluster.html">Gluster : Security Vulnerabilities</a></li>
<li><a href="https://joejulian.name/blog/how-to-expand-glusterfs-replicated-clusters-by-one-server/">How to expand GlusterFS replicated clusters by one server</a></li>
<li><a href="https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/">Setting up GlusterFS Server Volumes</a></li>
<li><a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Replicated_Volumes_vs_Geo-replication">Replicated Volumes vs Geo-replication</a></li>
<li><a href="//linuxfr.org/wiki/formater-les-disques-d-un-volume-gluster-sur-ubuntu">[Tuto/HowTo] Formater les disques d'un volume GlusterFS sur Ubuntu</a></li>
<li><a href="https://people.redhat.com/ndevos/talks/debugging-glusterfs-with-wireshark.d/debugging-with-wireshark.pdf">Debugging GlusterFS with Wireshark</a></li>
</ul><div><a href="https://linuxfr.org/wiki/glusterfs-sur-ubuntu-debian.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112156/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/glusterfs-sur-ubuntu-debian#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/112156/comments.atomtag:linuxfr.org,2005:Diary/373802017-06-26T12:56:12+02:002017-06-26T12:56:12+02:00Système de fichiers clusterisé - OCFS2, GFS2, GlusterFS, autresLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Bonjour,</p>
<p>Voici une réflexion à voix haute, dans l'espoir d'attirer l'attention de ceux qui maîtrisent certains des points abordés ci-dessous.</p>
<p>Depuis des années, nos répertoires partagés sont servis par des serveurs Samba, montés en cluster via CTDB, formatés en OCFS2.<br>
Le tout tourne sur des Oracle Linux 6 ou des CentOS 6 et ça fonctionne plutôt bien (zéro corruption de données, pas de souci de locking, performances moyennes mais suffisantes, bonne résilience).</p>
<p>Aujourd'hui, je tente de moderniser tout ça selon les réflexions suivantes :<br>
- Passer sur une version 7 de RHEL/OL/CentOS/Fedora…<br>
- Passer à Samba 4.x<br>
- Questionner la pertinence d'OCFS2</p>
<p>Le passage à la version 7 et systemd ainsi que Samba 4 ne pose pas de problème.<br>
La dernière version d'OCFS2 semble assez ancienne, et ne semble plus évoluer depuis 2011.</p>
<p>Le choix d'OCFS2 pour gérer des fichiers partagés vient du besoin suivant : un (en réalité plusieurs) gros LUN contenant des données, et plusieurs serveurs samba qui y accèdent <strong>simultanément</strong>. En cas de panne d'un serveur Samba, CTDB assure de manière transparente le bon fonctionnement des Samba vivants.</p>
<p>Il s'avère que CTDB nécessite en plus un dossier partagé privé accessible simultanément ("recovery lock file") par chacun des nœuds du cluster, formaté dans un système de fichiers supportant les posix locks.<br>
Dans notre cluster actuel, ce point de montage est formaté en GFS2, car c'est le seul que j'ai trouvé qui supporte les PLOCKS. (GPFS - payant, les supporte aussi, mais voilà, c'est payant).<br>
Afin de limiter la profusion de technos impliquées, j'ai tenter de virer GFS2 et de formater mon espace de PLOCKS en OCFS2 mais cette vieillerie ne les supporte pas. Bref, je vais devoir remettre en place GFS2 et son cortège de DLM, Corosync, cman et autre heartbeateries, et j'avoue que je cache ma joie :(</p>
<p>Ce qui me fait m'exprimer ici est une interrogation sur ce que font les autres :<br>
- Ressentez-vous le besoin de clusteriser Samba ou autre serveur de fichiers ?<br>
- Ou assumez-vous le fait de pouvoir perdre un moteur de serveur de fichiers ?<br>
- Ou avez-vous dupliqué les données, et donc les moteurs ?</p>
<p>Je pourrais passer sur du GlusterFS, ce qui assure la redondance des moteurs, mais implique aussi la 3 x duplication des données, ce qui est presque impossible en terme de volume (et de perfs).</p>
<p>Pour les windowsiens, certains utilisent DFS non seulement en temps que vitrine d’arborescence, mais également comme outil de duplication.<br>
Nous ne l'utilisons que comme vitrine, la duplication de données étant trop coûteuse.</p>
<p>Bref, je suis intéressé par vos façons de faire et vos remarques.</p><div><a href="https://linuxfr.org/users/nicolasecarnot/journaux/systeme-de-fichiers-clusterise-ocfs2-gfs2-glusterfs-autres.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112153/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/nicolasecarnot/journaux/systeme-de-fichiers-clusterise-ocfs2-gfs2-glusterfs-autres#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Ecarnothttps://linuxfr.org/nodes/112153/comments.atomtag:linuxfr.org,2005:WikiPage/3082017-02-10T19:22:27+01:002017-11-03T19:35:23+01:00Formater les disques d'un volume Gluster Sur Ubuntu<p><em>Ce tuto concerne debian/ubuntu/raspbian</em></p>
<h3 id="introduction">Introduction</h3>
<p>Les volumes <a href="https://fr.wikipedia.org/wiki/GlusterFS">gluster</a> sont indépendant du système de fichier (formatage du disque), on peut sans problème appliquer et tester certaines modifications sans casser notre raid.<br>
Dans le tutoriel ci-présent nous allons donc formater en <a href="https://fr.wikipedia.org/wiki/F2FS">F2FS</a> deux <a href="https://fr.wikipedia.org/wiki/Solid-state_drive">SSD</a> contenant déjà un volume <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">gluster</a>. Ensuite nous ré-uploaderons les fichiers afin de reforger le volume en veillant bien à se que les <a href="https://fr.wikipedia.org/wiki/Point_de_montage">points de montage</a> (exemple /media/disque1) soient identique à avant le montage (important).<br>
Pour rappel <a href="https://fr.wikipedia.org/wiki/F2FS">F2FS</a> est un système de fichier conçu entre autre par Samsung (fabricant de techno flash) et spécialement conçu pour les technologies mémoire basées sur Flash (<a href="https://fr.wikipedia.org/wiki/Solid-state_drive">SSD</a>, <a href="https://fr.wikipedia.org/wiki/Carte_MMC">eMMC</a>). Il est plus rapide que NTFS et ext4 sur ce type de technologie. Par contre F2FS n'est reconnu que sur Linux (y compris Android et peut-être aussi BSD). F2FS consomme plus de cache que ext4 (vous disposez donc de moins d'espace pour un disque de taille égal).</p>
<h4 id="résumé-de-lopération">Résumé de l'opération</h4>
<ol>
<li>Stopper les services utilisant le volume puis arrêter le volume gluster</li>
<li>Sauvegarder les fichiers et leurs droits respectifs</li>
<li>Formater les disques puis les remonter</li>
<li>Ré-injecter les fichiers </li>
<li>Corriger le fichier /etc/fstab</li>
</ol><h4 id="farm-link">Farm Link</h4>
<ul>
<li><a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=534&p=1147#p1147">[Tuto/HowTo] [GNU/Linux] Formater les disques d'un volume GlusterFS sur Ubuntu</a></li>
<li><a href="https://fr.wikipedia.org/wiki/GlusterFS">WikipediaFR - GlusterFS</a></li>
<li><a href="https://fr.wikipedia.org/wiki/F2FS">WikipediaFR - F2FS</a></li>
<li><a href="//linuxfr.org/wiki/raspberrypi-remplacer-son-systeme-de-fichier-par-f2fs-formatage">RaspberryPi remplacer son Système de Fichier par F2FS (formatage)</a></li>
</ul><h2 id="formatage-en-ligne-de-commande">Formatage en ligne de commande</h2>
<h4 id="installer-les-pré-requis">Installer les pré-requis</h4>
<p><code>sudo apt-get install f2fs-tools</code></p>
<h4 id="on-crée-notre-répertoire-de-sauvegarde">On crée notre répertoire de sauvegarde</h4>
<pre><code>mkdir -p /tmp/backup/SSD480Go1
mkdir -p /tmp/backup/SSD480Go2
</code></pre>
<h4 id="on-se-dirige-vers-le-répertoire-de-travail">On se dirige vers le répertoire de travail</h4>
<p><code>cd /tmp/backup/</code></p>
<h4 id="sauvegarde-du-contenu-des-disques">Sauvegarde du contenu des disques</h4>
<pre><code>sudo cp -v -a /media/SSD480Go1/* ./SSD480Go1
sudo cp -v -a /media/SSD480Go2/* ./SSD480Go2
</code></pre>
<h4 id="lister-les-volumes">Lister les volumes</h4>
<p><code>sudo gluster volume status</code></p>
<h4 id="arrêter-le-volume">Arrêter le volume</h4>
<p><code>sudo gluster volume stop monServer_raidLocalSSD</code></p>
<h4 id="récupérer-le-path-des-disques-a-formater">Récupérer le path des disques a formater</h4>
<p><code>df -h</code></p>
<blockquote>
<p>/dev/sde1 395G 75M 375G 1% /media/SSD480Go1<br>
/dev/sdf1 395G 75M 374G 1% /media/SSD480Go2</p>
</blockquote>
<h4 id="démonter-les-disques">Démonter les disques</h4>
<pre><code>sudo umount /media/SSD480Go1
sudo umount /media/SSD480Go2
</code></pre>
<h4 id="formatage">Formatage</h4>
<p><strong>Note :</strong> pour un autre système de fichier que F2FS, vous pouvez passer par l'interface graphique de votre distribution. Mais si, comme ici, vous souhaitez une partition F2FS alors restez en ligne de commande (si non bug). </p>
<pre><code class="sh">sudo mkfs.f2fs /dev/sde1
sudo mkfs.f2fs /dev/sdf1</code></pre>
<h4 id="remonter-les-disques">Remonter les disques</h4>
<pre><code class="sh">sudo mount -t f2fs /dev/sde1 /media/SSD480Go1
sudo mount -t f2fs /dev/sdf1 /media/SSD480Go2</code></pre>
<h4 id="ré-injection-des-fichiers">Ré-injection des fichiers</h4>
<pre><code class="sh">sudo cp -v -a /tmp/backup/SSD480Go1/* /media/<span class="nv">$USER</span>/123456-identifiant-disque-un-654321
sudo cp -v -a /tmp/backup/SSD480Go2/* /media/<span class="nv">$USER</span>/123456-identifiant-disque-deux-654321</code></pre>
<h4 id="afficher-les-nouveaux-uuid-des-partitions-des-disques-précédemment-formaté">Afficher les nouveaux UUID des partitions des disques précédemment formaté</h4>
<p><code>sudo blkid</code></p>
<h4 id="Éditer-le-fichier-etcfstab-afin-de-remplacer-ext4ntfs-ou-autre-par-f2fs-pour-les-disques-quon-formate-pas-les-autres-ainsi-que-mettre-la-nouvelle-correspondance-des-uuid">Éditer le fichier <em>/etc/fstab</em> afin de remplacer ext4/ntfs ou autre par f2fs (pour les disques qu'on formate, pas les autres!) ainsi que mettre la nouvelle correspondance des UUID</h4>
<pre><code class="sh">sudo nano /etc/fstab</code></pre>
<h4 id="redémarrez-la-machine-et-gluster-ny-aura-vu-que-du-feu">Redémarrez la machine et gluster n'y aura vu que du feu</h4>
<p>Note : en cas de bug, les fichiers sont déjà ré-uploadé sur les disques et donc récupérable</p>
<pre><code class="sh">sudo reboot</code></pre>
<p><strong>C'est Terminé</strong></p><div><a href="https://linuxfr.org/wiki/formater-les-disques-d-un-volume-gluster-sur-ubuntu.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/111234/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/formater-les-disques-d-un-volume-gluster-sur-ubuntu#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/111234/comments.atomtag:linuxfr.org,2005:Diary/365972016-05-23T15:50:36+02:002016-05-24T23:16:15+02:00Monter un cluster mémoire avec un raspberry piLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><strong><em>Avant-Propos :</em></strong><br>
Il est fortement conseillé d'utiliser un raspberry pi 2 au minimum (privilégiez le modèle 3). JBOD via mddfs n'est pas totalement stable, mais <a href="https://fr.wikipedia.org/wiki/ZFS">ZFS</a> semble actuellement non utilisable sur Raspberry Pi. Si vous suivez ce tuto sur une machine dotée d'autre chose qu'un processeur ARM, privilégiez l'utilisation de <a href="https://fr.wikipedia.org/wiki/ZFS">ZFS</a>.<br>
Gluster vous permet en fonction du nombre de peers/nodes et du nombre de réplication de faire :</p>
<ul>
<li>un JBOD réseau (addition de l'espace de toute vos machines Peer1 + Peer2 + etc)</li>
<li>de la réplication raid1 ( Peer1 = Peer2)</li>
<li>de la "réplication distribuée" sorte de raid10 (Peer 1 + Peer 2 = Peer 3 + Peer 4)</li>
</ul><p><strong>Sommaire :</strong></p>
<ol>
<li>Montage des disques dur</li>
<li>Création d'une "super partition" <a href="https://fr.wikipedia.org/wiki/JBOD">JBOD</a> (concaténation des disques dur)</li>
<li>Mise en place de glusterfs</li>
<li>Création d'un répertoire/volume distribué répliqué</li>
<li>Montage sur un client Ubuntu</li>
</ol><p><strong>Montage des disques dur</strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=287">[Tuto/HowTo] Raspberry Pi monter automatique disque dur externe</a></p>
<ol>
<li><p>Récupérez l'<a href="https://fr.wikipedia.org/wiki/User_identifier">UID</a> du disque dur<br><code>sudo blkid</code></p></li>
<li>
<p>Éditez le fichier <a href="https://fr.wikipedia.org/wiki/Fstab">/etc/fstab</a><br><code>sudo nano /etc/fstab</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Adaptez la ligne suivante puis ajoutez la<br><code>UUID="16846dfa-a74d-7a5d-a8r7-f7c5z4fnd4sjz" /media/Disque1 ext4 defaults,nofail 0 2</code></p>
<ul>
<li>UUID=xxxxx => l'UID récupéré précédemment</li>
<li>/media/Disque1 => où monter votre disque dur</li>
<li>ext4 => le formatage de la partition (si votre disque dur est formaté en ntfs, indiquez "ntfs-3g" et installez le paquet "ntfs-3g")</li>
</ul>
</li>
<li>
<p>Accordez les droits sur le montage<br><code>sudo chown pi:root -R /media/Disque1<br>
sudo chmod 0774 -R /media/Disque1/</code></p>
<ul>
<li>/media/Disque1 => le point de montage de votre disque</li>
</ul>
</li>
<li><p>Répétez les actions précédentes pour chaque unité de stockage</p></li>
</ol><p><strong>Création d'une "super partition" <a href="https://fr.wikipedia.org/wiki/JBOD">JBOD</a></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=289#p748">[Tuto/HowTo] Mise en place d'un système JBOD avec mhddfs sur Raspberry Pi</a></p>
<ol>
<li><p>Installez <a href="https://romanrm.net/mhddfs">mhddfs</a><br><code>sudo apt-get install mddfs</code></p></li>
<li><p>Créez le point de montage de votre "super partition JBOD" et attribuez lui les bons droits<br><code>sudo mkdir /media/monNouveauMontage</code><br><code>sudo chown pi:root -R /media/monNouveauMontage</code><br><code>sudo chmod 774 -R /media/monNouveauMontage</code></p></li>
<li><p>Listez les disques ainsi que leur point de montage respectif<br><code>df -h</code></p></li>
<li>
<p>Éditez le fichier <a href="https://www.raspberrypi.org/documentation/linux/usage/rc-local.md">/etc/rc.local</a><br><code>sudo nano /etc/rc.local</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Ajoutez la ligne suivante juste avant la ligne contenant <em>exit 0</em> en l'adaptant à vos besoins<br><code>mhddfs /media/Disque1,/media/Disque2,/media/Disque3 /media/monNouveauMontage -o allow_other</code></p>
<ul>
<li>/media/Disque1,/media/Disque2,/media/Disque3 => les path où sont monté vos disques, séparé par une virgule à chaque fois.</li>
<li>/media/monNouveauMontage => le point de montage de votre partition JBOD</li>
<li>-o allow_other => autorise les autres utilisateurs à monter la partition (n'est pas obligatoire mais conseillé)</li>
</ul>
</li>
<li><p>Ouvrez le fichier de configuration de <a href="https://fr.wikipedia.org/wiki/Filesystem_in_Userspace">fuse</a><br><code>sudo nano /etc/fuse.conf</code><br>
Décommentez <em>user_allow_other</em> puis sauvez et quittez (CTRL+X).</p></li>
<li><p>Redémarrez la machine<br><code>sudo reboot</code></p></li>
</ol><p><strong><em>Mise en place de glusterfs</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">[Tuto/HowTo] [Debian] [cluster] GlusterFS Server</a></p>
<ol>
<li><p>Installez glusterfs-server<br><code>sudo apt-get install glusterfs-server</code></p></li>
<li><p>Donnez le droits d'accès (rw) au fichiers log<br><code>sudo chmod 777 /var/log/glusterfs/*.log</code></p></li>
<li><p>Lancez le démon<br><code>sudo service glusterfs-server restart</code></p></li>
<li>
<p>Répétez éventuellement la manipulation sur une seconde machine puis ajoutez la à votre grille via <br><code>sudo gluster peer probe HOSTNAME</code></p>
<ul>
<li>Note : Une fois que le pool est établi, seuls les membres de confiance (trust) peuvent ajouter de nouveaux servers au pool. Un nouveau server ne peut PAS s'ajouter au pool, il doit être ajouté par le pool. (<a href="http://www.gluster.org/community/documentation/index.php/QuickStart#Step_5_-_Configure_the_trusted_pool">source</a>)</li>
</ul>
</li>
</ol><p><strong><em>Création d'un répertoire/volume distribué répliqué</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298">[Tuto/HowTo] [Debian] [cluster] GlusterFS Server</a></p>
<ol>
<li>
<p>Adaptez la commande suivante puis entrez la dans un terminal sur n'importe lequel de vos Node/server Gluster (elle s'appliquera à l'ensemble de votre grille)<br><code>sudo gluster volume create NomVolume replica 2 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/superPartition force</code></p>
<ul>
<li>NomVolume => le nom du volume dans dans la grille GlusterFS (peut aussi être sous cette forme /papa/fiston/NomVolume)</li>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster <sup id="fnref1"><a href="#fn1">1</a></sup>
</li>
<li>/media/superPartition => le path sur la machine où ranger les données du volume</li>
<li>replica 2 => le nombre de fois que les fichiers doivent être dupliqué. Supprimez cette valeur pour faire un JBOD réseau sans duplication de données.</li>
<li>transport tcp => on utilise TCP/IP</li>
<li>force => ne se met qu'à la fin de la commande, permet d'utiliser le mode root
(vous pouvez modifier par après la plus part des options ;) )</li>
</ul>
</li>
<li><p>Démarrez votre volume/répertoire<br><code>sudo gluster volume start NomVolume</code></p></li>
</ol><p><strong><em>Montage sur un client Ubuntu</em></strong><br>
tuto d'origine : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=288#p749">Monter un volume/répertoire GlusterFS</a></p>
<ol>
<li><p>Installez <a href="http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Gluster_Native_Client">glusterfs-client</a><br><code>sudo apt-get install glusterfs-client</code></p></li>
<li><p>Création du point de montage local<br><code>sudo mkdir /media/monNouveauMontage</code><br><code>sudo chown pi:root -R /media/monNouveauMontage</code><br><code>sudo chmod 774 -R /media/monNouveauMontage</code></p></li>
<li>
<p>Testez votre montage<br><code>sudo mount -t glusterfs HOSTNAME:PORT:/NomVolume /media/monNouveauMontage</code></p>
<ul>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable</li>
<li>:PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>:/NomVolume => le nom du volume dans dans la grille GlusterFS</li>
<li>/media/monNouveauMontage => mon point de montage local</li>
</ul>
</li>
<li>
<p>On va ajouter le montage au boot, éditez le fichier <a href="https://fr.wikipedia.org/wiki/Fstab">/etc/fstab</a><br><code>sudo nano /etc/fstab</code></p>
<ul>
<li>(CTRL+X pour sauver&quitter)</li>
</ul>
</li>
<li>
<p>Adaptez la ligne suivante puis ajoutez-la<br><code>HOSTNAME:PORT:/NomVolume /media/monNouveauMontage glusterfs defaults,_netdev,nofail 0 0</code></p>
<ul>
<li>HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster</li>
<li>:PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)</li>
<li>:/NomVolume => le nom du volume dans dans la grille GlusterFS</li>
<li>/media/monNouveauMontage => mon point de montage local</li>
<li>_netdev => attend que le réseau soit prêt pour tenter le montage</li>
<li>nofail => empêche le boot de crasher si le montage échoue</li>
</ul>
</li>
</ol><p>PS : c'est mon premier journal, si quelqu'un sait comment virer la ligne d'espace vide entre les lignes de code, qu'il n'hésite pas à partager ;)</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>il peut s'avérer nécessaire d'utiliser le fichier /etc/hosts pour fixer les HOSTNAME de vos machines (gluster ne supportant pas le changement d'hostname pour un peer), un tuto détails la procédure ici : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=298#p761">GlusterFS et fichier hosts</a> <a href="#fnref1">↩</a></p>
</li>
</ol>
</div><div><a href="https://linuxfr.org/users/eaufroide/journaux/monter-un-cluster-memoire-avec-un-raspberry-pi.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109056/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/eaufroide/journaux/monter-un-cluster-memoire-avec-un-raspberry-pi#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/109056/comments.atomtag:linuxfr.org,2005:News/281742011-05-08T00:45:33+02:002021-07-11T19:00:01+02:00GlusterFS 3.2 — La géo‐réplicationLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p><a href="http://fr.wikipedia.org/wiki/GlusterFS">GlusterFS</a> ou plus simplement <strong>gluster</strong> est un système de fichiers en espace utilisateur. Il a une forte connotation <em>cluster</em> ou <em>cloud</em>. Il existe deux types de système de fichiers de ce genre, les systèmes natifs en espace noyau comme <a href="http://wiki.lustre.org/">Lustre</a> / <a href="http://ceph.newdream.net/">Ceph</a> ou ceux utilisant l’interface <a href="http://fr.wikipedia.org/wiki/Filesystem_in_Userspace">FUSE</a>. Dans la même catégorie que <strong>gluster</strong>, on retrouve <a href="http://www.moosefs.org/">MooseFS</a>, sur lequel le magazine <a href="http://www.ed-diamond.com/produit.php?ref=lmag137&id_rubrique=1&caracteristique=1-2-&caracdisp=2-3-#">GMLF</a> a réalisé un article en avril 2011.</p>
<p>L’intérêt des systèmes en espace utilisateur est la facilité de programmation, ainsi que le fait de s’appuyer localement sur un des systèmes de fichiers standard du noyau : ext3, ext4, XFS… Dans le cas d’un système de fichiers « clusterisé » comme <strong>gluster</strong>, chacune des partitions formant le <em>cluster</em> peut être formatée avec un système de fichiers différent. Il n’est pas nécessaire que ceux‐ci soient homogènes.</p>
<p>Avec un système de fichiers « clusterisé », il est possible d’agréger des volumes (partitions) provenant de plusieurs serveurs (NAS, SAN…), afin de ne montrer aux clients qu’un seul volume. C’est un peu la généralisation aux grappes de machines Linux (les <em>clusters</em>) du gestionnaire de volumes <a href="http://fr.wikipedia.org/wiki/LVM">LVM</a> que l’on trouve sur tous les serveurs Linux et qui permet (entre autres) l’agrégation de partitions.</p>
<p>La particularité de <strong>gluster</strong> est de ne pas s’appuyer sur un serveur de métadonnées (contrairement à <a href="http://www.pnfs.com/">pNFS</a> et <a href="http://www.moosefs.org/">MooseFS</a>). Tous les nœuds de la grappe sont équivalents. Il est donc particulièrement robuste aux pannes. À noter que depuis la version 3.1, <strong>gluster</strong> est distribué sous la licence libre AGPL, la <a href="_GNU%20Affero%20General%20Public%20License_">[licence publique générale Affero]</a>, alors qu’il était auparavant distribué sous licence <a href="https://fr.wikipedia.org/wiki/GPLv3" title="Définition Wikipédia">GPLv3</a>. Ce changement de licence est évidemment conçu pour protéger le développement de <strong>gluster</strong> d’une utilisation abusive (sans retour de contribution) dans les « nuages »…</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.gluster.org/" hreflang="en" href="https://linuxfr.org/redirect/71986">Site Web de la version communautaire de gluster</a></li><li>lien nᵒ 2 : <a title="http://fr.wikipedia.org/wiki/GlusterFS" hreflang="fr" href="https://linuxfr.org/redirect/71987">GlusterFS sur Wikipedia</a></li><li>lien nᵒ 3 : <a title="http://gluster.com/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide" hreflang="en" href="https://linuxfr.org/redirect/71988">Le guide de l’administrateur</a></li><li>lien nᵒ 4 : <a title="http://gluster.com/community/documentation/index.php/Gluster_3.2_Release_Notes" hreflang="en" href="https://linuxfr.org/redirect/71989">Les notes de version</a></li></ul><div><h2 id="toc-les-fonctionnalités-de-la30">Les fonctionnalités de la 3.0</h2>
<p>Cette version avait amené une profonde refonte dans l’interface de <em>gluster</em> avec l’introduction d’une commande <code>« gluster »</code>, permettant de paramétrer le <em>cluster</em> de données. Finis les fichiers quasi identiques à propager dans la grappe, l’installation et le déploiement du <em>cluster</em> deviennent presque triviaux !</p>
<ul>
<li>
<a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Configuring_Distributed_Volumes">volume distribué</a> : un volume est distribué sur plusieurs partitions qui sont distribuées sur plusieurs machines… Les fichiers du volume sont physiquement enregistrés sur l’une des partitions. Deux fichiers d’un même dossier n’ont aucune raison d’être sur la même partition.</li>
</ul>
<p>Plusieurs modes d’agrégation de volumes pour former le volume « clusterisé » sont possibles :</p>
<ul>
<li><p><a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Configuring_Distributed_Replicated_Volumes">volume répliqué</a> : un volume distribué est automatiquement répliqué <em>n</em> fois sur le <em>cluster</em>, <em>n</em> pouvant être 2 (raid 1), mais aussi 3 ou plus ! Ce type de volume est intéressant pour se préserver des pannes, par exemple d’une panne de baie de stockage.</p></li>
<li><p><a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Configuring_Distributed_Striped_Volumes">volume morcelé (stripe)</a> : chaque fichier d’un volume distribué est découpé en morceaux qui sont répartis sur les nœuds de la grappe. Ce genre de volume est intéressant lorsqu’on cherche de la performance sur des gros fichiers.</p></li>
</ul>
<p>À noter que quatre opérations de base sont possibles à chaud sur tous les volumes : </p>
<ul>
<li>
<a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Expanding_Volumes">étendre</a> (<em>expanding</em>) ;</li>
<li>
<a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Shrinking_Volumes">réduire</a> (<em>shrinking</em>) ;</li>
<li>
<a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Migrating_Volumes">migrer</a> (<em>migrating</em>) ; </li>
<li>
<a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Rebalancing_Volumes">équilibrer</a> (<em>rebalancing</em>). </li>
</ul>
<p>Ces opérations sont complémentaires, puisqu’il s’agit d’agrandir ou de diminuer la taille d’un volume, de déplacer les données d’une partition d’un volume vers une autre (changement de disque dur, par exemple). Ces opérations sont lourdes et peuvent laisser le volume dans un état peu satisfaisant du point de vue des performances. La dernière opération permet de rééquilibrer le volume en déplaçant en tâche de fond les fichiers dans les volumes ; c’est en quelque sorte une opération qui se rapproche de la défragmentation.</p>
<h2 id="toc-quoi-de-neuf-avec-la32">Quoi de neuf avec la 3.2 ?</h2>
<p>On aurait pu s’attendre à une version 3.2 calme, après les changements réalisés dans la version 3.0. Pas du tout. Il y a plein de choses nouvelles et sympathiques dans cette version 3.2.</p>
<ul>
<li><p><a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Exploring_Geo-replication_Deployment_Scenarios">Géo‐réplication</a> : l’idée est d’avoir deux sites distants, et de faire de la réplication asynchrone entre les deux sites, afin d’avoir un <a href="http://fr.wikipedia.org/wiki/Plan_de_reprise_d'activit%C3%A9">plan de reprise d’activité</a> (PRA) possible. Il n’est pas nécessaire d’avoir un système de fichiers <strong>gluster</strong> sur le site secondaire, mais si les volumes de données sont importants, cela semble logique d’avoir le même format des deux côtés. À noter qu’il est possible de cascader les sites : A → B → C, ou de répliquer le site maître vers deux sites distants !</p></li>
<li><p><a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Managing_Directory_Quota">Quotas</a> : gestion de quota par dossier permettant de limiter la taille occupée par un dossier sur un volume. En général, sur les systèmes de fichiers traditionnels, les quotas se font sur les utilisateurs ou sur les groupes (XFS a la possibilité de faire des quotas sur <a href="http://xfs.org/index.php/XFS_FAQ#Q:_Quota:_What.27s_project_quota.3F">projet</a>). On crée donc souvent un groupe par projet (dossier), afin d’y appliquer un quota dessus. Ce mode de gestion de quota par dossier ne devrait donc pas modifier fondamentalement la pratique des administrateurs système.</p></li>
<li><p><a href="http://gluster.com/community/documentation/index.php/Gluster_3.2:_Understanding_your_GlusterFS_Workload">Supervision</a> : permet d’obtenir des rapports d’utilisation et de performance. Ce genre d’informations peut être utile pour savoir, par exemple, quelles sont les données à déplacer sur des volumes plus performants.</p></li>
</ul>
<h2 id="toc-que-manquetil-à-gluster">Que manque‐t‐il à gluster ?</h2>
<p>On a envie de dire : pas grand chose… Le principal manque, me semble‐t‐il, concerne la gestion des <a href="http://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques">clichés</a> (<em>snapshots</em>) permettant, entre autres, d’assurer une sauvegarde à un instant <em>t</em> donné.</p>
<p>Il serait intéressant aussi de pouvoir régler le niveau de réplication par dossier dans un volume répliqué, afin de pouvoir assurer, pour certains dossiers, un niveau plus élevé. C’est une fonctionnalité proposée dans <a href="http://www.moosefs.org/">MooseFS</a>.</p>
</div><div><a href="https://linuxfr.org/news/glusterfs-32-la-geo-replication.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85965/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/glusterfs-32-la-geo-replication#comments">ouvrir dans le navigateur</a>
</p>
Sytoka Modonhttps://linuxfr.org/nodes/85965/comments.atom