Zálohování systémového disku v Linuxu
Zálohování produkčního systému jako je notebook, stolní počítač, nebo server, je velmi důležitá funkce a základní vlastnost úspěšné a spolehlivé infrastruktury. Každý zkušený IT odborník to moc dobře ví. A je to nutné, i když to stojí čas, potřebné místo na úložištích a často jsou s tím spojené i vyšší náklady. Na linuxu je situace se zálohováním systémového disku o něco více komplikovaná, než na MS Windows. Ve výsledku tak ale máme větší možnosti volby a více si můžeme zálohování pod Linuxem přizpůsobit. Navíc je to samozřejmě zdarma. Jediná cena, kterou za toto řešení zaplatíme, je naše investice času, kterou do konfigurace a nastavení zálohování vložíme.
Program Timeshift a jeho omezení
Na Linuxu je dobře známý program TimeShift, který má jedno nepříjemné omezení. Tímto omezením je, že vyžaduje pro zálohování lokální diskové oddíly se souborovým systímem ext4. TimeShift používá pod kapotou rsync a hard linky a proto potřebuje pevně ukotvený souborový systém. To znaméná, že nepodporuje vzdálený souborový systém jako třeba samba, NFS. Pro program TimeShift v klasickém scénáři potřebujeme mít k dispozici diskový oddíl, který má systém souborů ext4. Mám za to, že to může být jakékoliv fyzické zařízení. Externí, interní. My se pokusíme systému Linux domluvit a podstrčíme programu TimeShift SAN virtuální fyzické zařízení s iSCSI prokokolem.
Vytvoříme ze Synology SAN úložiště
Ve webové konfiguraci zařízení Synology si vytvoříme nový SAN Uzel, LUN, které najdeme v nastavení pod záložkou SAN Manager. Nastaveníme Thin provisioning pro přidělením prostoru. Dále zvolíme iSCSI protokol, měl by být jako jediný možný. Povolíme čtení a zápis pro vše. Potvrdíme nastavení a necháme vzniknout novému SAN uzlu. Následující obrázky níže ukazují tento popsaný proces.
Nastavení zálohovaného zařízení
Zařízení s Linuxem, které budeme zálohovat musí splňovat některé závislosti.
V první řade potřebujeme mít na tomto stroji k dispozici podporu pro iSCSI. Na mém Kubuntu, což je vlastně derivát Ubuntu Linuxu, což je zase derivát Debian Linuxu, nainstalujeme balíček pomocí systému balíčků apt.
sudo apt-get install open-iscsi
Po instalaci se ihned přesuneme ke konfiguraci a nastavíme inicializaci IQNode pomocí editoru. Já používám editor nano.
Upravíme konfiguraci v následujícím souboru:
nano /etc/iscsi/initiatorname.iscsi
a výsledek bude vypadat nějak takto. Vy použijete vlastní hodnotu z webového rozhraní, kterou do přiřadíte proměnné InitiatorName.
## DO NOT EDIT OR REMOVE THIS FILE!
## If you remove this file, the iSCSI daemon will not start.
## If you change the InitiatorName, existing access control lists
## may reject this initiator. The InitiatorName must be unique
## for each iSCSI initiator. Do NOT duplicate iSCSI InitiatorNames.
#InitiatorName=iqn.2004-10.com.ubuntu:01:a2da62a8e694
InitiatorName=iqn.2000-01.com.synology:nas.default-target.5c9575c805e
Další konfigurační soubor, který upravíme bude tento:
nano /etc/iscsi/iscsid.conf
kde nastavíme tyto tři parametry. Měly by již v souboru být, takže je jen odkomentujete (odstraníte křížek na začátku řádky) a doplníte požadované informace:
node.leading_login = Yes
node.session.auth.username_in = <username>
node.session.auth.password_in = <heslo>
Pokud máme nastavené konfigurační soubory, můžeme démona služby iSCSI restartovat, aby se vše znova načetlo. To provedeme příkazem:
systemctl restart iscsi.service
Je čas vytvořit trvalé iSCSI spojení
Nyní vytvoříme trvalé iSCSI spojení mezi našimi dvěma stroji.
Příkazy níže můžete pro testování spustit přímo z konzole, ale bude dobré je dát později někam, kde se vám budou automaticky spouštět při startu systému, aby se připojení vždy při startu systému aktivovalo. Kam příkazy umístit? To záleží na tom, jakou distribuci Linuxu používáte. Já jsme pro jednoduchost zvolil soubor .profile v cestě ~/.profile. Zároveň IP Adresu změníme na náš uzel SAN.
Takže u mě:
nano ~/.profile
A vložit tento obsah
iscsiadm -m discovery -t sendtargets -p 192.168.79.11
iscsiadm -m node -o show
iscsiadm -m node --login
Po ručním spuštění příkazů, nebo po restartu systému by mělo být připojení aktivní a bude to jasně patrné ve webovém rozhraní na Synology. Po úspěšném připojení se v přehledu SAN Manager zobrazí aktivní objekty LUN a iSCSI.
Kontrola trvalého iSCSI spojení
Pokud šlo vše podle plánu, tak při spuštění příkazu
lsblk -a
vidíme zařízení, které má naázev např. sda, nebo sdb, nebo jiné podobné. Kapacita by měla být ta, kterou jsme zvolili při konfiguraci. U mě je to 128GB.
Příprava souborového systému
Finišujeme. Nesmíme toto zařízení zapomenou naformátovat systémem ext4. V opačném případěnám na nás bude TimeShift křičet, že nová jednotka pro zálohování nemá žádný Linuxový oddíl!
Tento příkaz naformátuje existující oddíl do požadovaného souborového systému:
sudo mkfs.ext4 /dev/sdb
Můžeme zálohovat!
Spustíme program TimeShift, přejdeme do nastavení umístění a měli bychom vidět naše nově připojené úložiště s názvem Storage SYNOLOGY s oddílem sdb (v mém případě), které má 128GB.
Po požadovaném nastavení ostatních parametrů zahajuji zálohování a zobrazí se okno níže.
Po pár minutách se zobrazí půpvdní okno a přibyl nám nový řádek s údaji o zachyceném stavu. jedná se o vytvořený otisk aktuálního souborového systému v určitém čase. Tím jsme úspěšně zazálohovali systémovou Linuxovou jednotku do externího úložiště pomocí programu TimeShift.
Umístění zálohy v zařízení Synology
V případě, že se budete zajímat, kde v zařízení Synology najdete samotný imagese zálohou, najdete jej v následujícím umístění.
/volume1/@iSCSI/LUN/BLUN/uuid
Obnova zachyceného stavu
V případě obnovy systému po havárii budeme postupovat velmi podobně. Havarovaný systém dostaneme do nějaké základní funkčnosti jako při čisté instalaci, aktivujeme připojení k iSCSI a obnovíme pomocí programu TimeShift požadované zachycení. Tím se systém obnoví přesně do stavu, ve kterém byl v době zachycení a v případě, že nám odpovídá aktuálnímu stavu složka /home, bude náš systém obnoven do stavu, který odpovídá záloze.
Další zajímavé informace
Jak je vidět, není takové nastavení úplně triviální, nicméně se jedná o řešení, které je velmi universální pro široké spektrum zařízení a pro různé scénáře velikosti infrastruktury. Podobné řešení můžete použít jak pro vlastní notebook, tak ale také pro datové centrum v menší firmě. Při miminálních úpravách je toto řešení velmi flexibilní.
Zároveň nezapomínejme na to, že program TimeShift nezálohuje ve výchozím nastavení soukromé složky v /home. Zálohování soukromých složek Vám ukážu v následujícím článku, který připravuji.