On Thu, Oct 27, 2022 at 02:54:25PM +0200, Philipp Rudo wrote:
On Wed, 26 Oct 2022 11:33:01 +0800
Coiby Xu <coxu(a)redhat.com> wrote:
> Hi Tao,
> On Sat, Oct 08, 2022 at 03:41:38PM +0800, Tao Liu wrote:
> >Thin provision is a mechanism that you can allocate a lvm volume which has
> >a large virtual size for file systems but actually in a small physical
> >size. The physical size can be autoextended in use if thin pool reached a
> >threshold specified in /etc/lvm/lvm.conf.
> >There are 2 works should be handled when enable lvm2 thinp for kdump:
> >1) Check if the dump target device or directory is thinp device.
> Does dracut has the ability to automatically detect if a root filesystem
> is lvm2 thinp? It seem dracut can build a ordinary initrd that switch
> to a lvm volume root filesystem. If that's true, can we harness dracut
> to it for us? If it works, I imagine NVMf-fc and infini-band may also
> been supported automatically without us doing anything.
that would be nice of course. However the way I see it it would only
make patch 3 obsolete. The rest of the series would need to stay the
way it is.
Thanks for the reminding! Yeah, unless dracut also has the ability to
only update the initrd if truly necessary, we need patch 2 which depends
on patch 1. Basically, what I want to achieve is to avoid the need of
having some internal knowledge about lvm2 thin provision and only
need to make sure the observable behaviour is what we expect by adding
the test. But I imagine this would a long-term goal.
Having this said, with the nit in the first patch fixed the series looks
good to me.
Reviewed-by: Philipp Rudo <prudo(a)redhat.com>
> >2) Monitor the thin pool and autoextend its size when it reached the threshold
> > during kdump.
> >According to my testing, the memory consumption procedure for lvm2 thinp is the
> >size-autoextend phase. For fedora and rhel9, the default crashkernel value is
> >for rhel8, the default crashkernel value 1G-4G:160M is not enough, so it should
> >be handled particularly.
> >v1 -> v2:
> >1) Modified the usage of lvs cmd when check if target is lvm2 thinp
> > device.
> >2) Removed the sync flag way of mounting for lvm2 thinp target
> > during kdump, use "sync -f vmcore" to force sync data, and handle
> > the error if fails.
> >v2 -> v3:
> >1) Removed "sync -f vmcore" patch out of the patch set, for it is
> >addressing an issue which is not specifically to lvm2 thinp support for
> >v3 -> v4:
> >1) Removed lvm2-monitor.service, implemented the monitor service with
> > a loop function within a shell script instead.
> >2) Add lvm2 thinp support for dump_raw, for it is addressing the similar
> > issue as dump_fs.
> >3) Dave suggested me to implement the lvm2 thin support in dracut
> > modules instead of kexec-tools. If you are OK with the
> > technical way, I will give a try to migrate it to dracut.
> >v4 -> v5:
> >1) A new 80lvmthinpool-monitor module  has been integrated in dracut.
> > Now we simply depend on it.
> >2) Add lvm2 thin provision selftest.
> >: https://github.com/dracutdevs/dracut/pull/1842
> >v5 -> v6:
> >1) Code refactoring based on Philipp's comments.
> >2) Print warning if lvmthinpool-monitor module is not exist.
> >Tao Liu (5):
> > Add lvm2 thin provision dump target checker
> > lvm.conf should be check modified if lvm2 thinp enabled
> > Add dependency of dracut lvmthinpool-monitor module
> > selftest: Only iterate the .sh files for test execution
> > selftest: Add lvm2 thin provision for kdump test
> > dracut-module-setup.sh | 8 +++
> > kdump-lib-initramfs.sh | 10 ++++
> > kdump-lib.sh | 6 ++
> > kdumpctl | 1 +
> > tests/scripts/run-test.sh | 3 +-
> > .../lvm2-thinp-kdump/0-local-lvm2-thinp.sh | 59 +++++++++++++++++++
> > .../testcases/lvm2-thinp-kdump/lvm.conf | 5 ++
> > 7 files changed, 90 insertions(+), 2 deletions(-)
> > create mode 100755
> > create mode 100644 tests/scripts/testcases/lvm2-thinp-kdump/lvm.conf