引言
家里有一台旧笔记本一直放着吃灰,父母有手机和Pad,而且不会用电脑,想着能不能利用起来。尝试直接装Debian做服务器,但是装不上英伟达显卡驱动(就没法挖矿了!)。正好前段时间家里电压不稳,最高可能超过了380V,把从奸商友善购得的R2S软路由烧坏了,所以旧笔记本就派上用场了。
OpenWrt
首先尝试了直接安装OpenWrt,这里使用了P3TERX的Actions-OpenWrt的云编译方式,简单方便,不赘述了。
效果是很不错的,但是CPU负载一直是0,内存也最多使用200M,感觉有点浪费。尝试了添加docker后,编译出的固件UDP一直是不通的,不知是不是我的编译有问题。所以放弃了这种方案。
ESXi
然后想到了首先安装一个虚拟化平台,这样OpenWrt只需要干好自己的本职工作,docker什么的放在别的虚拟机上。
其实首先尝试的是PVE,但是现在已经改成ESXi,所以先记录一下ESXi吧。
下载镜像
ESXi的镜像文件在官网就可以下载,7.0版没法添加Realtek网卡的驱动,所以选择了次新的6.7版。没有账号的去注册一个账号,注意语言要选英文,选中文的话验证码这一关就很难过。
有U3和U3b两个版本,在网上搜寻了一圈也没找到说明区别的,由于U3的发布日期更晚一些,故选择了U3。
下载下来之后还不能直接安装,因为旧笔记本自带的网卡是Realtek 8168,我自己又买了一个绿联USB3.0转千兆网卡。ESXi是为服务器专门设计的,而服务器自然不会用到这些网卡,所以需要自己添加驱动。
Realtek 8168的驱动在这里下载,他这里有写到:
Compatible With: ESXi 5.5, ESXi 6.0, ESXi 6.5, ESXi 6.7
而我所购买的USB转网卡型号是AX88179,VMware官方就有提供,注意要下载6.7版的。下载下来之后将其中的vib文件解压出来与r8168的放到同一个文件夹vib
里。
然后下载PowerShell脚本ESXi-Customizer-PS,将之前下载好的文件放到一起,形成如下的目录结构:
D:.
│ ESXi-Customizer-PS.ps1
│ update-from-esxi6.7-6.7_update03.zip
│
└─vib
net55-r8168-8.045a-napi.x86_64.vib
VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.670.2.48.39203948.vib
然后在PowerShell里输入如下命令(注意要用Windows自带的PowerShell,以管理员方式打开):
Install-Module -Name VMware.PowerCLI
Set-ExecutionPolicy Unrestricted
.\ESXi-Customizer-PS.ps1 -izip .\update-from-esxi6.7-6.7_update03.zip -pkgDir .\vib\
然后便会在当前目录下生成一个名为ESXi-6.7.0-20190802001-standard-customized.iso
的镜像文件。
安装ESXi
安装过程没什么坑。
建议设置一下Management Network
,这样可以避免后期出现莫名其妙进入不了管理后台的问题。
按F2,输入安装过程中设置的root账户密码,回车。
打开Configure Management Network
。
选择Network Adapters
。
我选择了默认的R卡。
然后是IPv4 Configuration
。
最后是DNS Configuration
。
设置好之后Restart Management Network
。
安装OpenWrt
电脑将网线连到旧笔记本的R卡网口上,设置到同一网段,然后就可以进入ESXi的管理页面了。
首先给USB网口添加一个虚拟交换机,勾选如下:
然后将端口组中非Management的端口组改为LAN,新增一个WAN口。
然后上传编译好的镜像文件到存储中,这里提供一下我编译好的ESXi的vmdk镜像文件:LEDE-ESXi,我使用的是openwrt-x86-64-generic-ext4-combined-efi.vmdk
。
此vmdk无法被ESXi直接使用,需要到ESXi管理页面开启安全Shell,也是ssh。
连接到ESXi后输入如下命令,可以在官网找到转换教程:
vmkfstools -i "openwrt-x86-64-generic-ext4-combined-efi.vmdk" "openwrt-x86-64-generic-ext4-combined-efi-esxi6.vmdk"
然后修改一下磁盘大小,否则会出现请输入大于原始容量的磁盘大小的问题。
vmkfstools -X 180M openwrt-x86-64-generic-ext4-combined-efi-esxi6.vmdk
然后就可以添加虚拟机了,注意CPU开启硬件虚拟化
、IOMMU
和性能计数器
,删除自动生成的硬盘,添加一个WAN端口组,关闭启用 UEFI 安全引导
。完成后开启OpenWrt的自动启动的同时也要开启主机-管理-系统-自动启动
中的已启用
。
我给OpenWrt分配了512M内存和1核CPU,现在看来绰绰有余。
测试
ESXi的功率是24W多一点,跑满带宽的话可以跑到35W左右。
PVE
安装PVE
PVE其实就是Debian,安装过程没什么好讲的,也不需要添加驱动,直接到官网下载安装即可,我使用的是7.0-1版。
修改Debian源
Debian 的软件源配置文件是/etc/apt/sources.list
。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
添加PVE源
新建/etc/apt/sources.list.d/pve-no-subscription.list
,内容为:
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye pve-no-subscription
安装OpenWrt
提供一下我使用的OpenWrt镜像:LEDE-PVE
创建好虚拟机后,将qcow2格式的镜像传入pve中:
qm importdisk 100 openwrt-x86-64-generic-ext4-combined-efi.qcow2 local-lvm
测试
PVE的功率大约是11W,跑满网速的情况下可以跑到20W。