Proxmox(PVE)常见配置分享

最近更换了PVE虚拟化平台,替代商用的ESXi。笔者使用的是PVE 8.2,Kernel 6.8。

更换PVE原因

  1. Vmware卖给博通后,License不再对家庭或个人用户免费;

  2. 支持网站变更的不友好(笔者花了很久都没找到patch在哪里下载);

  3. 家用的硬件平台不支持IPMI,ESXi缺乏对硬件监控等功能。

PVE安装

Linux 发行版本安装难度类似,不做详细说明。

常用配置

软件源配置

跟Debian系统相比,有一些差异。主要差异为:

  1. 多了proxmox的pve源配置和ceph配置

  2. pve源社区用户可以设置为pve-no-subscription

屏蔽订阅提醒

修改js文件:/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

搜索关键词:No valid subscription

删除该弹出代码即可。

系统如果更新proxmox 包,有可能需要重新修改。

监控硬件温度

可以使用Debian自带的sensors来查看硬件温度。安装命令:

# apt-get install lm-sensors

查看硬件温度命令:

# sensors

硬件直通

笔者使用的是PVE 8.2,Kernel 6.8,并不需要按照手册介绍的开启iommu和vfio,内核已经默认开启了这些功能,可以直接使用。

»


Openwrt Nginx配置

家里有群晖、HomeAssistant、JellyFin等多个外部服务,出现证书部署等管理方便的不便。由于原方案时在网关Openwrt上设置端口映射,导致内部服务无法对客户进行审查。于是计划把所有服务用Nginx统一管理,提高证书、安全策略等管理便捷性。

方案简介

在作为家庭网关的Openwrt路由器上,安装部署Nginx服务端。将内部的https服务改为http服务,使用Nginx反向代理转为https,实现证书统一管理。设置Nginx支持客户端IP传递,使得服务端可以支持客户端审计。

具体实施

Openwrt安装Nginx

笔者为了简便,直接使用Openwrt原生Nginx。如原服务不是Nginx,可以直接在包管理安装Nginx,包括luci-nginx。等待安装完成后,Nginx可自动接管uhttp实现Luci的Nginx管理。

Nginx配置

openwrt nginx依然使用uci配置,无法像标准Nginx那样直接使用nginx.conf配置。nginx配置文件由uci配置+模板自动生成。Nginx配置文件主要分为http配置、server配置、location配置,在openwrt 配置分别是:

  1. http配置在配置模板中,位于/etc/nginx/uci.conf.template

  2. server配置在uci中,可以直接修改/etc/config/nginx,或者使用UCI命令

  3. location配置默认位于/etc/nginx/conf.d 目录下

»


HP Micro Server Gen8 黑群晖安装

HP Micro Server Gen8是一款比较老的设备,对群晖支持比较友好。本文以7.2.1版本为例。

过程简述

HP Micro Server Gen 8 主板自带被识别为USB设备的SD卡槽,相比其他机器可以选择不使用U盘来引导群晖启动,使用起来比较方便,但是安装的时候存在一定差异。以下以该方案为例。

主要步骤:

  1. 设置服务器第一启动设备为usb设备
  2. 使用U盘启动linux live版本,将tinycore-redpill写入sd卡
  3. 在tinycore-redpill中编译引导
  4. 启动群晖

具体步骤

设置服务器第一启动设备为usb设备

直接在iLO中设置即可,也是有iLO方便之处。设置BIOS,硬盘启动模式修改为ACHI模式,不要使用raid卡模式

使用U盘启动linux live版本,将tinycore-redpill写入sd卡

此处推荐Puppy Linux(Puppy Linux Home (puppylinux-woof-ce.github.io)),笔者测试了Ubuntu等其他系统的live usb启动,在远程启动后因为兼容性问题,性能较差。

使用dd命令将tinycore-redpill img(pocopico/tinycore-redpill (github.com))文件直接写在sd卡中即可。也可以把sd卡取出来,用其他PC来写,这种方法需要拆机,略麻烦。

完成tinycore-redpill写入后,不再需要U盘,可以拔出

在tinycore-redpill中编译引导

在tinycore的terminal中执行如下命令编译:

./rploader.sh serialgen  DS3622xs+

./rploader.sh identifyusb

./rploader.sh satamap

./rploader.sh build ds3622xsp-7.2.1-69057

遇到需要确认的,一律y

启动群晖

启动后,在引导界面可以看到群晖的IP地址(也可在路由器DHCP列表里看到),浏览器访问改IP地址后,上传在群晖官网,下载ds3622xsp的7.2.1 pat文件,即可。

可能遇到的问题

rploader.sh build 命令提示没有相应的版本,

可以修改/home/tc/custom_config.json文件,按照相近的如ds3622xsp-7.2.0,添加ds3622xsp-7.2.1-69057编译模板

老版本的群晖升级

可以直接编译其他版本的群晖引导。启动引导后,系统会提示硬盘迁移,可以无损更换到新系统,即使设备或者版本发生更换。注意:数据备份时必须的,防止意外发生。

»


Openwrt ZRAM Swap设置

背景

使用Docker后,感觉1G Ram对Openwrt来说,有点局促。通过Linux zram swap 用CPU资源换取一些可用RAM。

依赖

首先要安装如下几个依赖的包

  1. kmod-zram ——内核zram模块

  2. zram-swap ——zram 配置脚本

配置

笔者使用的openwrt 的系统菜单的“系统”选项中有“ZRam设置”,可以配置ZRam的大小和算法。也可以配置uci 的 system.@system[0].zram_size_mb 和system.@system[0].zram_comp_algo 两个选项来实现。重启后生效

注意:zram默认支持的算法是lzo,如果要换成诸如lz4算法,需要安装kmod-lib-lz4等算法库,使得内核支持这些算法。 

»


兮克2.5G交换机功耗测试

背景

最近出现了RTL8373 9口2.5G交换机,听说功耗有了很大的提升。测试了一下,给大家分享一下。

功耗测试

待机功耗:2.1w

2.5G接入:0.8w/口

1G接入:0.5w/口

总结体验

发热很不明显,使用起来温热。之前体验过TP-Link的 TL-SH1005,非网管交换机待机功耗超过4w,2.5G接入约1w,使用起来发热比较严重,甚至会有点烫手。

现阶段这款交换机的web管理有部分bug,不着急的话,可以再等等入手。

»