dpvs安装

dpvs是爱奇艺基于dpdk做的lvs的二次开发,性能更由于lvs

  1. 下载 dpvs git clone https://github.com/iqiyi/dpvs.git

  2. 进入到dpvs目录 安装dpdk , dpvs官方建议 最好把 dpdk放在dpvs目录中
    下载链接 https://fast.dpdk.org/rel/dpdk-17.11.2.tar.xz
    tar dpdk-17.11.2.tar.xz

  3. 在ubuntu 下安装 需要进行一下操作
    cd dpdk-stable-17.05.2/
    sed -i “s/pci_intx_mask_supported(dev)/pci_intx_mask_supported(dev)||true/g” lib/librte_eal/linuxapp/igb_uio/igb_uio.c

  4. 安装依赖
    echo 8192 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages 大页最好调整到8192
    apt-get install libpopt-dev libssl-dev libnuma-dev

  5. 编译dpdk
    cd dpvs
    cp patch/dpdk-stable-17.11.2/*.patch dpdk-stable-17.11.2/
    cd dpdk 路径
    patch -p 1 < 0001-PATCH-kni-use-netlink-event-for-multicast-driver-par.patch
    patch -p1 < 0002-net-support-variable-IP-header-len-for-checksum-API.patch
    make config T=x86_64-native-linuxapp-gcc
    make
    export RTE_SDK=$PWD

  6. 挂在大页
    $ mkdir /mnt/huge
    $ mount -t hugetlbfs nodev /mnt/huge
    modprobe uio
    $ insmod build/kmod/igb_uio.ko
    $ insmod build/kmod/rte_kni.ko

  7. 绑定网卡
    ./usertools/dpdk-devbind.py --status 查看网卡mac
    使用一个不用的网卡 保证down ifconfig ens161 down //加入用ens161这块网卡
    ./usertools/dpdk-devbind.py -b igb_uio 0000:06:00.0 绑定网卡

  8. 安装dpvs //这步可能会包 inline 未定义 需要在 src下的Makefile cflags 中加入 -fgnu89-inline // cflags += -fgnu89-inline
    $ cd dpdk-stable-17.11.2/
    $ export RTE_SDK=$PWD
    $ cd
    在安装前 有可能需要改一下源代码
    需要将 src/config.mk 改成机器的cpu的数量 不然会报错 //我遇到的是这样 这点不是很确定
    还有一个报错是 netif_port_start() fail to config tx queue //这事编译完成之后 启动的时候的报错 解决办法 参考 https://github.com/iqiyi/dpvs/issues/49
    make && make install

  9. 启动
    将 cp conf/dpvs.conf.single-nic.sample /etc/dpvs.conf // 配置文件需要改动 worker的数量 参考https://github.com/iqiyi/dpvs/blob/master/doc/tutorial.md#launch-dpvs-on-ubuntu
    进入到 bin 目录中 运行 ./dpvs //

  10. 检查状态
    进行DR 模式的配置
    https://github.com/iqiyi/dpvs/blob/master/doc/tutorial.md#

你可能感兴趣的:(linux)