ZFSonLinux
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
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
zpool destroy poolz3bck
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í mirror pool:
zpool create -f vspool mirror
Vytvoření raidz1 pool:
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
https://louwrentius.com/zfs-performance-and-capacity-impact-of-ashift9-on-4k-sector-drives.html
https://blog.zanshindojo.org/proxmox-zfs-performance/
Mirror vdev
zpool create vspool01 -o ashift=12 mirror ata-SAMSUNG_MZ7L31T9HBLT-00A07_S6ESNC0TC10583 ata-SAMSUNG_MZ7L31T9HBLT-00A07_S6ESNC0TC10568
Nastavení komprese
zfs set compression=lz4 vspool01
Vypnutí atime
zfs set atime=off vspool01
Např. pro Xen VM
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
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:
fdisk /dev/zvol/vspool/VM/keo, smazat oblast 2 - pokud existuje swap file)e2fsck -f /dev/zvol/vspool/VM/keo-part1resize2fs /dev/zvol/vspool/VM/keo-part1
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
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 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C ONLINE 0 0 0
logs
mirror-1 ONLINE 0 0 0
ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1 ONLINE 0 0 0
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1 ONLINE 0 0 0
cache
ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2 ONLINE 0 0 0
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2 ONLINE 0 0 0
errors: No known data errors
Mount zfs pool.
Nastavení mountpointu a zároveň připojení
zfs set mountpoint=/mnt/zfspool vspool/constainers/skolawp
Připojení k již existujícímu mountpointu
zfs mount vspool/constainers/skolawp
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)
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
Pomocí quoty jsou omezeny velikosti LXC kontejnerů v Proxmoxu - např. jira, confluence, bamboo
Pokud se vyčerpá nastavený limit, není možné mazat soubory a odstraňovat adresáře.
Nikdy nezkoušejte zmenšit velikost.
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
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
### s parametrem n se provede test - nedojde ke smazání zfs destroy -rnv data/SystemBackups@% zfs destroy -rv data/SystemBackups@%
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
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
zfs clone vspool/vm/FI-SYS-DISK@2016-11-21_13.31.16--1d vspool/vm/FI-SYS-DISK_clone01
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 -
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.
zfs promote vspool/vm/FI-SYS-DISK_clone01
Pokud klon nebyl proveden ze správného snapshotu - na disku nejsou požadovaná data je možné klon smazat příkazem
zfs destroy vspool/vm/FI-SYS-DISK_clone01
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 -
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
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ů:
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
Blokové zařízení - Proxmox VS
V příkladu je popsána obnova souboru uloženého na sdíleném NTFS disku.
#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
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
Host btax01
HostName 192.168.0.10
Port 22
User root
IdentityFile ~/.ssh/id_rsa
zxfer -deFPv -R backup01/pools/storage/ storage
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
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 - . . .
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/
https://github.com/allanjude/zxfer/issues/42
Upravený skript zxfer: zxfer.tgz
Zakomentovány řádky 688,689,690 a 693
#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
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
Při pokusu o replikaci se objeví chybová hláška:
/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.
Na záložním serveru je potřeba vytvořit jednotlivé filestémy a nastavit oprávnění
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
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 -
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
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
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
Na serveru docházelo k chybám disku v Log a Cache
NAME STATE READ WRITE CKSUM
vspool DEGRADED 0 0 0
raidz1-0 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C ONLINE 0 0 0
logs
mirror-1 DEGRADED 0 0 0
6032371930805775579 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part1
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1 ONLINE 0 0 0
cache
ata-Samsung_SSD_850_PRO_128GB_S24ZNWAG942247J-part2 UNAVAIL 0 0 0
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2 ONLINE 0 0 0
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ě
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 0 0
raidz1-0 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C ONLINE 0 0 0
logs
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part1 ONLINE 0 0 0
cache
ata-Samsung_SSD_850_PRO_128GB_S24ZNXAGA14082B-part2 ONLINE 0 0 0
errors: No known data errors
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
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 0 0
raidz1-0 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXA1A25RKPVC ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HA0A8 ONLINE 0 0 0
ata-WDC_WD7500BPKX-00HPJT0_WD-WXG1A95HAH3C ONLINE 0 0 0
errors: No known data errors
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/
zfs send tank/test@tuesday | zfs receive pool/test
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.
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
https://unix.stackexchange.com/questions/383566/install-zfs-on-debian-9-stretch
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
Pozor, nyní je potřeba vytvořit pool, zkontrolovat příkazem zpool status a teprve potom server restartovat.
http://wiki.lustre.org/Optimizing_Performance_of_SSDs_and_Advanced_Format_Drives
https://github.com/zfsonlinux/zfs/wiki/ZFS-on-Linux-Module-Parameters
https://icesquare.com/wordpress/freebsdhow-to-remove-zfs-meta-data/
#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
71 TiB DIY NAS Based on ZFS on Linux
https://louwrentius.com/71-tib-diy-nas-based-on-zfs-on-linux.html
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.
zpool export vspool01 zpool import 5450106253634307464 vspool011
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.
zpool attach mypool /dev/sdX /dev/sdY
Sdílení souborového systému např. pro nfs nebo smb(samba)
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
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:
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 -
Nová struktura ZFS - cestabyla upravena o název serveru SKOL02X
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 -