SCSI ディスクを管理するには、その SCSI コントローラと論理ユニット番号 (LUN) を指定し、把握しておく必要があります。vSphere のディスク オブジェクトに対しては、どちらの値もクラウド テンプレートで Cloud Assembly を使用して割り当てることができます。
複数の SCSI コントローラを使用する機能はパフォーマンスにとって重要であり、Oracle Real Application Clusters (RAC) などの一部の展開タイプでは必須です。
SCSI コントローラと LUN ディスクのプロパティ
SCSI コントローラと LUN を割り当てるには、次のクラウド テンプレート プロパティを追加します。
SCSIController
unitNumber
プロパティを省略することもできます。その場合、割り当ては予測可能なデフォルト値に従います。管理のしにくさを招いていた、Cloud Assembly による 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)}