tips:zfs

This is an old revision of the document!


ZFS

apt install zfsutils-linux
sudo zfs list

create filesystem 'lab' on 'LXD' pool

sudo zfs create LXD/lab
sudo zfs set mountpoint=/lab LXD/lab
sudo zfs destroy LXD/lab

Pool can be created on disk or partition. In case of partition this is an example

Number  Start (sector)    End (sector)  Size       Code  Name
   1         1026048        74426367   35.0 GiB    8300  Linux filesystem
   2            2048         1026047   500.0 MiB   EF02  
   3        74426368        76474367   1000.0 MiB  8200  
   4        76474368       976756735   429.3 GiB   BF01  # <------- zfs
   5       976756736       976773119   8.0 MiB     BF07  # ???
zpool create lxd /dev/sda4

add ZFS pool to libvirt

# create zfs filesystem
zfs create rpool/libvirt

virsh pool-define-as --name zfspool --source-name rpool --type zfs
virsh pool-start zfspool
virsh pool-autostart zfspool

create volume (not possibile in virt-manager)

virsh vol-create-as --pool zfspool --name maas2 --capacity 10G

destroy volume

virsh vol-delete --pool zfspool maas2
zpool export rpool
zfs import -R /mnt rpool
zfs mount rpool/ROOT/ubuntu
 
 
zfs set devices=off rpool
mount --rbind /dev  /mnt/dev
mount --rbind /proc /mnt/proc
mount --rbind /sys  /mnt/sys
chroot /mnt /bin/bash --login
 
... work here
 
exit
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -i{} umount -lf {}
zpool export rpool
reboot

in origin make a snapshot of volume

zfs snap storage/cimiteriali@snap1

destination volume cannot be exists

zfs snap storage/cimiteriali@snap1
zfs send -R storage/cimiteriali@snap1 | pv | ssh zfs1 zfs recv -F -u rpool/cimiteriali
# zfs destroy storage/cimiteriali@snap1

on destination destroy snapshot to have volume

zfs destroy rpool/cimiteriali@snap1
 
# volsize ?
zfs get volsize,reservation rpool/cimiteriali
zfs set volsize=20G rpool/cimiteriali
zfs get volsize,reservation rpool/cimiteriali
  • tips/zfs.1485861978.txt.gz
  • Last modified: 2017/01/31 12:26
  • by scipio