美文网首页
倍控 N5095/N5105 AIO 小主机 PVE+OpenW

倍控 N5095/N5105 AIO 小主机 PVE+OpenW

作者: 几簟生凉 | 来源:发表于2022-04-26 07:17 被阅读0次

    第一次玩PVE,有很多需要学习的地方,这里简单记一下不同于Windows内虚拟机软件(比如VMWare)的地方。第五、六部分比较了一下不同机箱不同CPU的日常使用情况。
    安装PVE的内容就不写了,和安装普通的系统没有两样,需要注意的是填写后台地址的时候:

    1. 网卡选择要记住,PVE只能用你选择的网口做管理口访问后台。
    2. ip写你路由器管理的网段下,保证可以访问到。
    3. 要写 https

    一、PVE 准备

    1.1 换源

    这个操作可有可无,如果你的网络连接默认源够快,完全不需要换。

    1. 无论是安装啥,安装完先把时间改了,错误的时间可能影响你正常上网
    # 不知道怎么一个命令改出来
    date -s 2022-04-25
    date -s 22:32
    

    有时候你会发现这个时间怎么改都不对,那是因为https://sspai.com/post/55983,所以我建议你,先去BIOS里把时间改成北京时间减去8个小时,这样基于Linux的系统都会正确了。如果安装windows,通过修改注册表让windows也将硬件时间看成UTC时间,在哪里看过好像微软自己也要修改这个规则了。

    1. 注释掉 /etc/apt/sources.list.d/pve-enterprise.list 中的源

    2. 换PVE源

    wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
    echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list 
    echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-pacific bullseye main" > /etc/apt/sources.list.d/ceph.list
    sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm
    apt update && apt dist-upgrade     #更新软件,可不执行
    
    1. 换debian源
    sed -i.bak "s#ftp.debian.org/debian#mirrors.163.com/debian#g" /etc/apt/sources.list    
    sed -i "s#security.debian.org#mirrors.163.com/debian-security#g" /etc/apt/sources.list 
    apt update && apt dist-upgrade     #更新软件,可不执行
    

    1.2 去掉无有效订阅弹窗

    修改/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js文件中的这块代码

    Proxmox.Utils.API2Request(
            {
            url: '/nodes/localhost/subscription',
            method: 'GET',
            failure: function(response, opts) {
                Ext.Msg.alert(gettext('Error'), response.htmlStatus);
            },
            success: function(response, opts) {
                let res = response.result;
                if (res === null || res === undefined || !res || res
                .data.status.toLowerCase() !== 'active') {
                Ext.Msg.show({
                    title: gettext('No valid subscription'),
                    icon: Ext.Msg.WARNING,
                    message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                    buttons: Ext.Msg.OK,
                    callback: function(btn) {
                    if (btn !== 'ok') {
                        return;
                    }
                    orig_cmd();
                    },
                });
                } else {
                orig_cmd();
                }
            },
            },
        );
    

    Ext.Msg.show就是那个弹窗,可以直接在let res = response.result;前面加个return;

    sed -i.bak "s#let res = response.result;#return; let res = response.result;#g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    

    1.3 直通pci设备准备

    1. 修改/etc/default/grub文件,将GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"

      # 修改/etc/default/grub
      sed -i.bak "s#GRUB_CMDLINE_LINUX_DEFAULT=\"quiet\"#GRUB_CMDLINE_LINUX_DEFAULT=\"quiet intel_iommu=on video=efifb:off\"#g" /etc/default/grub
      # 更新GRUB
      update-grub
      
    2. 添加内核模块

      # 添加模块, 包括核显直通
      echo -e "vfio \nvfio_iommu_type1 \nvfio_pci \nvfio_virqfd" >> /etc/modules
      # 这个命令好像是更新内核的
      update-initramfs -k all -u 
      # 重启
      reboot
      
    3. 注意

      虚拟机芯片组一定要q35 。因为Q35,才能PCIE直通,否则就是PCI直通。

    二、开玩

    要实现的网络拓扑图,一个OpenWRT做路由,Ubuntu做服务器跑一些自己的web应用,还有其它用网的虚拟机,统统接到第三个口。


    倍控网络拓扑.png

    同学们(其实是我)可能有个疑问,这样AP这里能访问到PVE的管理口吗?其实是可以的,不记得在哪个文章里看到了,不同的虚拟机只要接到PVE的同一个虚拟网口,相当于接到了一个虚拟交换机,也就是说拓扑图中接在第三个网口上的三根线是互通的

    2.1. 安装OpenWRT

    1)创建虚拟机,ISO、磁盘不选,系统默认,创建完成。
    2)用命令qm importdisk 虚拟机ID img文件地址 local-lvm将img文件转换为虚拟机的硬盘,比如

    qm importdisk 100 /var/lib/vz/template/iso/openwrt.img local-lvm
    

    3)回到虚拟机,点击未使用的硬盘,将总线/设备设置为sata
    4)到选项-引导顺序,将硬盘启动选中,调到第一位。
    5)这样,硬盘就配置好了。最后在网络设备中添加四个网口。启动。


    四个网卡,最后一个直通

    7)暂时用不到PVE了,先将管理端口的ip改成192.168.1.5,两种方法:

    1. 直接在web管理页面修改pve-网络-对应的网口
    2. 修改/etc/network/interfaces/etc/issue/etc/hosts三个文件中的ip(interfaces中还有网关),然后重启。其实只需要修改/etc/network/interfaces中的信息,/etc/issue应该是命令行下的开机提示,/etc/hosts是映射域名和ip的。

    四个网口只有其中的一个指定了IP地址,指定的那个网口就是管理口,并不像网上说的怎么固定。

    2.2. 配置OpenWRT

    1. 先改时间。

    2. 镜像是eSir的,默认第一个网络设备是LAN口(ip是192.168.5.1),这样我们启动之后将电脑的网线插入ETH0网口,便可以直接通过浏览器访问OpenWRT后台(192.168.5.1)。

    3. 根据拓扑图调整网络,eSir固件默认只有一个LAN口(第一个网口)和一个WAN口(第二个网口)。这里我把WAN口调到第一个网口,因为现在只有一根入户宽带,另一个WAN口先留着吧(想必以后也用不到)。最后在LAN口中选择第三个和第四个网口,ip改成192.168.1.1(最后调这个,调完就需要重插网线了)。

    4. 插网线
      将光猫出来的网线接入WAN口(ETH0),LAN口(ETH3)插在电脑上,经测试可以正常访问OpenWRT(192.168.1.1)和PVE(192.168.1.5)控制台。

    2.3 安装Ubuntu 20.04

    这里就不多写了,想必大家都轻车熟路了。其实我想安装Ubuntu Server,但是在格式化完磁盘,复制系统文件的时候总是报错。日志太长看不懂,所以不确定问题出在哪里,有知道的同学可以交流一下。Desktop也好,怕系统占用可以不启动图形界面(这么安慰自己)。(N5105到货了,安装Ubuntu Server没有发现这个问题)

    2.4 安装Android TV x86

    配置虚拟机的时候注意硬盘选SATA,芯片组选Q35。
    安装过程按照eSir的教程来,其中他输入了一串命令pm disable com.tosanthony.tv.networkprovider,按照哔哩哔哩的那篇文章,tosanthony最初制作的Android TV 9 x86是收费的,这个命令好像就是来禁用com.tosanthony.tv.networkprovider这个应用来避免收费的。但是我不知道在哪里下载的包,没有看到这个收费界面(后来好像又不收费了),所以没执行这个命令也正常安装完了。
    之后重启了一次小主机,竟然只能进命令行的界面了,没有图形界面。解决办法:PVE里强行停止再打开就好了。

    2.4.1 直通核显用显示器输出

    注意:以前不知道,原来11代U不能直通!不能!看Vedio Talk说可以,他提取了vbios,正在修复,但是就没有下文了。

    我没有搞成功,同学们试试运气吧。看我参考的三篇文章,个人感觉第一篇更全面合理一些,推荐。

    1. 将显卡驱动加入pve黑名单
      我不太理解这个步骤是为什么,是不是说不要pve来管理显卡了?而且看的两篇教程指定的pve黑名单文件都是/etc/modprobe.d/blacklist.conf,但是我看系统内自带了一个/etc/modprobe.d/pve-blacklist.conf,而且里面写着:“This file contains a list of modules which are not supported by Proxmox VE.” 感觉这个应该才是黑名单的文件吧,而且设置完他们都没有什么验证,不确定是不是生效了。所以我这一步先不做。

      新版本的pve,例如pve7.0,无需做驱动屏蔽

    2. 查找设备id
      这个搞过黑苹果的同学一定知道,最后的格式是vendor-id:设备id
      先用lspci命令查看显卡和声卡的pci位置(第一列),找到VGA和Audio字样分别对应显卡和声卡,然后用lspci -n -s pci位置来查看设备id,我的是VGA(8086:4e61)、Audio(8086:4dc8)
    3. 将得到的信息按照options vfio-pci ids=ID1,ID2,...的格式写入/etc/modprobe.d/vfio.conf
      echo "options vfio-pci ids=8086:4e61,8086:4dc8" > /etc/modprobe.d/vfio.conf
      
    4. 最后更新内核,重启虚拟机
      update-initramfs -u
      reboot
      
    5. 配置虚拟机
      1. 添加pcie显卡设备。根据pcie位置来选就好了,我的没有教程中那么完整的信息。
      2. 把显示那里改成无。
    6. 结果,Ubuntu成功(后期来纠正一下,这里并没有成功,只是ubuntu一直等能显示画面,但是并不能操作,当时应该是看到画面就以为成功了),AndroidTV不成功。Android TV没有任何的反应,看着系统可能启动了,但是应该是进入那个命令行界面了(看内存占用猜的)。
    7. 用这串代码args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1替换下直接在pve里添加的pcie设备的配置项(/etc/pve/qemu-server/102.conf)。Ubuntu 成功(第一次启动把pve搞死机了,是不是添加options防止VM死机那一步可以避免这个问题),AndroidTV不成功。
    8. 添加VBios
      跟着第三个教程来,失败了...,echo 1 > rom报错permission denied。看着第四个文章(pve官方的教程)也是这么弄的,应该不会有问题,但是我放弃了,想着即便直通成功,Android内多数的国内视频软件都用不了,kodi用不了,甚至YouTube视频都加载不出来,就没有折腾的动力了。想想在物理机上安装x86也有进不去图形界面的问题,所以我又试了用SeaBIOS引导,修改grub启动文件,结果问题还是一样,内存占用500M左右,感觉卡在了启动图形界面之前的那个命令行的状态,他想启动但是找不到合适的显示器输出。

    最后,这东西发热严重,恰巧看到N5105有货了,果断换货,过几天折腾N5105。

    三、N5105到货

    在上面的基础上有安装了OpenMediaVault,没啥好说的,也没搞高级功能。欢迎留言交流。

    记录一下直通硬盘:

    # 查看磁盘的id,记录下你要用的硬盘
    ls /dev/disk/by-id
    # qm set 虚拟机id 虚拟机硬盘编号 硬盘id
    qm set 101 -sata2 /dev/disk/by-id/ata-TOSHIBA_MQ04ABD200_32EOP03AT
    

    下面说一下这两个机器的优缺点,下面说的数据基本都是在pve下运行着OpenWRT和Ubuntu(待机状态)的情况下统计的。

    1. 功耗
      5095没测。5105不接sata硬盘14-15w,接个2.5寸的机械硬盘15-17w。

    2. 温度

      • 晚春(室温19-21度 )我买的是G30B机箱的,就是散热鳍片小的。一是缺钱,二是觉得G31那个鳍片不太好看。N5095长时间保持在70多度,偶尔能到80度。N5105长时间保持在60多度。我手上只有一个12V的闲置的小风扇(接在5V的USB上转速很低),稍微一吹能降到50多度,偶尔到40多度。所以N5105建议买G31的机箱,应该可以免去改造散热。N5095还是用主动散热吧。
      • 中秋,时隔快半年了更新,我想测试一下换了硅脂能对散热有多大帮助,买的硅脂导热系数声称10w/mk。天气预报说今天最高温度28度,我感觉现在室内25度只多不少。G30B加主动散热,unraid显示cpu50度。撬开了发现散热铁片和机箱中间的硅脂只涂了一点点,我就多涂了一些,换之后cpu42度,效果不错


        unraid温度-换硅脂之前
        unraid温度-换硅脂之后
    1. 想吐槽一下这个sata硬盘设计。按照螺丝孔位固定硬盘之后根本就拧不上盖板螺丝,因为给的数据线会顶住nvme硬盘。

    2. 网速
      iperf3: 我手上只有千兆的网卡,所以没法测这个2.5G的网口,但是我可以用拓扑图ETH2那里的虚拟交换机测试一下那个网卡的极限速度。OpenWRT做iperf3服务端,OMV做客户端。一测我惊了:

      网速

    怎么8G多了,看来虚拟网桥那里的流量并不经过网卡,我真是个大聪明。看来网速测不了了,但是也看到OpenWRT那里cpu占用44%,PVE那里占用36%。
    局域网拷贝: windows下从NAS拷贝文件都能跑到900多兆。macOS下面差不多

    mac 网速

    在线开发: 把图形处理的深度学习程序(对硬盘读取算中等)放在本地和NAS上,跑一个阶段。NAS上用的时间竟然更少,这应该是显卡状态的原因,至少说明一般开发任务千兆局域网不是瓶颈。
    在线剪辑: FCPX默认选项新建项目1080P 60帧,正常操作几十M,复制媒体到资源库(H264,1080p,14Mbps,30帧,15分钟,1.64G的素材)或者后台渲染(核显UHD630)的时候最多500-600M。

    四、G31机箱N5105

    快618了,刚买一个多月价格直接降了150多(G30B 690大洋,G31 720大洋),就离谱!那咋办?我又买了一个G31机箱的N5105,想着如果618之后价格如果能涨一点就卖掉一个好回点本🤣。
    然后,我惊奇的发现!我真没想到!这个G31机箱散效果这么好,室温23度,待机(Openwrt+OMV)CPU 40度左右,局域网拷贝半个小时了(CPU占用10%左右)才四十五六度。
    夏天不开空调室温可能大概差不多30度(没有温度计),OpenWRT待机55度左右,跑点东西就70多度,烫手,还是需要加个小风扇的。
    所以如果能接受G31机箱的外形,并且室温不是很高的话还是建议买G31的机箱,可以省掉一个小风扇的钱。而且这个机箱要稍大些,2.5寸的硬盘是可以正常固定在机箱背板上的。

    五、补充

    5.1 Windows Server 2022安装i225v3 驱动

    PVE下直通核显暂时还无解,另一个办法是将windows(server)直接装在物理界上,用hyper-v虚拟机。可是我安装完windows server怎么装不上网卡的驱动(windows可以)。捣鼓半天,发现这么整可以:打开设备管理器-其他设备-以太网控制器-右击选择更新驱动程序-浏览我的电脑以查找驱动程序-让我从计算机上的可用驱动程序列表中选择-网络适配器-Intel-Intel(R) Ethernet Controller(3) I225-IT

    除了IT还有LM、LMvP两个后缀的,不清楚有什么区别,我试了一下都可以用。

    5.2 pve下温度监控

    安装 lm-sensors 监控CPU温度,hddtemp 监控硬盘温度

    # 安装
    apt install lm-sensors hddtemp -y
    # 查看
    sensors
    hddtemp /dev/sda
    

    可以用tmux显示,先安装apt install tmux,再写一个tmux默认执行的脚本,vim ~/.tmux.conf

    new -s temp
    split-window -v
    select-pane -t 0
    split-window -h
    split-window -v -p 25
    send-keys -t temp:0.1 "watch -n 10 sensors" Enter
    send-keys -t temp:0.2 "watch -n 10 hddtemp /dev/sda" Enter
    select-pane -t 3
    

    最后执行tmux a

    5.3 pve删除local-lvm分区

    默认pve会生成两个存储区域locallocal-lvm不知道有什么用,但是很碍眼。可以用以下的命令删除local-lvm并把腾出来的空间分配给local

    lvremove pve/data
    lvextend -l +100%FREE -r pve/root
    

    然后到数据中心>存储删掉local-lvm。这样就没有LVM-Thin的这种存储,好像就不能存快照了,自己取舍。而且如果改了,后面img文件转换成OpenWRT系统盘的命令也要做相应更改。

    5.4 pve添加硬盘

    错误记录

    1. 不知道咋的PVE的web管理页面登录不了,提示”登录失败,请重试“
      解决办法: 清除浏览器缓存就可以了。

    参考

    1. PVE
    2. 分区调整
    3. 换源
    4. 无有效订阅弹窗
    5. vfio
    6. 直通
    7. 安装OpenWRT
    8. PVE修改ip
    9. Android TV 9 x86
    10. 硬盘直通
    11. 硬解

    相关文章

      网友评论

          本文标题:倍控 N5095/N5105 AIO 小主机 PVE+OpenW

          本文链接:https://www.haomeiwen.com/subject/kibfyrtx.html