家庭服务器搭建及配置指南 (3) -- 虚拟化
家庭服务器搭建及配置指南 (3) – 虚拟化
2022年8月12日
摘要
搭建服务器时,有一个很常见的选项就是虚拟化。虚拟化的目的即为让一台物理机同时运行多个操作系统,各自享有独立的硬件资源,互不干扰。在 All-in-One 也就是一台服务器需要承载多种相互独立的服务时,虚拟化可以提供非常大的方便。得益于计算机技术的发展,以及各大处理器和主板厂商对虚拟化的硬件级支持,现如今,在开启了 Intel VT-X 的 Intel 平台或是开启了 AMD-V (SVM) 的平台上,虚拟机可以以接近无损的性能运行。此外,各大虚拟化平台的 PCIe 直通技术也可以让虚拟机直接访问到 PCIe 总线上的硬件设备,几乎不必考虑性能损耗。本章节将帮助你分析你是否需要使用虚拟化平台。
虚拟化的优缺点
是否需要使用虚拟化技术来部署服务器呢?这里将大致阐述一下虚拟化在简单家庭场景下的优缺点,读者可以根据自己的需求来决定是否使用。
优点
- 可同时使用多个系统级的应用:并非所有的服务器端应用都像 Halo 一样良心,提供多种不同的部署方案。类似 OpenWrt 这样的软路由平台,或是 OpenMediaVault 这样的 NAS 平台,都只支持操作系统式的安装。当然很多应用只支持系统级部署也不是因为不良心,而是其可能需要独占式的访问某些系统资源,例如软路由需要独占使用网卡,另一部分可能是出于数据安全性的考量,例如 NAS 系统。此时,虚拟化平台可以允许一台物理机同时运行多个这样的系统级应用。
- 不必考虑各个独立服务所需环境之间的冲突和干扰:很好理解,起到了类似 Conda 虚拟环境或是 Docker 容器的作用,某些毫无关联的应用可以独享整个操作系统,在里面随便怎么折腾。虽然 Docker 也可以很好的达到这样的目的且消耗更少的资源,但是虚拟化毕竟是硬件级的,可以享受恒定的内存分配,独立的 CPU 资源,以及 PCIe 直通等技术。此外,Docker 内部不支持运行 Windows 容器,而虚拟化可以。由于我的软路由需要网卡直通,且还需要运行另外的 OpenMediaVault 以及 Windows,所以顺其自然的就使用了虚拟化部署。
- 低耦合度带来的易维护性:以我自己的服务器为例,如果 OpenWrt 挂了或是想更换别的软路由系统,直接重装一个虚拟机即可,其他的照常运行,其它系统同理。并且我使用了一个独立的 OpenSUSE 虚拟机运行所有我自己写的脚本以及服务器端的程序,炸了也无所谓,不影响最关键的软路由和 NAS。
缺点
- 稍高的占用率:很容易理解,为了达到上述几个好处,需要同时运行多个系统,其中必然有很多重复和冗余。但是考虑到虚拟化带来的方便性,稍高一点的资源占用率我认为是可以接受的。
- 资源隔离:多个虚拟机之间的文件是相互隔离的,如果想要互相访问,则需要通过 SMB/CIFS 等方式互相挂载。
- 稍复杂的服务器架构设计:怎样拆分服务,怎样设计网络拓扑,怎样管理虚拟机之间的文件访问,怎样设计接口,怎样分配 IP 和端口,都是需要考虑的。家用级的服务器虽然再怎么样也复杂不到哪儿去,但总还是要稍微规划规划的。
- 多个东西就多个事儿要学。
- 没有了。
虚拟化平台的选择
市面上比较成熟的虚拟化平台主要有以下三种:
- (推荐)VMware vSphere Hypervisor (ESXi):商业化闭源虚拟化平台,稳定,易用,基础功能免费且够用,高级功能需要付费,价格不低。一般情况下免费版完全够用,付费版多了些集群支持和高级 API,能看我这个文章的人肯定都用不上,实在是手痒可以在网上找到各种晚清王朝预付费正版使用。
- KVM:开源免费,性能也很好,就是部署起来稍微复杂一些,我不太想折腾这个。
- Proxmox VE (PVE):开源但高级功能收费,我没用过,不做评价。
VMware vSphere Hypervisor 的安装使用教程网上到处都是,这里就不再描述了。另外有些独立网卡,尤其是 Intel 的,可能需要提前对安装程序进行驱动注入,网上也有很多相关教程。
虚拟化平台本身就是一个独立的操作系统了,安装时需要格式化磁盘,有很多人将 VMware vSphere Hypervisor 安装进 U 盘,但是毕竟服务器稳定为主,我不建议这样搞。
虚拟化平台介绍到此为止,可以根据情况决定是否使用。如果只打算整个博客什么的,就别麻烦自己了,随便一个用着顺手的 Linux 发行版配上 Docker 就完全足够。
总结
在这个部分我不会提出任何建议,请各位根据我提供的信息和自己的情况酌情选择是否使用虚拟化平台。
License:
CC BY 4.0