V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sniperking1234
V2EX  ›  程序员

openstack 中的虚机可以添加多少个 port,如果 port 很多会有性能影响吗

  •  
  •   sniperking1234 · 2020-07-02 14:49:58 +08:00 · 1711 次点击
    这是一个创建于 1596 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对 openstack 知之甚少,请大神们来解答一下
    7 条回复    2020-07-02 22:31:09 +08:00
    onetown
        1
    onetown  
       2020-07-02 15:09:40 +08:00   ❤️ 1
    可以参考一下 https://access.redhat.com/articles/1436373
    以 Libvirt KVM 为例, 一个虚拟机的 PCI bus 有 30 个 slot, 除去系统的一些设备, 例如显卡什么的, 剩下 28 个 slot 可以用来做网卡。 如果还有其他设备占用 pci slot 的话, 能创建的网卡会少于 28 个。

    API 层面没有限制, 除非你在 Project 里做了 Port Quota

    当然创建很多会有性能影响, 但是怎么定义很多,10 个,50 个还是 100 个?
    sniperking1234
        2
    sniperking1234  
    OP
       2020-07-02 15:35:52 +08:00
    @onetown 多谢解答,我去看看这个文档。预计建立的 port 数量是 100-200 左右数量级的,这个数量级性能影响会有多大呢
    onetown
        3
    onetown  
       2020-07-02 15:46:31 +08:00   ❤️ 1
    @sniperking1234 性能有几个方面的影响
    Hypervisor 的, 虚拟机的网卡越多, 处理 IO 的任务就会越多, 另外就是如果是 OVS Mechanism 的话,OVS 的端口会多, 对 OVS 会有少许的影响, 但是这个问题不大。
    OpenStack 方面,Neutron 会定期 poll 每个 Port 的状态, 以及安全组 /安全组规则数量对每个 port 的设置都会消耗一定的资源。 现在很多 NFV 的框架构建在 OpenStack 上, 所以有很多优化的手段吧。
    但是实际上, 我没有用过那么多 Port, 也许你们机器够强, 这些影响微乎其微也说不定。
    lolizeppelin
        4
    lolizeppelin  
       2020-07-02 16:24:53 +08:00   ❤️ 1
    默认的 neutron 网络组件, 每个 port 对应到对应的 openvswitch 里的 port 以及对应的流表配置
    然后会在网段对应的 namspace 里创建多条防火墙规则
    你有兴趣可以看看 neurton 在系统里每个 namespace 里有多少条防火墙规则
    你这几百个 port 的..想想就蛋痛

    openstack 的网络性能一直是个大问题来的

    当初华为还折腾了个龙流....然后好像几年前已经停止更新了
    sniperking1234
        5
    sniperking1234  
    OP
       2020-07-02 16:37:19 +08:00
    @lolizeppelin 看起来性能影响还会挺大的,这个我到时候实际测试一下。
    @onetown 请问 pci slot 数量应该怎么看呢,我用 dmidecode -t 9 这个命令,但是只显示了这几行
    # dmidecode 3.1
    Getting SMBIOS data from sysfs.
    SMBIOS 2.8 present.
    FreeEx
        6
    FreeEx  
       2020-07-02 21:18:13 +08:00
    ![port]( https://s1.ax1x.com/2020/07/02/NLESpR.png)

    @onetown 我测试了一下,可以多于 28 个网卡。
    onetown
        7
    onetown  
       2020-07-02 22:31:09 +08:00
    @sniperking1234 你可能运行的虚机里面没有可用的 pci bridge 或 slot 是空的, 除了 dmidecode 还可以用 lspci |grep PCI
    @FreeEx 果然实践出真知,赞一个。 按照 Redhat 的 OpenStack 发行版的文档, 是 32 个 slot, 在 libvirt + kvm 的环境里面, 除了分配出去的, 剩下的都可以用, 我也很好奇, 你的这个机器上, 是否能一只创建下去。 👍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 01:26 · PVG 09:26 · LAX 17:26 · JFK 20:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.