从NAS4FREE迁移到PVE

2019年11月22日 2 作者 筱枫

前段时间搭建了基于nas4free的家中nas,但是使用了一段时间后,发现还是有不少缺陷,所以转为Promox VE使用

在nas4free上我遇到了如下问题:

1.Iscsi读取速度极慢,写入(无缓存)的情况下能跑满千兆网,但是读取只有百兆网的水准,完全不可用

2.Virtualbox安装win10_64在运行一段时间后会卡死,无法通过phpvirtualbox关闭,只能手动杀进程。(题外话,当时试图在上面安装时总是无法安装,后来是在个人的电脑上用virtualbox安装后将硬盘迁移过去的)

3.想要配置一些其他东西会比较麻烦,例如配置aria2c、bhypve等等


基于以上理由,准备搭建一个虚拟化平台,然后将硬盘直通给nas使用,首先我选择的是大名鼎鼎的esxi

安装、使用都很顺利,但是在使用的时候遇到了一个麻烦

esxi设置巨型帧会导致网络卡死,尝试了几次后,觉得可能是我的网卡问题(网卡是能够被esxi正确识别的),于是转为尝试Proxmox VE


PVE安装还是十分方便,而且基于debian系统,许多东西都可以只用使用linux的源进行安装

其实本来也考虑用unraid,但是硬盘上已经存放了不少数据,所以再使用unraid不太妥当——再说也要钱,所以还是采用了PVE

安装完成后,使用PVE创建虚拟机,然后通过

pm set <id> --sata1 <disk_id>

设置磁盘映射(注意这并非硬盘直通

之后再直通usb,则可以成功启动之前的nas4free了

但是通过这样的方式会有一定的性能影响,我原本的磁盘读写速度约在80~90M左右,但是映射后只有60M左右


网上查询了一下后,发现可以通过PCI 直通的方式将整个SATA控制器给虚拟机用,但是这样的话会造成宿主机无法启动(但我将PVE安装在u盘上的,所以倒没有任何影响)

不过这功能要求CPU支持VT-D,但是很可惜我的cpu G1620不支持,所以只能等到之后换上一颗服务器的cpu才能做尝试

具体的方法可以详见:

论VT-d对虚拟化NAS之价值

之后就是PVE设置巨型帧的问题,采用了论坛上别人的方法

How to enable jumbo frames on proxmox interfaces

我的配置如下:

auto lo
iface lo inet loopback

iface enp4s0f1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.3.121
        netmask 255.255.255.0
        gateway 192.168.3.1
        bridge_ports enp4s0f1
        bridge_stp off
        bridge_fd 0
        pre-up ip link set dev enp4s0f1 mtu 9000

iface enp3s0 inet manual

iface enp4s0f0 inet manual

不过在设置巨型帧之前出现了一个小插曲,因为之前的nas4free是设置了巨型帧,而PVE刚装好后的MTU是1500,所以导致怎么都连不上nas4free,还以为是网络配置有误….

之后nas4free启动nfs,PVE再挂载这个NFS,将其作为数据盘,并在其上安装win10

但是nas4free的nfs配置似乎有误,直接用PVE挂载不成功,需要在NFS的配置中增加一行:

V4: / -sec=sys

如此,便完成了整个NAS的迁移工作,虽然win10跑起来稍微慢了点,而且由于sata控制器没有直通的原因导致nas运行速度不行,但至少解决了最开始的三个问题

ISCSI速度达到读写60M,目前而言已经够了

win10再也不用担心晚上挂着百度云第二天却发现半夜死掉了

可以随意折腾linux,PVE自带的LXC简直就是神器


整体而言,PVE还是一个对新手相当友好的系统,其实最开始如果直接使用PVE配合NAS4FREE的话可能会更好,但现在NAS中已经存放了不少的数据,所以只能这样迁移使用

最开始安装好PVE时其实也考虑过直接在PVE中使用zfs import导入ZFS存储池进行使用,但是怕出问题,所以还是老老实实的使用NAS4FREE吧,这段时间折腾完成后,恐怕整个服务器都不会再去动它了,希望硬盘可以坚持足够久的时间吧。