Created
November 1, 2017 16:35
-
-
Save dotmanila/82c1dc620149827fc81fafe6af30130d to your computer and use it in GitHub Desktop.
ZFS on Linux Encrypted Crash/Exchange Error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DISK=xvdb | |
BACKUPVOL=xvdc | |
USER=ubuntu | |
KERNEL=$(uname -r) | |
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb | |
sudo dpkg -i percona-release_0.1-4.xenial_all.deb | |
sudo apt -y update | |
sudo apt -y upgrade | |
sudo apt -y install make qpress netcat socat sysstat mbuffer \ | |
lsof linux-tools-common linux-tools-${KERNEL} linux-tools-${KERNEL} | |
sudo apt -y install build-essential autoconf libtool gawk alien fakeroot linux-headers-${KERNEL} | |
sudo apt -y install zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev | |
sudo apt -y install parted lsscsi ksh dkms dstat | |
git clone https://github.com/zfsonlinux/spl | |
git clone https://github.com/zfsonlinux/zfs | |
cd spl | |
git checkout master | |
sh autogen.sh | |
./configure | |
make -s -j$(nproc) | |
make deb | |
REL=$(ls | grep "kmod-spl-${KERNEL}"|cut -d'_' -f2) | |
sudo dpkg -i kmod-spl-${KERNEL}_${REL}_amd64.deb \ | |
kmod-spl-devel-${KERNEL}_${REL}_amd64.deb \ | |
spl_${REL}_amd64.deb spl-dkms_${REL}_all.deb | |
cd ../zfs | |
git checkout master | |
sh autogen.sh | |
./configure | |
make -s -j$(nproc) | |
make deb | |
REL=$(ls | grep "kmod-zfs-${KERNEL}"|cut -d'_' -f2) | |
sudo dpkg -i kmod-zfs-${KERNEL}_${REL}_amd64.deb \ | |
kmod-zfs-devel-${KERNEL}_${REL}_amd64.deb \ | |
libnvpair1_${REL}_amd64.deb libuutil1_${REL}_amd64.deb \ | |
libzfs2_${REL}_amd64.deb libzfs2-devel_${REL}_amd64.deb \ | |
libzpool2_${REL}_amd64.deb zfs_${REL}_amd64.deb \ | |
zfs-dkms_${REL}_all.deb zfs-dracut_${REL}_amd64.deb \ | |
zfs-initramfs_${REL}_amd64.deb zfs-test_${REL}_amd64.deb | |
sudo /sbin/modprobe zfs | |
sudo zpool create -o ashift=12 mysql /dev/$DISK | |
sudo zfs set recordsize=16k mysql | |
sudo zfs set atime=off mysql | |
sudo zfs set logbias=latency mysql | |
sudo zfs set primarycache=metadata mysql | |
sudo zfs set compression=lz4 mysql | |
head -c32 /dev/urandom > /dev/shm/zfskey | |
sudo zfs create -o recordsize=128K -o encryption=on -o keyformat=raw \ | |
-o keylocation=file:///dev/shm/zfskey mysql/logs | |
sudo zfs create -o recordsize=16K -o encryption=on -o keyformat=raw \ | |
-o keylocation=file:///dev/shm/zfskey mysql/data | |
sudo mkdir -p /mysql/logs/innodb | |
sudo mkdir -p /mysql/data/msb | |
sudo chown -R $USER.$USER /mysql/* | |
cd ~ | |
wget https://github.com/datacharmer/mysql-sandbox/releases/download/3.2.14/MySQL-Sandbox-3.2.14.tar.gz | |
tar xzf MySQL-Sandbox-3.2.14.tar.gz | |
cd MySQL-Sandbox-3.2.14/ | |
perl Makefile.PL PREFIX=/usr | |
make | |
sudo make install | |
cd | |
mkdir mysql | |
cd mysql | |
wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-5.7.19-17/binary/tarball/Percona-Server-5.7.19-17-Linux.x86_64.ssl100.tar.gz | |
tar xzf Percona-Server-5.7.19-17-Linux.x86_64.ssl100.tar.gz | |
mv -f Percona-Server-5.7.19-17-Linux.x86_64.ssl100 5.7.190 | |
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.10 | |
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.10 | |
env SANDBOX_BINARY=/home/$USER/mysql make_sandbox 5.7.190 -- \ | |
--upper_directory=/mysql/data/msb --my_clause=innodb_buffer_pool_size=512M \ | |
--my_clause=innodb_log_file_size=512M --my_clause=innodb_flush_method=O_DSYNC \ | |
--my_clause=innodb_log_group_home_dir=/mysql/logs/innodb \ | |
--my_clause=binlog_format=ROW --my_clause=bind-address=0.0.0.0 \ | |
--my_clause=default-storage-engine=InnoDB --my_clause=innodb_flush_log_at_trx_commit=1 \ | |
--my_clause=log_bin=mysql-bin --my_clause=server_id=1 --no_confirm | |
time sysbench --db-driver=mysql --mysql-user=msandbox --mysql-password=msandbox \ | |
--mysql-db=test --mysql-host=127.0.0.1 --mysql-port=57190 --tables=1 \ | |
--table-size=100000 --auto-inc=off --threads=1 --time=0 \ | |
--rand-type=pareto oltp_read_only prepare | |
sudo mkfs.ext4 /dev/$BACKUPVOL | |
sudo mkdir /backups | |
sudo mount /dev/$BACKUPVOL /backups | |
sudo mkdir /backups/zfs | |
sudo chown $USER.$USER /backups/* | |
sudo cp /dev/shm/zfskey /backups/zfs/ | |
sudo zfs snapshot -r mysql@sst | |
sudo zfs send -wR mysql@sst > /backups/zfs/full.zfs | |
/mysql/data/msb/msb_5_7_190/stop | |
sudo zpool destroy -f mysql | |
sudo rm -rf /dev/shm/zfskey | |
sudo zpool create -o ashift=12 mysql /dev/$DISK | |
sudo zfs set recordsize=16k mysql | |
sudo zfs set atime=off mysql | |
sudo zfs set logbias=latency mysql | |
sudo zfs set primarycache=metadata mysql | |
sudo zfs set compression=lz4 mysql | |
cat /backups/zfs/full.zfs | sudo zfs recv -F mysql | |
sudo cp /backups/zfs/zfskey /dev/shm/ | |
sudo zfs load-key mysql/data | |
sudo zfs load-key mysql/logs | |
sudo zfs mount -a | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment