依赖检查

创建时间:2024-04-02 最近修改时间:2025-10-24

#1. 依赖检查

建议单独隔离出来一个CPU(隔离以及检查方法见下文)给 agent 收包使用,agent 的CPU限制不小于2

警告

注意:核隔离仅为提升采集性能,不是必须的。应该由客户提前配置好,并告诉我们 agent 使用哪个核。

例子: CentOS 操作系统上配置核隔离参考方法,以隔离CPU6为例:

# step 1:在grub文件里增加isolcpus配置项
vi /etc/default/grub
GRUB_CMDLINE_LINUX="isolcpus=6"
# step 2:重启使配置生效
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
# step3:重启完后,再确认一下配置
cat /proc/cmdline
BOOT_IMAGE= ... isolcpus=6
1
2
3
4
5
6
7
8
9

#2. 采集配置

采集器 deepflow-agent.yaml 配置:

  • 通过 dpdk-ring-port 指定流量采集网口,默认为dpdkr0
  • 推荐:将vtap-group-id-request设置为系统-采集器-组页面的某个ID字段值,使得采集器被发现时可自动加入特定的采集器组

#3. 安装 Agent

参照KVM环境的安装方法完成 agent rpm的安装。在此基础上的余下工作现阶段需要到采集结点进行手动配置,以后会实现自动化配置:

# 创建dpdkr口,这里命名为dpdkr0
DPDK_RING_PORT=dpdkr0
ovs-vsctl add-port br-int $DPDK_RING_PORT \
  -- set interface $DPDK_RING_PORT type=dpdkr mtu_request=9000
# 配置ovs流量镜像策略
ovs-vsctl -- --id=@p get port $DPDK_RING_PORT  \
  -- --id=@m create mirror name=m0 select_all=true output_port=@p \
  -- set bridge br-int mirrors=@m
1
2
3
4
5
6
7
8

#4. 实际部署举例

#4.1 给 Agent 隔离一个CPU [可选]

  • /etc/nova/nova.conf 的配置项 vcpu_pin_set
    vcpu_pin_set=0-2,9,20-22,29,10-19,30-39
    
    1
    修改为如下(即删掉CPU-#9,后面会用于Trident,该参数的意思是这些CPU可以被VNF分配,除VNF外的普通VM也不会用到)
    vcpu_pin_set=0-2,20-22,10-19,30-39
    
    1
  • /etc/default/grub/cmdline 的配置项 GRUB_CMDLINE_LINUX
    GRUB_CMDLINE_LINUX="crashkernel=512M rhgb quiet LANG=en_US.UTF-8 default_hugepagesz=1G hugepagesz=1G hugepages=120 intel_iommu=on iommu=pt skew_tick=1 skew_tick=1 isolcpus=3-8,23-28 intel_pstate=disable nosoftlockup nohz=on nohz_full=3-8,23-28 rcu_nocbs=3-8,23-28 l1tf=flush kvm-intel.vmentry_l1d_flush=always"
    
    1
    修改为如下(即将nohz_full和rcu_nocbs修改为包含9,说明进程调度部要使用CPU-#9)
    GRUB_CMDLINE_LINUX="crashkernel=512M rhgb quiet LANG=en_US.UTF-8 default_hugepagesz=1G hugepagesz=1G hugepages=120 intel_iommu=on iommu=pt skew_tick=1 skew_tick=1 isolcpus=3-9,23-29 intel_pstate=disable nosoftlockup nohz=on nohz_full=3-9,23-29 rcu_nocbs=3-9,23-29 l1tf=flush kvm-intel.vmentry_l1d_flush=always"
    
    1
  • 执行命令
    # 让上面的grub参数写入 /boot/grub2/grub.cfg 配置文件,重启生效
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    1
    2
  • 执行命令 reboot
  • 执行命令计算节点上增加一条静态路由:
    # 这是客户增加的临时静态路由,目的是跟控制器网络通
    route add -net 10.135.127.0/24 gw 10.135.124.1
    
    1
    2

#4.2 配置OvS镜像

  • 执行命令
    # 创建一个名为 dpdkr0 的ring口,用于Trident采集流量
    ovs-vsctl add-port br-int dpdkr0 -- set interface dpdkr0 type=dpdkr mtu_request=9000
    
    1
    2
  • 执行命令
    # 将OvS上所有虚接口的流量镜像到刚才创建的 dpdkr0 口
    ovs-vsctl -- --id=@p get port dpdkr0  \
      -- --id=@m create mirror name=m0 select_all=true output_port=@p \
      -- set bridge br-int mirrors=@m
    
    1
    2
    3
    4

#4.3 安装 Agent

  • 使用 yum 或 rpm 命令正常安装 agent rpm包
  • 修改 deepflow-agent.yaml 的如下配置项:
    controller-ips:
      - 10.135.127.6        # 填写DeepFlow控制器IP地址
    
    1
    2
  • 执行命令启动 deepflow-agent
    systemctl enable deepflow-agent
    systemctl start deepflow-agent
    
    1
    2