Skip to main content

NB: ZFS copies simple test

Almost a one-liner ;) Results of some discussion about copies props of ZFS.
 

#!/bin/bash

COPIES=1

dd if=/dev/zero of=/tmp/vdev1 bs=1M count=64 2>/dev/null
dd if=/dev/zero of=/tmp/vdev2 bs=1M count=64 2>/dev/null
sudo zpool create -o failmode=continue -O copies=${COPIES} \
    test_pool /tmp/vdev1 /tmp/vdev2
sudo chmod 777 /test_pool/
# https://unix.stackexchange.com/questions/248235/always-error-writing-output-file-in-openssl
# dd if=<(openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero) bs=1M iflag=fullblock count=20 | gzip -c | dd oflag=dsync of=/test_pool/filename.gz obs=1M
# head is wk for annoyning write error with pipes
# gzip is just header for truly simple binwalk checks, for example
head -c 20M /dev/zero | openssl enc -aes-256-ctr \
    -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" \
    -nosalt | gzip > /test_pool/filename.gz
sudo zpool status -x test_pool
openssl md5 /test_pool/filename.gz
sudo zpool export test_pool
sudo zpool import -d /tmp test_pool
dd if=/dev/zero of=/tmp/vdev2 bs=1M count=64 2>/dev/null
# Result check here:
gunzip -c /test_pool/filename.gz > /dev/null
openssl md5 /test_pool/filename.gz
sudo zpool status -x test_pool
# some basic cleanup
sudo zpool destroy test_pool
rm /tmp/vdev1 /tmp/vdev2

# vim:  set spell! autowrite: