参考gostack中flavor结构体属性字段如下:
名称 | 类型 | 说明 |
Id | string | 规格id |
Name | string | 规格名称 |
Core | int | 虚机vCPU数量 |
Memory | int64 | 虚机内存大小,单位为Byte |
CpuPolicy | string | CPU绑定策略:共享型为Shared, 独占型为Dedicated,不分配numa为Default |
CpuMode | string | numa数量模式:prefer尽力分配指定的numaNode, strict严格按numaNode分配 |
Disk | int | 系统盘大小 |
ExtraSpecs | map[string]interface{} | 额外配置 |
CreatedAt | int64 | 创建时间 |
UpdatedAt | int64 | 更新时间 |
CreatedBy | string | 创建来源 |
UpdatedBy | string | 更新来源 |
Description | string | 描述 |
Version | int64 | 版本号 |
MultiQueue | uint | 网卡多队列 |
其中ExtraSpecs属性较为复杂,包含各种类型的key和value对虚机进行额外配置:
"hw"//标签,一般为规格类型加代系:s7-public
NumaNodes "hw:numa_nodes" //NumaNode个数 (当前策略虚机拓扑与宿主机一致) 3、6、7代机8c及以下为1,8c以上为2
PageSize "hw:mem_page_size" //大页内存每页大小,单位为Byte
RealTimeMask "hw:cpu_realtime_mask" //指定哪些cpu被调度为实时cpu,剩余为非实时:2-7(0,1为非实时)
RealTime "hw:cpu_realtime" //cpu实时是否开启:yes
CpuShares "quota:cpu_shares" //为域共享 CPU 的时间。这个值只有在对同一个域中的其它机器加权重的情况下才有意义。一个云主机类型的相关值为 ‘200’ 的实例会获得比相关值为 ‘100’ 的实例多一倍的机器时间
CpuPeriod "quota:cpu_period" //强制 cpu_quota 限制的时间(以 ms 为单位)。在指定的 cpu_period 时间中,每个 vCPU 不能占用超过 cpu_quota 的运行时。这个值的范围必须是 [1000, 1000000],’0’ 代表没有值
CpuQuota "quota:cpu_quota" //在每个 cpu_period 时间段中 vCPU 所允许的最大带宽(以 ms 为单位)。这个值的范围必须是 [1000, 18446744073709551],’0’ 代表没有值,负值代表 vCPU 不被控制。cpu_quota 和 cpu_period 可以被用来保证所有 vCPU 以相同的速度运行。
CpuMaxSockets "hw:cpu_max_sockets" //cpu最大插槽数量
CpuMaxCores "hw:cpu_max_cores" //cpu最大内核数量
CpuMaxThreads "hw:cpu_max_threads" //cpu最大线程数量
CpuSockets "hw:cpu_sockets" //cpu首选插槽数量
CpuCores "hw:cpu_cores" //cpu首选内核数量
CpuThreads "hw:cpu_threads" //cpu首选线程数量
SmbiosMode "guest:smbios_mode" //定制guest的smbios信息
FirmWare "hw_firmware_type" //固件类型
BootMenu "hw_boot_menu" //启动菜单
VGPUType "aggregate_instance_extra_specs:VGPU" //vGpu型号
VGPU "resources:VGPU" //指定虚拟GPU个数:1
AutoDeflate "guest:balloon_autodeflate" //设置自动收缩特性:on, off
MachineType "hw:hw_machine_type" //机器类型
VideoModel "hw:hw_video_model" //视频模型
使用gs命令创建各代系规格示例如下所示,包含2、3、6、7代的共享型和独占型云主机规格:
# s3
gs flavor create
--name s3.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Shared # 绑核策略,S3需要设置为Shared,C3和M3需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="s3_public","hw:numa_nodes"=2 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag,numa数numa_nodes //todo
--multi_queue 1 # 网卡多队列,根据产品需求规格设置
--mode strict # cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name s3.2xlarge.2 --core 8 --memory 16G --policy Shared --spec "hw:mem_page_size"="1048576","hw"="s3_public","hw:numa_nodes"=2 --multi_queue 2 --mode strict
# c3,m3
gs flavor create
--name c3.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Dedicated # 绑核策略,S3需要设置为Shared,C3和M3需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="cm3_optimized","hw:numa_nodes"=1 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag //todo
--multi_queue 2 # 网卡多队列,根据产品需求规格设置
--mode strict # cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name c3.4large.4 --core 16 --memory 64G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm3_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict
gs flavor create --name m3.large.8 --core 2 --memory 16384M --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm3_optimized","hw:numa_nodes"=1 --multi_queue 2 --mode strict
gs flavor create --name m3.4large.8 --core 16 --memory 128G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm3_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict
# s6
gs flavor create
--name s6.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Shared # 绑核策略,S6需要设置为Shared,C6和M6需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="s6_public","hw:numa_nodes"=1 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag,numa数hw:numa_nodes //todo
--multi_queue 1 # 网卡多队列,根据产品需求规格设置
--mode strict #cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name s6.2xlarge.2 --core 8 --memory 16G --policy Shared --spec "hw:mem_page_size"="1048576","hw"="s6_public","hw:numa_nodes"=2 --multi_queue 2 --mode strict
# c6,m6
gs flavor create
--name c6.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Dedicated # 绑核策略,S6需要设置为Shared,C6和M6需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="cm6_optimized","hw:numa_nodes"=1 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag //todo
--multi_queue 2 # 网卡多队列,根据产品需求规格设置
--mode strict # cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name c6.4large.4 --core 16 --memory 64G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm6_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict
gs flavor create --name m6.large.8 --core 2 --memory 16384M --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm6_optimized","hw:numa_nodes"=1 --multi_queue 2 --mode strict
gs flavor create --name m6.4large.8 --core 16 --memory 128G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm6_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict
# s7
gs flavor create
--name s7.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Shared # 绑核策略,S7需要设置为Shared,C7和M7需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="s7_public","hw:numa_nodes"=1 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag,numa数hw:numa_nodes //todo
--multi_queue 1 # 网卡多队列,根据产品需求规格设置
--mode strict #cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name s7.large.2 --core 2 --memory 4096M --policy Shared --spec "hw:mem_page_size"="1048576","hw"="s7_public","hw:numa_nodes"=1 --multi_queue 1 --mode strict
gs flavor create --name s7.2xlarge.2 --core 8 --memory 16G --policy Shared --spec "hw:mem_page_size"="1048576","hw"="s7_public","hw:numa_nodes"=2 --multi_queue 2 --mode strict
# c7,m7
gs flavor create
--name c7.large.2 # 规格名称
--core 2 # CPU个数
--memory 4096M # 内存大小,可使用M或者G明确标注单位
--policy Dedicated # 绑核策略,S7需要设置为Shared,C7和M7需要设置为Dedicated
--spec "hw:mem_page_size"="1048576","hw"="cm7_optimized","hw:numa_nodes"=1 # 额外属性,例如大页`hw:mem_page_size`要根据实际情况设置,调度tag //todo
--multi_queue 2 # 网卡多队列,根据产品需求规格设置
--mode strict # cpu numa亲和严格策略,必须配置numa node,并严格匹配
gs flavor create --name c7.large.2 --core 2 --memory 4096M --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm7_optimized","hw:numa_nodes"=1 --multi_queue 2 --mode strict
gs flavor create --name c7.12large.4 --core 48 --memory 96G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm7_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict
gs flavor create --name m7.large.8 --core 2 --memory 16G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm7_optimized","hw:numa_nodes"=1 --multi_queue 2 --mode strict
gs flavor create --name m7.4xlarge.8 --core 16 --memory 128G --policy Dedicated --spec "hw:mem_page_size"="1048576","hw"="cm7_optimized","hw:numa_nodes"=2 --multi_queue 8 --mode strict