温馨提示×

CentOS Overlay与VXLAN的区别是什么

小樊
40
2025-12-25 12:43:28
栏目: 智能运维

CentOS Overlay与VXLAN的区别

术语澄清

  • CentOS语境中,Overlay通常指两种不同技术:
    • OverlayFS:Linux的联合文件系统,用于把多个目录合并为一个统一视图,常见于容器镜像/容器的分层存储(如 Docker 的 overlay2 存储驱动)。它是“存储层”的技术。
    • Overlay 网络:一种“网络层”的虚拟化模型,在现有物理网络(Underlay)之上通过隧道封装构建虚拟网络,Docker 的 Overlay 网络驱动即属此类,底层常选用VXLAN作为隧道协议。
  • VXLAN本身是一种具体的网络隧道/封装协议(MAC-in-UDP),用于在三层网络上扩展二层域,提供大规模多租户隔离(24 位 VNI,约 1600 万个网段)。

核心区别一览

维度 CentOS OverlayFS(文件系统) CentOS Overlay 网络(网络模型) VXLAN(隧道协议)
所属领域 存储(文件系统) 网络(虚拟网络模型) 网络(隧道/封装协议)
工作层次 VFS/内核层,联合挂载目录 数据链路/网络层,隧道封装 数据链路/网络层,MAC-in-UDP
目的 合并多层目录,写时复制,节省空间 在不改动底层网络下构建跨主机虚拟网络 在三层网络上承载二层,扩展二层域与多租户
关键标识/概念 lowerdir、upperdir、workdir、merged VTEP、VNI、BD(Bridge Domain) VNI(24 位)、UDP 目的端口4789
依赖/底层 内核支持 OverlayFS(如 overlay2) 物理/Underlay 网络需 IP 可达 物理/Underlay 网络需 IP 可达
性能与开销 近原生读、写放大可控,开销小 有封装/解封装开销,取决于实现 有封装/解封装开销,头部约≈50 字节
典型场景 容器镜像分层、容器运行时可写层 Docker Swarm/K8s 跨主机容器网络 数据中心/云环境大规模二层扩展、多租户
配置要点 内核/挂载选项,Docker 用 overlay2 需启用 Overlay 驱动与集群发现(如 kv 存储) 配置 VTEP、VNI、BD/EVPN,放行UDP 4789

说明:Overlay 网络与 VXLAN 的关系是“模型 vs 实现”。Overlay 网络是一种在 Underlay 之上构建虚拟网络的模型,VXLAN 是其中主流的隧道实现之一;而 OverlayFS 完全属于文件系统领域,和网络无关。

在 CentOS 上的实践要点

  • 使用OverlayFS(容器存储):
    • 选择 Docker 存储驱动为overlay2(推荐),在 /etc/docker/daemon.json 中设置 “storage-driver”: “overlay2”,重启 Docker 生效。
  • 使用Overlay 网络(跨主机容器网络):
    • 在 Docker Swarm 或 Kubernetes 中创建 Overlay 网络;确保节点间网络互通并放行UDP 4789(VXLAN 端口)。
    • 常见需额外部署的支撑组件包括用于状态同步的键值存储(如 etcd/Consul),以及各节点上的VTEP实现(容器/主机侧虚拟交换机或物理设备)。
  • 使用VXLAN(作为 Overlay 的隧道实现):
    • 规划VNIBD映射,部署/配置VTEP(可在服务器 vSwitch 或网络设备),按需采用集中式或分布式网关;Underlay 只需 IP 可达即可承载 VXLAN 流量。

选型建议

  • 若目标是容器/镜像的分层与存储优化:选用OverlayFS(overlay2),它是存储技术,和网络无关。
  • 若目标是跨主机容器网络且底层网络不可改动或需多租户隔离:选用Overlay 网络 + VXLAN,获得更好的兼容性与扩展性。
  • 若目标是数据中心大规模二层扩展、与物理网络解耦:直接使用VXLAN方案(可结合控制器/自动化),获得标准且成熟的隧道能力。

0