找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 9877|回复: 58

[N1盒子] n1 arm pve使用macvlan给lxc更快的网速

  [复制链接]
本帖最后由 ruyinmicc 于 2022-8-3 10:47 编辑

n1 arm pve使用macvlan给lxc更快的网速

最近看到个armpve项目,索性拿起n1试一试,虽然oepnwrt也可以使用lxc,但是pve可以使用pbs来备份lxc,大大增强了可玩性。安装armpve过程比较简单,搭建lxc也很顺利,可是使用过程却遇到了问题,安装lxc-openwrt,pppoe拨号后竟然只能跑300mbps!并且上下行同时负载时这个带宽还会更低,意味着连普通家庭宽带下300mbps上30mbps都无法跑满,这大大限制了n1的armpve可玩性。因为此前的n1裸机openwrt单臂路由跑这样的带宽轻而易举,开始以为是armbian固件的问题,但是在主机上测速是正常的,使用lxc时才出现速率较大下降,故而推断也许是n1性能颓弱经过vmbr后网速受到影响。那么有没有办法改善这个问题呢?答案是有的,让lxc使用macvlan可获得接近使用物理卡的性能。
[========]
废话不多说先看下不同桥接方式网速的变化
使用不同方式的网速(测速工具homebox 内网测速)n1主机使用直接使用物理卡eth0
1.上下行分别负载

2.上下行同时负载
n1主机使用vmbr
1.上下行分别负载

2.上下行同时负载
lxc使用vmbr
1.上下行分别负载

2.上下行同时负载
n1主机使用macvlan
1.上下行分别负载

2.上下行同时负载
lxc使用macvlan
1.上下行分别负载

2.上下行同时负载

[========]
方法一:创建macvlan网口(新:直接从vmbr创建)
最近测试了物理网卡桥接至vmbr后由vmbr创建macvlan接口与直接使用物理网卡创建macvlan接口相比物理出口略有损耗(依旧比lxc直接使用vmbr要快),但由于macvlan共用父接口带宽,此方法macvlan子接口间带宽不受物理口影响子接口通信速度更快。
该方法操作步骤更简单,物理口的macvlan也可参照。
pve物理主机使用macvlan(vmbr)
保留物理网卡的vmbr修改pve网络配置文件/etc/network/interfaces,在vmbr基础上创建macvlan
1.编辑/etc/network/interfaces
  1. nano /etc/network/interfaces
复制代码
配置如下
  1. auto lo
  2. iface lo inet loopback

  3. auto eth0
  4. iface eth0 inet manual
  5.         hwaddress ether 9E:61:30:C6:A7:AA


  6. auto vmbr0
  7. iface vmbr0 inet manual
  8.         bridge-ports eth0
  9.         bridge-stp off
  10.         bridge-fd 0

  11. auto vth0
  12. iface vth0 inet static
  13.         address 192.168.1.8/24
  14.         gateway 192.168.1.80
  15.         pre-up ip link add link vmbr0 vth0 type macvlan mode bridge
  16. #pre-up为网卡启用前动作这里为以vmbr0创建vth0 macvlan工作模式bridge的网卡,只有bridge模式可以在没有交换机的情况下可以子接口二层通信其缺点是父接口down后子接口不能通信
复制代码


2.重启网络
  1. systemctl restart networking.service
复制代码
网络重启后pve主机以macvlan模式使用网络
[========]
lxc使用macvlan(vmbr)lxc配置文件添加如下参数
lxc.net.1表示第1张网卡,lxc.net.2表示第2张网卡,type为模式macvlan,macvlan.mode为macvlan的工作模式这里使用bridge,只有bridge模式可以在没有交换机的情况下可以子接口二层通信其缺点是父接口down后子接口不能通信,link为连接到的网卡这里使用pve的网桥vmbr0,flags: up和ifup意思一样表示lxc启动是启动,这个方式不需要手动修改lxc内部的网卡名称,因为net.1和net.2生成的网卡在lxc内部为eth0和eth1
  1. nano /etc/pve/lxc/lxcid.conf
  2. #lxcid为lxc的id号
复制代码
增加如下字段
  1. lxc.net.1.type: macvlan
  2. lxc.net.1.macvlan.mode: bridge
  3. lxc.net.1.link: vmbr0
  4. lxc.net.1.flags: up
  5. lxc.net.2.type: macvlan
  6. lxc.net.2.macvlan.mode: bridge
  7. lxc.net.2.link: vmbr0
  8. lxc.net.2.flags: up
复制代码
lxc.net.1表示第1张网卡,lxc.net.2表示第2张网卡,type为模式macvlan,macvlan.mode为macvlan的工作模式这里使用bridge,只有bridge模式可以在没有交换机的情况下可以子接口二层通信其缺点是父接口down后子接口不能通信,link为连接到的网卡这里使用pve的网桥vmbr0,flags: up和ifup意思一样表示lxc启动是启动,这个方式不需要手动修改lxc内部的网卡名称,因为net.1和net.2生成的网卡在lxc内部为eth0和eth1

至此方法一配置完成(直接替换相应参数也可改成使用物理口)
[========]
方法二:创建macvlan网口(旧:物理卡创建)
同一张物理网卡只能vmbr和macvlan二选一,如果已经使用了vmbr,需要解绑vmbr绑定的eth0网卡,由于macvlan会共用父接口带宽,eth0有负载时,macvlan子接口间带宽也受影响,但在lxc使用时物理出口性能更高,此方法适用于了解macvlan的创建过程。
修改n1armbian启动脚本/etc/custom_service/start_service.sh
在网卡eth0上创建名为vth0的macvlan网口模式为 macvlan bridge,如果需要多个macvlan网卡请用不同名创建,为了lxc能互相通信使用独占方式使用它建议命名方式为vth(lxcid)ix以区分不同的网卡。
为了使pve主机能与lxc通信也使用macvlan网卡这里使用vth0同时需要启动时加载重启networking.service
1.修改pve网络配置文件/etc/network/interfaces,把ip地址绑定到eth0
  1. <font size="6">auto lo
  2. iface lo inet loopback

  3. auto eth0
  4. iface eth0 inet static
  5.         address 192.168.1.8/24
  6.         hwaddress ether 9E:61:30:C6:A7:AA

  7. auto vrmbro
  8. iface vmbr0 inet static
  9.         bridge-ports none
  10.         bridge-stp off
  11.         bridge-fd 0
  12. </font>
复制代码

2.重启网络
  1. systemctl restart networking.service
复制代码

3.在网卡eth0上创建名为vth0的macvlan网口模式为 macvlan bridge,如果需要多个macvlan网卡请用不同名创建,为了lxc能互相通信使用独占方式使用它建议命名方式为vth(lxcid)ix以区分不同的网卡。
为了使pve主机能与lxc通信也使用macvlan网卡这里使用vth0同时需要启动时加载重启networking.service
下列命令在pve主机shell上使用eth0创建为macvlan bridge模式网口vth0,vth100i1
  1. ip link add link eth0 vth0 type macvlan mode bridge
  2. ip link add link eth0 vth100i1 type macvlan mode bridge
复制代码
lxc使用macvlanlxc配置文件添加如下参数

  1. <font size="6">nano /etc/pve/lxc/lxcid.conf
  2. #lxcid为lxc的id号
  3. </font>
复制代码
lxc.net.1表示第1张网卡,type为模式phys为独占方式,link为连接到的网卡这里使用之前创建的vth100i1,flags: up和ifup意思一样表示启动,net.1在lxc内部网卡名为vth100i1
[========]

pve物理主机使用macvlan(物理卡)
修改pve网络配置文件/etc/network/interfaces,注意同一张物理网卡只能vmbr和macvlan二选一
  1. <font size="6">nano /etc/network/interfaces
  2. </font>
复制代码
添加如下参数vth0为刚刚创建的macvlan网卡
  1. auto vth0
  2. iface vth0 inet static
  3.         address 192.168.1.8/24
  4.         gateway 192.168.1.80
复制代码
并且去掉vmbr0的eth0的关联

开机启用macvlan
修改n1armbian启动脚本/etc/custom_service/start_service.sh
在网卡eth0上创建名为vth0的macvlan网口模式为 macvlan bridge,如果需要多个macvlan网卡请用不同名创建,为了lxc能互相通信使用独占方式使用它建议命名方式为vth(lxcid)ix以区分不同的网卡。
为了使pve主机能与lxc通信也使用macvlan网卡这里使用vth0同时需要启动时加载重启networking.service
  1. <font size="6">nano /etc/custom_service/start_service.sh</font>
复制代码
增加字段
  1. ip link add link eth0 vth0 type macvlan mode bridge
  2. ip link add link eth0 vth100i1 type macvlan mode bridge
  3. systemctl restart networking.service
复制代码
至此方法二配置完成
[========]

其他教程\项目地址






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +3 收起 理由
y*** + 2 生活不易,相遇也不易,既然这样,让我们成.
5asd*** + 1 几个菜啊,喝成这样~~~

查看全部评分

大佬可以给个n1 的lxc固件吗 谢谢
回复

使用道具 举报

感谢楼主的无私分享!
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
amadeusN 发表于 2022-8-4 12:51
最近也在玩这个,让我试试你的办法。虽然我才100M的网。

还有要说明的是:PVE精神内耗大概800MB内存。

而且可以用pbs备份,有次我把主pve折腾坏了,用这个真救急
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
caogle 发表于 2022-9-10 23:37
大佬 如何在N1上安装pve的,我的报错了Skipping acquire of configured file 'main/binary-armhf/Packages' ...

安装armbian后就可以装了
回复

使用道具 举报

思考,感谢分享
回复

使用道具 举报

amadeusN 发表于 2022-8-4 12:51
最近也在玩这个,让我试试你的办法。虽然我才100M的网。

还有要说明的是:PVE精神内耗大概800MB内存。

小苏的纯净版本能给个地址吗?最近用的不知插件还是固件问题,用的很不顺畅
回复

使用道具 举报

来自手机 | 显示全部楼层
看起来好像不错
回复

使用道具 举报

期待各种技术贴的分享~谢谢LZ
回复

使用道具 举报

回复

使用道具 举报

这个是ARM虚拟机?
回复

使用道具 举报

看看什么情况
回复

使用道具 举报

要看看啊
!!!!!!!!!!!!!
回复

使用道具 举报

来自手机 | 显示全部楼层
看看思考一下
回复

使用道具 举报

芝麻开门~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-11 17:26

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表