Per gestire un disco SCSI, è necessario specificarne e conoscerne il controller SCSI e il numero di unità logica (LUN). Per un oggetto disco di vSphere, è possibile utilizzare Cloud Assembly per assegnare entrambi i valori nel modello cloud.
La possibilità di utilizzare controller SCSI diversi è importante per le prestazioni ed è necessaria per alcuni tipi di distribuzione, come i cluster RAC (Real Application Cluster) di Oracle.
Proprietà del controller SCSI e del disco LUN
Per assegnare un controller SCSI e un LUN, aggiungere le seguenti proprietà del modello cloud:
SCSIController
unitNumber
È inoltre possibile omettere le proprietà. In questo caso l'assegnazione segue un'impostazione predefinita prevedibile. Cloud Assembly non distribuisce più i dischi SCSI in ordine casuale, rendendone difficoltosa la gestione.
I dischi e i controller SCSI vengono numerati in ordine iniziando da zero. Ogni controller SCSI può supportare dischi SCSI di numeri di unità da 0 a 15.
Opzione 1: impostazione del controller SCSI e del numero di unità
È possibile specificare entrambe le proprietà, come illustrato nell'esempio seguente. In tal caso, l'assegnazione del controller SCSI e del numero di unità corrispondono ai valori immessi.
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
Opzione 2: impostazione del solo controller SCSI
È possibile specificare il controller SCSI e omettere il numero di unità. In questo caso, l'assegnazione del controller SCSI corrisponde al valore immesso. Il numero di unità viene impostato sul primo numero di unità disponibile in tale controller.
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
Opzione 3: omissione di entrambe le proprietà
È possibile omettere il controller SCSI e il numero di unità. In questo caso, l'assegnazione viene impostata sul primo controller SCSI disponibile e sul primo numero di unità disponibile in tale controller.
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
Opzione non applicabile: solo LUN
Non è possibile omettere il controller SCSI e specificare solo un numero di unità. Questa operazione potrebbe causare una distribuzione in cui più controller SCSI dispongono di un disco con tale numero ma, a scopo di gestione, non si sa di quale disco si tratti.
Utilizzo degli input per impostare il controller SCSI e il LUN
Per rendere la progettazione più dinamica, utilizzare gli input in modo che l'utente possa specificare il controller SCSI e il numero di unità al momento della richiesta o dell'aggiornamento.
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)}