Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Le premier prototype de stockage d'objets a été présenté au monde en 1996. Dix ans plus tard, Amazon Web Services lancera Amazon S3, et le monde commencera progressivement à s'enthousiasmer pour l'espace d'adressage plat. Grâce à son travail sur les métadonnées et sa capacité à évoluer sans se dégrader sous la charge, le stockage d'objets est rapidement devenu la norme pour la plupart des services de stockage de données dans le cloud, et pas seulement. Une autre caractéristique importante est sa bonne adéquation pour le stockage d'archives et de fichiers rarement utilisés. Tous ceux qui étaient impliqués dans le stockage de données se réjouissaient et portaient la nouvelle technologie en triomphe.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Mais des rumeurs circulaient, disant que les stockages d'objets ne concernent que les grands clouds, et que si vous ne voulez pas de solutions des maudits capitalistes, il serait très difficile de créer le vôtre. Beaucoup de choses ont été écrites sur le déploiement de son propre cloud, mais il y a peu d'informations sur la création de solutions dites compatibles S3.

Aujourd'hui, nous allons donc examiner les options disponibles : « Pour faire comme les grands, pas de CEPH et un petit coup de lime », en déployant l'une d'elles, et nous allons vérifier que tout fonctionne grâce à Veeam Backup & Replication. Il est annoncé qu'il prend en charge le stockage compatible S3, et nous allons vérifier cette déclaration.

Et chez les autres ?

Je propose de commencer par un petit aperçu du marché et des options de stockage d'objets. Le leader reconnu et la norme est Amazon S3. Les deux poursuivants les plus proches sont Microsoft Azure Blob Storage et IBM Cloud Object Storage.

Est-ce vraiment tout ? N'y a-t-il pas d'autres concurrents ? Bien sûr, il y a des concurrents, mais certains suivent leur propre chemin, comme Google Cloud ou Oracle Cloud Object Storage, avec un support limité de l'API S3. D'autres utilisent d'anciennes versions de l'API, comme Baidu Cloud. Et certains, comme Hitachi Cloud, nécessitent une logique particulière, ce qui causera inévitablement des difficultés. Dans tous les cas, tout le monde est comparé à Amazon, qui peut être considéré comme la norme industrielle.

Dans les solutions on-premise, le choix est beaucoup plus vaste, alors définissons les critères qui nous importent. En gros, deux critères suffisent : prise en charge de l'API S3 et utilisation de la signature v4. Honnêtement, en tant que futur client, seuls les interfaces d'interaction nous intéressent, tandis que la cuisine interne du stockage lui-même nous importe moins.

De nombreuses solutions répondent à ces conditions simples. Par exemple, les classiques poids lourds d'entreprise :

  • DellEMC ECS
  • NetApp S3 StorageGrid
  • Nutanix Buckets
  • Pure Storage FlashBlade et StorReduce
  • Huawei FusionStorage

Il existe une niche de solutions purement logicielles qui fonctionnent de manière native :

  • Red Hat Ceph
  • SUSE Enterprise Storage
  • Cloudian

Et même ceux qui aiment peaufiner après l'assemblage n'ont pas été laissés pour compte :

  • CEPH en version pure
  • Minio (version Linux, car la version Windows présente de nombreuses questions)

Cette liste n'est pas exhaustive, elle peut être discutée dans les commentaires. N'oubliez pas que, avant de mettre en œuvre, il faut vérifier non seulement la compatibilité de l'API, mais aussi les performances du système. La dernière chose dont vous avez besoin, c'est de perdre des téraoctets de données à cause de requêtes bloquées. N'hésitez donc pas à effectuer des tests de charge. En général, tous les logiciels matures travaillant avec de grands volumes de données ont au moins des rapports de compatibilité. Dans le cas de Veeam Il existe il existe un programme complet de tests réciproques, permettant d'affirmer en toute confiance la compatibilité complète de nos produits avec du matériel spécifique. C'est déjà un travail bilatéral, pas toujours rapide, mais nous élargissons constamment des le nombre de solutions testées.

Assemblons notre stand

Je voudrais parler un peu du choix de notre sujet d'expérimentation.

Tout d'abord, je voulais trouver une option qui fonctionnerait tout de suite de manière native. Au moins, avec la plus grande probabilité qu'elle fonctionne sans nécessiter d'efforts supplémentaires. Faire des contorsions et gratter la console la nuit, c'est très captivant, mais parfois on aimerait que ça fonctionne immédiatement. De plus, la fiabilité générale de ces solutions est généralement supérieure. Et oui, notre esprit d'aventure s'est estompé, nous avons cessé de grimper par les fenêtres chez nos belles-filles, etc. (c).

Deuxièmement, pour être honnête, le besoin de travailler avec des systèmes de stockage d'objets se présente principalement aux grandes entreprises, ce qui est le cas où se tourner vers des solutions de niveau entreprise n'est pas seulement acceptable, mais même encouragé. Quoi qu'il en soit, je ne connais pas encore d'exemples de personnes qui ont été licenciées pour avoir acheté de telles solutions.

Au vu de tout ce qui précède, mon choix s'est porté sur Dell EMC ECS Community Edition. C'est un projet très intéressant, et je pense qu'il est nécessaire de vous en parler.

La première chose qui vient à l'esprit en voyant le complément Community Edition — c'est que c'est simplement une version réduite du ECS complet avec quelques restrictions qui sont levées par l'achat d'une licence. Eh bien, pas du tout !

Souvenez-vous :

!!!Community Edition est un projet distinct, créé pour le test, et sans support de la part de Dell !!
Et il ne peut pas être transformé en ECS complet, même si l'on en a très envie.

Examinons cela de plus près.

Beaucoup considèrent que Dell EMC ECS est l'une des meilleures solutions si vous avez besoin d'un stockage d'objets. Tous les projets sous la marque ECS, y compris les projets commerciaux et d'entreprise, se trouvent sur GitHub. C'est un geste de bonne volonté de la part de Dell. Et en plus du logiciel qui fonctionne sur leur matériel de marque, il existe une version open source, que vous pouvez déployer dans le cloud, sur une machine virtuelle, dans un conteneur, ou sur n'importe quel matériel que vous possédez. Pour aller de l'avant, il existe même une version OVA, que nous allons utiliser.
Le DELL ECS Community Edition lui-même est une version miniature du logiciel complet, fonctionnant sur les serveurs Dell EMC ECS.

J'ai identifié quatre principales différences :

  • Pas de support pour le chiffrement. C'est dommage, mais pas critique.
  • Absence de Fabric Layer. Cette fonctionnalité est responsable de la constitution de clusters, de la gestion des ressources, des mises à jour, de la surveillance et du stockage des images Docker. C'est très frustrant, mais on peut comprendre Dell.
  • La conséquence la plus désagréable du point précédent : la taille de la nœud ne peut pas être augmentée après l'installation.
  • Pas de support technique. C'est un produit pour les tests, qui peut être utilisé dans de petites installations, mais je ne prendrais pas le risque d’y stocker des pétaoctets de données importantes. Mais techniquement, personne ne peut vous en empêcher.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Et qu'en est-il de la version complète ?

Faisons un tour rapide des solutions matérielles pour avoir une image plus complète de l'écosystème.

Je ne vais pas confirmer ou infirmer l'affirmation selon laquelle DELL ECS est le meilleur stockage d'objets sur site, mais si vous avez quelque chose à dire à ce sujet, je serais ravi de le lire dans les commentaires. Quoi qu'il en soit, selon IDC MarketScape 2018 Dell EMC se classe solidement parmi les cinq leaders du marché des OBS. Bien que les solutions basées sur le cloud ne soient pas prises en compte, c'est une autre discussion.

D'un point de vue technique, ECS est un stockage d'objets offrant un accès aux données via des protocoles de stockage cloud. Il prend en charge AWS S3 et OpenStack Swift. Pour les buckets activés pour les fichiers, ECS prend en charge NFSv3 pour permettre l'exportation au niveau des fichiers.

Le processus d'enregistrement des informations est plutôt unique, surtout après les systèmes classiques de stockage en bloc.

  • Lorsque de nouvelles données arrivent, un nouvel objet est créé, qui a un nom, des données et des métadonnées.
  • Les objets sont divisés en chunks de 128 Mo, et chaque chunk est enregistré simultanément sur trois nœuds.
  • Le fichier d'index est mis à jour, où les identifiants et les emplacements de stockage sont enregistrés.
  • Le fichier de journal (log d'enregistrement) est également mis à jour et enregistré sur trois nœuds.
  • Un message de succès d'enregistrement est envoyé au client
    Les trois copies de données sont enregistrées en parallèle. L'enregistrement est considéré comme réussi seulement si toutes les trois copies ont été enregistrées avec succès.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

La lecture se déroule de manière plus simple :

  • Le client demande des données.
  • L'emplacement de stockage des données est recherché dans l'index.
  • Les données sont lues à partir d'un nœud et envoyées au client.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Il y a pas mal de serveurs, alors regardons le plus petit, le Dell EMC ECS EX300. Il commence à partir de 60 To, avec la possibilité de croître jusqu'à 1,5 Po. Son grand frère, le Dell EMC ECS EX3000, permet de stocker jusqu'à 8,6 Po par bay.

Déployer

Techniquement, Dell ECS CE peut être déployé aussi grand que nécessaire. En tout cas, je n'ai pas trouvé de limites explicites. Cependant, toute mise à l'échelle est préférable de se faire par clonage du tout premier nœud, pour lequel nous aurons besoin de :

  • 8 vCPU
  • 64 Go de RAM
  • 16 Go pour le système d'exploitation
  • 1 To spécifiquement pour le stockage
  • La dernière version de CentOS minimal

C'est une option pour le cas où vous souhaitez tout installer vous-même dès le départ. Pour nous, ce n'est pas pertinent, car je vais utiliser pour le déploiement une image OVA.

Mais dans tous les cas, les exigences sont assez sévères même pour un seul nœud, et si l'on suit strictement la lettre de la loi, il faudrait quatre de ces nœuds.

Cependant, les développeurs d'ECS CE vivent dans le monde réel, et l'installation se déroule avec succès même avec une seule nœud, les exigences minimales étant les suivantes :

  • 4 vCPU
  • 16 Go de RAM
  • 16 Go pour le système d'exploitation
  • 104 Go pour le stockage

Ce sont exactement les ressources nécessaires pour déployer l'image OVA. C'est beaucoup plus humain et réaliste.

Le nœud d'installation peut être obtenu sur le site officiel github. Vous y trouverez également une documentation détaillée sur le déploiement tout-en-un, mais vous pouvez aussi lire sur le site officiel readthedocs. Par conséquent, nous ne nous attarderons pas en détail sur le déploiement de l'OVA, cela se fait sans artifices. L'essentiel est de ne pas oublier, avant de le lancer, soit d'augmenter l'espace disque à la taille requise, soit de connecter les éléments nécessaires.
Nous lançons la machine, ouvrons la console et utilisons les meilleures credenciales par défaut :

  • login : admin
  • mot de passe : ChangeMe

Ensuite, nous lançons sudo nmtui et configurons l'interface réseau — IP/mask, DNS et gateway. En gardant à l'esprit que CentOS minimal n'a pas de net-tools, nous vérifions les configurations avec ip addr.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Et puisque seule l'audace peut conquérir les mers, nous faisons un yum update, puis reboot. En réalité, c'est assez sûr, car tout le déploiement se fait via des playbooks, et tous les paquets Docker importants sont bloqués sur la version actuelle.

Il est maintenant temps de modifier le script d'installation. Pas de jolies fenêtres ou de pseudo UI — tout se fait avec votre éditeur de texte préféré. Techniquement, il y a deux façons : vous pouvez exécuter chaque commande manuellement ou lancer directement le configurateur videploy. Cela ouvrira simplement le config dans vim, et à la sortie, il lancera sa vérification. Mais simplifier sa vie, ce n'est pas très intéressant, donc nous allons exécuter deux commandes de plus. Bien que cela n'ait aucun sens, je vous préviens =)

Donc, nous faisons vim ECS-CommunityEdition/deploy.xml et apportons les modifications minimales optimales pour que l'ECS s'active et fonctionne. La liste des paramètres peut être abrégée, mais j'ai fait comme ceci :

  • licensed_accepted: true Vous n'êtes pas obligé de le changer, sinon lors du déploiement, vous serez explicitement invité à l'accepter et vous verrez une phrase sympa. C'est peut-être même une petite surprise.
    Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services
  • Décommentez les lignes autonames : et custom : Entrez au moins un nom souhaité pour le nœud — le nom d'hôte sera remplacé par celui-ci lors de l'installation.
  • install_node: 192.168.1.1 Indiquez une vraie IP pour le nœud. Dans notre cas, nous indiquerons la même que dans nmtui
  • dns_domain: entrez votre domaine.
  • dns_servers: saisissez votre dns.
  • ntp_servers : vous pouvez indiquer n'importe quel serveur. J'ai pris le premier qui est tombé sur le 0.pool.ntp.org (ce qui est devenu 91.216.168.42)
  • autonaming : personnalisé. Si ce n'est pas décommenté, la lune s'appellera Luna.
  • ecs_block_devices :
    /dev/sdb
    Pour une raison inconnue, il peut y avoir un périphérique de stockage en bloc non existant /dev/vda
  • storage_pools :
    members :
    192.168.1.1. Ici, nous indiquons à nouveau l'IP réelle du nœud
  • ecs_block_devices :
    /dev/sdb Повторяем операцию вырезания несуществующих устройств.

En fait, tout le fichier est très détaillé dans documentation, mais qui va le lire en des temps si troublés ? Il est écrit que le minimum requis est d'indiquer l'IP et le masque, mais dans mon labo, cette configuration s'est mal passée et j'ai dû l'élargir comme indiqué ci-dessus.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Après avoir quitté l'éditeur, vous devez exécuter update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, et si tout a été fait correctement, cela sera clairement indiqué.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Ensuite, vous devrez tout de même exécuter videploy, attendre que l'environnement se mette à jour, et vous pourrez lancer l'installation avec la commande ova-step1, et après son exécution réussie, la commande ova-step2. Important : ne stoppez pas le fonctionnement des scripts manuellement ! Certaines étapes peuvent prendre beaucoup de temps, ne pas s'exécuter du premier coup et sembler cassées. Dans tous les cas, attendez que le script se termine naturellement. À la fin, vous devriez voir un message similaire à celui-ci.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Maintenant, enfin, nous pouvons ouvrir le panneau de contrôle WebUI à l'IP que nous connaissons. Si vous n'avez pas changé lors de la configuration, les identifiants par défaut seront root/ChangeMe. Vous pouvez même immédiatement utiliser notre stockage compatible S3. Il est disponible sur les ports 9020 pour HTTP et 9021 pour HTTPS. Encore une fois, si rien n'a été changé, alors access_key : object_admin1 et secret_key : ChangeMeChangeMeChangeMeChangeMeChangeMe.

Mais ne nous précipitons pas et commençons dans l'ordre.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Lors de la première connexion, vous serez obligé de changer votre mot de passe en quelque chose de raisonnable, ce qui est absolument correct. Le tableau de bord principal est très clair, alors faisons quelque chose de plus intéressant que d'expliquer des métriques évidentes. Par exemple, créons un utilisateur que nous utiliserons pour accéder au stockage. Dans le monde des fournisseurs de services, cela est appelé tenant. Cela se fait dans Manage > Users > New Object User

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Lors de la création de l'utilisateur, nous devons indiquer l'espace de noms. Techniquement, rien ne nous empêche d'en créer autant que d'utilisateurs. Et vice versa. Cela permet de gérer les ressources indépendamment pour chaque tenant.

Nous sélectionnons donc les fonctionnalités nécessaires et générons les clés de l'utilisateur. S3/Atmos me suffira. Et n'oublions pas de sauvegarder la clé 😉

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

L'utilisateur a été créé, il est maintenant temps de lui attribuer un bucket. Allons dans Gérer > Bucket et remplissons les champs requis. C'est assez simple.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Nous sommes désormais prêts pour une utilisation tout à fait opérationnelle de notre stockage S3.

Configurons Veeam

Comme nous le savons, l'une des principales applications des stockages d'objets est le stockage à long terme des informations auxquelles on accède rarement. Un exemple idéal est la nécessité de stocker des sauvegardes sur un site distant. Dans Veeam Backup & Replication, cette fonction s'appelle Capacity Tier.

Commençons la configuration en ajoutant notre Dell ECS CE à l'interface de Veeam. Dans l'onglet Infrastructure de sauvegarde, lançons l’assistant pour ajouter un nouveau référentiel et sélectionnons l'option Stockage d'objets.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Choisissons donc l'objectif pour lequel tout cela a été envisagé : S3 Compatible.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Dans la fenêtre qui apparaît, saisissons le nom souhaité et passons à l'étape Compte. Ici, nous devons indiquer le point de service sous la forme https://your_IP:9021, la région peut rester tel quel, et ajoutons l'utilisateur créé. Le serveur de passerelle est nécessaire si votre stockage se trouve sur un site distant, mais c'est déjà une question d'optimisation de l'infrastructure et un sujet d'article à part, donc ici, nous pouvons le passer.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Si tout est spécifié et configuré correctement, un avertissement concernant le certificat apparaîtra, suivi d'une fenêtre avec le bucket où vous pourrez créer un dossier pour nos fichiers.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Terminons l'assistant et apprécions le résultat.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

À l'étape suivante, vous devez soit créer un nouveau référentiel de sauvegarde Scale-out, soit ajouter notre S3 à un existant - il sera utilisé comme Capacity Tier pour le stockage d'archives. Dans cette version actuelle, il n'y a pas de fonctionnalité pour utiliser des stockages compatibles S3 directement comme un référentiel ordinaire. Trop de problèmes assez obscurs doivent être résolus pour cela, mais tout est possible.
Accédez aux paramètres du référentiel et activez le Capacity Tier. C'est tout transparent, mais il y a un détail intéressant : si vous souhaitez que toutes les données soient envoyées vers le stockage d'objets dans les plus brefs délais, il suffit de définir 0 jours.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

Après avoir terminé l'assistant, si vous ne voulez pas attendre, vous pouvez appuyer sur ctrl + clic droit sur le référentiel, lancer manuellement le job de tiering et observer comment les graphiques progressent.

Stockage d'objets dans un sous-sol, ou Comment devenir son propre fournisseur de services

C'est tout pour le moment. Je pense avoir réussi à montrer que les stockages objets ne sont pas aussi effrayants qu'on le pense généralement. Oui, il existe de nombreuses solutions et variantes, mais une seule article ne peut pas tout couvrir. Alors, partageons nos expériences dans les commentaires.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster