SCSI ディスクを管理するには、その SCSI コントローラと論理ユニット番号 (LUN) を指定し、把握しておく必要があります。vSphere のディスク オブジェクトに対しては、どちらの値もクラウド テンプレートで Automation Assembler を使用して割り当てることができます。

複数の SCSI コントローラを使用する機能はパフォーマンスにとって重要であり、Oracle Real Application Clusters (RAC) などの一部の展開タイプでは必須です。

注: Automation Assembler では、SCSI コントローラが構成された仮想デバイスのみを処理します。

SCSI コントローラと LUN ディスクのプロパティ

SCSI コントローラと LUN を割り当てるには、次のクラウド テンプレート プロパティを追加します。

SCSIController

unitNumber

プロパティを省略することもできます。その場合、割り当ては予測可能なデフォルト値に従います。管理のしにくさを招いていた、Automation Assembler による SCSI ディスクのランダムな展開は行われなくなりました。

SCSI コントローラとディスクには、ゼロから始まる番号が順番に付けられます。各 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