Для управления диском 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)}