Stockage d'objets dans l'arrière-boutique ou Comment devenir votre propre fournisseur de services

Le monde a vu le premier prototype de stockage d'objets en 1996. Après 10 ans, Amazon Web Services lancera Amazon S3 et le monde commencera à devenir fou avec un espace d'adressage plat. En raison du travail avec les métadonnées et de sa capacité à évoluer sans s'affaisser sous la charge, le stockage d'objets est rapidement devenu la norme pour la plupart des services de stockage cloud, et plus encore. Une autre caractéristique importante est sa bonne capacité à stocker des archives et des fichiers similaires rarement utilisés. Tous ceux qui étaient impliqués dans le stockage de données se sont réjouis et ont apporté la nouvelle technologie sous la main.



Mais la rumeur des gens était pleine de rumeurs selon lesquelles le stockage d'objets ne concerne que les gros nuages, et si vous n'avez pas besoin de solutions des maudits capitalistes, alors il sera très difficile de faire le vôtre. Beaucoup a été écrit sur le déploiement de son cloud, mais il n'y a pas beaucoup d'informations sur la création des solutions dites compatibles S3.


Par conséquent, aujourd'hui, nous allons déterminer quelles sont les options "Pour le rendre plus semblable aux adultes, pas au CEPH et à un fichier plus gros", nous développerons l'un d'entre eux et nous vérifierons avec Veeam Backup & Replication pour vérifier que tout fonctionne. Il revendique la prise en charge du travail avec les référentiels compatibles S3, et nous vérifierons cette déclaration.


Et les autres?


Je suggère de commencer par un bref aperçu du marché et des options de stockage d'objets. L'Amazon S3 est un leader et un standard reconnu. Les deux poursuivants les plus proches sont Microsoft Azure Blob Storage et IBM Cloud Object Storage.


C'est tout? N'y a-t-il vraiment pas d'autres concurrents? Bien sûr, il y a des concurrents, mais quelqu'un suit son propre chemin, comme Google Cloud ou Oracle Cloud Object Storage, avec une prise en charge incomplète de l'API S3. Quelqu'un utilise des versions plus anciennes de l'API comme Baidu Cloud. Et certains, comme Hitachi Cloud, nécessitent l'utilisation d'une logique spéciale, ce qui entraînera certainement leurs difficultés. En tout cas, tout le monde est comparé à Amazon, qui peut être considéré comme une norme industrielle.


Mais les solutions sur site ont beaucoup plus de choix, alors identifions les critères qui sont importants pour nous. En principe, seuls deux suffisent: la prise en charge de l'API S3 et l'utilisation de la signature v4. En tant que futur client, nous ne sommes intéressés que par les interfaces pour l'interaction, et la cuisine interne du stockage lui-même n'est pas si intéressante pour nous.


Eh bien, beaucoup de solutions conviennent à ces conditions simples. Par exemple, les poids lourds d'entreprise classiques:


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

Il existe un créneau de solutions logicielles pures qui fonctionnent immédiatement:


  • Chapeau rouge céph
  • Stockage d'entreprise SUSE
  • Cloudian

Et même ceux qui aiment traiter soigneusement le fichier après l'assemblage n'ont pas été offensés:


  • Ceph pur
  • Minio (version Linux, pour la version Windows il y a beaucoup de questions)

La liste est loin d'être complète, elle peut être discutée dans les commentaires. N'oubliez pas de vérifier les performances du système en plus de l'API de compatibilité avant la mise en œuvre. La dernière chose dont vous avez besoin est la perte de téraoctets de données en raison de demandes suspendues. N'hésitez donc pas à effectuer des tests de résistance. En général, tous les logiciels pour adultes qui fonctionnent avec de grandes quantités de données ont au moins des rapports de compatibilité. Dans le cas de Veeam, il existe un programme complet de tests mutuels, qui vous permet de déclarer en toute sécurité la pleine compatibilité de nos produits avec des équipements spécifiques. C'est déjà un travail à double sens, pas toujours rapide, mais nous élargissons constamment la liste des solutions testées.


Rassembler notre stand


Je voudrais parler un peu du choix d'un sujet de test.


Tout d'abord, je voulais trouver une option qui fonctionnerait immédiatement hors de la boîte. Eh bien, ou du moins avec la probabilité maximale qu'il gagne sans avoir à faire de gestes supplémentaires. Danser avec un tambourin et choisir la console la nuit est très excitant, mais parfois je veux que ça marche tout de suite. Et la fiabilité générale de ces solutions est généralement plus élevée. Et oui, l'esprit d'aventurisme a disparu en nous, nous avons cessé de grimper par les fenêtres de nos femmes bien-aimées, etc. (c).


Deuxièmement, pour être honnête, la nécessité de travailler avec le stockage d'objets se pose pour des entreprises assez grandes, c'est donc le cas lorsque la recherche de solutions au niveau de l'entreprise n'est pas seulement honteuse, mais même encouragée. En tout cas, je ne connais pas encore d'exemples de licenciement pour avoir acheté de telles solutions.


Sur la base de ce qui précède, mon choix s'est porté sur l' édition communautaire Dell EMC ECS . C'est un projet très intéressant, et je considère qu'il est nécessaire de vous en parler.


La première chose qui me vient à l'esprit lorsque l'on regarde le module complémentaire Community Edition est qu'il s'agit simplement d'un calque d'un ECS complet avec certaines restrictions qui sont supprimées en achetant une licence. Alors non!


N'oubliez pas:


!!! Community Edition est un projet distinct conçu pour les tests et sans support technique de Dell !!
Et il ne peut pas être transformé en un ECS à part entière, même si vous le voulez vraiment.


Comprenons


Beaucoup de gens pensent que Dell EMC ECS est presque la meilleure solution si vous avez besoin de stockage d'objets. Tous les projets sous la marque ECS, y compris commerciaux et corporatifs, reposent sur le github . Une sorte de geste de bonne volonté de Dell. Et en plus du logiciel qui s'exécute sur leur matériel de marque, il existe une version open source qui peut être déployée même dans le cloud, au moins sur une machine virtuelle, au moins dans le conteneur, au moins sur n'importe lequel de votre matériel. Pour l'avenir, il existe même une version OVA que nous utiliserons.
DELL ECS Community Edition est lui-même une mini-version de logiciel à part entière fonctionnant sur des serveurs de marque Dell EMC ECS.


J'ai souligné quatre différences principales:


  • Aucun support de cryptage. C'est dommage, mais pas critique.
  • Couche de tissu manquante. Cette chose est responsable de la construction du cluster, de la gestion des ressources, des mises à jour, de la surveillance et du stockage des images Docker. Ici, c'est déjà très décevant, mais Dell peut aussi être compris.
  • La conséquence la plus désagréable du paragraphe précédent: la taille du nœud ne peut pas être augmentée une fois l'installation terminée.
  • Aucun support technique. Il s'agit d'un produit de test, qui n'est pas interdit à utiliser dans de petites installations, mais personnellement, je n'oserais pas y télécharger des pétaoctets de données importantes. Mais techniquement, personne ne peut vous empêcher de le faire.


Et qu'est-ce qui est dans la grande version?


Nous galopons à travers l'Europe pour trouver des solutions de fer afin d'avoir une image plus complète de l'écosystème.


Je ne confirmerai ni ne nierai la déclaration selon laquelle DELL ECS est le meilleur stockage d'objets sur site, mais si vous avez quelque chose à dire à ce sujet, je le lirai avec plaisir dans les commentaires. Dans tous les cas, selon IDC MarketScape 2018, Dell EMC est en toute confiance l'un des cinq leaders du marché OBS. Bien que les solutions basées sur le cloud n'y soient pas prises en compte, il s'agit d'un problème distinct.


D'un point de vue technique, ECS est un stockage d'objets qui permet d'accéder aux données via des protocoles de stockage cloud. Prend en charge AWS S3 et OpenStack Swift. Pour le compartiment activé pour les fichiers, ECS prend en charge NFSv3 pour les capacités d'exportation de fichiers.


Le processus d'enregistrement des informations est assez inhabituel, surtout après les systèmes de stockage de blocs classiques.


  • Lorsque de nouvelles données arrivent, un nouvel objet est créé qui a un nom, les données elles-mêmes et les métadonnées.
  • Les objets battent sur des blocs de 128 Mo, et chaque bloc est enregistré immédiatement sur trois nœuds.
  • Le fichier d'index est mis à jour, où les identifiants et les emplacements de stockage sont enregistrés.
  • Le fichier journal (enregistrement de journal) est mis à jour et est également écrit sur trois nœuds.
  • Un message sur l'enregistrement réussi est envoyé au client
    Les trois copies des données sont enregistrées en parallèle. L'enregistrement n'est considéré comme réussi que si les trois copies ont été enregistrées avec succès.


La lecture est plus simple:


  • Le client demande des données.
  • L'index recherche un emplacement pour stocker des données.
  • Les données sont lues à partir d'un nœud et envoyées au client.


Il y a pas mal de serveurs eux-mêmes, alors regardons le plus petit Dell EMC ECS EX300. Il commence à 60 To, avec la capacité de croître à 1,5 Pb. Et son frère aîné Dell EMC ECS EX3000 peut déjà stocker jusqu'à 8,6 Po par rack.


Déployer


Techniquement, Dell ECS CE peut être déployé de manière arbitraire. En tout cas, je n'ai trouvé aucune restriction explicite. Cependant, toute mise à l'échelle se fait commodément en clonant le tout premier nœud, pour lequel nous avons besoin:


  • 8 vCPU
  • 64 Go de RAM
  • 16 Go pour les systèmes d'exploitation
  • 1 To directement pour le stockage
  • Dernière version minimale de CentOS

C'est une option pour le cas où vous souhaitez tout installer vous-même dès le début. Pour nous, cette option n'est pas pertinente, car J'utiliserai l'image OVA pour le déploiement.


Mais dans tous les cas, les exigences sont très mauvaises, même pour un seul nœud, et si vous suivez strictement la lettre de la loi, il y a quatre de ces nœuds.


Cependant, les développeurs ECS CE vivent dans le monde réel, et l'installation est réussie même avec un seul nœud, et les exigences minimales sont les suivantes:


  • 4 vCPU
  • 16 Go de RAM
  • 16 Go pour les systèmes d'exploitation
  • Self stockage de 104 Go

Ce sont ces ressources qui sont nécessaires pour déployer une image OVA. Déjà beaucoup plus humain et réaliste.


Le nœud d'installation lui-même peut être pris dans le github officiel. Il existe également une documentation détaillée sur le déploiement tout-en-un, mais vous pouvez toujours lire sur les documents de lecture officiels. Par conséquent, nous ne nous attarderons pas sur le déploiement d'OVA en détail, il n'y a pas d'astuces. L'essentiel - n'oubliez pas avant de le démarrer, étendez le disque au volume souhaité ou attachez les nécessaires.
Nous démarrons la voiture, ouvrons la console et utilisons les meilleurs crédits par défaut:


  • connexion: admin
  • mot de passe: ChangeMe

Ensuite, nous démarrons sudo nmtui et configurons l'interface réseau - IP / masque, DNS et porte. Gardant à l'esprit que CentOS minimal n'a pas de net-tools, nous vérifions les paramètres via ip addr.



Et puisque les mers ne se soumettent que hardiment, nous faisons une mise à jour miam, après quoi redémarrer. En fait, c'est assez sûr, car tout le déploiement se fait via des playbooks, et tous les packages de docker importants sont verrouillés sur la version actuelle.


Il est maintenant temps de modifier le script d'installation. Pas de belles fenêtres ou pseudo-interface utilisateur pour vous - tout au long de votre éditeur de texte préféré. Pour des raisons purement techniques, il y a deux façons: vous pouvez démarrer chaque commande avec des poignées ou démarrer immédiatement le configurateur videploy. Il ouvrira simplement la config dans vim, et à la sortie, exécutera sa vérification. Mais simplifier délibérément votre vie n'est pas intéressant, nous allons donc faire deux autres équipes. Même si cela n'a aucun sens, je vous ai prévenu =)


Ainsi, nous faisons vim ECS-CommunityEdition / deploy.xml et apportons les modifications minimales optimales pour que ECS s'allume et fonctionne. La liste des paramètres peut être raccourcie, mais j'ai bien aimé:


  • license_accepted: true Vous ne pouvez pas le modifier, puis lors du déploiement, il vous sera explicitement demandé de l'accepter et affichera une belle phrase. C'est peut-être même un œuf de Pâques.
  • Décommentez les lignes de noms automatiques: et personnalisées: entrez au moins un nom souhaité pour le nœud - le nom d'hôte sera remplacé par celui-ci pendant le processus d'installation.
  • install_node: 192.168.1.1 Spécifiez les noeuds IP réels. Dans notre cas, nous indiquons la même chose que dans nmtui
  • dns_domain: entrez votre domaine.
  • dns_servers: entrez votre DNS.
  • ntp_servers: vous pouvez spécifier n'importe lequel. J'ai pris le premier de la piscine 0.pool.ntp.org (il est devenu 91.216.168.42)
  • nom automatique: personnalisé Si vous ne commentez pas, 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 inexistant / dev / vda
  • pools_de stockage:
    membres:
    192.168.1.1 Ici encore, nous indiquons les nœuds IP réels
  • ecs_block_devices:
    / dev / sdb Répétez l'opération de découpe des périphériques inexistants.

En général, le fichier entier est décrit en détail dans la documentation , mais qui le lira dans un temps aussi chargé. Il indique également que le minimum est suffisant pour spécifier l'IP et le masque, mais dans mon laboratoire, cette configuration n'était pas bonne et j'ai dû étendre ce qui précède.



Après avoir quitté l'éditeur, exécutez update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, et si tout est fait correctement, cela sera signalé explicitement.



Ensuite, vous devez toujours lancer videploy, attendre que l'environnement soit mis à jour et vous pouvez démarrer l'installation elle-même avec la commande ova-step1, et après son exécution réussie, la commande ova-step2. Important: n'arrêtez pas de scripter avec vos mains! Certaines étapes peuvent prendre un temps considérable, non exécutées du premier coup, et donner l'impression que tout est cassé. Dans tous les cas, vous devez attendre que le script se termine de manière naturelle. À la fin, vous devriez voir quelque chose comme ça.



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


Mais n'allons pas de l'avant et commençons dans l'ordre.



Lors de la première connexion, il vous sera demandé de changer le mot de passe en un mot de passe adéquat, ce qui est absolument correct. Le tableau de bord principal est extrêmement compréhensible, alors faisons quelque chose de plus intéressant que d'expliquer les métriques évidentes. Par exemple, créez un utilisateur que nous utiliserons pour accéder au référentiel. Dans le monde des prestataires de services, ils sont appelés locataires. Cela se fait dans Gérer> Utilisateurs> Nouvel utilisateur d'objet



Lors de la création d'un utilisateur, il nous est demandé de spécifier un espace de noms. Techniquement, rien ne nous empêche d'en obtenir autant qu'il y aura d'utilisateurs. Et vice versa. Cela vous permet de gérer les ressources indépendamment pour chaque locataire.


En conséquence, nous sélectionnons les fonctions dont nous avons besoin et générons les clés utilisateur. S3 / Atmos me suffira. Et n'oubliez pas de sauvegarder la clé;)



L'utilisateur a été créé, il est maintenant temps pour lui de sélectionner le compartiment. Allez dans Gérer> Bucket et remplissez les champs obligatoires. Ici, tout est simple.



Nous sommes maintenant prêts à utiliser pleinement notre stockage S3.


Personnalisez Veeam


Ainsi, comme nous nous en souvenons, l'une des principales utilisations du stockage d'objets est le stockage à long terme d'informations rarement accessibles. Un exemple idéal est la nécessité de stocker des sauvegardes sur un site distant. Dans Veeam Backup & Replication, cette fonction est appelée Capacity Tier.


Commençons la configuration en ajoutant notre Dell ECS CE à l'interface Veeam. Dans l'onglet Infrastructure de sauvegarde, lancez l'Assistant Ajouter un nouveau référentiel et sélectionnez l'élément Stockage d'objets.



Nous choisissons de quoi il s'agissait - Compatible S3.



Dans la fenêtre qui apparaît, écrivez le nom souhaité et passez à l'étape Compte. Ici, vous devez spécifier le point de service sous la forme https: // your_IP: 9021 , vous pouvez laisser la région telle quelle et ajouter l'utilisateur créé. Un serveur de portail est nécessaire si votre stockage est situé sur un site distant, mais c'est déjà un sujet d'optimisation de l'infrastructure et un article séparé, vous pouvez donc passer en toute sécurité ici.



Si tout est spécifié et configuré correctement, un avertissement de certificat apparaîtra, puis une fenêtre avec un compartiment où vous pourrez créer un dossier pour nos fichiers.



Nous passons par l'assistant jusqu'à la fin et apprécions le résultat.



Dans l'étape suivante, vous devez soit créer un nouveau référentiel de sauvegarde avec montée en puissance parallèle, soit ajouter notre S3 à celui existant - il sera utilisé comme niveau de capacité pour le stockage des archives. Les fonctions permettant d'utiliser directement les référentiels compatibles S3, comme un référentiel standard, ne sont pas dans la version actuelle. Trop de problèmes plutôt non évidents doivent être résolus pour cela, mais tout peut l'être.
Nous allons dans les paramètres du référentiel et activons le niveau de capacité. Tout y est transparent, mais il y a une nuance intéressante: si vous voulez que toutes les données soient envoyées au stockage d'objets dès que possible, définissez simplement 0 jour.



Après avoir passé l'assistant, si vous ne voulez pas attendre, vous pouvez cliquer sur ctrl + RMB dans le référentiel, forcer le travail de hiérarchisation à démarrer et regarder l'analyse des graphiques.



C'est tout pour l'instant. Je considère que la tâche de montrer que le stockage en bloc n'est pas aussi effrayant qu'il est habituel de penser, j'ai réussi. Oui, il existe des solutions et des options pour un wagon et un petit chariot, mais vous ne pouvez pas tout couvrir dans un seul article. Partageons donc l'expérience dans les commentaires.

Source: https://habr.com/ru/post/fr474746/


All Articles