From fb2e7aebab634132dcce6130eb8115e368f42702 Mon Sep 17 00:00:00 2001 From: Giancarlo Razzolini <grazzolini@archlinux.org> Date: Thu, 23 Jul 2020 17:35:36 -0300 Subject: [PATCH] roles/mariadb: Set the nocow attribute when using btrfs To improve mysql performance when using btrfs, set the nocow attribute before running initdb, so all the files created under the mysql datadir have the attribute. --- roles/mariadb/defaults/main.yml | 1 + roles/mariadb/tasks/main.yml | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/roles/mariadb/defaults/main.yml b/roles/mariadb/defaults/main.yml index f72c3e376..875f76afb 100644 --- a/roles/mariadb/defaults/main.yml +++ b/roles/mariadb/defaults/main.yml @@ -1,4 +1,5 @@ --- +mariadb_data_dir: '/var/lib/mysql' mariadb_skip_name_resolve: False mariadb_skip_networking: True diff --git a/roles/mariadb/tasks/main.yml b/roles/mariadb/tasks/main.yml index 820cbd523..e3d405719 100644 --- a/roles/mariadb/tasks/main.yml +++ b/roles/mariadb/tasks/main.yml @@ -2,10 +2,17 @@ - name: install mariadb pacman: name=mariadb,python-mysqlclient state=present +- name: set the nocow attribute for btrfs + file: + path: "{{ mariadb_data_dir }}" + state: directory + attributes: '+C' + when: filesystem == 'btrfs' + - name: initialize mariadb - command: mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql + command: mysql_install_db --user=mysql --basedir=/usr --datadir="{{ mariadb_data_dir }}" args: - creates: /var/lib/mysql/mysql + creates: "{{ mariadb_data_dir }}/mysql" - name: configure mariadb template: src=server.cnf.j2 dest=/etc/my.cnf.d/server.cnf -- GitLab