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
103 lines
7 KiB
XML
103 lines
7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 620" width="960" height="620" font-family="ui-monospace, 'DejaVu Sans Mono', Menlo, monospace">
|
||
<rect width="960" height="620" fill="#0f1720"/>
|
||
|
||
<text x="32" y="44" fill="#e6edf3" font-size="22" font-weight="bold" font-family="system-ui, sans-serif">Arquitectura de la granja</text>
|
||
<text x="32" y="68" fill="#7d8590" font-size="13">Dell PowerEdge M1000e · 16 blades Debian · ~45 Android en contenedor</text>
|
||
|
||
<!-- Chasis -->
|
||
<rect x="32" y="92" width="590" height="490" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
||
<text x="52" y="118" fill="#58a6ff" font-size="13" font-weight="bold">CHASIS M1000e · 10U · 200,5 kg · 2,6–3,6 kW</text>
|
||
|
||
<!-- Coordinador -->
|
||
<rect x="52" y="134" width="550" height="72" rx="6" fill="#1c2128" stroke="#d29922" stroke-width="1.5"/>
|
||
<text x="68" y="158" fill="#d29922" font-size="13" font-weight="bold">blade-01 · COORDINADOR</text>
|
||
<text x="68" y="178" fill="#adbac7" font-size="11.5">Debian 12 · adb · fleet.sh · devices.txt</text>
|
||
<text x="68" y="196" fill="#7d8590" font-size="11">No corre Android. Único punto de control de la flota.</text>
|
||
|
||
<!-- Nodos de carga: header -->
|
||
<text x="52" y="238" fill="#3fb950" font-size="13" font-weight="bold">blade-02 … blade-16 · NODOS DE CARGA (15)</text>
|
||
|
||
<!-- Detalle de un blade -->
|
||
<rect x="52" y="252" width="270" height="240" rx="6" fill="#1c2128" stroke="#3fb950" stroke-width="1.5"/>
|
||
<text x="68" y="274" fill="#3fb950" font-size="12" font-weight="bold">blade-NN · 8 GB RAM</text>
|
||
|
||
<rect x="68" y="286" width="238" height="38" rx="4" fill="#22272e" stroke="#444c56"/>
|
||
<text x="80" y="303" fill="#adbac7" font-size="11">Debian 12 · sobre el hierro</text>
|
||
<text x="80" y="317" fill="#7d8590" font-size="9.5">binder · hwbinder · vndbinder</text>
|
||
|
||
<rect x="68" y="330" width="238" height="26" rx="4" fill="#22272e" stroke="#444c56"/>
|
||
<text x="80" y="347" fill="#adbac7" font-size="11">Docker CE + Compose v2</text>
|
||
|
||
<rect x="80" y="364" width="214" height="26" rx="4" fill="#1f6feb" fill-opacity="0.18" stroke="#1f6feb"/>
|
||
<text x="92" y="381" fill="#79c0ff" font-size="10.5">redroid-NN-01 · Android 13</text>
|
||
<rect x="80" y="394" width="214" height="26" rx="4" fill="#1f6feb" fill-opacity="0.18" stroke="#1f6feb"/>
|
||
<text x="92" y="411" fill="#79c0ff" font-size="10.5">redroid-NN-02 · Android 13</text>
|
||
<rect x="80" y="424" width="214" height="26" rx="4" fill="#1f6feb" fill-opacity="0.18" stroke="#1f6feb"/>
|
||
<text x="92" y="441" fill="#79c0ff" font-size="10.5">redroid-NN-03 · Android 13</text>
|
||
|
||
<text x="68" y="472" fill="#7d8590" font-size="10">Sin VM ni LXC anidado: cada capa</text>
|
||
<text x="68" y="485" fill="#7d8590" font-size="10">se comería una instancia entera.</text>
|
||
|
||
<!-- Los otros blades apilados -->
|
||
<g fill="#1c2128" stroke="#2d5a3d">
|
||
<rect x="342" y="252" width="260" height="34" rx="5"/>
|
||
<rect x="342" y="292" width="260" height="34" rx="5"/>
|
||
<rect x="342" y="332" width="260" height="34" rx="5"/>
|
||
<rect x="342" y="372" width="260" height="34" rx="5"/>
|
||
</g>
|
||
<text x="356" y="274" fill="#7d8590" font-size="11">blade-03 → 3 Android</text>
|
||
<text x="356" y="314" fill="#7d8590" font-size="11">blade-04 → 3 Android</text>
|
||
<text x="356" y="354" fill="#7d8590" font-size="11">blade-05 → 3 Android</text>
|
||
<text x="356" y="394" fill="#7d8590" font-size="11">…</text>
|
||
<text x="356" y="428" fill="#7d8590" font-size="11">blade-16 → 3 Android</text>
|
||
|
||
<rect x="342" y="444" width="260" height="48" rx="5" fill="#1f6feb" fill-opacity="0.12" stroke="#1f6feb"/>
|
||
<text x="356" y="464" fill="#79c0ff" font-size="13" font-weight="bold">15 × 3 = 45 Android</text>
|
||
<text x="356" y="482" fill="#7d8590" font-size="10.5">con RAM a 32 GB → 15 × 14 = 210</text>
|
||
|
||
<!-- Fabric A -->
|
||
<rect x="52" y="504" width="550" height="60" rx="6" fill="#1c2128" stroke="#a371f7" stroke-width="1.5"/>
|
||
<text x="68" y="526" fill="#a371f7" font-size="12" font-weight="bold">FABRIC A · ranuras A1 / A2 · Ethernet integrada (LOM) de cada blade</text>
|
||
<text x="68" y="546" fill="#7d8590" font-size="10.5">Conmutación interna entre blades, sin tarjetas intermedias. Hace posible macvlan.</text>
|
||
<text x="68" y="559" fill="#7d8590" font-size="10.5">Fabrics B y C (FC / InfiniBand) no se usan aquí.</text>
|
||
|
||
<!-- Flechas hacia el control -->
|
||
<path d="M 622 170 L 700 170" stroke="#d29922" stroke-width="2" fill="none" marker-end="url(#a)"/>
|
||
<path d="M 622 534 L 700 534" stroke="#a371f7" stroke-width="2" fill="none" marker-end="url(#p)"/>
|
||
|
||
<defs>
|
||
<marker id="a" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
|
||
<path d="M0,0 L9,4.5 L0,9 z" fill="#d29922"/>
|
||
</marker>
|
||
<marker id="p" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
|
||
<path d="M0,0 L9,4.5 L0,9 z" fill="#a371f7"/>
|
||
</marker>
|
||
</defs>
|
||
|
||
<!-- Panel derecho: control -->
|
||
<rect x="700" y="92" width="228" height="200" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
||
<text x="716" y="118" fill="#e6edf3" font-size="13" font-weight="bold" font-family="system-ui, sans-serif">Nodo de control</text>
|
||
<text x="716" y="142" fill="#adbac7" font-size="11">Ansible (solo builtin)</text>
|
||
<text x="716" y="162" fill="#7d8590" font-size="10.5">preflight.yml → reconocer</text>
|
||
<text x="716" y="178" fill="#7d8590" font-size="10.5">site.yml → desplegar</text>
|
||
<text x="716" y="194" fill="#7d8590" font-size="10.5">apk.yml → instalar APK</text>
|
||
<text x="716" y="210" fill="#7d8590" font-size="10.5">status.yml → comprobar</text>
|
||
<text x="716" y="234" fill="#adbac7" font-size="11">SSH → los 16 blades</text>
|
||
<text x="716" y="256" fill="#7d8590" font-size="10.5">forks = 20: la flota entera</text>
|
||
<text x="716" y="272" fill="#7d8590" font-size="10.5">en paralelo</text>
|
||
|
||
<rect x="700" y="308" width="228" height="130" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
||
<text x="716" y="332" fill="#e6edf3" font-size="13" font-weight="bold" font-family="system-ui, sans-serif">Control de flota</text>
|
||
<text x="716" y="356" fill="#79c0ff" font-size="11">fleet connect</text>
|
||
<text x="716" y="374" fill="#79c0ff" font-size="11">fleet list</text>
|
||
<text x="716" y="392" fill="#79c0ff" font-size="11">fleet install app.apk</text>
|
||
<text x="716" y="410" fill="#79c0ff" font-size="11">fleet shell '<cmd>'</text>
|
||
<text x="716" y="428" fill="#79c0ff" font-size="11">fleet ip</text>
|
||
|
||
<rect x="700" y="454" width="228" height="110" rx="8" fill="#161b22" stroke="#f85149" stroke-width="1.5"/>
|
||
<text x="716" y="478" fill="#f85149" font-size="12" font-weight="bold" font-family="system-ui, sans-serif">Sin móviles físicos</text>
|
||
<text x="716" y="500" fill="#7d8590" font-size="10.5">Cada dispositivo es un</text>
|
||
<text x="716" y="515" fill="#7d8590" font-size="10.5">contenedor redroid sobre</text>
|
||
<text x="716" y="530" fill="#7d8590" font-size="10.5">el kernel del blade.</text>
|
||
<text x="716" y="551" fill="#7d8590" font-size="10.5">Detectables como emulador.</text>
|
||
</svg>
|