前言

几年前,我就已经认识到 QNAP 系统的垃圾之处,当时还写了一篇文章来介绍,总之就是非常后悔买了这台 QNAP 的 NAS,总是想着如果是买一台小主机自己折腾多好。

一直想要在 QNAP ts464c 上重新安装系统,不过一直因为没时间什么的各种理由推迟了

这次正好借着搬家和给 QNAP 做了大扫除的机会,一步到位直接安装 PVE 系统。

不得不说,QNAP 的 QTS 系统虽然界面“花里胡哨”,但底层其实是对 Linux 的一种“反向优化”:大量臃肿的服务、无数用不到的后台进程,再加上封闭的系统架构,结果就是——哪怕只是简单地重启一下 NAS,也得等上十分钟,好像在等一锅老母鸡汤炖熟。

而安装 PVE 之后,情况立马大为改观。系统纯净、启动流程干净利落,从按下电源到进入管理界面,不到一分钟就完成开机。关机也是秒停,没有那种“强行优雅”地关服务拖时间的烦躁等待。你甚至能感受到硬件终于被“解放”了,像从 QTS 的枷锁里挣脱出来一样。

换句话说,QTS 把一台明明可以做很多事的设备,限制成了“只能跑 NAS”的傻瓜盒子。而 PVE 给了你完整的控制权,无论是跑软路由、部署 Docker、搭建虚拟机集群,还是干脆直接跑多系统测试环境,一台 NAS 分分钟变身全能服务器,性能和自由度双丰收。

更重要的是,在 QNAP 上安装 PVE 并不会破坏原有的 QTS 系统结构。QTS 实际上是固化在主板 ROM 中的系统,只要将 PVE 安装在独立的 SSD 上,即可实现双系统共存。若以后需要切换回 QTS,只需进入 BIOS,将启动项改回内置存储即可,安全无损、可逆性强。

对于想将 QNAP 从“NAS”进化为“全能服务器”的朋友来说,PVE 无疑是一把极具性价比的利器。

本文记录在 QNAP ts464c 上安装 PVE 的全过程,篇幅非常的长,写到现在已经快 2w 字了,有使用 QNAP ts464c 的同学可以参考一下。

关于 PVE

Proxmox VE(简称 PVE)是一款基于 Debian 的开源虚拟化平台,集成了 KVM 虚拟机与 LXC 容器管理,拥有强大的 Web 管理界面,支持集群、高可用、备份快照等企业级功能,广受技术爱好者和专业用户欢迎。

相比之下,QNAP 原生系统 QTS 更偏向傻瓜式 NAS 使用,虽然也内置了虚拟机支持(Virtualization Station),但在自由度、性能调优和系统扩展性上存在较大限制。而 PVE 不仅提供了完整的底层控制权限,还能轻松运行多个系统级虚拟机与容器,真正释放硬件潜力。与传统 Linux 系统如 Ubuntu Server 相比,PVE 则免去了额外搭建 KVM、LXC、Web 管理平台等复杂流程,安装即用,面向虚拟化任务开箱即战。

下载 & 校验

先从官网下载 ISO(不得不吐槽下官网的限流有点恶心,使用 IDM 等多线程工具下载没多久就被封 IP 了)

https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso/proxmox-ve-8-4-iso-installer

下载完成之后校验一下 SHA256SUM

Windows 的 PowerShell 命令

Get-FileHash -Algorithm SHA256 ./proxmox-ve_8.4-1.iso

Mac 的话用这个命令校验

shasum -a 256 proxmox-ve_8.4-*.iso

看看输出的 SHA256SUM 和官网上的是否一致

制作 ventoy 启动盘

可以在官网下载 ventoy

不过我是直接用 scoop 安装的

scoop install ventoy

制作的时候记得要选择 MBR 类型的分区表,不然 QNAP ts464c 的 BIOS 无法识别这个 U 盘作为启动盘

把下载好的 ISO 放进 U 盘里就可以了(可以在根目录,也可以其他目录,Ventoy 默认扫描所有子目录)

安装 PVE

文件系统的选择

为了稳定简单,我选择了最常用的 ext4 作为 PVE 安装盘的文件系统

不过在这过程中也顺便学了下其他几个选项。

常用文件系统简介

  • ext4:最经典最稳妥的 Linux 文件系统,兼容性好,故障率低,不支持快照。
  • xfs:擅长大文件、高性能,不支持快照,但写入性能优。
  • btrfs:支持快照、压缩、自恢复等高级功能,适合需要灵活卷管理的用户。
  • zfs:功能最强,支持快照、压缩、自修复、RAID 管理,是一个完整的存储系统。

RAID 类型解释

当选择 xfs、btrfs 或 zfs 时,PVE 会自动帮你构建 RAID 配置,如果你插了多个硬盘:

xfs / btrfs 可选

  • (raid0)性能高,但 无容错,任何一块盘坏了数据全丢。
  • (raid1)双盘镜像,安全性高,但空间减半。
  • (raid10)性能+安全折中,需要至少 4 块盘,2 对 RAID1 再 RAID0。

zfs 可选

  • (raidz-1):相当于 RAID5,容忍 1 块盘坏。
  • (raidz-2):RAID6,容忍 2 块盘坏。
  • (raidz-3):容忍 3 块盘坏(一般用不到)。
  • ZFS 还支持压缩、快照、自修复,但 内存占用高,建议至少 8GB 内存以上。

如何选择?

情况 1:只打算装一个系统盘,就一块硬盘

  • 推荐:ext4xfs(ZFS 没必要,btrfs 有点浪费)
  • 稳妥选项:ext4

情况 2:打算用多块盘做 RAID、虚拟机多、重度使用

  • 推荐:ZFS + raidz-1/2
  • ZFS 优势在于数据完整性、快照、压缩,适合做虚拟机存储

情况 3:追求 最高性能、不在意容灾

  • 可选:xfs(raid0),但不推荐用于重要数据

情况 4:想折腾、试试新东西

  • 可选:btrfs(raid1)btrfs(raid10),但稳定性略逊于 ZFS

安装完成

装完之后会自动重启,之后记得按 F2 进入 QNAP 的 BIOS 修改启动项

搞定了,看到 PVE 的 grub 界面了,舒服

进入管理界面

初步配置

通过 ssh 连接到 PVE 服务器,或者直接使用管理后台的 shell 也行

修改软件源

修改 Debian 软件源: https://mirrors.tuna.tsinghua.edu.cn/help/debian/

修改 PVE 源:https://mirrors.tuna.tsinghua.edu.cn/help/proxmox/

也可以试试 ustc 的镜像: https://mirrors.ustc.edu.cn/help/proxmox.html

修改 CT 模板镜像

我试了清华的镜像,结果 403,换成 ustc 的就正常了,速度很快~

sed -i.bak 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

/usr/share/perl5/PVE/APLInfo.pm 文件属于 pve-manager 软件包,该软件包升级后,需要重新替换 URL。

修改之后重启服务

systemctl restart pvedaemon

修改 TurnKey Linux 镜像

https://mirrors.ustc.edu.cn/help/turnkeylinux.html

TurnKey Linux 提供了一系列预装和预配置的虚拟机镜像("appliances"),包含了不同用途的服务器软件。

我上次看刷v站的时候看到有网友推荐了 TurnKey 的 fileserver 镜像: https://v2ex.com/t/1135908

首先,将 /usr/share/perl5/PVE/APLInfo.pm 文件中默认的源地址 https://releases.turnkeylinux.org/pve 替换为 https://mirrors.ustc.edu.cn/turnkeylinux/metadata/pve

sed -i.bak 's|https://releases.turnkeylinux.org|https://mirrors.ustc.edu.cn/turnkeylinux/metadata|g' /usr/share/perl5/PVE/APLInfo.pm

执行 systemctl restart pvedaemon 重新加载配置

根据文档,还得创建个配置文件来修改 aplinfo.dat 的内容

mkdir -p /etc/systemd/system/pve-daily-update.service.d/
cat > /etc/systemd/system/pve-daily-update.service.d/update-turnkey-releases.conf <<EOF
[Service]
ExecStopPost=/bin/sed -i 's|http://mirror.turnkeylinux.org|https://mirrors.ustc.edu.cn|' /var/lib/pve-manager/apl-info/releases.turnkeylinux.org
EOF

重新加载 systemd

systemctl daemon-reload
systemctl start pve-daily-update.service

测试,如果修改完成应该会有以下输出

$ grep -c http://mirror.turnkeylinux.org /var/lib/pve-manager/apl-info/releases.turnkeylinux.org
0
$ grep -c https://mirrors.ustc.edu.cn /var/lib/pve-manager/apl-info/releases.turnkeylinux.org
110

安装必备工具

apt install htop iotop iftop vim curl net-tools

参考资料

告别卡顿的QTS,在威联通TS464c上安装PVE系统的更多相关文章

  1. img加载卡顿,解决办法

    我觉得我在这个项目里遇到了太多的第一次.比如上一篇博文:在在360.UC等浏览器,img不加载原因. 当前情况是:图片加载缓慢,图片加载时出现卡顿. 上图:我缩放了图片,估计有点变形.能说明情况就行, ...

  2. Spring Tool Suite4(sts)复制粘贴卡顿(ctrl+v, ctrl+c)、按住ctrl也很卡

    最近在看<Spring in Action, Fifth Edition>,下载了Spring Tool Suite4,在使用的过程中发现了一些问题: 只要在复制粘贴(ctrl+c, ct ...

  3. 想让安卓app不再卡顿?看这篇文章就够了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由likunhuang发表于云+社区专栏 实现背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的 ...

  4. iOS应用卡顿分析

    1.屏幕显示图像的原理 显示器按照从上到下的方式,一行行扫描,扫描完成后显示器就呈现一帧画面,随后电子枪回到初始位置继续下一次扫描.为了把显示器的显示过程和系统的视频控制器进行同步,显示器(或者其他硬 ...

  5. 启用“关闭自动根证书更新”,解决Windows系统各种卡顿的问题(Visual studio 卡、远程桌面mstsc卡、SVN卡)

    最近,发现在Win7下面一系列操作都会出现卡顿的情况: 1.  Visual studio 启动调试和关闭调试时,都会卡上半分钟左右 2.  使用远程桌面mstsc.exe,点击连接时,也会卡上半分钟 ...

  6. 性能优化 BlockCanary 卡顿监测 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. xamarin MasterDetailPage点击Master时卡顿现象

    在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...

  8. UITableView cell复用出错问题 页面滑动卡顿问题 & 各杂七杂八问题

    UITableView 的cell 复用机制节省了内存,但是有时对于多变的自定义cell,重用时会出现界面出错(例如复用出错,出现cell混乱重影).滑动卡顿等问题,这里只简单敲下几点复用出错时的解决 ...

  9. 解决UINavigationController在pushViewController时出现的"卡顿"问题

    进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...

  10. webstorm卡顿问题

    近期随着项目开展,文件逐渐增大,webstrom频繁出现卡顿,而且时有崩溃现象,提示没有足够的内存来执行请求的操作,需要增加Xms设置. 解决办法: 1.找到WebStorm.exe.vmoption ...

随机推荐

  1. go 组合函数 Collection

    我们经常需要程序在数据集上执行操作,比如选择满足给定条件的所有项,或者将所有的项通过一个自定义函数映射到一个新的集合上. 在某些语言中,会习惯使用泛型. Go 不支持泛型,在 Go 中,当你的程序或者 ...

  2. Ubuntu 下查看 ip

    博客地址:https://www.cnblogs.com/zylyehuo/ ip a

  3. DEV插件--Spreadsheet1电子表格

    常用操作Spreadsheet常用属性标题栏是否可见 Spreadsheet1.TitleBar.Visible=true标题栏背景颜色 Spreadsheet1.TitleBar.Interior. ...

  4. 探秘Transformer系列之(18)--- FlashAttention

    探秘Transformer系列之(18)--- FlashAttention 目录 0x00 概述 0.1 问题 0.2 其它解决方案 0.3 Flash Attention 0x01 背景知识 1. ...

  5. datasnap的监督功能【1】-服务端获取客户端连接信息

    在服务端获取连接的客户端相关info: TDBXClientInfo = recoed IpAddress : String; ClientPort : String; Protocol : Stri ...

  6. 调用dll中form,太古老了,可是

    太古老了,可是用的不多.应该考虑商品化项目首选. library Prj_dll; { Important note about DLL memory management: ShareMem mus ...

  7. Kubernetes基础教程-通过部署Nginx快速学习基本使用命令

    1.验证节点信息 1.1.查看控制平面组件的状态 [root@linux-servertwo software]# kubectl get cs Warning: v1 ComponentStatus ...

  8. Koin 依赖注入: 在 Android 模块化项目中定义 Room 数据库的最佳实践

    前置 本文发布于个人小站:https://wavky.top/db-in-multi-modules/ 欢迎移步至小站,关注更多技术分享,获得更佳阅读体验 (不保证所有技术文章都会同步发表到博客园) ...

  9. tomcat非root用户启动

    部署远程服务器时候, 基本都是用root账户登录, 习惯上会直接使用root启动tomcat. 这样其实是有风险的, 黑客获取的权限即容器的权限, 如果容器运行权限就很高,被攻破黑客即可获取很高的权限 ...

  10. 🎀dubbo QOS介绍及命令

    简介 在Dubbo中,QoS(Quality of Service)功能是一个非常重要的特性,用于提供对运行时服务的查询和控制能力. QoS的概念源自网络设备中的服务质量保障机制,但在Dubbo中,它 ...