PVE + LEDE 安装中遇到的问题

2022-02-08 3202 0

1. 光猫改桥接

北京联通光猫自带拨号功能,要使用软路由,首先需要将光猫改为桥接,去掉拨号功能。光猫的后台登录地址是:http://192.168.1.1

使用网线或者WIFI连接光猫,按照如下步骤操作:

  1. 进入 http://192.168.1.1/hidden_version_switch.gch 选default version,密码CUAdmin
  2. 机器重启之后就可以进入 http://192.168.1.1/cu.html了 选管理员账户,密码CUAdmin
  3. 选择 基本配置 - 上行线路配置,选择新建WAN连接,勾选DHCP服务是能,VLAN模式选 改写tag,然后在VLAN ID里填3961。保存之后删除其他的WAN连接。
  4. 进入 http://192.168.1.1 选择网络 - 宽带配置,连接名称选择刚才简历的3961,然后点击确定即可。

如果要恢复初始状态,在hidden_version_switch.gch里选beijing,然后在配置页面里输入宽带账号即可。

2. 网络规划

在安装之前首先规划整个网络拓扑图,配置如下:

  1. 光猫: 192.168.1.1
  2. LEDE:192.168.1.1
  3. 硬路由:192.168.1.2
  4. PVE: 192.168.1.3

首先进入路由器,将其LAN口IP设置成192.168.1.2,这样通过192.168.1.2即可登录路由器的管理后台。

软路由有两个网口,其中eth0(enp1s0)作为lan口,eth1(enp2s0)作为wan口。如果安装PVE时两个网口都连着网线,会默认选择enp2s0作为PVE的网卡,注意将其改为enp1s0。

可以用网线将电脑的网口和PVE的eth0连接,电脑IP设置成192.168.1.4,子网掩码设置成255.255.255.0,网关设置成192.168.1.1,即可登录PVE后台https://192.168.1.3:8006

也可以电脑连接无线路由器,将PVE的eth0与路由器的LAN口相连,这样电脑也可以打开PVE管理后台 https://192.168.1.3:8006

网关用于局域网和互联网通信,如果网关填写错误,则表现为局域网内可以通信(PVE和LEDE后台可以访问,但是无法访问互联网)。

如果IP地址在安装时填写错误需要修改,PVE下需要更改三个文件,分别是 /etc/network/interfaces/etc/issue/etc/hosts,LEDE下更改/etc/config/network

3. 安装PVE

安装PVE可使用balenaEtcher将PVE的iso文件写入U盘,然后从U盘启动安装,安装时注意设置IP 192.168.1.3、子网掩码255.255.255.0及网关192.168.1.1,同时合理划分硬盘。
swapsize根据内存合理设置,最少填4(单位为GB),如swapsize设置为0,将不会创建swap逻辑卷。
maxroot为根目录大小,定义root逻辑卷的容量大小,最大值限制为hdsize/4,root逻辑卷主要用于保存ISO操作系统镜像
maxvz可填0,不使用数据卷。
这样安装好后,除去根目录和swap使用的4GB,剩余的都可以分配挂载至/root目录,挂载方法如下:

  1. vgdisplay # 查看Free PE剩余空间,如为113986
  2. lvcreate -l113986 -n data pve # 创建名为data的逻辑卷
  3. mkfs.xfs /dev/pve/data # 格式化为xfs
  4. mount /dev/pve/data /root # 挂载到/root
  5. echo "/dev/pve/data /root xfs defaults 0 1" >> /etc/fstab # 写入/etc/fstab

通过这种方式节省了系统空间,但是没有了local-lvm卷,在使用./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0转换时,会提示无local-lvm,将此命令修改为./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0 local即可。

在PVE管理页面,home->系统->网络,查看vmbr0的IPv4及网关信息,如果之前填写错误会导致网络无法访问,修改后点击应用配置重启网络。修改后的配置文件为/etc/network/interfaces,使用systemctl status networking重启网络。

要开启硬件直通,修改/etc/default/grub,将GRUB_CMDLINE_LINUX_DEFAULT改为GRUB_CMDLINE_LINUX_DEFAULT = "quiet intel_iommu=on",同时更新/etc/modules,添加如下行:

  1. vfio
  2. vfio_iommu_type1
  3. vfio_pci
  4. vfio_virqfd

然后重启即可在新建的虚拟机上添加PCI设备,注意不能直通PVE的管理网络及enp1s0,否则会导致PVE管理页面进不去,只直通其余网口即可。

3. 安装 LEDE

先进入PVE的管理后台,https://192.168.1.3:8006 。在home - 系统 - 网络下,选择创建 Linux Bridge,只需要填写桥接端口即可。

然后点右上角新建虚拟机,节点100,节点名称LEDE,操作系统不使用任何介质,其他都默认,CPU和内存根据实际情况填写即可。

完成之后在home下面点击LEDE - 硬件,添加一个网络设备,由于vmbr0默认已经分配了,这里只需要添加vmbr1即可,模型选半虚拟化(如果是Intel网卡可以选Intel E1000,据说兼容性比较好)。

点击硬盘,分离,然后删除,然后下载固件: PE写盘专用

在百度搜索下载一个img2kvm,将下载好的固件openwrt-x86-64-generic-squashfs-combined-efi.img上传到PVE的/root目录下,执行如下命令:

  1. chmod +x img2kvm
  2. ./img2kvm openwrt-x86-64-generic-squashfs-combined-efi.img 100 vm-100-disk-0 local

执行完毕之后,在硬件下即可看到一个未使用的硬盘,双击添加。然后在home->lede->选项->引导顺序里将scsi硬盘移到最上面,然后就可以启动LEDE了,在控制台可以看到启动过程。

成功启动之后就可以进入LEDE的管理界面了 http://192.168.1.1

4. 配置LEDE

lede管理页面的默认密码是koolshare,进入网络 - 接口,选择 WAN,编辑将协议改为PPPoE,然后点击切换协议,填写拨号的账号密码,检查一下物理设备是否为eth1,然后点击保存并应用,将eth1与光猫连接,一切正常的话即可拨号成功。在PPPoE协议下MAC地址都是0,这个无需担心。

将软路由的eth1和路由器的LAN口相连(注意不是WAN口),此时192.168.1.1和192.168.1.3也可以登录LEDE后台和PVE后台。如果将路由器的WAN口改为自动获取IP,软路由eth1连接WAN口,则路由器设备处于一个局域网,软路由和PVE处于另一个局域网。

此时连线方式为:
硬路由关闭DHCP
eth1 -> 光猫
eth0 -> 硬路由的LAN口

由于光猫和LEDE都有DHCP服务,如果无法电脑连接WIFI后无法获取IP地址,在LEDE的网络 - 接口 - LAN中,选择编辑,下面的DHCP服务器,选高级设置,勾选强制,然后保存并应用,此时应该能够正常获取IP了。

5. PVE注意事项

千万不要随便修改 /etc/hostname,/etc/hosts,否则可能导致虚拟机启动不来,hostname和虚拟机是相关的,如果不小心修改了,需要重新安装pve-cluster,先卸载pve-cluster,然后把卸载的相关依赖全部重装一般即可恢复。

  1. apt install libpve-access-control libpve-cluster-api-perl libpve-guest-common-perl libpve-storage-perl librados2-perl pve-cluster pve-container pve-firewall pve-ha-manager pve-manager

编辑/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js,找到if (data.status !== 'Active'),改为if (false)。如果重新登录还有提示清理一下浏览器缓存即可。

硬盘休眠:先设置休眠hdparm -S 240 /dev/sdb,编辑/etc/lvm/lvm.conf,修改global_filter = ["r|/dev/sdb|"] 过滤不需要监控的盘。(注意!!!如果设置错误会导致无法开机)

无法上网:编辑/etc/resolv.conf,将nameserver改为软路由地址。

修改证书:pve的证书位于/etc/pve/nodes/home/,可以用自己的证书替换pve-ssl.keypve-ssl.pem,然后systemctl restart pveproxy

删除local-thin: 编辑/etc/pve/storage.cfg,将其改为如下

  1. dir: local
  2. path /var/lib/vz
  3. content iso,vztmpl,backup
  4. dir: local-lvm
  5. path /var/lib/vz
  6. content rootdir,images

注意不要直接./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0删除local-lvm,否则执行./img2kvm lede.img 100 vm-100-disk-0时会出错。然后再执行如下操作

  1. # 移除local-lvm
  2. lvremove /dev/pve/data
  3. # 查看剩余空间
  4. vgdisplay pve | grep Free
  5. Free PE / Size 10495 / 41.00 GiB
  6. # 建立新的lvm
  7. lvcreate -l 10495 -n data pve
  8. # 格式化及挂载并加入到/etc/fstab
  9. mkfs.ext4 /dev/pve/data
  10. mkdir /media/data
  11. mount /dev/pve/data /media/data
  12. blkid | grep pve-data

6. LEDE 注意事项

要开启远程访问,在网络-防火墙-端口转发中设置端口转发,不要直接使用DMZ,若开启DMZ,只能使用一台主机,且端口转发会失效。

7. 单臂路由

如果软路由只有一个网口,默认即LAN口,首先将路由器改为AP模式,然后在接口 - LAN - 物理设置,取消勾选 桥接接口,然后保存。
在接口 - WAN - 物理设置,单选选择和LAN同一个接口,然后保存。WAN口后面的括号内就变成了(WAN LAN),然后在WAN拨号即可。
貌似需要交换机支持VLAN。