web-dev-qa-db-fra.com

Clarification nécessaire sur le déploiement Juju du charme Ceph

J'ai 3 serveurs que je souhaite utiliser comme cluster de stockage dans une configuration PoC Openstack.

Chaque serveur a un petit/dev/sda pour l'OS, etc. et un grand/dev/sdb que j'espère utiliser comme stockage par Ceph.

Je peux utiliser le charme Juju Ceph pour déployer Ceph sur chaque serveur.

Comme prévu, le charme Ceph met en place un moniteur Ceph sur chaque serveur et signale qu'un cluster avec quorum a été formé.

Les docs disent que le charme principal de Ceph configure également Ceph-OSD pour tous les disques qu'il trouve. Dans mon cas, il configure uniquement un OSD sur un seul serveur.

Ai-je bien compris le charme principal de Ceph? Doit-il configurer les 3 Ceph Mons ainsi que les 3 Ceph-OSD (configurés pour/dev/sdb)?

Ma connaissance de Ceph est minimale, donc je suis encore en train de reconstituer la terminologie et les concepts. Ai-je raison de penser qu'un seul Ceph-OSD peut gérer le stockage de blocs ET d'objets ou Ceph alloue-t-il certains OSD uniquement pour le bloc et d'autres uniquement pour le stockage d'objets?

1
Andrew Love

Pourriez-vous publier le fichier de configuration que vous avez utilisé pour votre déploiement? Ce serait utile.
Compte tenu de vos détails sur le matériel, je pense que le charme installerait 3 OSD (1 par serveur sur/dev/sdb).
Vous avez raison au sujet de la gestion par Ceph d'un seul bloc et d'un pool de stockage.

1
Chris Holcombe

Cela peut sembler un peu déroutant au premier abord, le charme `` ceph '' configure à la fois un mon et un OSD. Le charme ceph-osd configure uniquement un OSD (pas de mon), mais fonctionne autrement de la même manière et avec les mêmes options. Vous les mélangerez en fonction de votre déploiement et vous pourrez relier les charmes ceph et ceph-osd.

Pour un cluster minimal de 3 serveurs (comme vous l'avez), vous avez besoin de 3 mons et donc vous créez simplement 3 unités du charme `` ceph '' qui configurera à la fois les mons requis et un OSD sur chaque unité. Si vous aviez plus de serveurs (par exemple 6), vous pourriez configurer 3 unités de ceph et 3 unités de ceph-osd.

Le stockage utilisé par ceph peut être configuré avec l'option osd-devices sur le charme, il peut accepter soit le (s) chemin (s) de périphérique dans/dev ou un emplacement de système de fichiers pour placer les fichiers par défaut/dev/vdb - vous aurez probablement besoin de le changer. Reportez-vous à la documentation ici: https://jujucharms.com/ceph/

Enfin en ce qui concerne le stockage de blocs et d'objets, ceph à un niveau inférieur fournit un service "rados" qui stocke des objets et est accessible à l'aide d'une API rados de bas niveau. Dans le cluster Ceph (qui a plusieurs OSD), vous pouvez créer plusieurs "pools" pour contenir ces objets. Chaque pool a un nom et les noms des objets sont uniques dans un pool (mais vous pouvez utiliser le même nom d'objet dans différents pools, ils sont isolés les uns des autres) - vous pouvez également définir différentes options sur chaque pool, telles que le nombre de copies pour stocker chaque élément de données. Cependant, gardez à l'esprit qu'il y a des frais généraux pour chaque pool (principalement en termes de groupes de placement) et vous ne pouvez pas les créer de manière extravagante, mais vous avez probablement quelques pools dans votre installation.

En plus de ce cluster Ceph, vous pouvez créer un certain nombre de services, y compris le stockage par blocs (en utilisant RBD - Rados Block Device) et le stockage d'objets avec une API REST (en utilisant radosgw). Ces deux services utilisez l'API rados au bas niveau pour stocker et manipuler les objets, mais fournissez un service de niveau supérieur tel qu'un périphérique de bloc ou HTTP REST interface aux objets.

Avec la passerelle de stockage d'objets (radosgw), vos objets sont généralement nommés et créés de la même manière qu'ils le sont dans la passerelle, ce qui peut être évident, mais le dispositif de blocage des rados RBD divise le volume de stockage en morceaux (par exemple, des blocs de 4 Mo) et crée un objet pour chaque bloc et quelques objets supplémentaires qui stockent des métadonnées sur l'ensemble du périphérique de bloc.

Vous pouvez exécuter les deux services (ou plus) sur le même cluster ceph et les OSD, mais placerez généralement chaque service dans son propre pool (radosgw utilise en fait plusieurs pools).

J'espère que cela vous aide à démarrer avec le charme lui-même, quelques notions de base sur ceph et comment le stockage de blocs et de fichiers peut coexister sur un cluster ceph. Cela peut encore être un peu déroutant en termes de terminologie, donc je vous suggère de parcourir le manuel et de rechercher sur YouTube l'une des différentes présentations de ceph qui vous aidera vraiment à maîtriser la terminologie.

1
Trent Lloyd