Ajustar al manual del M1000e, añadir diagramas y docs de operación

Especificaciones tomadas del manual del propietario del gabinete
PowerEdge M1000e (Dell, modelo BMX01, rev. A06, oct. 2019), que corrige
el spec sheet comercial usado hasta ahora.

Hardware:

- Peso máximo 200,5 kg, no 179. Profundidad 75,5 cm
- Seis fuentes y nueve ventiladores obligatorios, se usen 3 blades o 16.
  Toda bahía vacía necesita relleno
- Conector CEI/IEC C20 a 16 A. La fuente de 3.000 W exige 200-240 V
- Irrupción de 55 A por fuente durante 10 ms: un magnetotérmico de curva
  C salta, hace falta curva D
- Temperatura de funcionamiento continuo 10-35 °C
- ECM obligatorio con blades M630 de 120 W o más, o por encima de 30 °C

Red:

- Fabric A (ranuras A1/A2) es la Ethernet integrada de cada blade, así
  que no hacen falta tarjetas intermedias. Fabrics B y C sí las
  exigirían y no se usan
- Pendiente saber si en A1/A2 hay un switch o un módulo de paso a
  través: cambia el montaje de red por completo

Costes recalculados: el suelo fijo del chasis sube de 350 a ~500 W al
contar los nueve ventiladores, los módulos de I/O y las pérdidas de las
seis fuentes. 360 €/mes a 24/7, 59 €/mes por ventanas. Que las fuentes y
los ventiladores sean obligatorios convierte en hecho documentado lo que
antes era estimación: los pilotos parciales en el chasis son el peor
caso posible.

Documentación:

- assets/ con cuatro diagramas SVG propios: arquitectura, chasis, stack
  de software y modos de red
- docs/usabilidad.md: órdenes, flujos de trabajo, problemas conocidos y
  ergonomía del hardware
- Diagramas ASCII del panel frontal, el posterior y la topología de
  fabrics en hardware_m1000e.md
- Eliminada la parte de charla y divulgación, fuera del alcance del repo
This commit is contained in:
s1to 2026-08-08 19:58:25 +02:00
parent 74bfbe9437
commit 7caa240c2e
17 changed files with 1012 additions and 423 deletions

View file

@ -1,61 +1,235 @@
# El hardware: Dell PowerEdge M1000e
Identificado el 2026-08-08. Fuente: `~/Downloads/poweredge-m1000e-spec-sheet.pdf`
(spec sheet oficial Dell EMC, 6 de diciembre de 2016).
> **Fuente**: *Gabinete Dell PowerEdge M1000e — Manual del propietario*, modelo reglamentario
> **BMX01**, rev. A06, octubre 2019 (© 2014-2019 Dell Inc.), más el spec sheet de dic. 2016.
> Los datos de esta página vienen del manual oficial y **sustituyen a las estimaciones previas**.
No es un servidor suelto: es un **chasis de blades**. Cada blade es una máquina independiente
con su CPU y su RAM.
No es un servidor suelto: es un **chasis de blades**. Cada blade es una máquina independiente con
su CPU y su RAM. Los ventiladores, las fuentes, la CMC y los módulos de I/O son **recursos
compartidos** de todos los blades.
## Especificaciones del chasis
---
## Panel frontal — los blades
```
┌──────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐ ┌───────┐ │
│ │ 1 ││ 2 ││ 3 ││ 4 ││ 5 ││ 6 ││ 7 ││ 8 │ │ LCD │ │
│ │ ││ ││ ││ ││ ││ ││ ││ │ │ panel │ │
│ └────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘ │ ctrl │ │
│ ┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐ │ │ │
│ │ 9 ││ 10 ││ 11 ││ 12 ││ 13 ││ 14 ││ 15 ││ 16 │ │ 2×USB │ │
│ │ ││ ││ ││ ││ ││ ││ ││ │ │ VGA │ │
│ └────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘ └───────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
16 blades de media altura — 8 arriba y 8 abajo
```
El chasis admite **16 blades de media altura**, u 8 de altura completa, u 8 fundas de cuarto de
altura, o una combinación.
> **Todos los compartimentos deben ir ocupados en todo momento**, con un blade o con un módulo de
> relleno. No es una recomendación estética: sin relleno, el aire se escapa por el hueco y la
> refrigeración del resto se degrada.
---
## Panel posterior — la infraestructura compartida
```
┌──────────────────────────────────────────────────────────────────────────┐
│ ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐ │
│ │ V ││ V ││ V ││ V ││ V ││ V ││ V ││ V ││ V │ 9 módulos de ventilador │
│ └───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘ (los 9, obligatorios) │
│ │
│ ┌──────────────┐ ┌─────────┐ ┌──────────────┐ │
│ │ A1 B1 C1 │ │ CMC 1 │ │ C2 B2 A2 │ 6 módulos de I/O │
│ │ │ │ iKVM │ │ │ + 2 CMC │
│ │ (izquierda) │ │ CMC 2 │ │ (derecha) │ + iKVM opcional │
│ └──────────────┘ └─────────┘ └──────────────┘ │
│ │
│ ┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐ │
│ │PSU ││PSU ││PSU ││PSU ││PSU ││PSU │ 6 fuentes de alimentación │
│ └────┘└────┘└────┘└────┘└────┘└────┘ (las 6, obligatorias) │
└──────────────────────────────────────────────────────────────────────────┘
```
Dos exigencias del manual que cambian el planteamiento del proyecto:
> **«El sistema requiere seis fuentes de alimentación para su funcionamiento habitual.»**
> **«Los nueve módulos de ventilador deben instalarse en todo momento para garantizar un
> enfriamiento adecuado.»**
No se puede arrancar este chasis a medias. Seis fuentes, nueve ventiladores y todas las bahías
tapadas, se usen 3 blades o 16. Es el motivo técnico de por qué **los pilotos parciales en el
chasis son mal negocio** — ver [../docs/costes.md](../docs/costes.md).
---
## Fabrics: cómo se conecta un blade a la red
Esta es la parte del manual que más afecta al diseño del laboratorio. El M1000e tiene **tres
fabrics redundantes**, y no todas sirven para lo mismo:
```
blade-NN FABRICS exterior
┌──────────────┐
│ │ ┌──────────────────┐
│ LOM NIC1 ──┼───────────►│ A1 (switch) │──────────────► LAN
│ (integrado) │ ├──────────────────┤ (uplink)
│ NIC2 ──┼───────────►│ A2 (switch) │──────────────► LAN
│ │ └──────────────────┘ (redundante)
│ │ FABRIC A — Ethernet
│ │
│ mezz B ─────┼───────────► B1 / B2 140 Gb/s: FC, InfiniBand, 10 GbE
│ mezz C ─────┼───────────► C1 / C2 140 Gb/s: ídem
└──────────────┘ requieren tarjeta intermedia en el blade
```
**Para este proyecto solo importa la Fabric A**, y es una buena noticia:
- Fabric A es la **Ethernet integrada de cada blade** (la LOM). No hace falta comprar ni instalar
tarjetas intermedias.
- Soporta KR (10 Gbps estándar).
- Sus ranuras son **A1 y A2**. Con un módulo en A1 basta para arrancar; A1 + A2 da redundancia.
- Las Fabrics B y C **necesitan tarjeta intermedia en cada blade**. Si el chasis no las trae, no se
usan — y para 45 Android por adb no hacen ninguna falta.
**Lo que hay que verificar en el chasis real**: qué módulo hay en A1/A2. Un módulo de switch
(PowerConnect M6220 / M6348, Force10 MXL, M8024-k…) da conmutación interna entre blades, que es
justo lo que necesita el modo `macvlan`. Un **módulo de paso a través** en cambio saca 16 puertos
RJ-45 al exterior, uno por blade, y entonces la conmutación depende de un switch externo.
> Los módulos pensados para Fabric B o C **no entran físicamente** en A1/A2 — el manual dice que
> están codificados por color en la placa frontal para evitarlo.
---
## Especificaciones oficiales
### Físicas
| | |
|---|---|
| Factor de forma | Modular 10U — 44,0 alto × 44,7 ancho × 75,4 cm fondo |
| Capacidad | **16 blades de media altura** (8 arriba + 8 abajo) · u 8 de altura completa · o 32 de cuarto |
| Alimentación | Hasta 6 fuentes de 3.000 W / 2.700 W (config 3+3, 2+2, 2+1…) |
| Refrigeración | 9 módulos de ventiladores redundantes |
| Gestión | CMC (Chassis Management Controller) + iDRAC por blade; web SSL, SSH/Telnet, LDAP/AD |
| Red interna | Hasta 6 módulos I/O FlexIO — los blades se ven entre sí a 1/10 GbE |
| Peso | 44 kg vacío · 179 kg cargado |
| Altura | 44,0 cm (17,3") — **10U** |
| Anchura | 44,7 cm (17,6") |
| Profundidad | 75,5 cm (29,7") |
| **Peso máximo** | **200,5 kg** (442 lb) |
| Peso vacío | 44,6 kg (98,1 lb) |
> El peso máximo corregido son **200,5 kg**, no los 179 kg del spec sheet comercial. El manual
> manda: el rack y el suelo tienen que ir sobrados.
### Alimentación
| | Fuente de 2.700 W | Fuente de 3.000 W |
|---|---|---|
| Conector | **CEI/IEC C20** | IEC 320 |
| Tensión de entrada | 100240 V CA, **16 A** | **200240 V CA**, 16 A |
| Frecuencia | 50/60 Hz | 50/60 Hz |
| Disipación propia | 353 W (1.205 BTU/h) máx. | 1.200 BTU/h máx. |
| **Corriente de irrupción** | **55 A durante ≤10 ms, por fuente** | ídem |
Tres consecuencias prácticas:
1. **La fuente de 3.000 W exige 200240 V.** España a 230 V vale; una instalación a 110 V no.
2. **Seis entradas C19/C20.** Hace falta una PDU adecuada — los C13 domésticos no valen.
3. **La corriente de irrupción es el detalle que se olvida**: 55 A por fuente durante 10 ms. Con
seis fuentes arrancando a la vez, un magnetotérmico de curva C salta. Hace falta **curva D**, o
arranque escalonado de las fuentes.
### Ambientales — el requisito que muerde en verano
| | |
|---|---|
| **Funcionamiento continuo** | **10 °C a 35 °C**, humedad relativa 1080 % |
| Ampliado, <10 % de las horas anuales | 5 °C a 40 °C |
| Ampliado, <1 % de las horas anuales | 5 °C a 45 °C |
| Almacenamiento | 40 °C a 65 °C |
| Derating por altitud | 1 °C cada 300 m por encima de 900 m |
**35 °C es el techo continuo.** Una habitación en Madrid en agosto, con 2,6 kW de calor dentro y
sin climatización, se pone por encima de eso sin dificultad. El rango ampliado cubre menos del
10 % de las horas del año: no es una solución, es un margen para incidencias.
### Modo de refrigeración mejorado (ECM)
La CMC permite activar **ECM**, que exige los nueve ventiladores de tercera generación. El manual
lo declara **obligatorio** en tres casos:
- Blades **M630 con procesadores de 120 W o más**
- Blades **M630 en entornos por encima de 30 °C**
- Cualquier configuración con aire fresco
ECM significa más caudal, y por tanto **más consumo y más ruido**. Si los blades resultan ser M630
y el sitio pasa de 30 °C, hay que contarlo.
### Gestión — CMC
| | |
|---|---|
| Módulos | CMC 1 (principal) + CMC 2 (secundaria, a prueba de fallos) |
| Puertos | Dos RJ-45 10/100/1000: **Gb** a la red de gestión, **STK** para encadenar chasis contiguos |
| Serie | 9 patas DTE, compatible 16550 |
| Vídeo | VGA 15 patas |
| Batería | CR2032 |
| Interfaces | Web (SSL), **RACADM** por CLI, SSH/Telnet |
La CMC **reasigna energía entre módulos según la demanda** y expone presupuesto de alimentación y
política de redundancia en *Chassis → Power Management → Configuración*. Es también donde se lee el
**consumo real**, que es lo que sustituye a las estimaciones de [../docs/costes.md](../docs/costes.md).
---
## Configuración de esta máquina
Según lo que recuerda el usuario:
| | |
|---|---|
| Blades | 16, 8 arriba y 8 abajo |
| RAM por blade | 8 GB → 128 GB totales, **repartidos, no agrupados** |
| Modelo de blade | **desconocido** — M610 / M620 / M630. Lo resuelve `preflight.yml` leyendo DMI |
| Módulo en A1/A2 | **desconocido** — switch o paso a través. Determina si `macvlan` funciona sin switch externo |
| Estado del CMC | **desconocido** |
- **16 blades**, 8 arriba y 8 abajo
- **8 GB de RAM por blade** → 128 GB totales, pero **repartidos, no agrupados**
- Modelo de blade: **desconocido** (M610 / M620 / M630 — pendiente de confirmar en el frontal)
- Estado / ubicación / accesibilidad de red: **pendiente**
El manual menciona explícitamente compatibilidad con **M610x**, **M630** y **M710HD**, así que el
abanico de blades posibles es amplio y la generación no se puede inferir del chasis.
---
## Qué implica para el device lab
### A favor
- 16 máquinas independientes con **red interna de chasis**. Mejor topología que un solo host para
el escenario de `oasis_mobile` con **dos APKs que se tienen que ver entre sí**: el switch FlexIO
los pone en la misma L2 sin montar nada.
- Con 8 GB por blade menos Debian + Docker (~11,5 GB), salen **~3 instancias redroid por blade**
**~48 instancias totales**. Casi el triple que el sobremesa (1220).
- 16 máquinas independientes con **conmutación interna por Fabric A**, sin comprar tarjetas
intermedias. Es la topología ideal para el escenario de `oasis_mobile` con **dos APKs que se
tienen que ver entre sí**: quedan en la misma L2 sin montar nada.
- Con 8 GB por blade menos Debian y Docker, **~3 instancias redroid por blade → ~45 en total**.
### En contra
- **Consumo: 1,52,5 kW en marcha.** A precio doméstico en España, del orden de **160350 €/mes**
si está 24/7. Este es el factor que decide la viabilidad, no los cores.
- **Ruido**: no es máquina de casa. Necesita sala con extracción.
- **Sin GPU** en los blades → `redroid_gpu_mode=guest` (render por software). Vale para test
funcional, no para nada gráfico.
- **16 provisiones separadas**: cada blade necesita su Debian + Docker + módulo binder. A partir de
4-5 blades esto pide Ansible o netboot, no hacerlo a mano.
- **Seis fuentes y nueve ventiladores obligatorios**, se usen 3 blades o 16. El coste fijo no baja
al usar menos.
- **Consumo 2,63,6 kW**, del orden de 360 €/mes a 24/7.
- **Techo térmico de 35 °C** continuos.
- **Sin GPU** en los blades → `redroid_gpu_mode=guest`, render por software.
- **16 provisiones separadas** — de ahí el Ansible.
### La palanca real
### La palanca sigue siendo la misma
El cuello de botella son **los 8 GB por blade, no la CPU**. Si los blades son M620 (DDR3 ECC),
ampliar a 32 GB por blade cuesta poco en segunda mano y sube de ~3 a **~14 instancias por blade**.
Eso multiplica por 4-5 la capacidad del proyecto entero por menos de lo que cuesta un mes de luz.
El cuello de botella son **los 8 GB por blade, no la CPU**. Ampliar a 32 GB sube de ~3 a
~14 instancias por blade: de 45 a 210 Android por el mismo recibo de la luz.
---
## Pendiente de averiguar
- [ ] **Modelo de blade** (serigrafiado en el frontal) → determina CPU, generación y tipo de RAM
- [ ] ¿Está encendido y accesible el CMC en red? Si responde, da el inventario completo
- [ ] Ubicación física y quién asume el coste eléctrico
- [ ] Con eso: decidir si se levantan los 16 blades o solo 2-3 como piloto
- [ ] **Modelo de blade**`ansible-playbook playbooks/preflight.yml`
- [ ] **Qué módulo hay en A1/A2** (switch o paso a través) → determina si `macvlan` necesita switch externo
- [ ] ¿Están las 6 fuentes y los 9 ventiladores? ¿Y los rellenos en las bahías vacías?
- [ ] ¿Responde el CMC? Da inventario completo y **consumo real**
- [ ] ¿Hay ventiladores de 3.ª generación, por si hace falta ECM?
- [ ] Ubicación: potencia, PDU con 6 tomas C19, magnetotérmico de curva D y temperatura bajo 35 °C