依赖检查
创建时间: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
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
2
3
4
5
6
7
8
#4. 实际部署举例
#4.1 给 Agent 隔离一个CPU [可选]
- 将
/etc/nova/nova.conf的配置项vcpu_pin_set从修改为如下(即删掉CPU-#9,后面会用于Trident,该参数的意思是这些CPU可以被VNF分配,除VNF外的普通VM也不会用到)vcpu_pin_set=0-2,9,20-22,29,10-19,30-391vcpu_pin_set=0-2,20-22,10-19,30-391 - 将
/etc/default/grub/cmdline的配置项GRUB_CMDLINE_LINUX从修改为如下(即将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-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"1GRUB_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.cfg1
2 - 执行命令
reboot - 执行命令计算节点上增加一条静态路由:
# 这是客户增加的临时静态路由,目的是跟控制器网络通 route add -net 10.135.127.0/24 gw 10.135.124.11
2
#4.2 配置OvS镜像
- 执行命令
# 创建一个名为 dpdkr0 的ring口,用于Trident采集流量 ovs-vsctl add-port br-int dpdkr0 -- set interface dpdkr0 type=dpdkr mtu_request=90001
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=@m1
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-agent1
2