Para administrar un disco SCSI, debe especificar y conocer su controladora SCSI y su número de unidad lógica (LUN). Para un objeto de disco de vSphere, puede utilizar Cloud Assembly para asignar ambos valores en la plantilla de nube.

La capacidad de utilizar diferentes controladoras SCSI es importante para el rendimiento y es necesaria para algunos tipos de implementaciones, como Oracle Real Application Clusters (RAC).

Propiedades de disco de controladora SCSI y LUN

Para asignar una controladora SCSI y un LUN, agregue las siguientes propiedades de plantilla de nube:

SCSIController

unitNumber

También tiene la opción de omitir las propiedades, en cuyo caso la asignación sigue un valor predeterminado predecible. Cloud Assembly ya no implementa discos SCSI en orden aleatorio, lo que dificulta su administración.

Los discos y las controladoras SCSI se numeran en orden, comenzando por cero. Cada controladora SCSI puede admitir discos SCSI de números de unidad del 0 al 15.

Opción 1: Establecer la controladora SCSI y el número de unidad

Puede especificar completamente ambas propiedades, como se muestra en el siguiente ejemplo. Si es así, la asignación de la controladora SCSI y el número de unidad coincidirá con los valores que introduzca.

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

Opción 2: Establecer solo la controladora SCSI

Puede especificar la controladora SCSI y omitir el número de unidad. En este caso, la asignación de la controladora SCSI coincide con el valor que introduzca. El número de unidad se establece como el primer número de unidad disponible en ese controlador.

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

Opción 3: Omitir ambas propiedades

Puede omitir la controladora SCSI y el número de unidad. En este caso, la asignación se establece como la primera controladora SCSI disponible y el primer número de unidad disponible en esa controladora.

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

No es una opción: solo LUN

No puede omitir la controladora SCSI y especificar solo un número de unidad. Si lo hace, podría obtener una implementación en la que varias controladoras SCSI tengan un disco con ese número, pero para fines de administración, no se sabe qué disco es.

Uso de entradas para establecer la controladora SCSI y el LUN

Para que el diseño sea más dinámico, utilice entradas para que el usuario pueda especificar la controladora SCSI y el número de unidad en el momento de la solicitud o la actualización.

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: 4
URL de la CLI de Terraform