Files
cosma-qc/docs/_build/html/infrastructure.html

285 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Infrastructure &mdash; cosma-qc 1.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=f2a433a1"></script>
<script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Données — Stockage et budget disque" href="data.html" />
<link rel="prev" title="Pipeline cosma-qc" href="pipeline.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
cosma-qc
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contenu</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="pipeline.html">Pipeline cosma-qc</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Infrastructure</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#reseau-lan-192-168-0-0-24">Réseau LAN — 192.168.0.0/24</a></li>
<li class="toctree-l2"><a class="reference internal" href="#noeud-core-82">Nœud core (.82)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#noeuds-gpu-workers-84-et-87">Nœuds GPU workers (.84 et .87)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#noeud-z620-168">Nœud z620 (.168)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#service-systemd-dispatcher">Service systemd dispatcher</a></li>
<li class="toctree-l2"><a class="reference internal" href="#conteneur-docker-dashboard">Conteneur Docker dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ports-reseau-recapitulatifs">Ports réseau récapitulatifs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="data.html">Données — Stockage et budget disque</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">Utilisation</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">cosma-qc</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Infrastructure</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/infrastructure.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="infrastructure">
<h1>Infrastructure<a class="headerlink" href="#infrastructure" title="Link to this heading"></a></h1>
<section id="reseau-lan-192-168-0-0-24">
<h2>Réseau LAN — 192.168.0.0/24<a class="headerlink" href="#reseau-lan-192-168-0-0-24" title="Link to this heading"></a></h2>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>┌─────────────────────────────────────────────────────────┐
│ LAN 192.168.0.0/24 │
│ │
│ .82 CORE Dispatcher (systemd) + FastAPI :3849 │
│ Gitea + Grafana + InfluxDB + Caddy │
│ │
│ .84 ml-stack GPU worker RTX 3090 24GB │
│ .87 gpu GPU worker RTX 3060 12GB │
│ │
│ .168 z620 Proxmox host HP Z620 │
│ SSD → /mnt/portablessd (MP4 bruts) │
└─────────────────────────────────────────────────────────┘
</pre></div>
</div>
</section>
<section id="noeud-core-82">
<h2>Nœud core (.82)<a class="headerlink" href="#noeud-core-82" title="Link to this heading"></a></h2>
<p><strong>Rôle :</strong> orchestrateur central du pipeline.</p>
<p>Services actifs :</p>
<ul class="simple">
<li><p><strong>Dispatcher</strong> — service systemd cosma-qc-dispatcher.
Boucle principale qui dispatch les jobs aux workers GPU.</p></li>
<li><p><strong>Dashboard FastAPI</strong> — conteneur Docker exposé sur le port <strong>3849</strong>.
Interface web de monitoring des jobs.</p></li>
<li><p><strong>Gitea</strong> — dépôt source floppyrj45/cosma-qc.</p></li>
<li><p><strong>Grafana / InfluxDB</strong> — monitoring infrastructure.</p></li>
</ul>
<p>Commandes utiles :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Statut dispatcher</span>
sudo<span class="w"> </span>systemctl<span class="w"> </span>status<span class="w"> </span>cosma-qc-dispatcher
<span class="c1"># Logs dispatcher temps réel</span>
sudo<span class="w"> </span>journalctl<span class="w"> </span>-u<span class="w"> </span>cosma-qc-dispatcher<span class="w"> </span>-f
<span class="c1"># Dashboard</span>
http://192.168.0.82:3849
</pre></div>
</div>
</section>
<section id="noeuds-gpu-workers-84-et-87">
<h2>Nœuds GPU workers (.84 et .87)<a class="headerlink" href="#noeuds-gpu-workers-84-et-87" title="Link to this heading"></a></h2>
<table class="docutils align-default">
<colgroup>
<col style="width: 15.0%" />
<col style="width: 25.0%" />
<col style="width: 20.0%" />
<col style="width: 40.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>IP</p></th>
<th class="head"><p>Nom</p></th>
<th class="head"><p>GPU</p></th>
<th class="head"><p>VRAM</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>.84</p></td>
<td><p>ml-stack</p></td>
<td><p>RTX 3090</p></td>
<td><p>24 GB</p></td>
</tr>
<tr class="row-odd"><td><p>.87</p></td>
<td><p>gpu</p></td>
<td><p>RTX 3060</p></td>
<td><p>12 GB</p></td>
</tr>
</tbody>
</table>
<p><strong>Rôle :</strong> exécution de ffmpeg (extraction frames) et lingbot-map (reconstruction 3D).</p>
<p>Répertoire de travail sur chaque worker :</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>/cosma-qc-frames/
├── job_1/
│ ├── frame_000001.jpg … frame_NNNNNN.jpg
│ ├── .video_0.done
│ ├── reconstruction.ply
│ └── reconstruction.glb (généré à la demande)
├── job_2/
│ └── …
└── stitch_1.ply
</pre></div>
</div>
</section>
<section id="noeud-z620-168">
<h2>Nœud z620 (.168)<a class="headerlink" href="#noeud-z620-168" title="Link to this heading"></a></h2>
<p><strong>Rôle :</strong> stockage des MP4 bruts GoPro.</p>
<ul class="simple">
<li><p>Proxmox host HP Z620.</p></li>
<li><p>SSD monté sur /mnt/portablessd.</p></li>
<li><p>Les MP4 <strong>ne quittent jamais</strong> z620 — ffmpeg sy exécute via SSH.</p></li>
</ul>
<p>Accès SSH depuis core :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ssh<span class="w"> </span>floppyrj45@192.168.0.168
</pre></div>
</div>
</section>
<section id="service-systemd-dispatcher">
<h2>Service systemd dispatcher<a class="headerlink" href="#service-systemd-dispatcher" title="Link to this heading"></a></h2>
<p>Fichier de service : /etc/systemd/system/cosma-qc-dispatcher.service</p>
<div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="k">[Unit]</span>
<span class="na">Description</span><span class="o">=</span><span class="s">COSMA QC Dispatcher</span>
<span class="na">After</span><span class="o">=</span><span class="s">network.target</span>
<span class="k">[Service]</span>
<span class="na">User</span><span class="o">=</span><span class="s">floppyrj45</span>
<span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/home/floppyrj45/docker/cosma-qc</span>
<span class="na">ExecStart</span><span class="o">=</span><span class="s">/usr/bin/python3 app/dispatcher.py</span>
<span class="na">Restart</span><span class="o">=</span><span class="s">on-failure</span>
<span class="na">RestartSec</span><span class="o">=</span><span class="s">10</span>
<span class="k">[Install]</span>
<span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
</pre></div>
</div>
<p>Commandes de gestion :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>cosma-qc-dispatcher
sudo<span class="w"> </span>systemctl<span class="w"> </span>stop<span class="w"> </span>cosma-qc-dispatcher
sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>cosma-qc-dispatcher
sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>cosma-qc-dispatcher<span class="w"> </span><span class="c1"># démarrage auto</span>
</pre></div>
</div>
</section>
<section id="conteneur-docker-dashboard">
<h2>Conteneur Docker dashboard<a class="headerlink" href="#conteneur-docker-dashboard" title="Link to this heading"></a></h2>
<p>Le dashboard FastAPI tourne dans un conteneur Docker.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>/home/floppyrj45/docker/cosma-qc
docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span><span class="c1"># démarrer</span>
docker<span class="w"> </span>compose<span class="w"> </span>down<span class="w"> </span><span class="c1"># arrêter</span>
docker<span class="w"> </span>compose<span class="w"> </span>logs<span class="w"> </span>-f<span class="w"> </span><span class="c1"># logs</span>
</pre></div>
</div>
<p>Accès : <a class="reference external" href="http://192.168.0.82:3849">http://192.168.0.82:3849</a></p>
</section>
<section id="ports-reseau-recapitulatifs">
<h2>Ports réseau récapitulatifs<a class="headerlink" href="#ports-reseau-recapitulatifs" title="Link to this heading"></a></h2>
<table class="docutils align-default">
<colgroup>
<col style="width: 15.0%" />
<col style="width: 15.0%" />
<col style="width: 70.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Host</p></th>
<th class="head"><p>Port</p></th>
<th class="head"><p>Service</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>.82</p></td>
<td><p>3849</p></td>
<td><p>Dashboard FastAPI cosma-qc</p></td>
</tr>
<tr class="row-odd"><td><p>.84 / .87</p></td>
<td><p>8100+N</p></td>
<td><p>Viser viewer (reconstruction job N)</p></td>
</tr>
<tr class="row-even"><td><p>.84 / .87</p></td>
<td><p>8300</p></td>
<td><p>HTTP server GLB export</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="pipeline.html" class="btn btn-neutral float-left" title="Pipeline cosma-qc" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="data.html" class="btn btn-neutral float-right" title="Données — Stockage et budget disque" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright .</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>