Zfs: diferència entre les revisions
Línia 33: | Línia 33: | ||
Check the compression achieved | Check the compression achieved | ||
zfs get compressratio Z5000LUKS_zfs/fs | zfs get compressratio Z5000LUKS_zfs/fs | ||
Cloning a ZFS filesystem from a snapshot | |||
bash-3.00# zfs clone demovol/testing@snap21 demovol/clone22 | |||
bash-3.00# zfs list | |||
NAME USED AVAIL REFER MOUNTPOINT | |||
demovol 1.00G 900G 39.9K /demovol | |||
demovol/clone22 0 900G 32.6K /demovol/clone22 | |||
demovol/testing 32.6K 10.0G 32.6K /demovol/testing | |||
demovol/testing@snap21 0 – 32.6K - | |||
Performance IO Monitoring the ZFS storage pool | |||
bash-3.00# zpool iostat 1 | |||
capacity operations bandwidth | |||
pool used avail read write read write | |||
———- —– —– —– —– —– —– | |||
demovol 4.95M 900G 0 0 0 35 | |||
demovol 4.95M 900G 0 0 0 0 | |||
demovol 4.95M 900G 0 0 0 0 | |||
demovol 4.95M 900G 0 0 0 0 | |||
==Step by step to create a new zfs disk== | ==Step by step to create a new zfs disk== |
Revisió del 10:54, 30 nov 2017
Basic Commands
ZPool All Properties:
zpool get all Z5000LUKS_zfs
Dataset All Properties:
zfs get all Z5000LUKS_zfs zfs get all Z5000LUKS_zfs/fs
List all commands executed:
zpool history Z5000LUKS_zfs
List pools and status:
zpool status zpool status -v
List datasets:
zfs list
List all snapshots:
zfs list -t snapshot
Show space used by snapshots (https://blogs.oracle.com/observatory/understanding-the-space-used-by-zfs):
zfs list -t all -r zfs list -t all -r -o space
- USEDSNAP = used by snapshot
- USEDDS = used by dataset
- REFER = size of all files when snapshot was taken
- USED = ?
Check the compression achieved
zfs get compressratio Z5000LUKS_zfs/fs
Cloning a ZFS filesystem from a snapshot
bash-3.00# zfs clone demovol/testing@snap21 demovol/clone22 bash-3.00# zfs list NAME USED AVAIL REFER MOUNTPOINT demovol 1.00G 900G 39.9K /demovol demovol/clone22 0 900G 32.6K /demovol/clone22 demovol/testing 32.6K 10.0G 32.6K /demovol/testing demovol/testing@snap21 0 – 32.6K -
Performance IO Monitoring the ZFS storage pool
bash-3.00# zpool iostat 1 capacity operations bandwidth pool used avail read write read write ———- —– —– —– —– —– —– demovol 4.95M 900G 0 0 0 35 demovol 4.95M 900G 0 0 0 0 demovol 4.95M 900G 0 0 0 0 demovol 4.95M 900G 0 0 0 0
Step by step to create a new zfs disk
Find/view drive:
fdisk -l or $ mount
Create pool:
# zpool create -f YOURPOOLNAME /dev/sdX zpool create -f Z5000LUKS_zfs2 /dev/mapper/Z5000LUKS
Create filesystem
# zfs create YOURPOOLNAME/YOURNAME zfs create Z5000LUKS_zfs2/fs
Set features
zfs set compression=on Z5000LUKS_zfs2 zfs set mountpoint=/media/Z5000LUKS_zfs2 Z5000LUKS_zfs2 # zfs set compression=off YOURPOOLNAME/YOURNAME # zfs set copies=2 YOURPOOLNAME/YOURNAME
Mountpoints
Add new
zfs set mountpoint=/media/Z5000LUKS_zfs2 Z5000LUKS_zfs2/fs
Remove mountpoint
zfs set mountpoint=none Z5000LUKS_zfs2/fs
Encryption
Not yet supported with standard repository
https://blog.heckel.xyz/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/
Auto snapshots
sanoid
sanoid also provides Syncoid
https://www.svennd.be/zfs-snapshots-of-proxmox-using-sanoid/
apt-get install libconfig-inifiles-perl git cd /opt git clone https://github.com/jimsalterjrs/sanoid ln /opt/sanoid/sanoid /usr/sbin/ ln /opt/sanoid/syncoid /usr/sbin/ mkdir -p /etc/sanoid cp /opt/sanoid/sanoid.conf /etc/sanoid/sanoid.conf cp /opt/sanoid/sanoid.defaults.conf /etc/sanoid/sanoid.defaults.conf
/etc/sanoid/sanoid.conf
#################### # sanoid.conf file # #################### [tank/subvol-104-disk-1] use_template = production ############################# # templates below this line # ############################# [template_production] # store hourly snapshots 36h hourly = 36 # store 30 days of daily snaps daily = 30 # store back 6 months of monthly monthly = 6 # store back 3 yearly (remove manually if to large) yearly = 3 # create new snapshots autosnap = yes # clean old snapshot autoprune = yes
sudo crontab -e
*/5 * * * * /usr/sbin/sanoid --cron
or
0 * * * * /usr/sbin/sanoid --cron
Alternative: zfs-auto-snapshot
For Ubuntu 16.04:
https://romaco.ca/blog/2016/09/04/install-zfs-auto-snapshot-on-ubuntu-16-04-lts/ You can download the Ubuntu 16.04 package here, and install it by running:
wget https://furneaux.ca/w4ca8cqmwx234io/zfs-auto-snapshot-trustyport.deb dpkg -i zfs-auto-snapshot-trustyport.deb
To avoid too frequently
rm /etc/cron.d/zfs-auto-snapshot rm /etc/cron.hourly/zfs-auto-snapshot
Or configure frequency for the individual pools https://askubuntu.com/questions/322541/activate-zfs-snapshots
sudo zfs set com.sun:auto-snapshot=true tank/backup sudo zfs set com.sun:auto-snapshot:monthly=false tank/backup sudo zfs set com.sun:auto-snapshot:weekly=false tank/backup sudo zfs set com.sun:auto-snapshot:daily=true tank/backup sudo zfs set com.sun:auto-snapshot:hourly=false tank/backup sudo zfs set com.sun:auto-snapshot:frequent=false tank/backup
or disable
sudo zfs set com.sun:auto-snapshot=false tank/tmp
Other Alternatives:
http://wiki.complete.org/ZFSAutoSnapshots
- simplesnap - a simple and powerful cron-based network snapshot transfer tool by John Goerzen.
- Has a simple and secure wrapper so unfettered root access isn't needed.
- Designed to work with zfSnap or other snapshot-making tools on this page.
- Supports multiple backup sources, targets, and target sets (such as offsite media rotation)
- zfs-auto-snapshot - a simple cron-based service. Different names for different snapshots, with a simple count of how many to retain. Can exclude based on property.
- snapxfer, a wrapper around:
- zfSnap - a flexible snapshot-creation system. Can embed an expiry age in snapshot name, or override from command line.
- zxfer - a flexible snapshot-transfer system. Can use rsync or zfs snapshots. Used together with another snapshotting system. For remote transfers, requires root ssh authorized_keys or sudo access.
- zfs-snapshot-rotation-and-backup, a Python library and example scripts that use it. Expects ssh root access to remote.
- zsnap -- looks flexible and powerful, last commit 5 years ago. Requires Ruby.
- Suggested on ZFS on Linux mailing list:
- zetaback - feature-packed. Has a server-side agent to run on systems being backed up. Buggy config parser without sufficient validation on client.
- zrep - for zfs based replication (possibly remote) of filesystems. Can also be used just for backups. License prohibits public redistribution. Does failover too. Doesn't work on nested datasets. Designed to run once per minute. Same snapshot retention on both sides.
- zfs-auto-snapshot - as above, for snapshotting
Sync to another machine using syncoid (from sanoid)
syncoid website: https://github.com/jimsalterjrs/sanoid/
info: http://unicolet.blogspot.de/2016/05/from-0-to-zfs-replication-in-5m-with.html
comparative with rsync: https://arstechnica.com/information-technology/2015/12/rsync-net-zfs-replication-to-the-cloud-is-finally-here-and-its-fast/
sudo apt-get install mbuffer lzop pv git
installation explain in section above
Syncoid connecting without root
if it's run without root, syncoid uses sudo automatically
visudo
# Syncoid commands backup ALL=NOPASSWD: /sbin/zfs get * backup ALL=NOPASSWD: /sbin/zfs snapshot * backup ALL=NOPASSWD: /sbin/zfs send * # backup ALL=NOPASSWD: /sbin/zfs list * # We only want to destroy snapshots backup ALL=NOPASSWD: /sbin/zfs destroy *@syncoid_backup*
https://github.com/jimsalterjrs/sanoid/issues/82