OpenStack实例能否配置多网卡?如何通过Linux CLI创建多网卡实例?
OpenStack实例多网卡支持说明及命令行创建方法
OpenStack原生支持单个实例挂载多块网卡,最大挂载数量受实例规格、租户配额限制,常规配置下最多可挂载8张网卡,完全满足DPDK场景的多网卡使用需求,额外网卡可绑定普通租户网络、DPDK专用高速网络或SR-IOV VF设备。
前置准备
- 提前创建好实例需要挂载的所有目标网络,DPDK场景下需确认对应网络已绑定OVS-DPDK或SR-IOV网络代理
- 本地已配置OpenStack CLI认证环境,已完成
openrc文件的source操作 - 确认当前租户的端口、网卡配额充足,避免因配额不足导致创建失败
命令行创建操作
核心逻辑:每一张网卡对应一个--nic参数,多张网卡重复传递该参数即可
方式1:直接指定网络自动创建端口
适合无需提前配置端口固定IP、安全组等自定义属性的场景,命令示例:
openstack server create \ --flavor <你的实例规格ID/名称> \ --image <你的系统镜像ID/名称> \ --key-name <你的SSH密钥对名称> \ --nic net-id=<SSH管理网卡对应网络ID> \ --nic net-id=<第一块DPDK业务网卡对应网络ID> \ --nic net-id=<第二块DPDK业务网卡对应网络ID> \ <自定义实例名称>
你可以根据实际需要增减--nic参数的数量,也可以在net-id后加,v4-fixed-ip=xxx.xxx.xxx.xxx参数为对应网卡指定固定IP。
方式2:预创建端口后挂载(推荐DPDK场景使用)
如果DPDK网卡需要配置特殊属性(比如直通模式、自定义MTU、绑定指定安全组),建议先提前创建对应端口再挂载到实例:
- 为每张网卡创建对应端口,DPDK直通端口创建示例:
openstack port create \ --network <DPDK业务网络ID> \ --vnic-type direct \ --security-group <自定义安全组ID> \ <自定义端口名称>
- 创建实例时指定端口ID挂载网卡:
openstack server create \ --flavor <实例规格ID/名称> \ --image <系统镜像ID/名称> \ --key-name <SSH密钥对名称> \ --nic port-id=<管理网卡端口ID> \ --nic port-id=<第一块DPDK业务端口ID> \ --nic port-id=<第二块DPDK业务端口ID> \ <自定义实例名称>
后续验证
实例创建成功后,可登录实例执行ip a命令查看所有挂载的网卡,DPDK场景下将对应网卡绑定到vfio-pci或uio_pci_generic驱动即可正常使用。
内容的提问来源于stack exchange,提问作者Leftddr
相关产品推荐
相关产品推荐

