Uživatelské nástroje

Nástroje pro tento web


private:poznamky:linux:zfs

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í revizePředchozí verze
Následující verze
Předchozí verze
private:poznamky:linux:zfs [2023/03/03 10:15] – [Instalace Debian 11 - Bullseye] snemecprivate:poznamky:linux:zfs [2025/05/07 19:55] (aktuální) – [Příklad použití clone - obnova souborů k určitému datu] snemec
Řádek 1: Řádek 1:
 +====== ZFS ======
 +
 +ZFSonLinux
 +
 +https://github.com/zfsonlinux/zfs/wiki/FAQ
 +
 +===== Doporučení pro vytváření ZFS device - Read Me 1st =====
 +
 +ZFS Raid - popis\\
 +
 +http://nex7.blogspot.com/2013/03/readme1st.html\\
 +
 +https://constantin.glez.de/2010/06/04/a-closer-look-zfs-vdevs-and-performance/\\
 +
 +**Verze ZFS**\\
 +''cat /sys/module/zfs/version''\\
 +
 +
 +===== Vytvoření zpool =====
 +Zpool je tvořen jen jedním diskem, může se použít např. pro zálohy na USB disk.\\
 +Disky mohou rotovat. 
 +
 +  zpool create -f poolz3bck /dev/sdg
 +
 +  zfs create poolz3bck/backup
 +
 +  zfs set compression=lz4 poolz3bck/backup
 +  
 +===== Odstranění zpool =====
 +
 +<code>
 +zpool destroy poolz3bck
 +</code>
 +
 +
 +==== Vytvoření ZFS pool dle id disků ====
 +''ls -la /dev/disk/by-id''
 +
 +Mapování mezi ID a jménem lze zjistit příkazem ''lsblk''.\\
 +Konkrétně např. pro disk ''sda''\\
 +
 +  lsblk -O /dev/sda
 +
 +===== Vytvoření raid pool =====
 +
 +Vytvoření **mirror** pool:\\
 +<code>
 +zpool create -f vspool mirror 
 +</code>
 +Vytvoření **raidz1** pool:\\
 +
 +<code>
 +zpool create -f vspool raidz1 /dev/disk/by-id/ata-WDC_WD2004FBYZ-01YCBB1_WD-WMC6N0D3UY36 /dev/disk/by-id/ata-WDC_WD2004FBYZ-01YCBB1_WD-WMC6N0D004T6 /dev/disk/by-id/ata-WDC_WD2004FBYZ-01YCBB1_WD-WMC6N0D4Z3LT /dev/disk/by-id/ata-WDC_WD2004FBYZ-01YCBB1_WD-WMC6N0D9SRC6
 +</code>
 +  
 +==== Raid pool pro Proxmox - VS ====
 +
 +https://louwrentius.com/zfs-performance-and-capacity-impact-of-ashift9-on-4k-sector-drives.html\\
 +https://blog.zanshindojo.org/proxmox-zfs-performance/\\
 +
 +**Mirror vdev**\\
 +<code>
 +zpool create vspool01 -o ashift=12 mirror ata-SAMSUNG_MZ7L31T9HBLT-00A07_S6ESNC0TC10583 ata-SAMSUNG_MZ7L31T9HBLT-00A07_S6ESNC0TC10568
 +</code>
 +
 +**Nastavení komprese**\\
 +<code>
 +zfs set compression=lz4 vspool01
 +</code>
 +
 +**Vypnutí atime**\\
 +<code>
 +zfs set atime=off vspool01
 +</code>
 +
 +
 +
 +  
 +===== Vytvoření block device - dataset =====
 +Např. pro Xen VM 
 +
 +
 +<code>
 +zfs create -V 40G vspool/vision
 +  
 +# blocksize 128k  
 +zfs create -V 200G -o compression=lz4 -o volblocksize=128k vspool/VM/vision
 +
 +
 +zfs get volsize,used,volblocksize,usedbydataset,logicalreferenced  vspool/VM/vision
 +
 +</code>
 +==== Rozšíření prostoru pro block device - rozšíření datasetu - resize ====
 +
 +Zjištění stávající velikosti\\
 +
 +  zfs get volsize vspool/vision
 +  
 +Nstavení nvé velikosti  
 +  
 +  zfs set volsize=45G vspool/vision  
 +
 +http://thegeekdiary.com/the-ultimate-zfs-interview-questions/
 +http://zfsonlinux.org/example-zvol.html  
 +
 +Pro rozšíření je nutné vypnout/zapnout virtuální počítač a následně rozšířit prostor prostředky v rámci OS(Windows/Linux)\\
 +
 +Pro **Windows systémy** je diskový prostor možné rozšířit online v rámci nástroje **Správa disků**.\\
 +
 +Pro **Linux systémy** by měl být funkční následující postup:\\
 +
 +  - Vypnout virtuální počítač
 +  - Pomocí nástroje fdisk odstranit obkast pro swap (např. ''fdisk /dev/zvol/vspool/VM/keo'', smazat oblast 2 - pokud existuje swap file)
 +  - Smazat oblast 1 a následně vytvořit novou rozšířenou(větší než původní) oblast. Ponechte prostor pro swap.
 +  - Proveďte kontrolu nové oblasti 1 -> ''e2fsck -f /dev/zvol/vspool/VM/keo-part1''
 +  - Po úspěšně kontrole proveďte resize -> ''resize2fs /dev/zvol/vspool/VM/keo-part1''
 +
 +
 +
 +==== Kopie block device do img souboru ====
 +
 +Block device(např. virtuální PC) lze zkopírovat pomocí příkazu ''%%dd%%''
 +
 +Např.: ''%%dd if=/dev/zvol/vspool/vm/CONFLUENCE of=/mnt/backup/zfstestbck/confluence_dev.img%%''
 +===== ZIL log a L2ARC cache =====
 +
 +http://dtrace.org/blogs/brendan/2008/07/22/zfs-l2arc/\\
 +
 +https://www.svennd.be/tuning-of-zfs-module/\\
 +
 +ZFS with SSDs: Am I asking for a headache in the near future?\\
 +https://forum.proxmox.com/threads/zfs-with-ssds-am-i-asking-for-a-headache-in-the-near-future.25967/\\
 +
 +I have no idea how the lack of TRIM in ZFS affects cache performance in the long term, but all SSDs have automatic garbage collection / maintenance routines, so I think the most important thing is to set aside some decent OP (over provision = unpartitioned space) area, like 15-20% of the capacity, and I reckon everything should be fine.
 +
 +On 250 GB TLC drives, I would leave about 40-50 GB unpartitioned, so partition table would look like this:
 +- 10 GB SWAP (mirrored on other drive)
 +- 10 GB ZIL (mirrored on other drive)
 +- 180 GB L2ARC (striped with other drive) 
 +
 +
 +  
 +Používaji se SSD disky. Pro ZIL log stačí menší prostor ideálně miror, pro L2ARC cache nemirorovaný.\\
 +
 +SSD disky se rozdělí na partition. Např pro 128GB SSD se nechá 8GB pro log a zbytek pro cache.\\
 +
 +
 +  zpool add vspool log mirror /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1 /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1
 +  zpool add vspool cache /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2 /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2
 +
 +Výsledek pak vypadá podobně jako na výpisu:
 +
 +  debian:~# zpool status
 +  pool: vspool
 +  state: ONLINE
 +  scan: resilvered 0 in 0h33m with 0 errors on Tue May 17 14:41:08 2016
 +  config:
 +       NAME                                                     STATE     READ WRITE CKSUM
 +        vspool                                                   ONLINE               0
 +          mirror-0                                               ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8           ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C           ONLINE               0
 +        logs
 +          mirror-1                                               ONLINE               0
 +            ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1  ONLINE               0
 +            ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1  ONLINE               0
 +        cache
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2    ONLINE               0
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2    ONLINE               0
 +  errors: No known data errors
 +  
 +===== Mount =====
 +
 +Mount zfs pool.
 +
 +Nastavení mountpointu a zároveň připojení\\  
 +<code>zfs set mountpoint=/mnt/zfspool vspool/constainers/skolawp</code>
 +  
 +Připojení k již existujícímu mountpointu\\  
 +<code>zfs mount vspool/constainers/skolawp</code>
 +
 +
 +  
 +
 +===== Quota =====
 +
 +https://linuxhint.com/setup-zfs-quotas-reservations/
 +
 +Existují dvě možnosti jak nastavit quotu.
 +
 +**Quota** - do celkové velikosti se započítavají snapshoty\\
 +
 +**Refquota** - započítává se jen místo obsazené daty (ne snapshoty)\\
 +
 +<code>
 +zfs get refquota,quota vspool/containers/skolawp
 +
 +zfs set quota=20G vspool/containers/skolawp
 +zfs get quota vspool/containers/skolawp
 +
 +zfs set refquota=15G vspool/containers/skolawp
 +zfs get refquota vspool/containers/skolawp
 +</code>
 +
 +
 +Pomocí quoty jsou omezeny velikosti LXC kontejnerů v Proxmoxu - např. jira, confluence, bamboo
 +
 +
 +
 +<WRAP left round important 100%>
 +Pokud se vyčerpá nastavený limit, není možné mazat soubory a odstraňovat adresáře.\\
 +Nikdy nezkoušejte zmenšit velikost.
 +</WRAP>
 + 
 +===== zfSnap - Zálohování pomocí snashotů =====
 +
 +zfs backup - zfSnap\\
 +
 +
 +Je použitý externí skrip zfSnap\\
 +https://github.com/zfsnap/zfsnap/wiki/zfSnap
 +
 +Pro Debian a Ubuntu existuje balíček ''zfsnap''
 +
 +  apt-get install zfsnap
 +
 +''%%zfSnap%%'' vytváří standardní snapshoty pomocí příkazu ''%%zfs snapshot%%''
 +např: ''%%zfs snapshot tank/test@tuesday%%''
 +
 +<code>
 +0 8-22/1 * * *  /usr/sbin/zfSnap -a 1d poolz1/VM/BITBUCKET -a 1d poolz1/VM/CONFLUENCE -a 1d poolz1/VM/VSSQL01 -a 1d poolz1/VM/VALKYRA -a 1d poolz1/VM/HPLAPP01 -a 1d poolz1/VM/HPLAPP02 -a 1d poolz1/VM/BAMBOO -a 1d poolz1/VM/JIRA
 +0 23 * * 1-5  /usr/sbin/zfSnap -a 2w poolz1/VM/BITBUCKET -a 2w poolz1/VM/CONFLUENCE -a 2w poolz1/VM/VSSQL01 -a 2w poolz1/VM/VALKYRA -a 2w poolz1/VM/HPLAPP01 -a 2w poolz1/VM/HPLAPP02 -a 2w poolz1/VM/BAMBOO -a 2w poolz1/VM/JIRA
 +0 23 * * 6  /usr/sbin/zfSnap -a 2m poolz1/VM/BITBUCKET -a 2m poolz1/VM/CONFLUENCE -a 2m poolz1/VM/VSSQL01 -a 2m poolz1/VM/VALKYRA -a 2m poolz1/VM/HPLAPP01 -a 2m poolz1/VM/HPLAPP02 -a 2m poolz1/VM/BAMBOO -a 2m poolz1/VM/JIRA
 +45 23 1 * *  /usr/sbin/zfSnap -a 1y poolz1/VM/BITBUCKET -a 1y poolz1/VM/CONFLUENCE -a 1y poolz1/VM/VSSQL01 -a 1y poolz1/VM/VALKYRA -a 1y poolz1/VM/HPLAPP01 -a 1y poolz1/VM/HPLAPP02 -a 1y poolz1/VM/BAMBOO -a 1y poolz1/VM/JIRA
 +0 1 * * *  /usr/sbin/zfSnap -d
 +10 */1 * * *  /usr/local/sbin/zxfer -dFkPv -g 376 -R poolz1/VM poolz3bck
 +</code>
 +
 +===== Smazání všech snapshotů =====
 +
 +https://htpcbuildguide.com/eliminate-zfs-auto-snapshots-on-certain-zfs-filesystems-and-delete-all-snapshots/\\
 +
 +  ### s parametrem n se provede test - nedojde ke smazání 
 +  zfs destroy -rnv data/SystemBackups@%
 +  
 +  zfs destroy -rv data/SystemBackups@%
 +
 +===== Obnova ze snapshotu =====
 +
 +Lze použít buď příkaz **rollback** nebo **clone**
 +
 +Pro obnovu je ideální použít **clone** a **promote**
 +
 +
 +Po naklonování snapshotu se otestuje funkčnost(dostupná data, funkční VS). Pokud je vše v pořádku tak se může provést **promote**\\
 +To má za následek, že vznikne druhý dataset.
 +
 +**DODĚLAT -UPRAVIT**
 +
 +https://vnugget.com/oracle-solaris/understanding-zfs-clone/
 + 
 +
 +==== Rolback ====
 +
 +**POZOR**, rollback snapshotu se vrátí do stavu pořízení snapshotu. Časově následující snapshoty jsou smazány. 
 +
 +  zfs rollback -r vspool/VM/srv01@2016-10-13_20.26.26--1d
 +
 +==== Clone, promote, rename ====
 +
 +  zfs clone vspool/vm/FI-SYS-DISK@2016-11-21_13.31.16--1d vspool/vm/FI-SYS-DISK_clone01
 +  
 +<code>
 +debian:/etc/xen# zfs list -t all|more
 +NAME                                                  USED  AVAIL  REFER  MOUNTPOINT
 +vspool                                                309G   366G    96K  /vspool
 +vspool/vm                                             309G   366G    96K  /vspool/vm
 +vspool/vm/FI-SYS-DISK                                 155G   520G   152G  -
 +vspool/vm/FI-SYS-DISK@2016-11-21_13.18.38--1d            0      -   152G  -
 +vspool/vm/FI-SYS-DISK@2016-11-21_13.28.36--1d        5.52M      -   152G  -
 +vspool/vm/FI-SYS-DISK@2016-11-21_13.30.28--1d        2.48M      -   152G  -
 +vspool/vm/FI-SYS-DISK@2016-11-21_13.31.16--1d        12.1M      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone                           153G   366G   152G  -
 +vspool/vm/FI-SYS-DISK_clone@2016-11-21_13.16.51--1d   724M      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone01                         477M   366G   152G  -
 +</code>
 +
 +Byl vytvořen zapisovatelný snapshot ''vspool/vm/FI-SYS-DISK_clone01'', nyní je možné zkontrolovat jestli se na něm nachází očekávaná data. Pokud se jedná jako v tomto případě o disk virtuálního serveru, lze snapshot standardně použít v konfiguračním souboru xenu jako virtuální disk.
 +
 +  disk = [ 'phy:/dev/zvol/vspool/vm/FI-SYS-DISK_clone01,ioemu:hda,w']
 +
 +Jestliže jsou na disku očekávaná data, lze použít příkaz ''promote'' a převést do stavu běžného zvool.
 +
 +<code>
 +zfs promote vspool/vm/FI-SYS-DISK_clone01
 +</code>
 +   
 +Pokud klon nebyl proveden ze správného snapshotu - na disku nejsou požadovaná data je možné klon smazat příkazem   
 +   
 +<code>
 +zfs destroy vspool/vm/FI-SYS-DISK_clone01
 +</code>
 +   
 +<code>
 +debian:/etc/xen# zfs list -t all|more
 +NAME                                                    USED  AVAIL  REFER  MOUNTPOINT
 +vspool                                                  309G   366G    96K  /vspool
 +vspool/vm                                               309G   366G    96K  /vspool/vm
 +vspool/vm/FI-SYS-DISK                                   155G   520G   152G  -
 +vspool/vm/FI-SYS-DISK_clone                             153G   366G   152G  -
 +vspool/vm/FI-SYS-DISK_clone@2016-11-21_13.16.51--1d     724M      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone01                          1.11G   366G   152G  -
 +vspool/vm/FI-SYS-DISK_clone01@2016-11-21_13.18.38--1d      0      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone01@2016-11-21_13.28.36--1d  5.52M      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone01@2016-11-21_13.30.28--1d  2.48M      -   152G  -
 +vspool/vm/FI-SYS-DISK_clone01@2016-11-21_13.31.16--1d  11.7M      -   152G  -
 +</code>
 +
 +Po provedení ''promote'' je možné přejmenovat souborový systém zfs tak aby se jmenoval stejně jako před použitím clonu.
 +
 +  zfs rename vspool/vm/FI-SYS-DISK vspool/vm/FI-SYS-DISK_old
 +  zfs rename vspool/vm/FI-SYS-DISK_clone vspool/vm/FI-SYS-DISK_old01
 +  zfs rename vspool/vm/FI-SYS-DISK_clone01 vspool/vm/FI-SYS-DISK
 +  
 +==== Příklad použití clone, promote a rename pro KEO ====
 +
 +Po výpadku el. nenastartovala postrges SQL databáze.\\
 +Obnovil jsem server ze snapshotu cca 1hod před výpadkem el.
 +
 +Výpis příkazů:\\
 +
 +<code>
 +zfs clone vspool/VM/keo@2021-08-25_08.00.01--2d vspool/VM/keo-clone
 +
 +# po overeni funkcnosti(musi se upravit xen cfg soubor) nasleduje promote
 +zfs promote vspool/VM/keo-clone
 +
 +#prejmenovani puvodniho souboru na keo-bad
 +zfs rename vspool/VM/keo vspool/VM/keo-bad
 +
 +#prejmenovani clone souboru na puvodni nazev keo
 +zfs rename vspool/VM/keo-clone vspool/VM/keo
 +
 +#smazání poškozeného souboru - keo-bad
 +zfs destroy -r vspool/VM/keo-bad
 +
 +</code>
 +
 +==== Příklad použití clone - obnova souborů k určitému datu ====
 +
 +**Blokové zařízení - Proxmox VS**
 +
 +V příkladu je popsána obnova souboru uloženého na sdíleném NTFS disku.\\
 +
 +<code>
 +#Vyber pozadovaneho snapshotu
 +zfs list -t all|grep props|grep server02
 +
 +#Vybran snapshot z 2025-04-30_02.00.01
 +backup/props/server02/vm-100-disk-0@2025-04-30_02.00.01--2w
 +
 +#Clone snapshotu
 +zfs clone backup/props/server02/vm-100-disk-0@2025-04-30_02.00.01--2w backup/props/server02/vm-100-disk-0_CLONE 
 +
 +#Pripojeni - mount Clone device
 +mount /dev/zvol/backup/props/server02/vm-100-disk-0_CLONE-part2 /mnt/zvol
 +
 +#Vyber pozadovaneho souboru a kopie napr. do slozky /home
 +root@bcksrv01:/# ls -la /mnt/zvol/
 +total 3670149
 +drwxrwxrwx 1 root root      28672 Apr 16 16:18  .
 +drwxr-xr-x 4 root root       4096 May  7 21:40  ..
 +drwxrwxrwx 1 root root       4096 Jan  6 17:23 '$Recycle.Bin'
 +-rwxrwxrwx 1 root root         80 Mar 17  2022  bootTel.dat
 +drwxrwxrwx 1 root root       4096 Feb 10  2022  Data
 +lrwxrwxrwx 2 root root         15 Jan 14  2020 'Documents and Settings' -> /mnt/zvol/Users
 +drwxrwxrwx 1 root root          0 Feb 26  2020  inetpub
 +drwxrwxrwx 1 root root       4096 Feb 23 18:53  MKSol
 +-rwxrwxrwx 2 root root      44812 Apr  4 22:00  OnedriveService.log
 +drwxrwxrwx 1 root root          0 Jan 12  2022  OneDriveTemp
 +-rwxrwxrwx 1 root root 3758096384 Apr  4 21:59  pagefile.sys
 +drwxrwxrwx 1 root root          0 Jun 18  2021  PerfLogs
 +drwxrwxrwx 1 root root       4096 Feb 12  2024  ProgramData
 +drwxrwxrwx 1 root root       8192 Apr 16 09:41 'Program Files'
 +drwxrwxrwx 1 root root       8192 Feb  6  2023 'Program Files (x86)'
 +drwxrwxrwx 1 root root          0 Jan 14  2020  Recovery
 +drwxrwxrwx 1 root root       4096 Jan 14  2020 'System Volume Information'
 +drwxrwxrwx 1 root root       4096 Jan  6 17:23  Users
 +drwxrwxrwx 1 root root      16384 Apr 16 09:41  Windows
 +
 +#Umount
 +umount /mnt/zvol
 +
 +#Odstraneni naklonovaneho zarizeni - zfs destroy
 +backup/props/server02/vm-100-disk-0_CLONE
 +
 +</code>
 +  
 +
 +
 +===== Replikace - záloha pomocí skriptu zxfer =====
 +
 +https://pixelchrome.org/notes/docs/zfs/freebsd_dr_with_zfssnap_and_zxfer/
 +
 +Jedná o externí skript.\\
 +''%%zxfer%%'' používá příkaz ''%%zfs send%%'' a ''%%zfs receive%%''
 +
 +https://github.com/allanjude/zxfer\\
 +
 +Raw file - pro stažení - verze 1.1.7-20190219\\
 +https://github.com/allanjude/zxfer/raw/master/zxfer\\
 +
 +''wget https://github.com/allanjude/zxfer/raw/master/zxfer''\\
 +
 +Manuál s příklady použití\\
 +https://www.freebsd.org/cgi/man.cgi?query=zxfer&sektion=8&manpath=freebsd-release-ports\\
 +
 +**Upravený skript - řeší problém lokální replikace a readonly parametrů**\\
 +https://github.com/allanjude/zxfer/raw/master/zxfer
 +
 +
 +**Pozor** skript standardně nepoužívá sysstémovou proměnou PATH, což může být problém při použití v cronu.\\
 +V logu se objevovala hláška: //Failed to retrieve datasets from the destination//
 +
 +Po přidání ''PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'' na začátek skriptu **zxfer** probíhá replikace v pořádku.
 +
 +
 +Nastavení cron pro rekurzivní zálohu všech filesystemů na vspool/VM\\
 +
 +''*/2 * * * *  /usr/local/sbin/zxfer -dFkPv -g 376 -R vspool/VM zfsbck >> /tmp/zxfer01.txt''
 +
 +Rekurzivní záloha filesystému vision na USB disk\\
 +  
 +  zxfer -dFkPv -g 376 -R vspool/vm/vision zfsbck/backup
 +  
 +Rekurzivní záloha filesystému na vzdálený počítač\\
 +
 +  /usr/local/sbin/zxfer -dFkPv -o compression=lzjb -T btax01 -R vspool/VM/owncloud cloud/VM
 +  /usr/local/sbin/zxfer -dFkPv -o compression=lzjb -T btax01 -R vspool/VM/btasrv vspool/VM
 +  /usr/local/sbin/zxfer -dFkPv -o compression=lzjb -T btax01 -R vspool/VM/dc01 vspool/VM
 +  
 +Konfigurace pro ssh je uložena v souboru /root/.ssh/config\\
 +
 +<code>
 +Host btax01
 +    HostName 192.168.0.10
 +    Port 22
 +    User root
 +    IdentityFile ~/.ssh/id_rsa  
 +</code>  
 +===== Obnova pomocí zxfer =====  
 +
 +==== Obnova celého pool(u) ====  
 +  
 +  zxfer -deFPv -R backup01/pools/storage/ storage
 +
 +
 +==== Obnova filesystému ====
 +  
 +**Vzdálená obnova - podmínkou je nakonfigurované ssh(config + klíč)**\\
 +  zxfer -deFPv -O bckralupy -R backup/props/tmpsrv/vspool02/VM vspool
 +  
 +Kopíruje se ze zálohovacího serveru(bckralupy) na lokální server do vspool\\
 +
 +<code>
 +NAME                                              USED  AVAIL     REFER  MOUNTPOINT
 +vspool                                            112G   787G       24K  /vspool
 +vspool/VM                                         112G   787G       24K  /vspool/VM
 +vspool/VM/vm-100-disk-0                           112G   869G     25.8G  -
 +vspool/VM/vm-100-disk-0@2022-06-06_08.27.05--1w   468M      -     25.2G  -
 +.
 +.
 +.
 + </code>  
 +
 +**Lokálně**\\
 +  zxfer -deFPv -N zbackup/VM/dc01 vspool/VM
 +  
 +Před spuštěním přikazu je potřeba smazat původní file system\\
 +  zfs destroy -r vspool/VM/dc01
 + 
 +  
 +  
 +http://www.manualpages.de/FreeBSD/FreeBSD-ports-9.0-RELEASE/man8/zxfer.8.html\\
 +https://zpool.org/zfs-snapshots-and-remote-replication/\\  
 +https://blogs.confusticate.com/jeremy/tag/zfs/\\
 +Zvýšení rychlosti zfs send a receive\\
 +http://everycity.co.uk/alasdair/2010/07/using-mbuffer-to-speed-up-slow-zfs-send-zfs-receive/\\
 +http://www.mceith.com/blog/?p=183\\
 +https://blog.bitratchet.com/2015/12/10/crazy-times-with-zxfer/\\
 +http://blog.yucas.mx/2017/01/04/fast-zfs-send-with-netcat/\\
 +
 +===== Problém při lokální kopii pomocí ZXFER =====
 +
 +https://github.com/allanjude/zxfer/issues/42
 +
 +Upravený skript zxfer: {{ :private:poznamky:linux:zxfer.tgz |}}
 +
 +Zakomentovány řádky **688,689,690** a **693**
 +
 +<code bash>
 +#if [ "$RZFS" = "$LZFS" ]; then                                               ##SNE
 +  #  rzfs_list_hr_S_snap=$lzfs_list_hr_S_snap                                   ##SNE
 +  #else                                                                         ##SNE
 +    rzfs_list_hr_S_snap=$($RZFS list -Hr -o name -S creation -t snapshot $destination) ||
 +      { echo "Failed to retrieve snapshots from the destination"; exit 3; }
 +  #fi                                                                           ##SNE
 +</code>
 +
 +===== Problém při replikaci na zfs verze 0.7.x =====
 +
 +V teto verzi přibyli nové atributy. Proto je potřeba upravit skript ''zxfer''
 +
 +https://github.com/allanjude/zxfer/issues/46
 +
 +
 +Upravený skript - řeší i problém lokální replikace\\
 +https://github.com/allanjude/zxfer/raw/master/zxfer
 +
 +==== Replikace z ProxMox serveru - problém s právy ====
 +
 +Při pokusu o replikaci se objeví chybová hláška:
 +<code>
 +/usr/local/sbin/zxfer -dFkPv -T bcksrv -R vspool/VM  backup/uradveltrusy/vels01x
 +Creating destination filesystem "backup/uradveltrusy/vels01x/VM" with specified properties.
 +cannot create 'backup/uradveltrusy/vels01x/VM': invalid property 'aclmode'
 +Error when creating destination filesystem.
 +</code>
 +
 +Na  záložním serveru je potřeba vytvořit jednotlivé filestémy a nastavit oprávnění
 +
 +<code>
 +zfs create backup/uradveltrusy/vels01x/VM
 +zfs create backup/uradveltrusy/vels01x/VM/subvol-101-disk-0
 +zfs create backup/uradveltrusy/vels01x/VM/vm-100-disk-0
 +zfs set acltype=posixacl backup/uradveltrusy/vels01x/VM/subvol-101-disk-0
 +zfs set acltype=posixacl backup/uradveltrusy/vels01x/VM/vm-100-disk-0
 +</code>
 +
 +===== Záloha na vyměnitelná média - USB disk =====
 +
 +  zpool list
 +  
 +  NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
 +  vspool   696G   290G   406G            28%    41%  1.00x  ONLINE  -
 +  zfsbck   928G  26.9G   901G             2%     2%  1.00x  ONLINE  -
 +
 +
 +
 +  zpool export zfsbck
 +  
 +
 +
 +  zpool list
 +  
 +  NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
 +  vspool   696G   290G   406G            28%    41%  1.00x  ONLINE  -
 +
 +  
 +  zpool import zfsbck
 +  
 +Pokud se použije příkaz ''zpool import'' bez parametru, pak se vypíše seznam pool, které lze naimportovat.
 +
 +  
 +  zpool list
 +  
 +  NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
 +  vspool   696G   290G   406G            28%    41%  1.00x  ONLINE  -
 +  zfsbck   928G  26.9G   901G             2%     2%  1.00x  ONLINE  -
 +
 +===== Obnova ze zálohy =====
 +
 +Před obnovou můžeme ověřit zálohu příkazem
 +
 +  zstreamdump < confluence.img
 +
 +V rámci dvou zfs uložišť lze použít ''%%zfs%%'' send a ''%%zfs receive%%''. Např. při restoru z USB disku.\\
 +Ale pokud např. uložíme zfs snapshot na Ext4 souborový systém příkazem\\ ''%%zfs send poolz3bck/backup/Confluence/Confluence > /mnt/backup/zfstestbck/confluence.img%%''\\
 +
 +Zde jsem chvíli tápal, domníval jsem se, že  soubor cnfluence.img je již obraz virtuálního serveru. Ale není tomu tak.Jedná se o uložený dataset a jeden konkrétní snapshot.
 +
 +Pro obnovu je potřeba příkazem ''%%zfs receive%%'' nahrát soubor do připraveného datasetu.
 +
 +Např.: ''%%zfs receive -F vspool/vm/confluence < /mnt/backup/zfstestbck/confluence.img%%''
 +
 +<code>
 +zfs list -t all|grep vspool
 +
 +vspool/vm/confluence                                            5.88G   494G  5.76G  /vspool/vm/confluence
 +vspool/vm/confluence@2016-06-09_11.00.01--1d
 +</code>
 +
 +
 +
 +
 +
 +===== Výměna vadného disku =====
 +  
 +http://askubuntu.com/questions/305830/replacing-a-dead-disk-in-a-zpool
 +
 +Pomocí příkazu zdb zjistíme disk GUID a následně převedeme disk do stavu offline.
 +
 +  zpool offline vspool 8908311146390156902
 +  
 +Následně vyměníme vadný disk za nový a pak pomocí příkazu replace zařadíme do pool.
 +
 +  zpool replace vspool 8908311146390156902 /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B  
 +  
 +
 +===== Odstranění Logs a Cache device z pool =====
 +
 +Na serveru docházelo k chybám disku v Log a Cache
 +
 +<code>
 +
 + NAME                                                     STATE     READ WRITE CKSUM
 +        vspool                                                   DEGRADED             0
 +          raidz1-0                                               ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC           ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8           ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C           ONLINE               0
 +        logs
 +          mirror-1                                               DEGRADED             0
 +            6032371930805775579                                  UNAVAIL      0          was /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1
 +            ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1  ONLINE               0
 +        cache
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2    UNAVAIL      0         0
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2    ONLINE               0
 +          
 +</code>
 +  
 +  
 +Proto bylo nutné zrušit Logs a Cache.\\
 +
 +Vadný disk není možné odebrat, je nutné nejdříve provést detach.
 +
 +  zpool remove vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1
 +  cannot remove ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1: operation not supported on this type of pool
 +  
 +  zpool detach vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1
 +
 +
 +Partititon zařazenou v Cache nebylo možné detach, ale bylo možné jí odebrat\\
 +
 +  zpool detach vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2  
 +  cannot detach ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2: device is in use as a cache
 +  
 +  zpool remove vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2
 +  
 +zpool status pak vypadá následovně\\
 +
 +<code>
 +
 +root@ubuntu:~# zpool status
 +  pool: vspool
 + state: ONLINE
 +  scan: scrub repaired 0 in 0h0m with 0 errors on Sun Feb 12 00:24:13 2017
 +config:
 +
 +        NAME                                                   STATE     READ WRITE CKSUM
 +        vspool                                                 ONLINE               0
 +          raidz1-0                                             ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC         ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8         ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C         ONLINE               0
 +        logs
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1  ONLINE               0
 +        cache
 +          ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2  ONLINE               0
 +
 +errors: No known data errors
 +  
 +</code>
 +
 +Nyní je možné odstranit z pool dvě funkční partition
 +
 +  zpool remove vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1
 +  zpool remove vspool ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2
 +  
 +<code>
 +root@ubuntu:~# zpool status
 +  pool: vspool
 + state: ONLINE
 +  scan: scrub repaired 0 in 0h0m with 0 errors on Sun Feb 12 00:24:13 2017
 +config:
 +
 +        NAME                                            STATE     READ WRITE CKSUM
 +        vspool                                          ONLINE               0
 +          raidz1-0                                      ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC  ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8  ONLINE               0
 +            ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C  ONLINE               0
 +
 +errors: No known data errors
 +
 +</code>  
 +  
 +
 +
 +  
 +  
 +  
 +  
 +  
 +==== Odkazy ====
 +
 +https://wiki.archlinux.org/title/ZFS
 +
 +https://wiki.archlinux.org/index.php/ZFS
 +
 +http://www.sixfeetup.com/blog/backing-up-using-zfs-snapshots-and-replication
 +
 +https://zpool.org/zfs-snapshots-and-remote-replication/
 +
 +http://wiki.complete.org/ZFSAutoSnapshots
 +
 +http://changelog.complete.org/archives/9168-backing-up-every-few-minutes-with-simplesnap\\
 +
 +http://breden.org.uk/2008/05/12/home-fileserver-backups-from-zfs-snapshots/\\
 +
 +
 +http://community.riocities.com/xen_storage_driver_domain.html
 +
 +http://mehdi.me/setting-up-a-windows-server-2012-r2-virtual-machine-with-xen-on-ubuntu/
 +
 +Xen domu storage\\
 +http://wiki.xenproject.org/wiki/Storage_driver_domains
 +
 +Ubuntu ZFS install\\
 +http://www.jamescoyle.net/how-to/478-create-a-zfs-volume-on-ubuntu
 +Ubuntu 16.4 ZFS install\\
 +https://wiki.ubuntu.com/Kernel/Reference/ZFS
 +
 +https://wiki.archlinux.org/index.php/Experimenting_with_ZFS
 +
 +https://pve.proxmox.com/wiki/Storage:_ZFS#Administration
 +
 +ZFS Raidz Performance, Capacity and Integrity\\
 +https://calomel.org/zfs_raid_speed_capacity.html\\
 +http://louwrentius.com/zfs-performance-and-capacity-impact-of-ashift9-on-4k-sector-drives.html\\
 +
 +ZVOL storage for VMs\\
 +https://www.quernus.co.uk/2015/08/30/cloning-zvol-for-vm/\\
 +http://justinholcomb.me/blog/2016/05/23/zfs-volume-manipulations.html\\
 +http://open-zfs.org/wiki/Performance_tuning#Compression\\
 +
 +https://www.heronovo.cz/proc-btrfs-proc-ne-zfs/
 +
 +
 +**832 TB ZFS - HW Supermicro**\\
 +https://www.jonkensy.com/832-tb-zfs-on-linux-project-cheap-and-deep-part-1/
 +
 +
 +
 +
 +===== Zapracovat do dokumentu =====
 +
 +  zfs send tank/test@tuesday | zfs receive pool/test
 +
 +===== Scrub =====
 +
 +https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSScrubsOurSpeedup\\
 +
 +Na cca 3TB poli jsem spustil ''zfs scrub pool''. Na serveru bylo spuštěno cca 10 VS.
 +Servery přestali reagovat a celý systém měl hrozně dlouhé odezvy. Nakonec jsem musel scrub ukončit ''scrub -s pool''. Čekal jsem cca 15 hodin než se scrub zastaví, nezastavil se. Server jsem restartoval(init 6). Po restartu proběhla obnova soubor. systémů na VS. 
 +
 +===== Problémy =====
 +
 +Nový pool nebylo možné vytvořit, jeden z disků se pro OS zdál používaný.\\
 +Problém byl způsoben asi historickým použitím raid disku(instalace mdadm). Problém se podařilo detekovat pomocí programu ''lsblk''
 +Pak pomohla odinstalace balíku mdadm - ''apt-get remove mdadm''
 +
 +
 +===== ZFS on Debian 9 =====
 +
 +https://unix.stackexchange.com/questions/383566/install-zfs-on-debian-9-stretch
 +
 +
 +<code>
 +sed -i 's/main/main contrib non-free/g' /etc/apt/sources.list
 +apt-get update
 +
 +apt -y install linux-headers-$(uname -r)
 +ln -s /bin/rm /usr/bin/rm
 +apt-get -y install zfs-dkms
 +
 +/sbin/modprobe zfs
 +
 +systemctl restart zfs-import-cache
 +systemctl restart zfs-import-scan
 +systemctl restart zfs-mount
 +systemctl restart zfs-share
 +</code>
 +
 +**Pozor**, nyní je potřeba vytvořit pool, zkontrolovat příkazem ''zpool status'' a teprve potom server restartovat.
 +
 +
 +===== Optimalizace ZFS pro SSD disky =====
 +
 +http://wiki.lustre.org/Optimizing_Performance_of_SSDs_and_Advanced_Format_Drives\\
 +
 +https://github.com/zfsonlinux/zfs/wiki/ZFS-on-Linux-Module-Parameters\\
 +
 +===== Remove ZFS Metadata =====
 +
 +https://icesquare.com/wordpress/freebsdhow-to-remove-zfs-meta-data/
 +
 +
 +<code>
 +#replace /dev/sdXX with that actual ID of your hard drive
 +dd if=/dev/zero of=/dev/sdXX bs=512 count=10
 +dd if=/dev/zero of=/dev/sdXX bs=512 seek=$(( $(blockdev --getsz /dev/sdXX) - 4096 )) count=1M
 +</code>
 +
 +
 +===== Resilver =====
 +
 +https://louwrentius.com/zfs-resilver-performance-of-various-raid-schemas.html
 +
 +===== ZFS Storage =====
 +
 +71 TiB DIY NAS Based on ZFS on Linux
 +
 +https://louwrentius.com/71-tib-diy-nas-based-on-zfs-on-linux.html
 +
 +
 +===== ZFS Health Check and Status =====
 +
 +https://calomel.org/zfs_health_check_script.html
 +
 +
 +===== Rename POOL =====
 +
 +ZFS rename POOL 
 +
 +https://prefetch.net/blog/2006/11/15/renaming-a-zfs-pool/
 +
 +Postup je jednoduchý, stačí vyexportovat konkrétní pool a následně ho naimportovat s novým jménem.
 +
 +Pokud je disk registrovaný jako storage v Proxmoxu, je potřeba ho nejdříve odebrat - jinak se automaticky importuje.
 +
 +<code>
 +zpool export vspool01
 +zpool import 5450106253634307464 vspool011
 +</code>
 +
 +===== Optimalizace pro DB =====
 +
 +https://shatteredsilicon.net/blog/2020/06/05/mysql-mariadb-innodb-on-zfs/
 +
 +
 +===== Vytvoření raid1 pool přidáním disku - beze ztráty dat  =====
 +
 +Po připojení druhého disku se spustí resilvering. Doba trvání resilveringu(synchronizace dat v rámci pole) je závislá na množství dat a velikosti disku.
 +
 +<code>
 +zpool attach mypool /dev/sdX /dev/sdY
 +</code>
 +
 +https://unix.stackexchange.com/questions/525950/how-to-convert-one-disk-zfs-pool-into-two-disk-raid1-pool
 +
 +
 +===== ZFS share =====
 +
 +Sdílení souborového systému např. pro nfs nebo smb(samba)
 +
 +https://linuxhint.com/share-zfs-filesystems-nfs/
 +
 +===== ZFS volume - změna volblocksize =====
 +
 +https://forum.root.cz/index.php?topic=24742.0
 +
 +https://sites.google.com/site/ryanbabchishin/home/publications/changing-a-zvol-block-size-while-making-it-sparse-and-compressed
 +
 +===== Instalace Debian 11 - Bullseye =====
 +
 +https://wiki.debian.org/ZFS
 +
 +<code>
 +apt update
 +
 +# uprava sources list - add backports
 +codename=$(lsb_release -cs);echo "deb http://deb.debian.org/debian $codename-backports main contrib non-free"|tee -a /etc/apt/sources.list && apt update
 +
 +apt install linux-headers-amd64;apt install -t bullseye-backports zfsutils-linux
 +</code>
 +
 +===== ZFS rename =====
 +
 +**Rename**  umožňuje měnit název file systému, ale umožňuje také relokaci v rámci ZFS struktury, případně oboje najednou. Změnu názvu file systému a zároveň relokaci.
 +
 +Příklad relokace v rámci ZFS struktury.\\
 +Původní stav:
 +<code>
 +backup/skolaveltrusy                                                        204G  11.4T      124K  /backup/skolaveltrusy
 +backup/skolaveltrusy/DC01                                                   204G  11.4T      162G  -
 +backup/skolaveltrusy/DC01@2023-03-04_23.00.01--1m                          5.32G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-11_23.00.01--1m                          5.01G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-18_23.00.01--1m                          5.79G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-25_23.00.01--1m                          3.87G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-27_23.00.01--1w                          2.34G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-28_23.00.01--1w                          2.31G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-29_23.00.01--1w                          2.29G      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-30_23.00.01--1w                          82.8M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_08.00.01--1d                          25.9M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_10.00.01--1d                          28.8M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_12.00.01--1d                          41.5M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_14.00.01--1d                          22.1M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_16.00.01--1d                          17.9M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_18.00.01--1d                          21.7M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_19.55.53--1w                          24.6M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_20.00.01--1d                          26.8M      -      162G  -
 +backup/skolaveltrusy/DC01@2023-03-31_22.00.01--1d                          15.7M      -      162G  -
 +</code>
 +
 +Nová struktura ZFS - cestabyla upravena o název serveru **SKOL02X**
 +<code>
 +zfs create backup/skolaveltrusy/skol02x
 +zfs set compression=lz4 backup/skolaveltrusy/skol02x
 +zfs rename backup/skolaveltrusy/DC01  backup/skolaveltrusy/skol02x/DC01
 +
 +backup/skolaveltrusy/skol02x/DC01                                           204G  11.4T      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-04_23.00.01--1m                  5.32G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-11_23.00.01--1m                  5.01G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-18_23.00.01--1m                  5.79G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-25_23.00.01--1m                  3.87G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-27_23.00.01--1w                  2.34G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-28_23.00.01--1w                  2.31G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-29_23.00.01--1w                  2.29G      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-30_23.00.01--1w                  82.8M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_08.00.01--1d                  25.9M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_10.00.01--1d                  28.8M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_12.00.01--1d                  41.5M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_14.00.01--1d                  22.1M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_16.00.01--1d                  17.9M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_18.00.01--1d                  21.7M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_19.55.53--1w                  24.6M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_20.00.01--1d                  26.8M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_22.00.01--1d                  15.7M      -      162G  -
 +backup/skolaveltrusy/skol02x/DC01@2023-03-31_23.00.01--1w                     0B      -      162G  -
 +</code>
 +
 +
 +
 +
  

DokuWiki Appliance - Powered by TurnKey Linux