Для управления диском SCSI необходимо указать и запомнить его SCSI-контроллер и логический том (LUN). Для жесткого диска vSphere можно использовать Cloud Assembly для назначения обоих значений в облачном шаблоне.
Возможность использования различных SCSI-контроллеров имеет большое значение для производительности и требуется для некоторых типов развертываний, таких как Oracle Real Application Clusters (RAC).
Свойства диска: SCSI-контроллер и LUN
Чтобы назначить контроллер SCSI и LUN, добавьте следующие свойства облачного шаблона:
SCSIController
unitNumber
Можно не использовать эти свойства. В этом случае назначаются элементы по умолчанию. Cloud Assembly больше не развертывает диски SCSI произвольным образом, так как это затрудняет управление ими.
Контроллеры и диски SCSI нумеруются по порядку, начиная с 0. Каждый SCSI-контроллер может поддерживать диски SCSI с номерами томов 0–15.
Вариант 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)}