it:jednodeskove-pocitace:raspberry-pi-5-domaci-server

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

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 Nosekit: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://github.com/robertalexa/rpi-raid1-root-partition/blob/main/README.md
 +  * https://www.jeffgeerling.com/blog/2020/building-fastest-raspberry-pi-nas-sata-raid
 +  * https://gist.github.com/leandrofilipe/f9636be272f97d414652ce1f21e6b1f4
  
 ==== 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. +  * `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=/dev/md1` – říká jádru, že root filesystem je na RAIDu. +  * `root=/dev/md1` – říká jádru, že root filesystem je na RAIDu. 
-* `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é**, tedy běží pouze s jedním diskem.
 +
 +✅ **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 /proc/mdstat 
 +</code>
 +
 +**Výstup:**
 +<code>
 +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
 +</code>
 +
 +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
 +</code>
 +
 +**Výstup:**
 +<code>
 +NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
 +nvme0n1     259:   0   1,8T  0 disk  
 +├─nvme0n1p1 259:1    0   512M  0 part  
 +│ └─md0       9:   0 511,9M  0 raid1 /boot/firmware
 +└─nvme0n1p2 259:2    0   1,8T  0 part  
 +  └─md1       9:   0   1,8T  0 raid1 /
 +nvme1n1     259:   0   1,8T  0 disk  
 +├─nvme1n1p1 259:4    0   512M  0 part  
 +└─nvme1n1p2 259:5    0   1,8T  0 part  
 +</code>
 +
 +=== Detaily RAID pole ===
 +
 +Zkontrolujeme aktuální stav RAID pole:
 +
 +<code bash>
 +mdadm --detail /dev/md0
 +</code>
 +
 +<code>
 +/dev/md0:
 +           Version : 0.90
 +     Creation Time : Sat Feb 15 16:52:29 2025
 +        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
 +       Persistence : Superblock is persistent
 +
 +       Update Time : Sat Feb 15 19:15:46 2025
 +             State : clean, degraded 
 +    Active Devices : 1
 +   Working Devices : 1
 +    Failed Devices : 0
 +     Spare Devices : 0
 +
 +Consistency Policy : resync
 +
 +    Number   Major   Minor   RaidDevice State
 +           259        1        0      active sync   /dev/nvme0n1p1
 +                    0        1      removed
 +</code>
 +
 +Stejným způsobem můžeme zkontrolovat i hlavní RAID oddíl:
 +
 +<code bash>
 +mdadm --detail /dev/md1
 +</code>
 +
 +**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 /dev/nvme1n1p1
 +mdadm --add /dev/md1 /dev/nvme1n1p2
 +</code>
 +
 +Po přidání zkontrolujeme stav RAIDu:
 +
 +<code bash>
 +cat /proc/mdstat 
 +</code>
 +
 +**Výstup ukazuje, že RAID začíná synchronizaci:**
 +<code>
 +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_]
 +      [=>...................]  recovery =  5.3% (104572928/1952854080) finish=149.1min speed=206517K/sec
 +      bitmap: 4/4 pages [64KB], 65536KB chunk
 +</code>
 +
 +=== 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 /proc/mdstat
 +</code>
 +
 +✅ **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, systém rozhodne, **který disk bude v RAIDu upřednostněn**, a to na základě několika faktorů.
 +
 +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)**, která uchovávají informace o změnách v poli.  
 +**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 /dev/nvme0n1p2 /dev/nvme1n1p2
 +</code>
 +
 +**Výstup bude obsahovat řádky podobné tomuto:**
 +
 +<code>
 +/dev/nvme0n1p2:
 +           Events : 405
 +
 +/dev/nvme1n1p2:
 +           Events : 392
 +</code>
 +
 +✅ **Disk s vyšším číslem „Events“ je považován za aktuální.**  
 +Pokud se **Event Count neshoduje**, mdadm automaticky označí **starší disk jako neaktuální** a vyřadí ho z RAID pole.
 +
 +=== 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
 +
 +
  
  • it/jednodeskove-pocitace/raspberry-pi-5-domaci-server.1739644291.txt.gz
  • Poslední úprava: 2025/02/15 18:31
  • autor: Petr Nosek