Pour gérer un disque SCSI, vous devez spécifier et connaître son contrôleur SCSI ainsi que son numéro d'unité logique (LUN). Pour un objet disque vSphere, vous pouvez utiliser Cloud Assembly pour attribuer les deux valeurs dans le modèle de cloud.

La capacité à utiliser différents contrôleurs SCSI est importante pour les performances et est requise pour certains types de déploiement, tels que Real Application Clusters (RAC) Oracle.

Propriétés du contrôleur SCSI et des disques LUN

Pour attribuer un contrôleur SCSI et un LUN, ajoutez les propriétés de modèle de cloud suivantes :

SCSIController

unitNumber

Vous avez également la possibilité d'omettre les propriétés, auquel cas l'attribution suit une valeur par défaut prévisible. Cloud Assembly ne déploie plus les disques SCSI dans un ordre aléatoire, ce qui les rendait difficiles à gérer.

Les contrôleurs et les disques SCSI sont numérotés dans l'ordre, zéro correspondant au premier. Chaque contrôleur SCSI peut prendre en charge les disques SCSI des numéros d'unité 0 à 15.

Option 1 : définir le contrôleur SCSI et le numéro d'unité

Vous pouvez spécifier entièrement les deux propriétés comme indiqué dans l'exemple suivant. Si c'est le cas, l'attribution du contrôleur SCSI et du numéro d'unité correspond aux valeurs que vous entrez.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_2
      unitNumber: 0
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_2
      unitNumber: 1
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_3
      unitNumber: 4

Option 2 : définir uniquement le contrôleur SCSI

Vous pouvez spécifier le contrôleur SCSI et omettre le numéro d'unité. Dans ce cas, l'attribution du contrôleur SCSI correspond à la valeur que vous entrez. Le numéro d'unité est réglé sur le premier numéro d'unité disponible sous ce contrôleur.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_0
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_0
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_1

Option 3 : omettre les deux propriétés

Vous pouvez omettre le contrôleur SCSI et le numéro d'unité. Dans ce cas, l'attribution est définie sur le premier contrôleur SCSI disponible et sur le premier numéro d'unité disponible sous ce contrôleur.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1

Pas une option : LUN uniquement

Vous ne pouvez pas omettre le contrôleur SCSI et spécifier uniquement un numéro d'unité. Cela peut entraîner un déploiement dans lequel plusieurs contrôleurs SCSI ont un disque de ce nombre mais, à des fins de gestion, vous ne pouvez pas localiser et identifier les disques avec précision.

Utilisation d'entrées pour définir le contrôleur SCSI et le LUN

Pour rendre la conception plus dynamique, utilisez des entrées de telle sorte que l'utilisateur puisse spécifier le contrôleur SCSI et le numéro d'unité au moment de la demande ou de la mise à jour.

inputs:
  diskProperties:
    type: array
    minItems: 1
    maxItems: 10
    items:
      type: object
      properties:
        size:
          type: integer
        SCSIController:
          type: string
          title: SCSI Controller
          enum:
            - SCSI_Controller_0
            - SCSI_Controller_1
            - SCSI_Controller_2
            - SCSI_Controller_3
        unitNumber:
          type: integer
          title: Unit Number
          
resources:
  app:
    type: Cloud.vSphere.Machine
    allocatePerInstance: true
    properties:
      flavor: small
      image: centos
      attachedDisks: '${map_to_object(slice(resource.disk[*].id, 0, 4), ''source'')}'
  disk:
    type: Cloud.vSphere.Disk
    allocatePerInstance: true
    properties:
      capacityGb: '${input.diskProperties[count.index].size}'
      SCSIController: '${input.diskProperties[count.index].SCSIController}'
      unitNumber: '${input.diskProperties[count.index].unitNumber}'
      count: ${length(input.diskProperties)}
URL de l'interface de ligne de commande Terraform