Last active
November 18, 2017 05:01
-
-
Save dotmanila/3c114e3388a7db9c23214eceea060a63 to your computer and use it in GitHub Desktop.
ZFS bootstrap Ubuntu 16.04 with github master ZFS, uses xvdb for single vdev and PXC 5.7.19 using MySQL sandbox.
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 | |
USER=ubuntu | |
IP=$(ip -4 ad sh scope global | grep 'scope global' | awk '{print $2}' | cut -d'/' -f1 | head -n1) | |
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 zfs make qpress netcat socat sysstat mbuffer libaio1 \ | |
sysbench lsof linux-tools-common linux-tools-${KERNEL} linux-tools-${KERNEL} \ | |
percona-toolkit percona-xtrabackup-24 | |
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 -f mysql /dev/xvdb /dev/xvdc | |
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 | |
sudo zfs create -o recordsize=128K mysql/logs | |
sudo zfs create -o recordsize=16K mysql/data | |
sudo mkdir -p /mysql/logs/innodb | |
sudo mkdir -p /mysql/data/msb | |
sudo chown -R $USER.$USER /mysql/* | |
echo '#!/bin/bash' > /tmp/zfs.sh | |
echo 'echo 1073741824 > /sys/module/zfs/parameters/zfs_arc_max' >> /tmp/zfs.sh | |
echo 'echo 1 > /sys/module/zfs/parameters/zfs_prefetch_disable' >> /tmp/zfs.sh | |
sudo bash /tmp/zfs.sh | |
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-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.19-29.22/binary/tarball/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.1.Linux.x86_64.ssl100.tar.gz | |
tar xzf Percona-XtraDB-Cluster-5.7.19-rel17-29.22.1.Linux.x86_64.ssl100.tar.gz | |
mv -f Percona-XtraDB-Cluster-5.7.19-rel17-29.22.1.Linux.x86_64.ssl100 5.7.192 | |
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/ubuntu/mysql make_sandbox 5.7.192 -- --no_confirm \ | |
--upper_directory=/mysql/data/msb --my_clause=innodb_buffer_pool_size=1G \ | |
--my_clause=innodb_log_file_size=8G --my_clause=innodb_flush_method=O_DSYNC \ | |
--my_clause=innodb_log_group_home_dir=/mysql/logs/innodb \ | |
--my_clause=innodb_doublewrite=0 --my_clause=binlog_format=ROW \ | |
--my_clause=innodb_autoinc_lock_mode=2 --my_clause=bind-address=0.0.0.0 \ | |
--my_clause=default-storage-engine=InnoDB --my_clause=innodb_flush_log_at_trx_commit=0 \ | |
--my_clause=wsrep_provider=/home/ubuntu/mysql/5.7.192/lib/libgalera_smm.so \ | |
--my_clause=wsrep_cluster_name=zfs --my_clause=wsrep_cluster_address=gcomm:// \ | |
--my_clause=wsrep_sst_method=xtrabackup-v2 --my_clause=wsrep_sst_auth=msandbox:msandbox \ | |
--my_clause=wsrep_node_name=zfs02 --my_clause=wsrep_node_address=$IP \ | |
--my_clause=wsrep_slave_threads=8 | |
time sysbench --db-driver=mysql --mysql-user=msandbox --mysql-password=msandbox \ | |
--mysql-db=test --mysql-host=127.0.0.1 --mysql-port=57192 --tables=8 \ | |
--table-size=20000000 --auto-inc=off --threads=8 --time=0 \ | |
--rand-type=pareto oltp_read_only prepare |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment