From ad2f2e00e8560301eb220d701c8d94e57d3525e1 Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Tue, 5 Jun 2018 03:38:00 -0500 Subject: [PATCH] Set format options when prepairing filesystems Various options are available when formatting the different file systems we support. This change implements a hash to capture many of the different options we use throughout a test deployment. * BTRFS: set metadata for test volumes to single. the metadata on our loopback devices was defaulting the the file-system default of DUP (duplicate) which is reasonable on a production deployment however on a loopback device it makes more sense to set the data and metadata options to "single". This will help eliminate the issues were seeing with intermittently full file-systems. * XFS: set block sizes, placement groups, and do not issue discards at create. This will speed up the time it takes to format an XFS partition as well as ensure things remain speedy under load. * EXT4: speed up directory lookups Use hashed b-trees to speed up name lookups in large directories. Change-Id: I004768d98da194cc90b36cdf72dbf75b24a661a2 Signed-off-by: Kevin Carter --- tests/roles/bootstrap-host/defaults/main.yml | 7 +++++++ tests/roles/bootstrap-host/tasks/prepare_data_disk.yml | 2 ++ .../roles/bootstrap-host/tasks/prepare_loopback_btrfs.yml | 1 + .../bootstrap-host/tasks/prepare_loopback_machines.yml | 1 + tests/roles/bootstrap-host/tasks/prepare_loopback_nova.yml | 1 + .../roles/bootstrap-host/tasks/prepare_loopback_swift.yml | 2 +- 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/roles/bootstrap-host/defaults/main.yml b/tests/roles/bootstrap-host/defaults/main.yml index 0e56410214..38bc9a7b20 100644 --- a/tests/roles/bootstrap-host/defaults/main.yml +++ b/tests/roles/bootstrap-host/defaults/main.yml @@ -239,6 +239,13 @@ bootstrap_host_data_disk2_formats: xfs: xfs dir: ext4 lvm: ext2 + +bootstrap_host_format_options: + machinectl: '--metadata single --data single' + btrfs: '--metadata single --data single' + xfs: '-K -d agcount=64 -l size=128m' + ext4: '-O dir_index' + # # Set the data disk mount options. bootstrap_host_data_mount_options: diff --git a/tests/roles/bootstrap-host/tasks/prepare_data_disk.yml b/tests/roles/bootstrap-host/tasks/prepare_data_disk.yml index 09161d21c7..df3e9125cf 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_data_disk.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_data_disk.yml @@ -61,6 +61,7 @@ filesystem: fstype: ext4 dev: "/dev/{{ _bootstrap_host_data_disk_device }}1" + opts: "{{ bootstrap_host_format_options['ext4'] | default(omit) }}" when: - bootstrap_host_data_disk_device_force | bool tags: @@ -70,6 +71,7 @@ filesystem: fstype: "{{ bootstrap_host_data_disk2_fs }}" dev: "/dev/{{ _bootstrap_host_data_disk_device }}2" + opts: "{{ bootstrap_host_format_options[bootstrap_host_data_disk2_fs] | default(omit) }}" when: - bootstrap_host_data_disk_device_force | bool - lxc_container_backing_store != 'lvm' diff --git a/tests/roles/bootstrap-host/tasks/prepare_loopback_btrfs.yml b/tests/roles/bootstrap-host/tasks/prepare_loopback_btrfs.yml index eebcaeaaaf..7f858fe807 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_loopback_btrfs.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_loopback_btrfs.yml @@ -21,6 +21,7 @@ - name: Format the lxc-btrfs file filesystem: fstype: btrfs + opts: "{{ bootstrap_host_format_options['btrfs'] | default(omit) }}" dev: /openstack/lxc-btrfs.img - name: Run the systemd mount role diff --git a/tests/roles/bootstrap-host/tasks/prepare_loopback_machines.yml b/tests/roles/bootstrap-host/tasks/prepare_loopback_machines.yml index 3731f9cdf2..7067beead0 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_loopback_machines.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_loopback_machines.yml @@ -23,6 +23,7 @@ - name: Format the machines file filesystem: fstype: btrfs + opts: "{{ bootstrap_host_format_options['btrfs'] | default(omit) }}" dev: /openstack/machines.img tags: - machines-format-file diff --git a/tests/roles/bootstrap-host/tasks/prepare_loopback_nova.yml b/tests/roles/bootstrap-host/tasks/prepare_loopback_nova.yml index a59f367e22..701571c05e 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_loopback_nova.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_loopback_nova.yml @@ -24,6 +24,7 @@ filesystem: fstype: xfs dev: /openstack/nova.img + opts: "{{ bootstrap_host_format_options['xfs'] | default(omit) }}" tags: - nova-format-file diff --git a/tests/roles/bootstrap-host/tasks/prepare_loopback_swift.yml b/tests/roles/bootstrap-host/tasks/prepare_loopback_swift.yml index 3175956bcf..c9b4c2697a 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_loopback_swift.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_loopback_swift.yml @@ -27,7 +27,7 @@ - name: Format the Swift files filesystem: fstype: xfs - opts: '-K' + opts: "{{ bootstrap_host_format_options['xfs'] | default(omit) }}" dev: "/openstack/{{ item }}.img" with_items: - 'swift1'