我正在寻找有关设置家庭服务器的指导。我有一个升级为12GB RAM的HP Proliant Gen 8 Microserver G1610T盒子。
我一直在使用它,并计划继续将其与一些关键应用程序一起使用,并作为家庭实验室来测试使用新的操作系统,技术和解决方案的过程。
背景
简而言之,我的计划是将生产环境与测试环境隔离开,这样我就不会搞砸应该在大多数时间启动并运行的服务。另外,我偶尔会离开物理机箱,所以如果我搞砸了网络配置(我已经完成了……),或者我的主机无法启动,那我就很麻烦了,因此,我决定为所有虚拟机配备一个虚拟机。关键应用程序和其他用于测试的应用程序,根据我的需要。
我想要的
- 将测试环境与我不想破坏的服务分开
- 可以远程访问管理计算机,安装/重新安装操作系统
- 使用快照进行时间点备份,如果出现问题,我可以将其恢复为
以下是显示我的计划的图:
Plan of my setup
问题
我正在构建系统,正在遇到一些基本问题,在继续之前必须重新考虑。其中最重要的是如何在Host,VM和LXD容器之间共享存储。
总结我的草案设置:
- 主机操作系统:Ubuntu 18.04,在/ dev / sda SDD上的LVM上具有KVM,具有从/ dev / sd [b-e] 4xHDD制成的ZFS RAIDZ1池
- VM:在相同的/ dev / sda上的LVM上,Ubuntu 18.04作为原始映像-如我所读,原始映像往往比qcow2快一点,而且由于LVM,我仍然可以进行实时快照
- LXD容器位于VM内
现在,我想充分利用HOST OS负责的ZFS存储。但是,由于存在虚拟化层,因此无法通过VM或LXD来管理该池。所以我的解决方案是:
- 共享ZVOL块设备,将其作为/ dev / vdb挂载在VM中
- 使用该磁盘作为LXD的ZFS存储的块设备(这样我就可以在LXD中使用快照功能)
- 将NFS从HOST OS挂载到坦克/ nextcloud到LXD容器之一以拥有更多存储空间
我想在这一点上我意识到我已经使这一过程变得过于复杂,并且违反了KISS规则。我知道我可以直接将所有LXD容器直接存储在主机中,但是我对初始解决方案的理由是:
- 将所有内容都存储在一个VM中使其变得更加可移植,更易于备份
- 在系统还原的情况下,重新启动VM比HOST更容易
- 添加附加的虚拟化层使其更安全吗?还是只是错误的安全感?
问题
我乐于接受建议,当然也想听听比我经验丰富的人的意见。特别是,我有以下问题:
- 从ZVOL块设备为LXD创建ZFS池时是否会严重影响I / O性能?我相信有一个问题,就是我根本不应该这样做吗?
- 将NFS从HOST挂载到LXD容器和/或VM是否是为nextcloud之类的应用程序公开存储的好主意?有更好的选择吗?