mirror of
https://github.com/kneutron/ansitest.git
synced 2025-01-16 04:42:55 +08:00
60 lines
1.9 KiB
Bash
60 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
# 2024.Dec kneutron
|
|
|
|
# This creates an ADDITIONAL lvm-thin on another disk/partition besides the one the PVE installer creates
|
|
# Avoids resizing and multiple LVM failures in non-RAID systems
|
|
|
|
# xxx TODO EDITME
|
|
declare -i lvmthins # integer
|
|
if [ "$1" = "" ]; then
|
|
lvmthins=2
|
|
else
|
|
lvmthins=$1
|
|
fi
|
|
# set to 3, etc if you already have more than 1
|
|
|
|
# failexit.mrg
|
|
# REF: https://sharats.me/posts/shell-script-best-practices/
|
|
function failexit () {
|
|
echo '! Something failed! Code: '"$1 $2" >&2 # code (and optional description)
|
|
exit $1
|
|
}
|
|
|
|
if [ "$1" = "0" ] || [ "$1" -lt 2 ]; then
|
|
failexit 66 "Nice try - arg1 needs to be an integer number greater than 1"
|
|
fi
|
|
|
|
# xxx TODO EDITME
|
|
#target=/dev/nvme0n1p6
|
|
target=/dev/sdb6
|
|
|
|
echo '-- YOU NEED TO EDIT THIS SCRIPT BEFORE RUNNING IT --'
|
|
echo "About to create lvm-thin number: $lvmthins on $target - Enter to continue or ^C"
|
|
read -n 1
|
|
|
|
pvcreate $target
|
|
echo "$(date) - vgcreate pvethin${lvmthins} on $target"
|
|
time vgcreate -A y pvethin${lvmthins} $target
|
|
# pvethin2
|
|
|
|
#lvcreate -L 100G -n data pve
|
|
echo "$(date) - lvcreate lvmthin${lvmthins}data on VG pvethin${lvmthins}"
|
|
time lvcreate -A y --readahead auto \
|
|
--name lvmthin${lvmthins}data --extent 99%FREE pvethin${lvmthins} || failexit 99 "Failed to lvcreate lvmthin${lvmthins}data on VG pvethin${lvmthins}"
|
|
# lvmthin2 , pvethin2
|
|
|
|
echo "$(date) - lvconvert to thin pool: pvethin${lvmthins}/lvmthin${lvmthins}data"
|
|
time lvconvert --type thin-pool pvethin${lvmthins}/lvmthin${lvmthins}data || failexit 101 "Failed to convert pvethin${lvmthins}/lvmthin${lvmthins}data to lvm-thin"
|
|
# pvethin2 , lvmthin2
|
|
|
|
(pvs; vgs; lvs) |tee >/root/lvminfo.txt
|
|
|
|
# backup lvm config for DR - see man page
|
|
# In a default installation, each VG is backed up into a separate file bearing the name of the VG in the directory /etc/lvm/backup.
|
|
# It may also be useful to regularly back up the files in /etc/lvm.
|
|
vgcfgbackup
|
|
|
|
echo "Define storage in pve GUI as lvm-thin${lvmthins}"
|
|
ls -lh /root/lvminfo.txt
|