From e7cb84ab33d46aadc897766327f12f7ce92587bf Mon Sep 17 00:00:00 2001 From: kneutron <50146127+kneutron@users.noreply.github.com> Date: Sat, 3 Jun 2023 08:31:32 -0500 Subject: [PATCH] Add files via upload --- ZFS/newzfs-pool-n-datasets.sh | 124 ++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 ZFS/newzfs-pool-n-datasets.sh diff --git a/ZFS/newzfs-pool-n-datasets.sh b/ZFS/newzfs-pool-n-datasets.sh new file mode 100644 index 0000000..f23a272 --- /dev/null +++ b/ZFS/newzfs-pool-n-datasets.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +# EDIT ME 1ST!! + +source ~/bin/failexit.mrg + +zp=zhgstsas4 +zfsuser=dave + +DBI=/dev/disk/by-id + +disk1=scsi-35000cca07325f6b0 +disktmp=$(ls -l $DBI |grep -w $disk1 |head -n 1 |awk '{print $11}') # ../../shortdev +disk1S=${disktmp#../../} # bash inline sed; del == sdf + +disk2=scsi-35000cca07321bea8 +disktmp=$(ls -l $DBI |grep -w $disk2 |head -n 1 |awk '{print $11}') # ../../shortdev +disk2S=${disktmp#../../} # bash inline sed; del == sdg + +#disk3=$DBI/ +#disk3L=$DBI/$disk3 +#disk4=$DBI/ +#disk4L=$DBI/$disk4 +#disk5=$DBI/ +#disk5L=$DBI/$disk5 +#disk6=$DBI/ +#disk6L=$DBI/$disk6 + +# note zpool status -L # resolves to short names, e.g. sde +outfyl=/tmp/`basename $0`-checktmp.txt +zpool status -Lv > $outfyl + +#[ `zpool status -v |grep -c $disk1` -gt 0 ] && failexit 101 "! $disk1 is in use by another zpool!" +[ `grep -c $disk1S $outfyl` -gt 0 ] && failexit 101 "! $disk1 is in use by another zpool!" +[ `grep -c $disk2S $outfyl` -gt 0 ] && failexit 102 "! $disk2 is in use by another zpool!" +#[ `grep -c $disk3 $outfyl` -gt 0 ] && failexit 103 "! $disk3 is in use by another zpool!" +#[ `grep -c $disk4 $outfyl` -gt 0 ] && failexit 104 "! $disk4 is in use by another zpool!" +#[ `grep -c $disk5 $outfyl` -gt 0 ] && failexit 105 "! $disk5 is in use by another zpool!" +#[ `grep -c $disk6 $outfyl` -gt 0 ] && failexit 106 "! $disk6 is in use by another zpool!" + + +function make1disk () { + zpool create -o ashift=12 -o autoexpand=on -O atime=off -O compression=lz4 $zp \ + $disk1 +} + +function make2disk () { + zpool create -o ashift=12 -o autoreplace=off -o autoexpand=on -O atime=off -O compression=lz4 \ + $zp \ + mirror $disk1 $disk2 || failexit 99 "! Unable to create zpool $zp" +} + +function make4disk () { + zpool create -o ashift=12 -o autoexpand=on -O atime=off -O compression=lz4 $zp \ + mirror $disk1 $disk2 \ + mirror $disk3 $disk4 || failexit 99 "! Unable to create zpool $zp" +} + +function make6disk () { + zpool create -o ashift=12 -o autoexpand=on -O atime=off -O compression=lz4 $zp \ + mirror $disk1 $disk2 \ + mirror $disk3 $disk4 \ + mirror $disk5 $disk6 || failexit 99 "! Unable to create zpool $zp" +} + +# TODO more vdevs +function makerz2 () { + zpool create -o ashift=12 -o autoexpand=on -O atime=off -O compression=lz4 $zp \ + raidz2 $disk1 $disk2 $disk3 $disk4 $disk5 $disk6 \ + || failexit 99 "! Unable to create zpool $zp" +} + + +# xxx What kind to create? +make2disk; # || failexit 202 "Failed to create $zp" +zpool status -v $zp|awk 'NF>0' + + +function ownlist () { + chown -v $zfsuser /$zp/$mydir + ls -la /$zp/$mydir +} + +function makezdscompshare () { + zfs create -o atime=off -o compression=lz4 -o sharesmb=on $zp/$mydir + ownlist +} + +function makezdsNOTcompOKshare () { + zfs create -o atime=off -o compression=off -o sharesmb=on $zp/$mydir + ownlist +} + +function makezdsOKcompNOTshare () { + zfs create -o atime=off -o compression=lz4 -o sharesmb=off $zp/$mydir + ownlist +} + +function makezdsNOTcompNOTshare () { + zfs create -o atime=off -o compression=off -o sharesmb=off $zp/$mydir + ownlist +} + +mydir=shrcompr; makezdscompshare $mydir + +mydir=notshrcompr; makezdsOKcompNOTshare $mydir + +mydir=notshrnotcompr; makezdsNOTcompNOTshare $mydir + + +# Custom +mydir=BURNME-shrcompr; makezdsOKcompOKshare $mydir + + +df -hT |head -n 1 +df -hT |grep $zp + +exit; + +FIXED with head +grep: ../../sdg1: No such file or directory +/root/bin/boojum/newzfs-pool-n-datasets.sh: line 35: [: /tmp/newzfs-pool-n-datasets.sh-checktmp.txt:0: integer expression expected + +DONE check 'zpool status' and see if drive(s) are already in use!!