Proxmox 是一套 OpenStack 的 All-in-One 环境(也是基于 QEMU/KVM),省去了 OpenStack 一个一个组件部署的烦恼,可以一套一起部署了。Proxmox 底层可以是多台机器,Ludus 可以借此扩展到多台物理机上(VXLAN, SDN 来构建虚拟网络)。

Ludus 底层强绑定依赖 Proxmox 环境吗?如果是的话是什么原因呢?

  • Ludus 的核心虚拟机编排使用 Terraform,并专门调用了 Proxmox 的官方 Terraform Provider;
  • Ludus 能快速部署和配置 Windows/Linux 靶机,关键在于利用了 Proxmox 的 Cloud-Init 驱动;
  • Ludus 为实验室提供了极其灵活的网络隔离方案,这依赖于 Proxmox SDN(软件定义网络)与 VLAN 功能。
  • Ludus 通过 Proxmox 的链接克隆(linked clone) 技术,从预构建的 VM 模板极速创建实例。
  • Ludus 在安装过程中就会自动把 Proxmox 安装上去。

什么是 Ludus 里面的 Blueprint?

靶场蓝图,就是一个 YAML 文件:

  ludus:
    - vm_name: "-DC01"
      template: win2022-server-x64-template
      vlan: 10
      ip_last_octet: 10
      ram_gb: 4
      cpus: 2
      windows:
        sysprep: true
        domain:
          fqdn: lab.local
          role: primary-dc
    - vm_name: "-WS01"
      template: win11-22h2-x64-enterprise-template
      vlan: 10
      ...

什么是 Ludus 里的 Range?

可以理解成就是靶场的概念,一套运行中的靶场。Range 可以理解成是 Blueprint 的一个实例。

什么是 Ludus 里面的 VM Template?

本质上就是一个虚拟机的镜像。在 Range 的定义文档里面,会指定在这个 Range 里面的所有 VM 应该使用哪一个 template。Ludus 里面如果需要支持 VM Template 的保存与恢复的命令:

# 查看所有可用 template
ludus templates list

# 构建单个或全部 template
ludus templates build              # 构建所有
ludus templates build -n win11-22h2-x64-enterprise   # 构建指定的

# 查看构建状态/日志
ludus templates status
ludus templates logs -f

VM Template 保存在哪里?

什么是 Ludus 里面 Quota 的概念?

多用户资源分配机制,比如规定:

  • CPU cores:用户的所有 VM 加起来能用多少 vCPU;
  • RAM (GB):总内存上限;
  • Disk (GB):总磁盘占用上限;
  • VM count:最多能开几台 VM(部分版本)。

什么是 Ludus 里面的 TTL 回收?

Ludus 给 range 设置的自动过期销毁机制——到期后系统自动把 range 销毁,释放资源。

这套方案对机器数量的要求

至少 3 台,这是 Ceph 分布式存储集群的要求,不是 Ludus & Proxmox 的要求。

Ludus & Proxmox 横向扩容需求