3. 站点与位置建模
在 NetBox 中,物理空间并不是一个简单的“机房列表”,而是一套从宏观到微观、层层嵌套的层级模型。理解这套层级,是后续把设备、线缆、电源、端口准确落到物理位置上的前提。NetBox 的物理空间层级由六个核心对象构成:Site(站点)、Region(区域)、Location(位置)、RackGroup(机架组)、Rack(机架)、RackUnit(机架单元,简称 U 位)。它们不是平级关系,而是有明确的从属与引用关系。
一、层级关系与各自职责
先厘清每个对象“管什么”,避免建模时把职责混在一起。
- Region(区域):最粗粒度的地理/行政划分,用于表达“华东”“华南”“海外”这类大范围归属。Region 可以自嵌套,形成“中国 → 华东 → 上海”这样的树。它不直接挂设备,只用于聚合 Site。
- Site(站点):一个独立的物理场所,通常对应一栋楼或一个园区,例如“上海张江数据中心”“北京望京办公区”。Site 是设备、机架、前缀、VLAN 等大量对象的归属边界,也是权限和统计的基本单位。
- Location(位置):Site 内部的物理分区,例如“一层主机房”“二层网络间”“B 区配电间”。Location 同样支持自嵌套,可表达“楼 → 层 → 房间 → 列”的细分。
- RackGroup(机架组):把若干机架按逻辑或物理方式归组,例如“A 列”“冷通道 1”“核心区机柜组”。它挂在 Site(可选挂 Location)下,是机架的容器。
- Rack(机架):真实机柜,有宽度(19/23 英寸)、高度(以 U 计,常见 42U、45U、48U)、类型(四柱/两柱/壁挂)等属性。设备最终安装到 Rack 的具体 U 位上。
- RackUnit(U 位):机架内部的纵向坐标,从底部第 1U 向上计数。设备通过“占用起始 U 位 + 高度”确定物理占位,NetBox 据此检测冲突。
层级引用方向是单向的:Region ← Site ← Location ← RackGroup ← Rack ← Device/RackUnit。也就是说,一个 Rack 必须属于某个 Site,Location 和 RackGroup 是可选的细化层;一个 Device 必须落在某个 Rack 的 U 位上(除非它是非机架设备)。
二、真实机房建模的落地顺序
层级清楚了,接下来是“怎么建”。推荐按“先粗后细、先空间后设备”的顺序推进,避免反复调整引用关系。
- 建 Region 树:按公司实际管理范围划分。例如“中国 → 华东 → 上海”“中国 → 华北 → 北京”。Region 不必过细,能支撑统计和权限即可。
- 建 Site:每个独立场所一个 Site,填写名称、状态(Active/Planned/Retired)、地址、时区。Site 的 slug 建议用英文短名,如
sh-zj-dc。 - 建 Location:在 Site 下按楼层/房间/区域建 Location。若机房只有一层且无分区,可跳过 Location,直接建 RackGroup。
- 建 RackGroup:按列或通道分组,例如“A 列”“B 列”“冷通道 1”。RackGroup 可挂在 Site 或 Location 下。
- 建 Rack:填写机架名称(如
A-01)、宽度、高度(U 数)、类型。Rack 必须指定 Site,可选指定 Location 和 RackGroup。 - 安装 Device:在 Rack 视图中把设备放到具体 U 位,填写起始 U 位和占用高度,NetBox 会自动检测重叠。
建议在批量导入前,先用一张 Excel 把“Site → Location → RackGroup → Rack → Device”的对应关系列清楚,再通过 NetBox 的 CSV 导入功能一次性建好,比逐个点击快得多。
三、一个可参考的建模示例
假设要为“上海张江数据中心”建模,实际参数如下(示例数据,非实测):
| 层级 | 名称 | 关键属性 |
|---|---|---|
| Region | 中国 / 华东 / 上海 | 三级嵌套 |
| Site | 上海张江数据中心 | slug: sh-zj-dc,状态 Active |
| Location | 一层主机房 | 父级为 Site |
| RackGroup | A 列 | 挂在“一层主机房”下 |
| Rack | A-01 | 42U,19 英寸,四柱 |
| Device | core-sw-01 | 起始 U 位 40,高度 2U |
建完后,在 Rack A-01 的视图里应能看到 core-sw-01 占据第 40~41U,顶部留出 1U 空隙。如果另一台设备也填了起始 U 位 40、高度 2U,NetBox 会提示冲突,这就是 U 位建模最直接的价值——把“机柜里到底还有没有位置”变成可查询、可校验的数据。
四、常见建模误区
- 把 Site 当 Location 用:同一栋楼的不同楼层应建 Location,而不是拆成多个 Site。否则跨楼层统计和权限会变得零散。
- RackGroup 与 Location 混用:Location 表达物理房间,RackGroup 表达机架的逻辑分组。两者可以同时存在,不要互相替代。
- U 位从顶部计数:NetBox 默认从底部第 1U 向上计数,建模时务必统一,否则设备位置会整体偏移。
- 忽略 Rack 高度:建 Rack 时若高度填错(如把 42U 填成 24U),后续设备安装会频繁报越界。
真实机房中常有机架编号与物理位置不一致的情况(如 A-01 实际在 B 列)。建模时应以“物理位置”为准,而不是沿用旧台账的编号,否则后续排障时按图索骥会找错机柜。
把站点与位置层级建准,后续的设备、线缆、电源、端口才有可靠的落点。这一层的投入,会在每一次变更、排障和审计中被反复兑现。