Počítačové sítě/LAB: Zálohování dat (2x disk, RAID, LVM)
Vzhled
Požadavky
[editovat | editovat zdroj]- VirtualBox
- Virtuální PC s instalovaným OS Debian
Zadání
[editovat | editovat zdroj]Úkolem LABu je vytvořit dostatečně bezpečné a zároveň flexibilní řešení pro ukládání dat. Praktické využití je např. v domácím NAS - network attached storage (síťové úložiště).
Úkoly
[editovat | editovat zdroj]- Přidat do virtuálního PC 2 disky
- Na discích nastavit RAID 1
- Na RAID 1 nastavit LVM
- Vytvořit LV "data", "fotky", "hudba"
- Mountovat LV
- Vytvořit snapshot z LV "data", vymazat soubory a obnovit je ze snapshotu
Řešení
[editovat | editovat zdroj]HW příprava disků
[editovat | editovat zdroj]- Ve VirtualBox přidat k virtuálnímu PC disky (Nastavení -> Úložiště -> Přidat pevný disk -> Vytvořit nový disk -> .VDI -> dynamicky alokované -> disk 1 -> Vytvořit)
- To samé pro disk2 (toto odpovídá fyzické instalaci disků do počítače)
- Velikost bude stačit výchozí hodnota (8GB)
Instalace potřebných balíků
[editovat | editovat zdroj]Je třeba nainstalovat balíky mdadm pro konfiguraci a správu RAID a lvm2 pro konfiguraci a správu LVM.
apt-get install -y mdadm lvm2
SW příprava disků
[editovat | editovat zdroj]- Seznam disků
ls /dev | grep sd výpis: sda sda1 sda2 sda5 sdb sdc
- Vytvořit jeden primární diskový oddíl o celkové kapacitě disku na nových discích (v tomto případě jsou to disky sdb a sdc.
fdisk /dev/sdb n<enter> <enter> <enter> <enter> <enter> w<enter>
- Vše nechat na výchozích hodnotách: n - nový, p - primární, 1 - číslo oddílu, první sektor, poslední sektor
- w<enter> uloží změny a ukončí program fdisk
- to samé pro sdc
fdisk /dev/sdc
- Seznam disků
ls /dev | grep sd výpis: sda sda1 sda2 sda5 sdb sdb1 sdc sdc1
Vytvoření RAID 1 pole
[editovat | editovat zdroj]- RAID 1 pole odpovídá zrcadlení - data se ukládají na oba disky, při výpadku jednoho disku jsou tedy uložena na druhém.
mdadm --create PrvniRaid --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 y<enter>
- <enter> je k pokračování vytváření RAID pole, které nebude sloužit pro boot systému
- výpis stavu RAID pole
cat /proc/mdstat
Implementace LVM
[editovat | editovat zdroj]- Vytvořit PV (physical volume)
pvcreate /dev/md/PrvniRaid výpis: Physical volume "/dev/md127" successfully created vypsat všechny PV: pvdisplay
- /dev/md127 je jméno PV
- Vytvořit VG (volume group)
vgcreate vgNAS /dev/md127 výpis: Volume group "vgNAS" successfully created vypsat všechny VG: vgdisplay
- vgNAS je jméno VG
- /dev/md127 je jméno PV (může jich být více), které tvoří VG
- Vytvořit LV (logical volume)
lvcreate --name data --size 1G vgNAS lvcreate --name fotky --size 2G vgNAS lvcreate --name hudba --size 1G vgNAS vypsat všechny LV: lvdisplay
V tomto LABu je použit souborový systém Ext4.
mkfs.ext4 /dev/mapper/vgNAS-data mkfs.ext4 /dev/mapper/vgNAS-fotky mkfs.ext4 /dev/mapper/vgNAS-hudba
Adresářová struktura
[editovat | editovat zdroj]- Vytvořit podadresáře v adresáři /mnt/
mkdir /mnt/data mkdir /mnt/fotky mkdir /mnt/hudba
- Připojit souborové systémy do vytvořených adresářů
mount /dev/mapper/vgNAS-data /mnt/data mount /dev/mapper/vgNAS-fotky /mnt/fotky mount /dev/mapper/vgNAS-hudba /mnt/hudba
- Zápis v souboru /etc/fstab pro automatické připojení po spuštění počítače
echo "/dev/mapper/vgNAS-data /mnt/data ext4 defaults 0 0" >> /etc/fstab echo "/dev/mapper/vgNAS-fotky /mnt/fotky ext4 defaults 0 0" >> /etc/fstab echo "/dev/mapper/vgNAS-hudba /mnt/hudba ext4 defaults 0 0" >> /etc/fstab
- Vytvoření tréningového souboru v adresáři /mnt/data/
echo "ahoj tam!" > /mnt/data/hello-world.txt cat /mnt/data/hello-world.txt výpis: ahoj tam!
- Restartování počítače
reboot
- Listování adresářovou strukturou
ls -R /mnt
Vytvoření snapshotu
[editovat | editovat zdroj]lvcreate --snapshot --size 100M --name snap-data /dev/mapper/vgNAS-data
Změna souboru
[editovat | editovat zdroj]rm /mnt/data/hello-world.txt reboot
Merge snapshotu
[editovat | editovat zdroj]- výpis adresářové struktury a odpojení LV
ls -R /mnt umount /mnt/data
- merge snapshotu do LV
lvconvert --merge /dev/mapper/vgNAS-snap--data
- připojení LV a výpis adresářové struktury
mount /mnt/data ls -R /mnt