要管理 SCSI 磁盘,必须指定并了解其 SCSI 控制器和逻辑单元号 (LUN)。对于 vSphere 磁盘对象,可以使用 Cloud Assembly 在云模板中分配这两个值。
能够使用不同 SCSI 控制器对性能至关重要,并且对于某些部署类型(如 Oracle Real Application Clusters,RAC),此功能是必需的。
SCSI 控制器和 LUN 磁盘属性
要分配 SCSI 控制器和 LUN,请添加以下云模板属性:
SCSIController
unitNumber
您还可以选择省略这些属性,在这种情况下,分配遵循可预测的默认值。Cloud Assembly 不再按随机顺序部署 SCSI 磁盘,因为这会使其难以进行管理。
SCSI 控制器和磁盘按顺序进行编号,从 0 开始。每个 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)}