Attachement d'un volume à plusieurs instances

Le service Oracle Cloud Infrastructure Block Volume permet d'attacher un volume de blocs à plusieurs instances de calcul.

Grâce à cette fonctionnalité, vous pouvez partager des volumes de blocs entre des instances en mode lecture/écriture ou lecture seule. L'attachement de volumes de blocs en lecture/écriture et partageables vous permet de déployer et de gérer vos solutions reposant sur des clusters.

Cette rubrique explique comment attacher des volumes de blocs partageables, ainsi que les limites et les remarques relatives à cette fonctionnalité.

Pour plus d'informations sur les options de type d'accès disponibles, reportez-vous à Types d'accès à un volume. Pour attacher des volumes à des instances uniques, reportez-vous à Attachement d'un volume de blocs à une instance.

Limites et remarques

  • Le service Block Volume ne fournit pas de coordination pour les opérations d'écriture simultanées vers des volumes de blocs attachés à plusieurs instances. Par conséquent, si vous configurez le volume de blocs comme étant en lecture/écriture et partageable, vous devez déployer un système ou une solution reposant sur des clusters en plus du stockage partagé. Reportez-vous à Configuration d'attachements de volume à plusieurs instances avec un accès en lecture/écriture.

  • Si vous attachez un volume de blocs à une instance en mode lecture seule, il ne peut être attaché à d'autres instances qu'en lecture seule. Si vous voulez attacher le volume de blocs à une instance en mode lecture/écriture, vous devez le détacher de toutes les instances, puis le rattacher aux instances en lecture/écriture.

  • Si le volume de blocs est déjà attaché à une instance en mode lecture/écriture non partageable, vous ne pouvez pas l'attacher à une autre instance tant que vous ne l'avez pas détaché de la première. Vous pouvez ensuite le rattacher aux deux instances en mode lecture/écriture partageable.

  • Vous ne pouvez pas supprimer un volume de blocs s'il n'est pas détaché de toutes les instances auxquelles il était attaché. Lorsque vous visualisez les instances attachées au volume de blocs dans la section Ressources de la page Détails de volume, seules les instances du compartiment sélectionné sont affichées. Vous devrez peut-être changer de compartiment pour répertorier les autres instances attachées au volume.

  • Vous pouvez attacher jusqu'à 32 instances à un volume partagé si le volume n'est pas configuré pour le niveau Performances très élevées

  • Les volumes configurés pour le niveau Performances très élevées nécessitent des attachements à chemins d'accès multiples. Vous pouvez attacher jusqu'à 25 instances avec des attachements à chemins d'accès multiples à un volume partagé configuré pour des performances très élevées. Si vous tentez d'attacher d'autres attachements à chemins d'accès multiples au-delà de 25, le processus d'attachement échoue.

  • Les volumes de blocs attachés en lecture seule sont configurés comme partageables par défaut.

  • Les caractéristiques de performances décrites dans Performances de Block Volume s'entendent par volume. Par conséquent, si un volume de blocs est attaché à plusieurs instances, les performances sont partagées entre toutes les instances.

  • Les volumes configurés pour le niveau Performances très élevées peuvent également être attachés à plusieurs instances. Cependant, le nombre total d'E/S par seconde et le débit de tous les attachements combinés sont plafonnés aux limites correspondant à un volume, que les attachements soient configurés ou non pour le niveau Performances très élevées. Pour plus d'informations, reportez-vous à Performances très élevées et à Configuration d'attachements à des volumes à performances très élevées.

Configuration d'attachements de volume à plusieurs instances avec un accès en lecture/écriture

Le service Block Volume ne fournit pas de coordination pour les opérations d'écriture simultanées vers des volumes attachés à plusieurs instances. Pour empêcher l'altération des données en raison d'opérations de lecture/d'écriture non contrôlées, vous devez installer et configurer un système ou une solution reposant sur des clusters, comme OCFS2 (Oracle Cluster File System version 2), en plus du stockage partagé pour pouvoir utiliser le volume.

Un exemple de procédure pas à pas avec un scénario mettant en oeuvre OCFS2 est présenté dans Utilisation de la fonctionnalité Block Volume d'attachement à plusieurs instances pour créer un système de fichiers partagé sur Oracle Cloud Infrastructure. Voici un récapitulatif des étapes requises pour le scénario :

  1. Attachez le volume de blocs à une instance en mode lecture/écriture partageable à l'aide de la console, de l'interface de ligne de commande ou de l'API.

  2. Configurez les noeuds de cluster OCFS2/O2CB.

  3. Créez le système de fichiers OCFS2 et le point de montage.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message vous indiquant que vous n'avez pas d'autorisation, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment  dans lequel vous devez travailler.

Pour les administrateurs : la stratégie dans Autoriser les utilisateurs à lancer des instances de calcul inclut la possibilité d'attacher/de détacher des volumes de blocs existants. La stratégie dans Autoriser les administrateurs de volumes à gérer des volumes de blocs, des sauvegardes et des groupes de volumes permet au groupe indiqué de réaliser toutes les opérations possibles avec les volumes de blocs et les sauvegardes, mais pas de lancer des instances.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes. Pour obtenir des informations de référence sur l'écriture de stratégies pour des instances, des réseaux cloud ou d'autres ressources API des services de base, reportez-vous à Détails des services de base.

Utilisation de la console

Procédure d'attachement d'un volume à plusieurs instances à partir de la page Détails de l'instance
  1. Ouvrez le menu de navigation, puis cliquez sur Compute. Sous Compute, cliquez sur Instances.
  2. Dans la liste Instances, cliquez sur l'instance à laquelle vous voulez attacher un volume.

  3. Dans la section Ressources, cliquez sur Volumes de blocs attachés.

  4. Cliquez sur Attacher un volume de blocs.

  5. Sélectionnez le type d'attachement de volume, iSCSI ou Paravirtualisé.

    Pour plus d'informations, reportez-vous à Types d'attachement de volume.

  6. Sélectionnez le type d'accès du volume. Sélectionnez Lecture/écriture - Partageable si vous souhaitez activer l'attachement en lecture/écriture à plusieurs instances ou Lecture seule - Partageable pour l'attachement en lecture seule à plusieurs instances.

    Pour plus d'informations, reportez-vous à Types d'accès à un volume.

  7. Dans la liste déroulante Compartiment du volume de blocs, sélectionnez le compartiment.

  8. Indiquez le volume à attacher. Pour utiliser le nom de volume, choisissez SELECT VOLUME, puis sélectionnez le volume dans la liste déroulante Volume de blocs. Pour indiquer l'OCID de volume, choisissez ENTER VOLUME OCID, puis saisissez l'OCID dans le champ OCID de volume de blocs.

  9. Si l'instance prend en charge les chemins de dispositif cohérents, sélectionnez un chemin dans la liste déroulante Chemin de dispositif lors de l'attachement. Cette opération est obligatoire et vous permet d'indiquer pour l'attachement de volume un chemin de dispositif qui reste cohérent entre les redémarrages d'instance.

    Pour plus d'informations sur cette fonctionnalité et les instances qui la prennent en charge, reportez-vous à Connexion à des volumes présentant des chemins de dispositif cohérents

    Conseil

    Vous devez sélectionner un chemin de dispositif lorsque vous attachez un volume à partir de la console. Cette opération n'est pas facultative. La spécification d'un chemin de dispositif est facultative lorsque vous attachez un volume à l'aide de l'interface de ligne de commande, des API REST ou des kits SDK.
  10. Pour les attachements de volume paravirtualisés sur des instances de machine virtuelle, vous pouvez éventuellement crypter les données transférées entre l'instance et les serveurs de stockage du service Block Volume. Pour ce faire, cochez la case Utiliser le cryptage en transit. Si vous avez configuré le volume pour qu'il utilise une clé de cryptage gérée à l'aide du service Vault, cette clé est utilisée pour le cryptage en transit. Sinon, la clé de cryptage fournie par Oracle est utilisée.

    Pour les attachements iSCSI sur des instances Bare Metal qui prennent en charge le cryptage en transit, ce dernier est activé par défaut et n'est pas configurable.

    Pour plus d'informations sur le cryptage en transit, reportez-vous à Cryptage de volume de blocs.

  11. Cliquez sur Attacher.

    Si l'icône du volume n'indique plus l'état Attachement et que le type d'attachement est défini sur Paravirtualisé, vous pouvez alors utiliser le volume. Si le type d'attachement est iSCSI, vous devez d'abord vous connecter au volume. Pour plus d'informations, reportez-vous à Connexion à un volume de blocs.

    Sur les instances Linux, si vous voulez monter automatiquement les volumes lors de l'initialisation de l'instance, vous devez définir des options spécifiques dans le fichier /etc/fstab, sinon le lancement de l'instance risque d'échouer. Ceci s'applique aux types d'attachement iSCSI et paravirtualisés. Pour les volumes utilisant des chemins de dispositifs cohérents, reportez-vous à Options fstab pour les volumes de blocs avec des chemins de dispositif cohérents. Pour tous les autres volumes, reportez-vous à Options fstab traditionnelles.

Procédure d'attachement d'un volume à plusieurs instances à partir de la page Détails du volume de blocs
  1. Ouvrez le menu de navigation et cliquez sur Stockage. Sous Stockage de blocs, cliquez sur Volumes de blocs.
  2. Dans la liste Volumes de blocs, cliquez sur le volume de blocs à attacher à une instance.

  3. Dans la section Ressources, cliquez sur Instances attachées.

  4. Cliquez sur Attacher à l'instance.

  5. Sélectionnez le type d'attachement de volume, iSCSI ou Paravirtualisé.

    Pour plus d'informations, reportez-vous à Types d'attachement de volume.

  6. Sélectionnez le type d'accès du volume. Sélectionnez Lecture/écriture - Partageable si vous souhaitez activer l'attachement en lecture/écriture à plusieurs instances ou Lecture seule - Partageable pour l'attachement en lecture seule à plusieurs instances.

    Pour plus d'informations, reportez-vous à Types d'accès à un volume.

  7. Dans la liste déroulante Choisir une instance, sélectionnez l'instance. Cliquez sur Modifier le compartiment si l'instance se trouve dans un compartiment différent de celui répertorié par défaut. Si vous souhaitez indiquer l'instance via l'OCID, sélectionnez l'option Entrer l'OCID d'instance, puis copiez l'OCID dans la zone de texte.

  8. Si l'instance prend en charge les chemins de dispositif cohérents, sélectionnez un chemin dans la liste déroulante Chemin de dispositif lors de l'attachement. Cette opération est obligatoire et vous permet d'indiquer pour l'attachement de volume un chemin de dispositif qui reste cohérent entre les redémarrages d'instance.

    Pour plus d'informations sur cette fonctionnalité et les instances qui la prennent en charge, reportez-vous à Connexion à des volumes présentant des chemins de dispositif cohérents

    Conseil

    Vous devez sélectionner un chemin de dispositif lorsque vous attachez un volume à partir de la console. Cette opération n'est pas facultative. La spécification d'un chemin de dispositif est facultative lorsque vous attachez un volume à l'aide de l'interface de ligne de commande, des API REST ou des kits SDK.
  9. Pour les attachements de volume paravirtualisés sur des instances de machine virtuelle, vous pouvez éventuellement crypter les données transférées entre l'instance et les serveurs de stockage du service Block Volume. Pour ce faire, cochez la case Utiliser le cryptage en transit. Si vous avez configuré le volume pour qu'il utilise une clé de cryptage gérée à l'aide du service Vault, cette clé est utilisée pour le cryptage en transit. Sinon, la clé de cryptage fournie par Oracle est utilisée.

    Pour les attachements iSCSI sur des instances Bare Metal qui prennent en charge le cryptage en transit, ce dernier est activé par défaut et n'est pas configurable.

    Pour plus d'informations sur le cryptage en transit, reportez-vous à Cryptage de volume de blocs.

  10. Cliquez sur Attacher.

    Si l'icône du volume n'indique plus l'état Attachement et que le type d'attachement est défini sur Paravirtualisé, vous pouvez alors utiliser le volume. Si le type d'attachement est iSCSI, vous devez d'abord vous connecter au volume. Pour plus d'informations, reportez-vous à Connexion à un volume de blocs.

    Sur les instances Linux, si vous voulez monter automatiquement les volumes lors de l'initialisation de l'instance, vous devez définir des options spécifiques dans le fichier /etc/fstab, sinon le lancement de l'instance risque d'échouer. Ceci s'applique aux types d'attachement iSCSI et paravirtualisés. Pour les volumes utilisant des chemins de dispositifs cohérents, reportez-vous à Options fstab pour les volumes de blocs avec des chemins de dispositif cohérents. Pour tous les autres volumes, reportez-vous à Options fstab traditionnelles.

Procédure d'affichage des instances attachées à un volume à partir de la page Détails de volume
  1. Ouvrez le menu de navigation et cliquez sur Stockage. Sous Stockage de blocs, cliquez sur Volumes de blocs.
  2. Dans la liste Volumes de blocs, cliquez sur le volume de blocs dont vous souhaitez visualiser les instances attachées.

  3. Dans la section Ressources, cliquez sur Instances attachées.

Toutes les instances attachées figurant dans le compartiment sélectionné apparaissent dans la liste. Pour visualiser les instances attachées se trouvant dans d'autres compartiments, changez le compartiment dans la liste déroulante Compartiment.

Procédure d'affichage des volumes attachés à une instance à partir de la page Détails de l'instance
  1. Ouvrez le menu de navigation, puis cliquez sur Compute. Sous Compute, cliquez sur Instances.
  2. Dans la liste Instances, cliquez sur l'instance dont vous souhaitez visualiser les volumes attachés.

  3. Dans la section Ressources, cliquez sur Volumes de blocs attachés.

Tous les volumes de blocs attachés à l'instance sont affichés dans la liste, quel que soit le compartiment dans lequel ils se trouvent.

Utilisation de l'interface de ligne de commande

Pour plus d'informations sur l'utilisation de l'interface de ligne de commande, reportez-vous à Interface de ligne de commande (CLI).

Procédure d'attachement d'un volume à une instance en mode lecture/écriture, partageable

Ouvrez une invite de commande et exécutez la commande suivante :

oci compute volume-attachment attach --instance-id <instance_ID> --type <attachment_type> --volume-id <volume_ID>  --read-only true/false  --is-shareable true

Par exemple :

oci compute volume-attachment attach --instance-id ocid1.instance.oc1..<unique_ID> --type iscsi --volume-id ocid1.volume.oc1..<unique_ID> --read-only false --is-shareable true
Liste des instances attachées à un volume

Ouvrez une invite de commande et exécutez la commande suivante :

oci compute volume-attachment list --compartment-id <compartment_ID> --volume-id <volume_ID>

Par exemple :

oci compute volume-attachment attach --compartment-id ocid1.compartment.oc1..<unique_ID> --volume-id ocid1.volume.oc1..<unique_ID>
Remarque

Cette opération renvoie uniquement les instances attachées qui se trouvent dans le compartiment indiqué. Vous devez exécuter cette opération pour chaque compartiment susceptible de contenir des instances attachées au volume spécifié.

Utilisation de l'API

Utilisez les API suivantes pour attacher des volumes et utiliser des attachements de volume à des instances :

  • AttachVolume

    Définissez l'attribut isShareable d'AttachVolumeDetails sur true.

  • GetVolumeAttachment
  • ListVolumeAttachments

    L'opération ListVolumeAttachments renvoie uniquement les instances attachées qui se trouvent dans le compartiment indiqué. Vous devez exécuter cette opération pour chaque compartiment susceptible de contenir des instances attachées au volume spécifié.

Pour plus d'informations sur l'utilisation de l'API et la signature des demandes, reportez-vous à la documentation relative à l'API REST et à Informations d'identification de sécurité. Pour plus d'informations sur les kits SDK, reportez-vous à Kits SDK et interface de ligne de commande.

Ressources supplémentaires

Reportez-vous aux liens suivants pour obtenir des exemples de déploiement de systèmes de fichiers partagés sur Oracle Cloud Infrastructure.

  • Projet GitHub pour le déploiement automatisé en Terraform de BeeGFS : oci-beegfs

  • Projet GitHub pour le déploiement Terraform automatisé de Lustre : oci-lustre

  • Projet GitHub pour les déploiements Terraform automatisés du système de fichiers parallèle distribué d'IBM Spectrum Scale (GPFS) sur Oracle Cloud Infrastructure : oci-ibm-spectrum scale