「LAPTOP」- 首个实现

时隔多年,我们已实现该技术方案,但是多少有些出入(但差别并不大):

共 4 层(从上到下,L4、L3、L2、L1)

虚拟化选用 VirtalBox 的原因是:
1)鉴于是移动数据中心,所以涉及桌面环境事件响应(例如休眠处理等等),而桌面虚拟化软件处理的更好;
2)VritualBox 免费;

鉴于虚拟化(L2)及物理层(L1)暂无特殊配置,所以不再详细说明。该部分的后续内容将概述网络层(L3)与客户机层(L4)的实现,及相关问题处理;

# 02/06/2022 OpenWrt 我们最后还是选择 OpenWrt 系统,原因如下:
1)针对我们的场景:OpenWrt 能够满足需求,日后也能够进行更换;
2)良好的生态:学习哪个都一样,我们也疲于折腾(ROI 太低);

第一步、创建 OpenWrt 实例

在 VirtualBox 中,部署 OpenWrt 服务:参考 [OpenWrt Wiki] OpenWrt on VirtualBox HowTo 文档,获取官方配置说明;

我们需要三张不同网络网络类型的网卡(尽量依序创建):
1)NAT:负责网络访问,否则 OpoenWrt 将无法上网;(相当于 WAN 接口)
2)Internal Network:实现 OpenWrt、Linux 的二层互联;(相当于 LAN 接口)
3)Host-only Adapter:能与主机通信,用于从主机连接和管理 OpenWrt 服务;

第二步、配置 OpenWrt 服务

我们需要配置 OpenWrt 服务,使其成为路由设备:
[OpenWrt Wiki] OpenWrt as router device

如果遇到问题,或许需要使用 TCPDump 抓包:
[OpenWrt Wiki] How to capture, filter and inspect packets using tcpdump or wireshark tools

第三步、配置 Linux Guest 实例

创建 Linux Guest 主机,并添加 Internal Network 类型网络,使其与 OpenWrt 二层互联;

然后,启动 Linux Guest 实例;

如果配置正确,Linux Guest 能够通过 OpenWrt 的 DHCP 获取 IP 地址;

后续的改进工作

# 01/10/2022 首个版本已能够运行,但是还有很多改进工作:

1)继续使用 VirtualBox 桌面虚拟化:KVM 非桌面虚拟化,对桌面场景处理不是很好。比如当 KVM 休眠恢复后,时间跳跃导致 Guest CPU Usage 飙升;

2)替换 Host 系统为 Linux 发行版:Window 10 + VirtualBox 的问题是,网卡插拔后(间隔久一点),Guest Bridage Network 无法就再也无法访问网络;Linux + VirtualBox 经过测试暂无问题。桥接网络是为了 OpenWrt 与另个数据中心运行动态路由协议,如果用 NAT Network 就无法运行动态路由协议。另外,笔记本的有线网卡 / 无线网卡可以进行主 / 备 / 负载;

3)引入存储(待定):该改进的目的是使得整个模型更加贴近于终端环境,并通过 FCoE 或 iSCSI 的方式提供块存储。但并无必要性,虚拟机的磁盘扩容也是在文件系统上扩容的,没必要引入独立的存储服务。后来(04/27/2022)我们觉得还是要引入存储服务,为多个 Guest 提供共享的网络文件系统存储,实现文件共享,同时使得整个模型更加贴近于数据中心;