homelab小记,家庭all in one的最佳方案
侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计收到 5 条评论

homelab小记,家庭all in one的最佳方案

xingsandesu
2022-01-29 / 3 评论 / 422 阅读 / 正在检测是否收录...

最近折腾起了All in one的各种方案,软件啊硬件啊头疼了很久,也折腾了很久。本来在咸鱼上买了个n3150做硬件基础的,结果发成了j1900。无奈,手头上正好有退下来的一套桌面平台,正好用来做homelab合适。

预期

  • 能不虚拟化就不虚拟化
  • 软路由 懂得都懂
  • 轻度nas存储
  • 下载文件
  • 家庭流媒体
  • OneDrive文件备份(暂更新)

硬件选择

原本计划的n3150,被换成了i54460
最终硬件如下

  • cpu:i5-4460
  • 主板:华硕B85Plus-R2.0
  • 内存:海盗船8G1600mhz
  • 网卡:英特尔82576
  • SSD:三星850evo
  • HDD:希捷1t

软件选择

  • unraid由于只能用u盘安装。收费。稳定性与速度存疑。pass
  • omv默认只能安装一个盘不能分区不能存储,空间比较浪费,而且虚拟机性能没有kvm方案好。国内文档资料少,omv6还在测试。pass
  • 纯Debian+docker。由于docker中跑openwrt终端会和宿主机终端冲突。虽然可以连接外网但是无法连接宿主机,配置特别麻烦,折腾了几天没解决,pass
  • PVE+LXC。LXC资料比较少,折腾openwrt需要固件的rootfs,资源得联系编译者或者自己编译。麻烦,且不知道会不会向docker一样终端冲突。而且需要更换宿主机内核才能实现某些功能,非常麻烦。pass
  • PVE+KVM+Docker。这是我最终的选择方案。KVM可以解决软路由的问题,docker可以解决其他的问题而且性能不会有什么损失。PVE又是基于Debian的,各种软件都可以直接安装。所以在我这里他就成为了我的最终方案。
  • ESXI和Hyper-v,ESXI驱动不太完善,Hyper-V桌面环境消耗资源较大,pass

计划实现

环境:

  • 主路由网段192.168.0.x 网关192.168.0.1
  • 软路由网段192.168.88.x 网关 192.168.88.1
  • PVE管理ip 192.168.88.1 管理网卡为主板集成的8111
  • PVE版本为PVE7

软路由

这里使用PVE虚拟化一个VM来实现,这里会讲到网卡直通等方案,需要处理器VT-D来支持

下载openwrt镜像

这里我使用的镜像是恩山上的高大全plus版本,您可以选择其他的或者和我一样

地址 :https://openwrt.mpdn.fun:8443/?dir=lede/x86_64/2022-01-29__05-00-41--plus-daily

解压到桌面,重命名为openwrt.img

创建虚拟机

1.进入PVE后台,选择创建虚拟机,这里默认VM ID为100 并勾上高级选项,选择开机自启动
2.操作系统,这里选择不使用任何介质
3.系统,这里直接下一步
4.磁盘,这里默认有一个scsi0 选择删除
![{MOE2U%1VC_KK]4H97V)DHO.png][1]
5.cpu,CPU核心数量按需添加,一般双核足够了;
CPU权重要注意一下,它默认为1024,是虚拟机之间的相对值,设置越高虚拟机获得CPU时间的优先级就越高,如果使用的是J3455CPU等性能一般的主板,建议稍微增加软路由虚拟机的CPU权重以保证网络通畅。这里我填1025
6.内存,这里我分配2048M 内存小的可以分配1024M
7.网络,选择默认的vmbr0。因为我这里想要主板上的8111做管理口,vmbr对应的就是8111
8.最后确认

为虚拟机创建硬盘

1.录pve的ssh,上传我们刚刚下载的镜像到/root,然后输入以下命令

qm importdisk 100 /root/openwrt.img local-lvm

2.等待完成后,进入PVE后台,选择虚拟机-硬件,删除不用的CD设备,然后点击刚刚创建的硬盘,编辑,总线设备选择SATA,保存。
3.进入虚拟机的选项,引导顺序,取消其他的选项,把刚刚弄好的磁盘勾上,保存
4.回到虚拟机-硬件,选择添加-PCI设备,这里需要开启PVE的VTD支持,我们进入终端,输入以下命令

echo "nameserver  223.5.5.5" >> /etc/resolv.conf && rm /etc/apt/sources.list.d/pve-enterprise.list && export LC_ALL=en_US.UTF-8 && apt update && apt -y install git && git clone https://hub.fastgit.org/ivanhao/pvetools.git && cd pvetools && ./pvetools.sh

选择配置硬件PCI直通,等待跑码,然后输入reboot重启宿主机。再次进入虚拟机-硬件-添加PCI设备,选择你要直通的网卡
YPNOLNC`5OTU$MFZ7G0}E3O.png
保存
5.然后选择概要,启动虚拟机
6.手动设置电脑的ip,进入控制面板-网络和共享中心,选择你的连接设备-属性-ipv4

ip 192.168.1.2
子网掩码 255.255.255.0
网关 192.168.1.1
DNS 192.168.1.1

保存
7.打开浏览器,输入192.168.1.1
8.进入openwrt界面,默认账号密码root password,选择网络-接口,现在插上你的入户网线到82576网卡上,如果你是dhcp服务器上网,那么wan口将显示你主路由给你分配的ip,如果wan口没有显示,那么就换另外一个接口,那么这个接口就是你的wan口,最好拿记号笔标记一下。如果你是pppoe拨号,点修改,选择pppoe协议,输入账号密码即可。
9.因为我们要使openwrt和pve为同一网段。所以我们还要改LAN,选择LAN。修改

ipv4 192.168.88.1
子网掩码 255.255.255.0
网关 192.168.88.1

10.按照第六步,进入网络设置,选择自动获取ip。不出意外等待一会就可以上网了。接下来就是各种常规openwrt配置了,这里不细讲

nas

这里使用samba来实现轻度nas需求,并配置aria2下载

安装Docker

1.连接ssh
这里安装下面依次输入
apt install sudo

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update

apt-get install docker-ce docker-ce-cli containerd.io

sudo systemctl enable docker

sudo systemctl start docker

sudo nano /etc/docker/daemon.json

    {
 "registry-mirrors": [
   "https://hub-mirror.c.163.com",
   "https://mirror.baidubce.com"
 ]
}

按ctrl+x保存

sudo systemctl daemon-reload

sudo systemctl restart docker

安装samba

1.连接ssh 输入cd pvetools然后输入./pvetools 选择安装samba,按照提示安装即可

安装aria2

输入以下命令

docker run -d \
--name aria2-pro \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-e PUID=$UID \
-e PGID=$GID \
-e RPC_SECRET=123123 \
-e RPC_PORT=6800 \
-e LISTEN_PORT=6888 \
-e DISK_CACHE=256M \
-v $PWD/aria2-config:/config \
-v 这里填你设置的samba路径:/downloads \
p3terx/aria2-pro

安装aria-ng

输入以下命令

docker run -d \
--name ariang \
--log-opt max-size=1m \
--restart unless-stopped \
--network host \
p3terx/ariang --port 6880 --ipv6

然后打开浏览器,进入http://192.168.88.8:6880,选择AriaNG设置-RPC-Aria2密钥,输入123123

完成安装

安装jellyfin实现家庭流媒体

1.创建目录 mkdir -p /opt/jellyfin/{config,cache}
2.输入
docker run -d \
-v /opt/jellyfin/config:/config \
-v /opt/jellyfin/cache:/cache \
-v 你的samba服务器文件路径:/media \
--net=host \
--name=jellyfin \
--restart=always \
jellyfin/jellyfin:latest
3.打开192.168.88.8:8096 安装

0

评论 (3)

取消
  1. 头像
    molezz
    Windows 10 · Google Chrome

    PVE和lxc的组合如你所说比较轻便,和docker不一样, 不影响host, 就是找rootfs麻烦些,后来有了云编译就好了。

    回复
    1. 头像
      molezz
      Windows 10 · Google Chrome
      @ molezz

      另外i5比起n3150是不是待机功耗会高些, 据说N好像只有几瓦

      回复
      1. 头像
        htt
        Windows 10 · Google Chrome
        @ molezz

        确实会高一些

        回复