Yacoubi Mohamed - Mot-clé - gluster
2023-02-13T14:54:31+01:00
Yacoubi Mohamed
urn:md5:eacabd43d1ec1439188ee60076d41b1e
Dotclear
Système de fichier distribué Glusterfs - volume en striping
urn:md5:94ad073509d38f57ac0b7cfdf6e301f8
2011-12-01T12:00:00+01:00
2011-12-01T12:00:00+01:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
La suite des tests gluster, nous attaquons la mise en place d'un volume en striping.
<br />
Les serveurs de fichiers dispose d'une partition de 10Go qui sera exporté.</p>
<pre class="bash">filer<span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #808080; font-style: italic;"># df -h</span>
Filesystem Size Used Avail Use<span style="color: #000000; font-weight: bold;">%</span> Mounted on
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda1 <span style="color: #000000;">9</span>.9G <span style="color: #000000;">1</span>.4G <span style="color: #000000;">8</span>.0G <span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>
udev 10M 116K <span style="color: #000000;">9</span>.9M <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev
shm 249M <span style="color: #000000;">0</span> 249M <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>shm</pre>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># df -h</span>
Filesystem Size Used Avail Use<span style="color: #000000; font-weight: bold;">%</span> Mounted on
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda1 <span style="color: #000000;">9</span>.9G <span style="color: #000000;">1</span>.4G <span style="color: #000000;">8</span>.0G <span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>
udev 10M 116K <span style="color: #000000;">9</span>.9M <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev
shm 249M <span style="color: #000000;">0</span> 249M <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>shm</pre>
<p><br /></p>
<h3><ins> Configuration de base : </ins></h3>
<p><br />
Il faut dans un premier temps le pool de confiance si ce dernier n'existe pas.
<br />
La procédure est décrite dans l'article <a href="https://blog.yacoubi.fr/index.php?post/2011/06/29/Systeme-de-fichier-replique-Glusterfs-replication-distribue">volume répliqué et distribué</a></p>
<p><br /></p>
<h3><ins> Configuration d'un volume en striping : </ins></h3>
<p><br />
Nous allons créer le volume stripé sur 2 serveurs de stockage, le but étant d' aggreger l'espace de stockage (Raid-0).</p>
<ul>
<li>La création du volume est extrêmement simple :</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume create test-volume stripe 2 transport tcp filer-1:/mnt filer-2:/mnt</span>
Creation of volume test-volume has been successful. Please start the volume to access data.</pre>
<ul>
<li>On vérifie le volume</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume info</span>
Volume Name: test-volume
Type: Stripe
Status: Created
Number of Bricks: <span style="color: #000000;">2</span>
Transport-<span style="color: #7a0874; font-weight: bold;">type</span>: tcp
Bricks:
Brick1: filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>mnt
Brick2: filer<span style="color: #000000;">-2</span>:<span style="color: #000000; font-weight: bold;">/</span>mnt</pre>
<ul>
<li>A présent on démarre le volume</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume start test-volume</span></pre>
<ul>
<li>On monte le volume depuis les clients</li>
</ul>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount -t glusterfs filer-1:7997:/test-volume /glusterfs</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># df -h</span>
Filesystem Size Used Avail Use<span style="color: #000000; font-weight: bold;">%</span> Mounted on
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda1 <span style="color: #000000;">7</span>.9G <span style="color: #000000;">1</span>.6G <span style="color: #000000;">6</span>.0G <span style="color: #000000;">22</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>
udev 10M 112K <span style="color: #000000;">9</span>.9M <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev
shm 249M <span style="color: #000000;">0</span> 249M <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>shm
filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>test-volume 20G <span style="color: #000000;">2</span>.8G 16G <span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>glusterfs</pre>
<p>Nous disposons bien d'un volume strippé.</p>
<h3><ins> Test divers : </ins></h3>
<ul>
<li>Test en ecriture.</li>
</ul>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># for i in `seq 0 2`; do dd if=/dev/zero of=/glusterfs/wap$i.img bs=300M count=1; done</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># du -h /glusterfs/*</span>
301M <span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000; font-weight: bold;">/</span>wap0.img
301M <span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000; font-weight: bold;">/</span>wap1.img
301M <span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000; font-weight: bold;">/</span>wap2.img</pre>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># du -h /mnt/*</span>
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap0.img
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap1.img
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap2.img</pre>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># du -h /mnt/* </span>
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap0.img
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap1.img
151M <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>wap2.img</pre>
<ul>
<li>Voyons comment réagi le volume en cas de panne sur l'un des filer.</li>
</ul>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># echo 'abcdefghij' > /glusterfs/test</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs</span>
total <span style="color: #000000;">8</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">11</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre>
<pre class="bash">filer<span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">8</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">11</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">test</span>
filer<span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #808080; font-style: italic;"># cat /mnt/test </span>
abcdefghij
filer<span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #808080; font-style: italic;">#</span></pre>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">test</span>
filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># cat /mnt/test </span>
filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;">#</span></pre>
<ul>
<li>Simulation de panne sur filer-2</li>
</ul>
<p>On désactive le filer-2</p>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># halt</span>
Broadcast message from root <span style="color: #7a0874; font-weight: bold;">(</span>pts<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">)</span> <span style="color: #7a0874; font-weight: bold;">(</span>Sat Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">40</span>:<span style="color: #000000;">50</span> <span style="color: #000000;">2011</span><span style="color: #7a0874; font-weight: bold;">)</span>:
The system is going down <span style="color: #000000; font-weight: bold;">for</span> system halt NOW<span style="color: #000000; font-weight: bold;">!</span></pre>
<p>On écrit sur le point de montage depuis le client</p>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># rm /glusterfs/test </span>
<span style="color: #c20cb9; font-weight: bold;">rm</span>: cannot remove `<span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span><span style="color: #ff0000;">': Transport endpoint is not connected
client-1 ~ # cat /glusterfs/test
cat: /glusterfs/test: Transport endpoint is not connected
client-1 ~ # touch /glusterfs/test2
touch: cannot touch `/glusterfs/test2'</span>: Input<span style="color: #000000; font-weight: bold;">/</span>output error</pre>
<p>On réactive filer-2 et on vérifie que tout est ok.</p>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre>
<p>On écrit sur le point de montage depuis le client</p>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># touch /glusterfs/test3</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs</span>
total <span style="color: #000000;">12</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">11</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">test</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">44</span> test3</pre>
<ul>
<li>Simulation de panne sur filer-1</li>
</ul>
<p>On eteint filer-1</p>
<pre class="bash">filer<span style="color: #000000;">-1</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #808080; font-style: italic;"># halt</span>
Broadcast message from root <span style="color: #7a0874; font-weight: bold;">(</span>pts<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">)</span> <span style="color: #7a0874; font-weight: bold;">(</span>Sat Nov <span style="color: #000000;">12</span> <span style="color: #000000;">00</span>:<span style="color: #000000;">47</span>:<span style="color: #000000;">43</span> <span style="color: #000000;">2011</span><span style="color: #7a0874; font-weight: bold;">)</span>:
The system is going down <span style="color: #000000; font-weight: bold;">for</span> system halt NOW<span style="color: #000000; font-weight: bold;">!</span></pre>
<p>On effectue un accès depuis client-1</p>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs/</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span>: cannot access <span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000; font-weight: bold;">/</span>: Transport endpoint is not connected</pre>
<p><br /></p>
<p>Les fichiers sont stockés à 50% sur chacun des filers et les en cas de panne les conséquences sont catastrophique.
<br />
Le benchmark devrait être intéressant :)</p>
Système de fichier distribué Glusterfs - Benchmark replication distribuée
urn:md5:3a1718661b20f7ed477f0ee2fb9186d5
2011-11-11T22:26:00+01:00
2012-01-02T16:54:23+01:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
Après la publication de <a href="https://blog.yacoubi.fr/index.php?post/2011/06/29/Systeme-de-fichier-replique-Glusterfs-replication-distribue">la réplication distribuée</a>, voici les premiers benchmarks.
<br />
<br />
<ins>Le protocole de test est le suivant :</ins></p>
<ul>
<li>Serveurs : Intel Core2 Quad Q9550 - 512Mo de RAM</li>
<li>Outil : <a href="http://www.iozone.org/" hreflang="en" title="fileop">fileop</a></li>
<li>Pas d'optimisation particulère</li>
<li>Création d'une arborescence de fichier de 4K (création de 20 répertoires contenant 20 répertoires contenant un fichier de 4K)</li>
<li>Création d'une arborescence de fichier de 40M (création de 6 répertoires contenant 6 répertoires contenant un fichier de 40M)</li>
<li>Comparatif : Écriture en local, via gluster puis NFS</li>
</ul>
<p><br /></p>
<h3><ins>1) Génération de l'arborescence 4K: </ins></h3>
<h4><ins> Test en local : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /glusterfs_local/ -f 20 -s 4k -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">20</span> <span style="color: #000000;">23960</span> <span style="color: #000000;">381779</span> <span style="color: #000000;">98668</span> <span style="color: #000000;">16779</span> <span style="color: #000000;">442536</span> <span style="color: #000000;">63848</span> <span style="color: #000000;">63694</span> <span style="color: #000000;">389805</span> <span style="color: #000000;">555721</span> <span style="color: #000000;">490175</span> <span style="color: #000000;">369310</span> <span style="color: #000000;">70380</span> <span style="color: #000000;">178352</span> <span style="color: #000000;">241133</span> <span style="color: #000000;">94628</span> <span style="color: #000000;">8000</span>
real 0m54.757s
user 0m0.203s
sys 0m0.520s</pre>
<h4><ins> Test via le protocole NFS : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount | grep /glusterfs_nfs</span>
<span style="color: #000000;">78.41</span>.XXX.XXX:<span style="color: #000000; font-weight: bold;">/</span>nfs on <span style="color: #000000; font-weight: bold;">/</span>glusterfs_nfs <span style="color: #7a0874; font-weight: bold;">type</span> nfs <span style="color: #7a0874; font-weight: bold;">(</span>rw,noatime,<span style="color: #007800;">addr=</span><span style="color: #000000;">78.41</span>.XXX.XXX<span style="color: #7a0874; font-weight: bold;">)</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /glusterfs_nfs/ -f 20 -s 4k -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">20</span> <span style="color: #000000;">190</span> <span style="color: #000000;">25031</span> <span style="color: #000000;">273</span> <span style="color: #000000;">154</span> <span style="color: #000000;">6418</span> <span style="color: #000000;">62354</span> <span style="color: #000000;">163237</span> <span style="color: #000000;">266426</span> <span style="color: #000000;">12863</span> <span style="color: #000000;">394146</span> <span style="color: #000000;">4618</span> <span style="color: #000000;">6265</span> <span style="color: #000000;">1347</span> <span style="color: #000000;">313</span> <span style="color: #000000;">302</span> <span style="color: #000000;">8000</span>
real 4m33.915s
user 0m0.030s
sys 0m0.080s</pre>
<h4><ins> Test via le protocole Gluster : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount | grep '/glusterfs'</span>
filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>test-volume on <span style="color: #000000; font-weight: bold;">/</span>glusterfs <span style="color: #7a0874; font-weight: bold;">type</span> fuse.glusterfs <span style="color: #7a0874; font-weight: bold;">(</span>rw,allow_other,default_permissions,<span style="color: #007800;">max_read=</span><span style="color: #000000;">131072</span><span style="color: #7a0874; font-weight: bold;">)</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /glusterfs/ -f 20 -s 4k -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">20</span> <span style="color: #000000;">1362</span> <span style="color: #000000;">3371</span> <span style="color: #000000;">2398</span> <span style="color: #000000;">835</span> <span style="color: #000000;">2462</span> <span style="color: #000000;">3411</span> <span style="color: #000000;">16958</span> <span style="color: #000000;">6960</span> <span style="color: #000000;">2785</span> <span style="color: #000000;">4124</span> <span style="color: #000000;">1545</span> <span style="color: #000000;">2840</span> <span style="color: #000000;">945</span> <span style="color: #000000;">1232</span> <span style="color: #000000;">1188</span> <span style="color: #000000;">8000</span>
real 1m59.461s
user 0m0.023s
sys 0m0.523s</pre>
<p><br />
<br /></p>
<h3><ins>2) Génération de l'arborescence 40M : </ins></h3>
<h4><ins> Test local : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /mnt/ -f 6 -s 40M -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">6</span> <span style="color: #000000;">71305</span> <span style="color: #000000;">403178</span> <span style="color: #000000;">105082</span> <span style="color: #000000;">15906</span> <span style="color: #000000;">113915</span> <span style="color: #000000;">1</span> <span style="color: #000000;">14</span> <span style="color: #000000;">104410</span> <span style="color: #000000;">520373</span> <span style="color: #000000;">510405</span> <span style="color: #000000;">367981</span> <span style="color: #000000;">169848</span> <span style="color: #000000;">202678</span> <span style="color: #000000;">295200</span> <span style="color: #000000;">875</span> <span style="color: #000000;">216</span>
real 7m44.478s
user 0m27.758s
sys 0m15.576s</pre>
<h4><ins> Test via le protocole NFS : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount | grep /glusterfs_nfs</span>
<span style="color: #000000;">78.41</span>.XXX.XXX:<span style="color: #000000; font-weight: bold;">/</span>nfs on <span style="color: #000000; font-weight: bold;">/</span>glusterfs_nfs <span style="color: #7a0874; font-weight: bold;">type</span> nfs <span style="color: #7a0874; font-weight: bold;">(</span>rw,noatime,<span style="color: #007800;">addr=</span><span style="color: #000000;">78.41</span>.XXX.XXX<span style="color: #7a0874; font-weight: bold;">)</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /glusterfs_nfs/ -f 6 -s 40M -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">6</span> <span style="color: #000000;">306</span> <span style="color: #000000;">153298</span> <span style="color: #000000;">642</span> <span style="color: #000000;">45</span> <span style="color: #000000;">3070</span> <span style="color: #000000;">1</span> <span style="color: #000000;">26</span> <span style="color: #000000;">90751</span> <span style="color: #000000;">11435</span> <span style="color: #000000;">13304</span> <span style="color: #000000;">2221</span> <span style="color: #000000;">8485</span> <span style="color: #000000;">5251</span> <span style="color: #000000;">3831</span> <span style="color: #000000;">639</span> <span style="color: #000000;">216</span>
real 7m23.497s
user 0m28.012s
sys 0m16.809s</pre>
<h4><ins> Test via le protocole Gluster : </ins></h4>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount | grep '/glusterfs'</span>
filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>test-volume on <span style="color: #000000; font-weight: bold;">/</span>glusterfs <span style="color: #7a0874; font-weight: bold;">type</span> fuse.glusterfs <span style="color: #7a0874; font-weight: bold;">(</span>rw,allow_other,default_permissions,<span style="color: #007800;">max_read=</span><span style="color: #000000;">131072</span><span style="color: #7a0874; font-weight: bold;">)</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># time ./fileop -d /glusterfs -f 6 -s 40M -e</span>
. <span style="color: #c20cb9; font-weight: bold;">mkdir</span> chdir <span style="color: #c20cb9; font-weight: bold;">rmdir</span> create open <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #c20cb9; font-weight: bold;">write</span> close <span style="color: #c20cb9; font-weight: bold;">stat</span> access <span style="color: #c20cb9; font-weight: bold;">chmod</span> readdir <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #c20cb9; font-weight: bold;">unlink</span> delete Total_files
A <span style="color: #000000;">6</span> <span style="color: #000000;">1528</span> <span style="color: #000000;">357139</span> <span style="color: #000000;">2713</span> <span style="color: #000000;">26</span> <span style="color: #000000;">806</span> <span style="color: #000000;">1</span> <span style="color: #000000;">2</span> <span style="color: #000000;">2558</span> <span style="color: #000000;">4536</span> <span style="color: #000000;">3942</span> <span style="color: #000000;">2533</span> <span style="color: #000000;">4365</span> <span style="color: #000000;">1259</span> <span style="color: #000000;">1870</span> <span style="color: #000000;">424</span> <span style="color: #000000;">216</span>
real 17m1.170s
user 0m27.895s
sys 0m8.719s</pre>
Système de fichier distribué Glusterfs - volume répliqué et distribué
urn:md5:b25e1a8d7709817e5c36a4647686b49c
2011-06-29T19:19:00+02:00
2011-11-11T23:55:38+01:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
Après quelques temps d'absence je reprend les différents tests gluster, nous attaquons par la mise en place d'un volume répliqué distribué.
Je passerais volontairement la mise en place du volume répliqué simple car ne présentant aucun intérêt pour mes besoins.
<br /></p>
<h3><ins> Configuration de base : </ins></h3>
<p><br />
Nous allons créer dans un premier temps le pool de confiance.
Lorsque vous démarrez le premier serveur, le pool de confiance se compose de ce serveur seul, il vous suffira alors d'ajouter depuis ce serveur le 2nd serveur de stockage puis depuis des serveurs déjà présent dans le pool d'ajouter les serveurs suivants afin de les autoriser à interagir entre eux.</p>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># gluster peer probe filer-2</span>
Probe successful
filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster peer probe filer-1</span>
Probe successful</pre>
<p><br /></p>
<h3><ins> Configuration d'un volume répliqué et distribué : </ins></h3>
<p><br />
Nous allons commencer par le plus simple à savoir un volume répliqué et distribué sur 2 serveurs de stockage, le but étant d'avoir du master/master (Raid-1).</p>
<ul>
<li>La création du volume est extrêmement simple :</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume create test-volume replica 2 transport tcp filer-1:/mnt filer-2:/mnt</span>
Creation of volume test-volume has been successful. Please start the volume to access data.</pre>
<ul>
<li>On vérifie le volume</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume info</span>
Volume Name: test-volume
Type: Replicate
Status: Created
Number of Bricks: <span style="color: #000000;">2</span>
Transport-<span style="color: #7a0874; font-weight: bold;">type</span>: tcp
Bricks:
Brick1: filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>mnt
Brick2: filer<span style="color: #000000;">-2</span>:<span style="color: #000000; font-weight: bold;">/</span>mnt</pre>
<ul>
<li>A présent on démarre le volume</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># gluster volume start test-volume</span></pre>
<ul>
<li>On monte le volume depuis les clients</li>
</ul>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># mount -t glusterfs filer-1:7997:/test-volume /glusterfs</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># df -h</span>
Filesystem Size Used Avail Use<span style="color: #000000; font-weight: bold;">%</span> Mounted on
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda1 <span style="color: #000000;">7</span>.9G <span style="color: #000000;">1</span>.3G <span style="color: #000000;">6</span>.3G <span style="color: #000000;">17</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>
udev 10M 112K <span style="color: #000000;">9</span>.9M <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev
shm 249M <span style="color: #000000;">0</span> 249M <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>shm
filer<span style="color: #000000;">-1</span>:<span style="color: #000000; font-weight: bold;">/</span>test-volume <span style="color: #000000;">9</span>.9G <span style="color: #000000;">1</span>.4G <span style="color: #000000;">8</span>.1G <span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #000000; font-weight: bold;">/</span>glusterfs</pre>
<h3><ins> Test divers : </ins></h3>
<ul>
<li>On vérifie que le volume est bien redondant</li>
</ul>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># touch /glusterfs/test</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs/</span>
total <span style="color: #000000;">0</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">20</span>:<span style="color: #000000;">39</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">0</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">20</span>:<span style="color: #000000;">39</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">0</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">20</span>:<span style="color: #000000;">39</span> <span style="color: #7a0874; font-weight: bold;">test</span></pre>
<ul>
<li>Simulation de panne sur filer-2</li>
</ul>
<p>On désactive le filer-2</p>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># halt</span>
Broadcast message from root <span style="color: #7a0874; font-weight: bold;">(</span>pts<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">)</span> <span style="color: #7a0874; font-weight: bold;">(</span>Tue Mar <span style="color: #000000;">8</span> <span style="color: #000000;">20</span>:<span style="color: #000000;">57</span>:<span style="color: #000000;">52</span> <span style="color: #000000;">2011</span><span style="color: #7a0874; font-weight: bold;">)</span>:
The system is going down <span style="color: #000000; font-weight: bold;">for</span> system halt NOW<span style="color: #000000; font-weight: bold;">!</span></pre>
<p>On écrit sur le point de montage depuis le client</p>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># rm /glusterfs/test </span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># touch /glusterfs/test_2</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs/</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">43</span> test_2</pre>
<p>On verifie que tout est ok sur le filer-1</p>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls /mnt/ -l</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">43</span> test_2</pre>
<p>On réactive filer-2 et on vérifie que tout est ok, malheureusement, tant qu'aucun accès n'aura été fait depuis le client, la reconstruction du volume ne sera pas effectué.</p>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /mnt/</span>
total <span style="color: #000000;">0</span></pre>
<p>On effectue un accès depuis le client via un simple <q>ls</q> et on revérifie.</p>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ls /mnt/ -l</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">8</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">43</span> test_2</pre>
<ul>
<li>Simulation de panne sur filer-1</li>
</ul>
<p>On eteint filer-1</p>
<p>On écrit sur le point de montage depuis le client</p>
<pre class="bash">client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># rm /glusterfs/test_2</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># touch /glusterfs/test_3</span>
client<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs/</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">9</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">17</span> test_3</pre>
<p>On effectue un accès depuis client-1 et on vérifie filer-1</p>
<pre class="bash">filer<span style="color: #000000;">-1</span> ~ <span style="color: #808080; font-style: italic;"># ls -l /glusterfs/</span>
total <span style="color: #000000;">4</span>
-rw-r--r-- <span style="color: #000000;">1</span> root root <span style="color: #000000;">0</span> Mar <span style="color: #000000;">9</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">17</span> test_3</pre>
<p><br />
On constate que le fait de monter filer-1 ne pose aucun problème en cas de panne de ce dernier, il serait donc plus juste de dire que nous avons monté le pool de confiance. :)</p>
<p>La prochaine étape un benchmark des performances ...</p>
Système de fichier distribué Glusterfs - accès client
urn:md5:41e2c80d0e537075ac978824e57df3e4
2011-04-14T20:54:00+02:00
2011-11-12T00:00:30+01:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
Nous continuons notre série d'article <a href="https://blog.yacoubi.fr/index.php?post/2011/04/01/Systeme-de-fichier-distribue-Glusterfs">Gluster</a> en abordant les différentes possibilités d'accès client.
Exceptionnellement, aucun article supplémentaire sur Gluster n'est à prévoir pour le mois à venir.
<br />
<br />
Nous disposons de 2 possibilités pour accéder au système de fichier :</p>
<ul>
<li>Gluster Native Client :</li>
</ul>
<p><a href="https://blog.yacoubi.fr/public/gluster/gluster_client.jpg" title="gluster_client"><img src="https://blog.yacoubi.fr/public/gluster/.gluster_client_m.jpg" alt="gluster_client" style="display:block; margin:0 auto;" title="gluster_client, mar. 2011" /></a></p>
<p>Cette méthode est la plus recommandée, son utilisation permet des accès parallèles, le standard POSIX est alors utilisé. Il offre également les meilleures performances.</p>
<ul>
<li>Utilisation d'un protocole NFS ou CIFS :</li>
</ul>
<p><a href="https://blog.yacoubi.fr/public/gluster/gluster_others.jpg" title="gluster_other"><img src="https://blog.yacoubi.fr/public/gluster/.gluster_others_m.jpg" alt="gluster_other" style="display:block; margin:0 auto;" title="gluster_other, mar. 2011" /></a></p>
<p>1. Le client effectue la demande d'accès à un serveur jouant le rôle de répartiteur.
<br />
2. Le répartiteur va alors interroger l'un des noeud (nous l'appellerons noeud master dans l'exemple) du cluster.
<br />
3. Si l'information n'est pas contenu dans le noeud master, ce dernier va interroger le noeud disposant de la bonne information.
<br />
4. L'information est alors transmise au noeud master.
<br />
5. Le noeud master va alors transmettre l'information directement au client, attention si l'information est fragmenté sur plusieurs noeuds, le noeud master transmettra chaque bride d'informations au client qui s'occupera de les réagréger.</p>
Système de fichier distribué Glusterfs - Base
urn:md5:0c6a6416b879004f2db21882367c79ed
2011-04-06T23:05:00+02:00
2011-04-06T22:08:31+02:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
Suite à mon article <a href="https://blog.yacoubi.fr/index.php?post/2011/04/01/Systeme-de-fichier-distribue-Glusterfs">précédent</a>, nous allons débuter par l'installation de <a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a> sur <a href="http://www.gentoo.org" hreflang="en" title="gentoo">Gentoo</a>.
<br />
<br /></p>
<h3><ins> Pré-requis kernel : </ins></h3>
<pre class="bash">File systems ---<span style="color: #000000; font-weight: bold;">></span>
<span style="color: #7a0874; font-weight: bold;">[</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">]</span> FUSE <span style="color: #7a0874; font-weight: bold;">(</span>Filesystem <span style="color: #000000; font-weight: bold;">in</span> Userspace<span style="color: #7a0874; font-weight: bold;">)</span> support</pre>
<h3><ins> Préparation : </ins></h3>
<p><br /></p>
<ul>
<li>On s'assure que tout les /etc/hosts soient renseignés.</li>
</ul>
<p><br /></p>
<ul>
<li>On s'assure qu'aucune perte réseau n'existe entre chaque noeud <ins>et</ins> entre chaque client et noeud.</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># ping -c 10000 -f filer-1 2>&1 | grep '% packet loss'</span>
<span style="color: #000000;">10000</span> packets transmitted, <span style="color: #000000;">10000</span> received, <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">%</span> packet loss, <span style="color: #000000; font-weight: bold;">time</span> 869ms</pre>
<p><br /></p>
<h3><ins> Installation : </ins></h3>
<p><br /></p>
<ul>
<li>On installe glusterfs sur tout les noeuds et sur les clients.</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># USE="extras fuse" emerge -av glusterfs</span>
Calculating dependencies... <span style="color: #000000; font-weight: bold;">done</span><span style="color: #000000; font-weight: bold;">!</span>
<span style="color: #7a0874; font-weight: bold;">[</span>ebuild N <span style="color: #7a0874; font-weight: bold;">]</span> sys-fs<span style="color: #000000; font-weight: bold;">/</span>fuse<span style="color: #000000;">-2.8</span><span style="color: #000000;">.5</span> <span style="color: #000000;">492</span> kB
<span style="color: #7a0874; font-weight: bold;">[</span>ebuild N <span style="color: #7a0874; font-weight: bold;">]</span> sys-cluster<span style="color: #000000; font-weight: bold;">/</span>glusterfs<span style="color: #000000;">-3.1</span><span style="color: #000000;">.1</span> <span style="color: #007800;">USE=</span><span style="color: #ff0000;">"extras fuse -emacs (-infiniband) -static-libs -vim-syntax"</span> <span style="color: #000000;">2</span>,<span style="color: #000000;">024</span> kB</pre>
<ul>
<li>On lance glusterfs sur les différents noeuds et on l'ajoute au rc.</li>
</ul>
<pre class="bash">filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># /etc/init.d/glusterd start</span>
filer<span style="color: #000000;">-2</span> ~ <span style="color: #808080; font-style: italic;"># rc-update -a glusterd default</span></pre>
<p>Voila pour cette partie qui était la plus facile, les articles suivants seront plus intéressant et aborderons les différentes configurations possible.</p>
Système de fichier distribué Glusterfs
urn:md5:07da0759b472f52d95c2136a8fa8037d
2011-03-30T21:06:00+02:00
2011-04-14T19:44:02+02:00
Mohamed YACOUBI
Glusterfs
cluster
emerge
Gentoo
gluster
glusterfs
infogérance
linux
<p><img src="https://blog.yacoubi.fr/public/Logo/Gluster.png" alt="gluster_logo" style="display:block; margin:0 auto;" title="gluster_logo, avr. 2011" />
<br />
<br />
Je vais débuter une série d'article qui seront publiées chaque semaine sur la mise en place de <a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a>.
<br />
<br />
<a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a> est un logiciel libre de système de fichiers distribué en parallèle (scale-out), capable de monter jusqu'à plusieurs <a href="http://fr.wikipedia.org/wiki/Octet" hreflang="fr" title="pétaoctets">pétaoctets</a> et de gérer plusieurs milliers de clients.
<br />
<br />
<a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a> est un système de fichiers de cluster/réseaux. <a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a> est livré avec deux éléments, un serveur et un client.
<br />
<br />
Le serveur de stockage (ou chaque serveur d'un cluster) fait tourner <q>glusterfsd</q> et les clients utilisent la commande <q>mount</q> ou <q>glusterfs client</q> pour monter les systèmes de fichiers servis, en utilisant <a href="http://fuse.sourceforge.net/" hreflang="en" title="FUSE">FUSE</a>.
Les Serveurs sont déployés comme des <q>briques de stockage</q>, chaque serveur exécutant un daemon glusterfsd qui exporte un système de fichier local comme un «volume».
<br />
Le processus client glusterfs, se connecte aux serveurs avec un protocole spécifique (implémenté au-dessus de TCP/IP, InfiniBand ou SDP) et regroupe les volumes distants en un unique volume.
<br />
<br />
<a href="https://blog.yacoubi.fr/public/gluster/GlusterFS-New1.jpg" title="gluster"><img src="https://blog.yacoubi.fr/public/gluster/.GlusterFS-New1_m.jpg" alt="gluster" style="display:block; margin:0 auto;" title="gluster, avr. 2011" /></a>
<br /></p>
<h4>* Évolutivité et performance :</h4>
<p><br />
L'architecture scale-out permet d'agréger des ressources en fonction des besoins de capacité et de performance sans interruption.
<a href="http://www.gluster.org/" hreflang="en" title="Gluster">Gluster</a> permet également un rééquilibrer de la charge après ajout ou suppression des serveurs de données.
La fonction Gluster Elastic Hash supprime la nécessité d'un serveur de métadonnées et élimine donc un goulot d'étranglement au travers d'une réelle <q>parallélisation</q> des accès aux données. (équilibrage de charge)
<br /></p>
<h4>* Haute Disponibilité :</h4>
<p><br />
Les serveurs peuvent être géré en miroir de type RAID-1.
Après une panne matérielle, glusterfs reconstruira automatiquement en tache de fond le volume défaillant.
Glusterfs n'utilise pas un format propriétaire pour stocker des fichiers sur le disque des serveurs de données.
<br /></p>
<h4>* Gluster Elastic Hash :</h4>
<p><br />
Plutôt que d'utiliser un serveur de métadonnées, Glusterfs utilise un algorithme de hachage afin de localiser les données dans le pool de stockage. Tous les systèmes de stockage du pool ont donc la possibilité de connaître précisément l'emplacement de n'importe quelle données sans avoir besoin d'interroger un autre serveur du pool.
<br /></p>
<h4>* Gluster Manager Console :</h4>
<p><br />
<a href="http://europe.gluster.org/community/documentation/index.php/Gluster_3.1:_Exploring_the_Management_Console" hreflang="en" title="Gluster">Gluster</a> offre une interface web (Python, Ruby, PHP) avancée afin de permettre la gestion et l'automatisation des différents serveurs de données.</p>