Commit 82c90057 authored by Thierry Fenasse's avatar Thierry Fenasse

un peu de contenu, la suite arrive plus tard dans la journée

parent ebe40858
GlusterFS
=========
Découverte de GlusterFS
=======================
Sur les 3 vieux ordis de mon labo pourri, que j'avais préparés lors de ma [découverte d'Ansible](), j'ai poursuivi l'installation de Glusterfs « à la main » à partir de l'étape 5 du [guide d'installation de base](https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/).
Copie de fichiers juste pour voir
---------------------------------
Et sur les trois vieux PCs du labo-pourri, ça copie ferme avec leurs petites cartes 100Mb. Et tout de suite, qui dit envois de fichiers **vers** le GlusterFS, dit que la vitesse du réseau est évidemment divisée par deux puisque ce qui arrive sur un d'entre eux doit aussi aller vers les autres.
![TPPP - Trois Petits Pcs Pourris](./assets/GlusterFS_Copie_Plein_De_Fichiers.png)
On voit en bas à droite que hpc01 reçoit à ±6000 et envoit à du ±12000 vers les deux autres nœuds.
Avec des cartes Gigabit
-----------------------
Ben oui, parce que l'idée étant quand même de pouvoi compter sur le fait que les disques, même vieux et sur du SATA vieux aussi, peuvent écrire à du 60MB/s.
J'ai donc mis des cartes PCI et modifé le fichier de configuration `/etc/network/interface` pour remplacer la carte 100Mbit/s `enp63s0` par la nouvelle 1Gbit/s `enp7s4` et redémarré les ordis.
![TPPP - Trois Petits Pcs Pourris - En Gigabit !](./assets/Rsync_Depuis_Un_Autre_Ordi_Plus_Rapide.png)
On voit en haut à gauche que hpc01 reçoit à ±25000 et envoit à du ±50000 vers les deux autres nœuds, ce qui est quand même un peu mieux.
Ça se passe comment la réplication ?
------------------------------------
Selon le [guide d'installation de base](https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/) on a en fait créé un groupe de volumes `gv0` de **réplication** `replica` entre les trois nœuds (`peer`).
```
gluster volume create gv0 replica 3 hpc011:/data/brick1/gv0 hpc012:/data/brick1/gv0 hpc03:/data/brick1/gv0
gluster volume start gv0
```
Noubliez pas que le volume fraichement créé sur l'un des nœud, **devra être monté**, peut-importe sur quel ordinateur. Dans mon cas, c'est dans le dossier `/mnt` sur l'ordinateur `hpc01`.
```
mount -t glusterfs hpc01:/gv0 /mnt
```
![TPPP - Trois Petits Pcs Pourris - En réplication !](assets/Creation_1000_Fichiers_Sur_Hpc01_Vue_En_Nombre_De_Fichiers_Repliques.png)
On voit quelques différences en listant toutes les secondes le dossier `/data/brick1/gv0/files` des trois ordinateurs. Mais au final, les 1000 fichiers seront bien là sure chaque nœuds.
La commande pour créer les 1000 fichiers c'est celle-ci. Il y a certainement d'autres moyens, mais ça fonctionne bien.
```
for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/files/copy-test-$i; done
```
Bottleneck ?
------------
Comme ressources, le tableau des [taux de transferts (en)](https://en.wikipedia.org/wiki/Data-rate_units) pourra aider, de même qu'un [convertisseur](https://www.gbmb.org/mbps-to-mbs).
* la vitesse du disque en lecture et écriture
* la vitesse du contrôleur en lecture et écriture
* la vitesse de la carte réseau du serveurs
Donc l'idée arrive vite d'avoir **plusieurs disques**, peut-être sur **plusieurs contrôleurs**, et aussi **plusieurs cartes réseaux**, voir **plusieurs serveurs**.
Mais tout ça coûte en électricité !
Donc l'idée arrive vite d'avoir **plusieurs disques**, peut-être sur **plusieurs contrôleurs**, et aussi **plusieurs cartes réseaux**, voir **plusieurs serveurs**. Mais tout ça coûte en électricité !
Si par exemple 1000 clients sont entrain d'uploader leurs vidéos de vacances et leur photos hautes définitions dans leur « cloud personnel », c'est 1000 clients seront limités par leur **vitesse d'envoi** respectives.
Si par exemple 1000 clients sont entrain d'uploader leurs vidéos de vacances et leur photos hautes définitions dans leur « cloud personnel », ces 1000 clients seront limités par leur **vitesse d'envoi** respectives. Mais bon 1000 x 5Mbit/s ça fait quand même 625 MB/s soit une vitesse proche du [SATA 3](https://en.wikipedia.org/wiki/Serial_ATA#SATA_revision_3.0_(6_Gbit/s,_600_MB/s,_Serial_ATA-600) à savoir; du 6Gbit/s. Ce mix de de bit rate est fait exprès pour vous passer le message du ô combien c'est chiant d'évaluer la choses.
Si ces 1000 clients téléchargent leur données sur leur nouvel ordi pour en avoir une copie locale, c'est 1000 clients seront limités par leur **vitesse de réception**.
Si ces 1000 clients téléchargent leur données sur leur nouvel ordi pour en avoir une copie locale, c'est 1000 clients seront limités par leur **vitesse de réception** respectives. Mais bon 1000 x 30Mbit/s ça fait quand même 3750 MB/s et là… votre serveur avec son interface SATA à du 6Bbit/s à l'aire d'une vielle pantoufle en velour avec de la moumoutte dedans et c'est au moins vers du SAS *(le SCSI hein! Pas le SATA!)* ou du NVMe selon [ce tableau](https://en.wikipedia.org/wiki/List_of_interface_bit_rates#Storage).
Si tout ça se fesait vers des serveurs dont les accès réseaux seraient limités à du Gigabit (100Mbps), c'est cette connexion qui serait la limite. **Mais**, si cette connexion tombe sur un serveur de stockage dont les disques plafonnent à du 60Mbps, ce sont eux qui limiteront le débit, peut importe le nombre de clients.
Si tout ça se fesait vers des serveurs dont les accès réseaux seraient limités à du Gigabit *(1 Gigabit/s = 125 Megabytes/s)*, c'est cette connexion qui serait la limite. **Mais**, si cette connexion tombe sur un serveur de stockage dont les disques plafonnent à du 60Mbps, ce sont eux qui limiteront le débit, peut importe le nombre de clients.
Par rapport à ces limitations, seul la **distribution** vers plusieurs serveurs ou plusieurs disques pourrait lever les limitations de ces vitesses.
Distribuer des données, c'est bien, ça réparti la charge, mais encore faut-il les sauvegarder. Et là c'est la **réplication** qui entre en compte. En effet, le modèle qui compine la **distribution et la réplication** est possible avec GlusterFS (ou d'autres), c'est qu'il y a une raison. L'un pour augmenter la rapidité grace à la distribution de la charge de travail et augmenter la vitesse, l'autre pour assure la dosiponibilité en réplicant les données vers plusieurs systèmes simultanément.
Distribuer des données, c'est bien, ça réparti la charge, mais encore faut-il les avoir à différents endroits! Là c'est la **réplication** qui entre en compte. En effet, le modèle qui compine la **distribution et la réplication** est possible avec GlusterFS (ou d'autres), c'est qu'il y a une raison. L'un pour augmenter la rapidité grace à la distribution de la charge de travail et augmenter la vitesse, l'autre pour assurer la dosiponibilité en réplicant les données vers plusieurs systèmes simultanément. C'est ce qu'on appellera les [types de volumes](https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/#types-of-volumes)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment