SCSI 디스크를 관리하려면 SCSI 컨트롤러와 LUN(논리 단위 번호)을 지정하고 알고 있어야 합니다. vSphere 디스크 개체의 경우 Automation Assembler를 사용하여 클라우드 템플릿에서 두 값을 모두 할당할 수 있습니다.

다른 SCSI 컨트롤러를 사용하는 기능은 성능에 중요하며 Oracle RAC(Real Application Clusters)같은 일부 배포 유형에 필요합니다.

SCSI 컨트롤러 및 LUN 디스크 속성

SCSI 컨트롤러 및 LUN을 할당하려면 다음 클라우드 템플릿 속성을 추가합니다.

SCSIController

unitNumber

속성을 생략할 수도 있으며, 이 경우 할당은 예측 가능한 기본값을 따릅니다. Automation Assembler는 SCSI 디스크를 더 이상 임의의 순서로 배포하지 않기 때문에 관리하기가 어렵습니다.

SCSI 컨트롤러 및 디스크는 순서대로 번호가 매겨지며, 0이 첫 번째입니다. 각 SCSI 컨트롤러는 단위 번호가 0-15인 SCSI 디스크를 지원할 수 있습니다.

옵션 1: SCSI 컨트롤러와 단위 번호를 모두 설정

다음 예와 같이 두 속성을 완전히 지정할 수 있습니다. 그렇게 하면 SCSI 컨트롤러 및 단위 번호 할당은 입력한 값과 일치합니다.

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

옵션 2: SCSI 컨트롤러만 설정

SCSI 컨트롤러를 지정하고 단위 번호를 생략할 수 있습니다. 이 경우 SCSI 컨트롤러 할당은 입력한 값과 일치합니다. 단위 번호는 해당 컨트롤러에서 사용 가능한 첫 번째 단위 번호로 설정됩니다.

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

옵션 3: 두 속성 모두 생략

SCSI 컨트롤러 및 단위 번호를 생략할 수 있습니다. 이 경우 할당은 사용 가능한 첫 번째 SCSI 컨트롤러와 해당 컨트롤러에서 사용 가능한 첫 번째 단위 번호로 설정됩니다.

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

선택 불가능: LUN만

SCSI 컨트롤러를 생략하고 단위 번호만 지정할 수는 없습니다. 이렇게 하면 배포의 여러 SCSI 컨트롤러에 해당 번호의 디스크가 하나 있는 상태가 되지만 관리 목적으로 어떤 디스크가 어떤 것인지를 알 수 없습니다.

입력을 사용하여 SCSI 컨트롤러 및 LUN 설정

설계를 보다 동적으로 만들려면 입력을 사용하여 요청 또는 업데이트 시 사용자가 SCSI 컨트롤러 및 단위 번호를 지정할 수 있도록 합니다.

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)}
Terraform CLI URL