integ/config/puppet-modules/puppet-lvm/centos/files/0005-Wipe-10MB-after-we-lvextend-the-partitions.patch
Mihnea Saracin b310077093 Fix resize of filesystems in puppet logical_volume
After system reinstalls there is stale data on the disk
and puppet fails when resizing, reporting some wrong filesystem
types. In our case docker-lv was reported as drbd when
it should have been xfs.

This problem was solved in some cases e.g:
when doing a live fs resize we wipe the last 10MB
at the end of partition:
https://opendev.org/starlingx/stx-puppet/src/branch/master/puppet-manifests/src/modules/platform/manifests/filesystem.pp#L146

Our issue happened here:
https://opendev.org/starlingx/stx-puppet/src/branch/master/puppet-manifests/src/modules/platform/manifests/filesystem.pp#L65
Resize can happen at unlock when a bigger size is detected for the
filesystem and the 'logical_volume' will resize it.
To fix this we have to wipe the last 10MB of the partition after the
'lvextend' cmd in the 'logical_volume' module.

Tested the following scenarios:

B&R on SX with default sizes of filesystems and cgts-vg.

B&R on SX with with docker-lv of size 50G, backup-lv also 50G and
cgts-vg with additional physical volumes:

- name: cgts-vg
    physicalVolumes:
    - path: /dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
    size: 50
    type: partition
    - path: /dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
    size: 30
    type: partition
    - path: /dev/disk/by-path/pci-0000:00:0d.0-ata-3.0
    type: disk

B&R on DX system with backup of size 70G and cgts-vg
with additional physical volumes:

physicalVolumes:
- path: /dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
    size: 50
    type: partition
- path: /dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
    size: 30
    type: partition
- path: /dev/disk/by-path/pci-0000:00:0d.0-ata-3.0
    type: disk

Closes-Bug: 1926591
Change-Id: I55ae6954d24ba32e40c2e5e276ec17015d9bba44
Signed-off-by: Mihnea Saracin <Mihnea.Saracin@windriver.com>
2021-05-22 18:41:22 +03:00

25 lines
1.2 KiB
Diff

From c14a96cb55a3bcd20f772c25f2294eb3a1d376b9 Mon Sep 17 00:00:00 2001
From: Mihnea Saracin <mihnea.saracin@windriver.com>
Date: Fri, 21 May 2021 13:34:41 -0400
Subject: [PATCH 5/5] Wipe 10MB after we lvextend the partitions
---
.../puppet/modules/lvm/lib/puppet/provider/logical_volume/lvm.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/packstack/puppet/modules/lvm/lib/puppet/provider/logical_volume/lvm.rb b/packstack/puppet/modules/lvm/lib/puppet/provider/logical_volume/lvm.rb
index f9b1c66..a604e96 100755
--- a/packstack/puppet/modules/lvm/lib/puppet/provider/logical_volume/lvm.rb
+++ b/packstack/puppet/modules/lvm/lib/puppet/provider/logical_volume/lvm.rb
@@ -214,6 +214,7 @@ Puppet::Type.type(:logical_volume).provide :lvm do
end
end
lvextend( '-L', "#{new_size}k", path) || fail( "Cannot extend to size #{new_size} because lvextend failed." )
+ exec_cmd("seek_end=$(($(blockdev --getsz #{path})/2048 - 10)); dd if=/dev/zero of=#{path} bs=1M seek=${seek_end} count=10")
exec_cmd('umount', path)
exec_cmd('fsadm', '-y', 'check', path )
r = exec_cmd('fsadm', '-y', 'resize', path, "#{new_size}k")
--
2.29.2