SQimage.sh
SQimage.sh
je obslužný skript pro zálohování disklessové infrastruktury a generování obrazů snapshotovaných vrstev (plain sqimage), s nimiž pracuje autonomní Half-Diskless.
Popis
Skript SQimage.sh
pracuje stejně jako SQcrypto.sh
a skript crypto se souborem changelog
, publikovaným přes HTTP.
changelog
Snapshot vrstvy
Po vytvoření snapshotu vygeneruje SQimage.sh
tzv. plain sqimage, který umístí do úložiště sdíleného přes HTTP a zapíše do souboru changelog
záznam s informací, z čeho tenhle soubor vytvořil.
; L <md5sum> <vrstva> <snapshot>
Layer – Signalizuje, že jde o snapshot jedné vrstvy
- <md5sum>
- je název (MD5 kontrolní součet) nového souboru
- <vrstva>
- je identifikátor vrstvy, např.
1111/crypto
- <snapshot>
- je název snapshotu, např.
crypto_2023-12-23_19.18
Sloučené vrstvy
; S <md5sum> <zdroj_A> <zdroj_B> ...
- <md5sum>
- je název (MD5 kontrolní součet) nového souboru
- <zdroj_X>
- jsou identifikátory vrstev, použitých k vytvoření sendviče. Identifikátory mohou vypadat takto:
- sdílená vrstva, např.
1111/crypto
- sdílená vrstva připojená přes NFS, např.
172.0.0.1:/srv/1111/crypto
(použitá IPv4 adresa stroje musí přístupná) - snapshot, např.
crypto_2023-12-23_19.18
- sqimage je MD5 sqimage souboru z úložiště (ZATÍM NEIMPLEMENTOVÁNO), přičemž nehraje roli, jde-li o kryptovaný sqimage, nebo jeho plain verzi.
- sdílená vrstva, např.
Aktualizace vrstvy
Pokud crypto během zavádění zjistí, že jde o kryptovaný soubor, stáhne dekapitovanou, zaheslovanou hlavičku a pokud se mount podaří, zkontroluje zda-li changelog
neobsahuje záznam s informací, který soubor nahradil:
; C <new> <old>
- C
- Signalizuje, že byl soubor <old> nahrazen souborem <new>
- <new>
- je název (MD5 kontrolní součet) nového souboru
- <old>
- je název (MD5 kontrolní součet) původního souboru
A pokud takový záznam najde a soubor <old> v lokálním úložišti existuje, tak ho rovnou odstraní.
Záznam o aktualizaci vrstvy vkládá SQimage.sh, po vygenerování nového snapshotu. A SQcrypto.sh po odeslání zakryptované verze plain sqimage do HTTP úložiště.