501ecc0c1e
- accessibility.js: Focus-Trap im Panel (Tab/Shift+Tab zyklisch ueber Close + 9
Optionen), aria-modal="true" beim Oeffnen, Klick-ausserhalb schliesst (Escape +
Fokus-Rueckgabe bestehen). Font-Button: aria-pressed ersetzt durch dynamisches
aria-label ("... aktuell 115 %") + .is-active ab >100 %; Reset-Button ohne
aria-pressed (Aktion statt Toggle). Hochkontrast-Untertitel "immer dunkel".
- accessibility.css: toten Legacy-Dock-Code entfernt (72px body-padding, .mf-a11y-dock,
Fixed-Trigger, Dock-Media-Query); .is-active am Aktiv-Styling; Kommentar, dass
Hochkontrast bewusst immer dunkel bleibt.
- accessibility-placement.css: obsoleten Padding-Reset entfernt; .is-active ergaenzt.
- Cache-Buster: theme.js injiziert accessibility.css v6 / placement v10 /
accessibility.js v9 / fluxtimer.css v5; theme.css?v=4 und theme.js?v=5 in allen
80 Templates/Finalflux-Seiten vereinheitlicht.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFxcjtc9HNP4VECT6Ur1tE
96 lines
6.4 KiB
HTML
96 lines
6.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de" data-theme="dark">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Storage Systeme - FinalProtocol AP1</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" href="/css/style.css">
|
|
<link rel="stylesheet" href="/css/theme.css?v=4">
|
|
<link rel="stylesheet" href="/css/finalflux.css">
|
|
<script src="/js/theme.js?v=5"></script>
|
|
</head>
|
|
<body class="finalflux-page">
|
|
<div class="mf-theme-float"><button class="mf-theme"></button></div>
|
|
<main>
|
|
<a href="/finalflux" class="back-link">Zurück zu FinalProtocol</a>
|
|
<h1>Storage Systeme</h1>
|
|
|
|
<section>
|
|
<h2>Lernfokus</h2>
|
|
<p>Trainiere die drei Speicherkonzepte DAS, NAS und SAN, den Unterschied zwischen Block- und Dateizugriff sowie die wichtigsten RAID-Level. In der AP1 musst du anhand einer Situation entscheiden, welches Konzept und welcher RAID-Level zu den Anforderungen passen.</p>
|
|
<ul class="key-list">
|
|
<li>DAS, NAS und SAN sicher unterscheiden.</li>
|
|
<li>Block- und Dateizugriff erklären.</li>
|
|
<li>RAID-Level 0, 1, 5, 6 und 10 mit ihren Eigenschaften kennen.</li>
|
|
<li>Einsatz nach Anforderungen (Leistung, Kosten, Redundanz) begründen.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>DAS, NAS und SAN</h2>
|
|
<p>Die drei Konzepte unterscheiden sich darin, <strong>wie</strong> und <strong>worüber</strong> der Speicher angebunden ist und ob der Zugriff auf <em>Block-</em> oder <em>Datei-Ebene</em> erfolgt.</p>
|
|
<ul class="key-list">
|
|
<li><strong>DAS (Direct Attached Storage):</strong> Speicher ist direkt am Host angeschlossen (z. B. interne Platten, externe Platte per USB/SAS). Blockzugriff, aber nur für diesen einen Host nutzbar. Günstig und schnell, jedoch kaum gemeinsam nutzbar oder zentral verwaltbar.</li>
|
|
<li><strong>NAS (Network Attached Storage):</strong> Eigenständiges Speichergerät im LAN, das Daten <em>dateibasiert</em> über Protokolle wie <strong>SMB</strong> (Windows) oder <strong>NFS</strong> (Unix/Linux) freigibt. Ideal für gemeinsame Dateiablagen vieler Clients.</li>
|
|
<li><strong>SAN (Storage Area Network):</strong> Eigenes Hochleistungs-Speichernetz, das <em>blockbasierten</em> Speicher (LUNs) bereitstellt - per <strong>Fibre Channel</strong> oder <strong>iSCSI</strong> (Blockzugriff über IP). Servern erscheint der Speicher wie eine lokale Platte. Aufwendig und teuer, aber sehr leistungsfähig und skalierbar (z. B. für Datenbanken, Virtualisierung).</li>
|
|
</ul>
|
|
<p><strong>Block- vs. Dateizugriff:</strong> Blockspeicher (DAS, SAN) liefert rohe Blöcke, die der Host selbst partitioniert und formatiert. Dateispeicher (NAS) stellt fertige Dateien und Ordner über Freigaben bereit.</p>
|
|
<p class="merksatz"><strong>Merksatz:</strong> DAS = lokal am Host, NAS = Dateien übers Netz, SAN = Blöcke über ein eigenes Speichernetz.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>RAID-Level im Überblick</h2>
|
|
<p>RAID (Redundant Array of Independent Disks) fasst mehrere Platten zu einem Verbund zusammen, um <strong>Leistung</strong> und/oder <strong>Ausfallsicherheit</strong> zu erhöhen. Wichtig: RAID ist <em>kein</em> Backup - es schützt vor Plattenausfall, nicht vor Löschen, Viren oder Standortverlust.</p>
|
|
<ul class="key-list">
|
|
<li><strong>RAID 0 (Striping):</strong> Daten werden auf mehrere Platten verteilt. Hohe Leistung, volle Kapazität, aber <em>keine</em> Redundanz - schon eine defekte Platte zerstört alle Daten. Min. 2 Platten.</li>
|
|
<li><strong>RAID 1 (Spiegelung):</strong> Identische Kopie auf zwei Platten. Eine Platte darf ausfallen. Nur die halbe Bruttokapazität nutzbar. Min. 2 Platten.</li>
|
|
<li><strong>RAID 5 (Striping + verteilte Parität):</strong> Eine Platte darf ausfallen. Nutzkapazität = (n-1) Platten. Guter Kompromiss aus Kapazität und Sicherheit. Min. 3 Platten.</li>
|
|
<li><strong>RAID 6 (Striping + doppelte Parität):</strong> Zwei Platten dürfen gleichzeitig ausfallen. Nutzkapazität = (n-2) Platten. Sicherer als RAID 5, etwas langsamer beim Schreiben. Min. 4 Platten.</li>
|
|
<li><strong>RAID 10 (1+0, Spiegelung + Striping):</strong> Kombiniert die Geschwindigkeit von RAID 0 mit der Sicherheit von RAID 1. Nur die halbe Kapazität, dafür sehr schnell und ausfallsicher. Min. 4 Platten.</li>
|
|
</ul>
|
|
<p><strong>Typische Einsatzszenarien:</strong> RAID 1 für Systemplatten kleiner Server; RAID 5 für Datei-/Archivspeicher mit gutem Kapazitäts-/Sicherheitsverhältnis; RAID 6 für große Verbünde mit vielen Platten; RAID 10 für leistungshungrige Datenbanken und virtuelle Maschinen; RAID 0 nur für unkritische Daten, bei denen Tempo zählt.</p>
|
|
<p class="merksatz"><strong>Merksatz:</strong> 0 = Tempo ohne Schutz, 1 = Spiegel, 5 = eine Parität (1 Platte darf gehen), 6 = doppelte Parität (2 Platten dürfen gehen), 10 = Spiegel + Tempo.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Prüfungsmodus</h2>
|
|
<p>Dieser ProtocolCheck führt dich durch die wichtigsten AP1-Aspekte dieses Themas. Du kannst Antworten prüfen, Fragen überspringen und bekommst am Ende eine Auswertung nach Kategorie.</p>
|
|
</section>
|
|
|
|
<section class="finalflux-test" data-finalflux-test aria-live="polite">
|
|
<div class="test-meta">
|
|
<span data-question-counter>Frage 1</span>
|
|
<span data-score-counter>0 richtig</span>
|
|
</div>
|
|
<div class="category-block">
|
|
<p class="eyebrow">Kategorie</p>
|
|
<h2 data-category-title>Storage Systeme</h2>
|
|
<p data-category-hint>AP1-Training</p>
|
|
</div>
|
|
<div class="question-card">
|
|
<h3 data-question-text></h3>
|
|
<div data-answer-options class="answer-options"></div>
|
|
<div data-answer-feedback class="fluxcheck-result"></div>
|
|
</div>
|
|
<div class="test-actions">
|
|
<button type="button" data-check-answer>Antwort prüfen</button>
|
|
<button type="button" data-skip-question class="secondary">Überspringen</button>
|
|
<button type="button" data-next-question class="secondary" disabled>Weiter</button>
|
|
</div>
|
|
</section>
|
|
|
|
<section data-test-result class="finalflux-panel" hidden>
|
|
<h2>Auswertung</h2>
|
|
<p data-result-summary></p>
|
|
<ul data-category-summary class="key-list"></ul>
|
|
<div class="finalflux-actions">
|
|
<button type="button" data-restart-test>Test neu starten</button>
|
|
<a href="/finalflux">Zurück zur Übersicht</a>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<script src="/js/finalflux-test.js" data-questions-src="/finalflux/questions/systemintegration_storage.json" defer></script>
|
|
</body>
|
|
</html>
|