Browse Source

Validate that there should not be XFS volumes with ftype=0

If  we have XFS partitions formatted with ftype=0,
the upgrades will fail because ftype=0 is incompatible
with the docker overlayfs driver.

Related-Bug: 1765121
Change-Id: I895fc83d148523c283664080b7b1bf75d53d9edb
(cherry picked from commit a5e63ee725)
(cherry picked from commit d54ae2d1e2)
changes/39/564739/1
Carlos Camacho 4 years ago
parent
commit
3130bc4129
  1. 13
      releasenotes/notes/validate-xfs-ftype-equals-0-8fdb1f8c99bee975.yaml
  2. 34
      validations/check-ftype.yaml

13
releasenotes/notes/validate-xfs-ftype-equals-0-8fdb1f8c99bee975.yaml

@ -0,0 +1,13 @@
---
upgrade:
- |
Validate that there are no volumes formatted with XFS
and ftype=0.
Deployments from OpenStack Kilo or Liberty have XFS
partitions formatted with ftype=0, which is incompatible
with the docker overlayfs driver.
From OpenStack Newton, we have support for XFS ftype=1
by default.
This check will make fail the pre-upgrade validations
if there are deployments coming back from Kilo or Liberty
and have XFS partitions with ftype=0.

34
validations/check-ftype.yaml

@ -0,0 +1,34 @@
---
- hosts: undercloud, overcloud
vars:
metadata:
name: XFS ftype check
description: >
Check if there is at least 1 XFS volume
with ftype=0 in any deployed node.
groups:
- pre-upgrade
tasks:
- name: Check if there are XFS volumes with ftype=0
become: true
shell: |
for dev in $(df -h | grep '/dev/' | grep -v 'tmp' | cut -d' ' -f1)
do
parseftype=$(xfs_info $dev | grep ftype=0);
if [[ ! -z "$parseftype" ]]; then
ftype="ftype=0";
break;
fi
done
echo $ftype;
register: ftype
changed_when: false
- name: Check ftype
fail:
msg: >
XFS volumes formatted using ftype=0 are incompatible
with the docker overlayfs driver.
Run xfs_info in {{ ansible_fqdn }} and fix those volumes
before proceeding with the upgrade.
when:
- ftype.stdout == 'ftype=0'
Loading…
Cancel
Save