mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-05-24 15:34:59 +03:00

Don't use KSM on the FreeBSD VMs and optimize KSM settings for Linux to have faster run times. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Closes #17247
68 lines
1.9 KiB
Bash
Executable File
68 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
######################################################################
|
|
# 1) setup qemu instance on action runner
|
|
######################################################################
|
|
|
|
set -eu
|
|
|
|
# install needed packages
|
|
export DEBIAN_FRONTEND="noninteractive"
|
|
sudo apt-get -y update
|
|
sudo apt-get install -y axel cloud-image-utils daemonize guestfs-tools \
|
|
virt-manager linux-modules-extra-$(uname -r) zfsutils-linux
|
|
|
|
# generate ssh keys
|
|
rm -f ~/.ssh/id_ed25519
|
|
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""
|
|
|
|
# not needed
|
|
sudo systemctl stop docker.socket
|
|
sudo systemctl stop multipathd.socket
|
|
|
|
# remove default swapfile and /mnt
|
|
sudo swapoff -a
|
|
sudo umount -l /mnt
|
|
DISK="/dev/disk/cloud/azure_resource-part1"
|
|
sudo sed -e "s|^$DISK.*||g" -i /etc/fstab
|
|
sudo wipefs -aq $DISK
|
|
sudo systemctl daemon-reload
|
|
|
|
sudo modprobe loop
|
|
sudo modprobe zfs
|
|
|
|
# partition the disk as needed
|
|
DISK="/dev/disk/cloud/azure_resource"
|
|
sudo sgdisk --zap-all $DISK
|
|
sudo sgdisk -p \
|
|
-n 1:0:+16G -c 1:"swap" \
|
|
-n 2:0:0 -c 2:"tests" \
|
|
$DISK
|
|
sync
|
|
sleep 1
|
|
|
|
# swap with same size as RAM (16GiB)
|
|
sudo mkswap $DISK-part1
|
|
sudo swapon $DISK-part1
|
|
|
|
# JBOD 2xdisk for OpenZFS storage (test vm's)
|
|
SSD1="$DISK-part2"
|
|
sudo fallocate -l 12G /test.ssd2
|
|
SSD2=$(sudo losetup -b 4096 -f /test.ssd2 --show)
|
|
|
|
# adjust zfs module parameter and create pool
|
|
exec 1>/dev/null
|
|
ARC_MIN=$((1024*1024*256))
|
|
ARC_MAX=$((1024*1024*512))
|
|
echo $ARC_MIN | sudo tee /sys/module/zfs/parameters/zfs_arc_min
|
|
echo $ARC_MAX | sudo tee /sys/module/zfs/parameters/zfs_arc_max
|
|
echo 1 | sudo tee /sys/module/zfs/parameters/zvol_use_blk_mq
|
|
sudo zpool create -f -o ashift=12 zpool $SSD1 $SSD2 -O relatime=off \
|
|
-O atime=off -O xattr=sa -O compression=lz4 -O sync=disabled \
|
|
-O redundant_metadata=none -O mountpoint=/mnt/tests
|
|
|
|
# no need for some scheduler
|
|
for i in /sys/block/s*/queue/scheduler; do
|
|
echo "none" | sudo tee $i
|
|
done
|