Last active
November 8, 2017 22:08
-
-
Save dotmanila/5ed9169e357052a133aaca441f3eef22 to your computer and use it in GitHub Desktop.
ZFS bootstrap Ubuntu 16.04 with default ZFS version, 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 | |
DISK=xvdb | |
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 zpool create -o ashift=12 -f 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 | |
sudo zfs create -o recordsize=128K mysql/logs | |
sudo zfs create -o recordsize=16K mysql/data | |
sudo mkdir -p /mysql/logs | |
sudo mkdir -p /mysql/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-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/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 \ | |
--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=zfs01 --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 | |
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 cleanup | |
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