Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
it:jednodeskove-pocitace:raspberry-pi-5-domaci-server [2025/02/15 18:31] – [Vytvoření partition na novém disku před RAIDem] Petr Nosek | it:jednodeskove-pocitace:raspberry-pi-5-domaci-server [2025/02/16 00:07] (aktuální) – [Přidání disku do RAID] Petr Nosek | ||
---|---|---|---|
Řádek 719: | Řádek 719: | ||
===== Konfigurace softwarového RAIDu – zrcadlení ===== | ===== Konfigurace softwarového RAIDu – zrcadlení ===== | ||
+ | |||
+ | Při konfiguraci jsem vycházel z těchto návodů, přičemž ani jeden není dokonalý pro moji situaci a musel jsem si návody přízpůsobit. Uvádím je pro úplnost jako zdroj: | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
==== Adresace disků ==== | ==== Adresace disků ==== | ||
Řádek 832: | Řádek 838: | ||
✅ **Vysvětlení: | ✅ **Vysvětlení: | ||
- | * `missing` znamená, že druhý disk zatím není připojen, RAID poběží pouze s jedním diskem. | + | |
- | * `--metadata=0.90` je doporučeno pro zaváděcí oddíly. | + | * `--metadata=0.90` je doporučeno pro zaváděcí oddíly. |
Následujícím krokem je vytvoření souborového systému na nově vytvořeném RAIDu. | Následujícím krokem je vytvoření souborového systému na nově vytvořeném RAIDu. | ||
Řádek 925: | Řádek 931: | ||
✅ **Vysvětlení: | ✅ **Vysvětlení: | ||
- | * `root=/ | + | |
- | * `rootwait rootdelay=10` – umožňuje systému počkat na sestavení RAIDu. | + | * `rootwait rootdelay=10` – umožňuje systému počkat na sestavení RAIDu. |
- | * `fsck.repair=yes` – umožní automatickou opravu souborového systému při bootu. | + | * `fsck.repair=yes` – umožní automatickou opravu souborového systému při bootu. |
=== Přidání RAID modulů do initramfs === | === Přidání RAID modulů do initramfs === | ||
Řádek 965: | Řádek 971: | ||
**Nyní jsem mohl Raspberry restartovat. Důležitá věc, musel jsem primární disk - tedy disk s RAID přesunout do slotu SSD2 na desce. Dokud jsem to neudělal, boot se nepodařil, systém byl zmatený. Tento krok je klíčový - prohodit disky ve slotech.** | **Nyní jsem mohl Raspberry restartovat. Důležitá věc, musel jsem primární disk - tedy disk s RAID přesunout do slotu SSD2 na desce. Dokud jsem to neudělal, boot se nepodařil, systém byl zmatený. Tento krok je klíčový - prohodit disky ve slotech.** | ||
+ | |||
+ | |||
+ | ==== Přidání disku do RAID ==== | ||
+ | |||
+ | Po prohození disků ve slotech (disk s nastaveným RAIDem musí být ve slotu **SSD2**) a nabootování systému je možné přidat druhý disk zpět do RAID pole. | ||
+ | Stejný postup se použije i v případě, že se nějaký disk odpojí a pole je **degradované**, | ||
+ | |||
+ | ✅ **Klíčové pravidlo: | ||
+ | **Primární disk musí být ve slotu SSD2, aby systém správně nabootoval.** | ||
+ | |||
+ | === Stav RAID pole po nabootování === | ||
+ | |||
+ | Z výpisu je vidět, že v RAID poli je zatím pouze jeden disk: | ||
+ | |||
+ | <code bash> | ||
+ | cat / | ||
+ | </ | ||
+ | |||
+ | **Výstup: | ||
+ | < | ||
+ | Personalities : [raid1] [linear] [raid0] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid1 nvme0n1p1[0] | ||
+ | 524224 blocks [2/1] [U_] | ||
+ | | ||
+ | md1 : active raid1 nvme0n1p2[0] | ||
+ | 1952854080 blocks super 1.2 [2/1] [U_] | ||
+ | bitmap: 4/4 pages [64KB], 65536KB chunk | ||
+ | </ | ||
+ | |||
+ | Nově připojený disk **nvme1n1** zatím není součástí RAID pole. | ||
+ | |||
+ | === Výpis připojených disků === | ||
+ | |||
+ | Podíváme se na aktuální stav připojených disků: | ||
+ | |||
+ | <code bash> | ||
+ | lsblk | ||
+ | </ | ||
+ | |||
+ | **Výstup: | ||
+ | < | ||
+ | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | ||
+ | nvme0n1 | ||
+ | ├─nvme0n1p1 259:1 0 | ||
+ | │ └─md0 | ||
+ | └─nvme0n1p2 259:2 0 | ||
+ | └─md1 | ||
+ | nvme1n1 | ||
+ | ├─nvme1n1p1 259:4 0 | ||
+ | └─nvme1n1p2 259:5 0 | ||
+ | </ | ||
+ | |||
+ | === Detaily RAID pole === | ||
+ | |||
+ | Zkontrolujeme aktuální stav RAID pole: | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --detail /dev/md0 | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | /dev/md0: | ||
+ | | ||
+ | | ||
+ | Raid Level : raid1 | ||
+ | Array Size : 524224 (511.94 MiB 536.81 MB) | ||
+ | Used Dev Size : 524224 (511.94 MiB 536.81 MB) | ||
+ | Raid Devices : 2 | ||
+ | Total Devices : 1 | ||
+ | | ||
+ | |||
+ | | ||
+ | State : clean, degraded | ||
+ | Active Devices : 1 | ||
+ | | ||
+ | Failed Devices : 0 | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | Consistency Policy : resync | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Stejným způsobem můžeme zkontrolovat i hlavní RAID oddíl: | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --detail /dev/md1 | ||
+ | </ | ||
+ | |||
+ | **Výstup ukazuje, že RAID pole je degradované – chybí druhý disk.** | ||
+ | |||
+ | === Přidání nového disku do RAID pole === | ||
+ | |||
+ | Nyní přidáme nový disk **nvme1n1** do RAID pole: | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --add /dev/md0 / | ||
+ | mdadm --add /dev/md1 / | ||
+ | </ | ||
+ | |||
+ | Po přidání zkontrolujeme stav RAIDu: | ||
+ | |||
+ | <code bash> | ||
+ | cat / | ||
+ | </ | ||
+ | |||
+ | **Výstup ukazuje, že RAID začíná synchronizaci: | ||
+ | < | ||
+ | Personalities : [raid1] [linear] [raid0] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid1 nvme1n1p1[1] nvme0n1p1[0] | ||
+ | 524224 blocks [2/2] [UU] | ||
+ | | ||
+ | md1 : active raid1 nvme1n1p2[2] nvme0n1p2[0] | ||
+ | 1952854080 blocks super 1.2 [2/1] [U_] | ||
+ | [=> | ||
+ | bitmap: 4/4 pages [64KB], 65536KB chunk | ||
+ | </ | ||
+ | |||
+ | === Sledování průběhu synchronizace === | ||
+ | |||
+ | Pro sledování průběhu synchronizace RAID pole můžeme použít: | ||
+ | |||
+ | <code bash> | ||
+ | watch -n 1 cat / | ||
+ | </ | ||
+ | |||
+ | ✅ **RAID nyní probíhá synchronizace a disk bude plně zrcadlen po dokončení procesu.** | ||
+ | |||
+ | |||
+ | === Priorita disků po odpojení a opětovném připojení === | ||
+ | |||
+ | Pokud dojde k **odpojení jednoho disku** a následně jej znovu připojíme, | ||
+ | |||
+ | Nezáleží na tom, **že je disk ve slotu SSD2**, protože po připojení obou disků systém automaticky **vybere ten, který běžel jako poslední aktivní po rozpojení RAIDu**. | ||
+ | |||
+ | === Jak systém určuje, který disk bude upřednostněn? | ||
+ | |||
+ | Systém rozhoduje na základě **poslední aktualizace metadat RAIDu**. Každý disk v RAIDu obsahuje **metadata (superblock)**, | ||
+ | **Klíčový parametr je tzv. Event Count**, což je čítač změn. | ||
+ | |||
+ | ✅ **RAID vybere disk s nejvyšším Event Count jako platný.** | ||
+ | Pokud má jeden disk vyšší Event Count než druhý, systém považuje tento disk za aktuální a použije jej jako primární. | ||
+ | |||
+ | === Jak zjistit, který disk má vyšší Event Count? === | ||
+ | |||
+ | Můžeš si ověřit, který disk má aktuálnější metadata pomocí příkazu: | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --examine / | ||
+ | </ | ||
+ | |||
+ | **Výstup bude obsahovat řádky podobné tomuto:** | ||
+ | |||
+ | < | ||
+ | / | ||
+ | | ||
+ | |||
+ | / | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ✅ **Disk s vyšším číslem „Events“ je považován za aktuální.** | ||
+ | Pokud se **Event Count neshoduje**, | ||
+ | |||
+ | === Co se stane při neaktuálním disku? === | ||
+ | |||
+ | Pokud má jeden z disků nižší Event Count, systém jej při dalším spuštění považuje za **zastaralý** a označí jej jako neaktivní. | ||
+ | RAID pak při připojení tohoto disku provede **resynchronizaci** dat. | ||
+ | |||
+ | Proto je důležité po výpadku disku **zkontrolovat stav RAID | ||
+ | |||
+ | |||