Browse Source

add device-mapper-persistent-data package

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 6 years ago
parent
commit
5027da2a54
  1. 116
      SOURCES/device-mapper-persistent-data-add-era_restore-and-cache_metadata_size-man-pages.patch
  2. 11
      SOURCES/device-mapper-persistent-data-avoid-strip.patch
  3. 58
      SOURCES/device-mapper-persistent-data-cache_restore-fix-metadata-version-and-clean-shutdown.patch
  4. 18
      SOURCES/device-mapper-persistent-data-cache_restore-v2-dirty-bitset-root-not-written.patch
  5. 15
      SOURCES/device-mapper-persistent-data-document-clear-needs-check-flag.patch
  6. 240
      SPECS/device-mapper-persistent-data.spec

116
SOURCES/device-mapper-persistent-data-add-era_restore-and-cache_metadata_size-man-pages.patch

@ -0,0 +1,116 @@ @@ -0,0 +1,116 @@
--- thin-provisioning-tools-0.4.1/man8/era_restore.8.orig 2014-10-28 14:24:43.356272471 +0100
+++ thin-provisioning-tools-0.4.1/man8/era_restore.8 2014-10-28 14:28:56.358133852 +0100
@@ -0,0 +1,63 @@
+.TH ERA_RESTORE 8 "Thin Provisioning Tools" "Red Hat, Inc." \" -*- nroff -*-
+.SH NAME
+era_restore \- restore era metadata file to device or file
+
+.SH SYNOPSIS
+.B era_restore
+.RB [ options ]
+.RB -i
+.I {device|file}
+.RB -o
+.I {device|file}
+
+.SH DESCRIPTION
+.B era_restore
+restores binary era metadata created by the
+respective device-mapper target dumped into an XML formatted (see
+.BR era_dump(8) )
+.I file
+, which optionally can be preprocessed before the restore to another
+.I device
+or
+.I file.
+If restored to a metadata
+.I device
+, the metadata can be processed by the device-mapper target.
+
+.IP "\fB\-q, \-\-quiet\fP"
+Suppress output messages, return only exit code.
+
+.IP "\fB\-i, \-\-input\fP \fI{device|file}\fP"
+Input file or device with metadata.
+
+.IP "\fB\-o, \-\-output\fP \fI{device|file}\fP"
+Output file or device.
+
+.IP "\fB\-h, \-\-help\fP"
+Print help and exit.
+
+.IP "\fB\-V, \-\-version\fP"
+Output version information and exit.
+
+.SH EXAMPLE
+Restores the XML formatted era metadata on file
+.B metadata
+to logical volume /dev/vg/metadata for further processing by the
+respective device-mapper target:
+.sp
+.B era_restore -i metadata -o /dev/vg/metadata
+
+.SH DIAGNOSTICS
+.B era_restore
+returns an exit code of 0 for success or 1 for error.
+
+.SH SEE ALSO
+.B era_check(8)
+.B era_dump(8)
+.B era_invaidate(8)
+.B era_restore(8)
+
+.SH AUTHOR
+Joe Thornber <ejt@redhat.com>
+.br
+Heinz Mauelshagen <HeinzM@RedHat.com>
--- thin-provisioning-tools-0.4.1/man8/cache_metadata_size.8.orig 2014-10-28 14:31:49.116087709 +0100
+++ thin-provisioning-tools-0.4.1/man8/cache_metadata_size.8 2014-10-28 14:50:29.337238755 +0100
@@ -0,0 +1,47 @@
+.TH CACHE_METADATA_SIZE 8 "Thin Provisioning Tools" "Red Hat, Inc." \" -*- nroff -*-
+.SH NAME
+cache_metadata_size \- cache metadata device/file size calculator.
+
+.SH SYNOPSIS
+.B cache_metadata_size
+.RB [ options ]
+
+.SH DESCRIPTION
+.B cache_metadata_size
+calculates the size of the cache metadata based on the block size
+of the cache device and the cache block size.
+All relates to the size of the fast device (eg, SSD), rather
+than the whole cached (i.e. origin) device.
+
+.IP "\fB\\-\-block\-size <sectors>\fP
+Block size of cache in units of sectors.
+
+.IP "\fB\\-\-device\-size <sectors>\fP
+Device size of the cache device in units of sectors.
+
+.IP "\fB\\-\-nr\-blocks <natural>\fP
+Capacity of the cache in number of blocks.
+
+.IP "\fB\-h, \-\-help\fP"
+Print help and exit.
+
+.IP "\fB\-V, \-\-version\fP"
+Output version information and exit.
+
+.SH EXAMPLES
+Calculates the cache metadata device size for block size 256 sectors.and device size of 2GiB
+.sp
+.B cache_metadata_size --block-size 256 --device-size $((2*1024*1024))
+
+.SH DIAGNOSTICS
+.B cache_metadata_size
+returns an exit code of 0 for success or 1 for error.
+
+.SH SEE ALSO
+.B cache_check(8)
+.B cache_dump(8)
+.B cache_repair(8)
+.B cache_restore(8)
+
+.SH AUTHOR
+Heinz Mauelshagen <HeinzM@RedHat.com>

11
SOURCES/device-mapper-persistent-data-avoid-strip.patch

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
diff -purN thin-provisioning-tools-0.6.0.orig/Makefile.in thin-provisioning-tools-0.6.0.new/Makefile.in
--- thin-provisioning-tools-0.6.0.orig/Makefile.in 2016-01-20 16:43:21.000000000 +0100
+++ thin-provisioning-tools-0.6.0.new/Makefile.in 2016-01-20 17:26:11.943664295 +0100
@@ -174,7 +174,6 @@ distclean: clean
install: bin/pdata_tools
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
- $(STRIP) $(BINDIR)/pdata_tools
ln -s -f pdata_tools $(BINDIR)/cache_check
ln -s -f pdata_tools $(BINDIR)/cache_dump
ln -s -f pdata_tools $(BINDIR)/cache_metadata_size

58
SOURCES/device-mapper-persistent-data-cache_restore-fix-metadata-version-and-clean-shutdown.patch

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
caching/cache_restore.cc | 5 +++--
caching/restore_emitter.cc | 4 ++--
caching/restore_emitter.h | 8 +++++++-
3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/caching/cache_restore.cc b/caching/cache_restore.cc
index f62306d..e430c11 100644
--- a/caching/cache_restore.cc
+++ b/caching/cache_restore.cc
@@ -69,8 +69,9 @@ namespace {
try {
block_manager<>::ptr bm = open_bm(*fs.output, block_manager<>::READ_WRITE);
metadata::ptr md(new metadata(bm, metadata::CREATE));
- emitter::ptr restorer = create_restore_emitter(md, fs.clean_shutdown,
- fs.metadata_version);
+ emitter::ptr restorer = create_restore_emitter(md,
+ fs.metadata_version,
+ fs.clean_shutdown ? CLEAN_SHUTDOWN : NO_CLEAN_SHUTDOWN);
check_file_exists(*fs.input);
ifstream in(fs.input->c_str(), ifstream::in);
diff --git a/caching/restore_emitter.cc b/caching/restore_emitter.cc
index 34c5020..b7a573f 100644
--- a/caching/restore_emitter.cc
+++ b/caching/restore_emitter.cc
@@ -115,9 +115,9 @@ namespace {
emitter::ptr
caching::create_restore_emitter(metadata::ptr md, unsigned metadata_version,
- bool clean_shutdown)
+ shutdown_type st)
{
- return emitter::ptr(new restorer(md, clean_shutdown, metadata_version));
+ return emitter::ptr(new restorer(md, st == CLEAN_SHUTDOWN, metadata_version));
}
//----------------------------------------------------------------
diff --git a/caching/restore_emitter.h b/caching/restore_emitter.h
index 5c077af..a1d45d6 100644
--- a/caching/restore_emitter.h
+++ b/caching/restore_emitter.h
@@ -7,9 +7,15 @@
//----------------------------------------------------------------
namespace caching {
+
+ enum shutdown_type {
+ CLEAN_SHUTDOWN,
+ NO_CLEAN_SHUTDOWN
+ };
+
emitter::ptr create_restore_emitter(metadata::ptr md,
unsigned metadata_version,
- bool clean_shutdown = true);
+ shutdown_type st = CLEAN_SHUTDOWN);
}
//----------------------------------------------------------------

18
SOURCES/device-mapper-persistent-data-cache_restore-v2-dirty-bitset-root-not-written.patch

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
caching/metadata.cc | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/caching/metadata.cc b/caching/metadata.cc
index 7d8bfae..5457533 100644
--- a/caching/metadata.cc
+++ b/caching/metadata.cc
@@ -124,6 +124,10 @@ void
metadata::commit_mappings()
{
sb_.mapping_root = mappings_->get_root();
+ if (sb_.version >= 2) {
+ dirty_bits_->flush();
+ sb_.dirty_root = dirty_bits_->get_root();
+ }
}
void

15
SOURCES/device-mapper-persistent-data-document-clear-needs-check-flag.patch

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
--- thin-provisioning-tools-0.4.1/man8/thin_check.8.orig 2014-10-28 14:19:02.800420873 +0100
+++ thin-provisioning-tools-0.4.1/man8/thin_check.8 2014-10-28 14:19:47.335924554 +0100
@@ -25,6 +25,12 @@
.IP "\fB\-V, \-\-version\fP"
Output version information and exit.
+.IP "\fB\-\-clear\-needs\-check\-flag\fP"
+Clear the needs-check-flag in case the check of the thin pool metadata succeeded.
+If the metadata check failed, the flag is not cleared and a thin_repair run is
+needed to fix any issues.
+After thin_repair succeeded, you may run thin_check again.
+
.IP "\fB\-\-super\-block\-only\fP"
Only check the superblock is present.

240
SPECS/device-mapper-persistent-data.spec

@ -0,0 +1,240 @@ @@ -0,0 +1,240 @@
#
# Copyright (C) 2011-2017 Red Hat, Inc
#

%define pre_release_upstream -rc6
%define pre_release rc6

Summary: Device-mapper Persistent Data Tools
Name: device-mapper-persistent-data
Version: 0.7.0
Release: 0.1.%{pre_release}%{?dist}.1
License: GPLv3+
Group: System Environment/Base
URL: https://github.com/jthornber/thin-provisioning-tools
Source0: https://github.com/jthornber/thin-provisioning-tools/archive/thin-provisioning-tools-%{version}%{pre_release_upstream}.tar.gz
# Source1: https://github.com/jthornber/thin-provisioning-tools/archive/v%{version}.tar.gz
Patch0: device-mapper-persistent-data-document-clear-needs-check-flag.patch
Patch1: device-mapper-persistent-data-add-era_restore-and-cache_metadata_size-man-pages.patch
Patch2: device-mapper-persistent-data-avoid-strip.patch
# Commit: 4da8d19f296a9
Patch3: device-mapper-persistent-data-cache_restore-fix-metadata-version-and-clean-shutdown.patch
# Commit: e3b7d825696c2
Patch4: device-mapper-persistent-data-cache_restore-v2-dirty-bitset-root-not-written.patch

BuildRequires: autoconf, expat-devel, libaio-devel, libstdc++-devel, boost-devel
Requires: expat

%description
thin-provisioning-tools contains check,dump,restore,repair,rmap
and metadata_size tools to manage device-mapper thin provisioning
target metadata devices; cache check,dump,metadata_size,restore
and repair tools to manage device-mapper cache metadata devices
are included and era check, dump, restore and invalidate to manage
snapshot eras

%prep
%setup -q -n thin-provisioning-tools-%{version}%{pre_release_upstream}
%patch0 -p1 -b .clear_needs_check_flag
%patch1 -p1 -b .man_pages
%patch2 -p1 -b .avoid_strip
%patch3 -p1 -b .fix_flags
%patch4 -p1 -b .v2_dirty_bitset_root
echo %{version}-%{release} > VERSION

%build
autoconf
%configure --with-optimisation=
make %{?_smp_mflags} V=

%install
make DESTDIR=%{buildroot} MANDIR=%{_mandir} install

%clean

%files
%doc COPYING README.md
%{_mandir}/man8/cache_check.8.gz
%{_mandir}/man8/cache_dump.8.gz
%{_mandir}/man8/cache_repair.8.gz
%{_mandir}/man8/cache_restore.8.gz
%{_mandir}/man8/cache_writeback.8.gz
%{_mandir}/man8/era_check.8.gz
%{_mandir}/man8/era_dump.8.gz
%{_mandir}/man8/era_invalidate.8.gz
%{_mandir}/man8/thin_check.8.gz
%{_mandir}/man8/thin_delta.8.gz
%{_mandir}/man8/thin_dump.8.gz
%{_mandir}/man8/thin_ls.8.gz
%{_mandir}/man8/thin_metadata_size.8.gz
%{_mandir}/man8/thin_repair.8.gz
%{_mandir}/man8/thin_restore.8.gz
%{_mandir}/man8/thin_rmap.8.gz
%{_mandir}/man8/thin_trim.8.gz
%{_sbindir}/pdata_tools
%{_sbindir}/cache_check
%{_sbindir}/cache_dump
%{_sbindir}/cache_metadata_size
%{_sbindir}/cache_repair
%{_sbindir}/cache_restore
%{_sbindir}/cache_writeback
%{_sbindir}/era_check
%{_sbindir}/era_dump
%{_sbindir}/era_invalidate
%{_sbindir}/era_restore
%{_sbindir}/thin_check
%{_sbindir}/thin_delta
%{_sbindir}/thin_dump
%{_sbindir}/thin_ls
%{_sbindir}/thin_metadata_size
%{_sbindir}/thin_repair
%{_sbindir}/thin_restore
%{_sbindir}/thin_rmap
%{_sbindir}/thin_trim
%{_sbindir}/thin_show_duplicates

%changelog
* Mon Nov 20 2017 Marian Csontos <mcsontos@redhat.com> - 0.7.0-0.1-rc6.el7_4.1
- Fix v2 metadata corruption in cache_restore.

* Mon Mar 27 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc6
- Don't open devices as writeable if --clear-needs-check-flag is not set.
- Fix cache metadata format version 2 superblock packing.

* Wed Mar 22 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc5
- Switch to a faster implementation of crc32 used for checksums.

* Tue Mar 21 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc4
- Add support for cache metadata format version 2 in cache tools.

* Thu Mar 16 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc3
- Update to latest upstream release including various bug fixes and new features.
- New thin_show_duplicates command.
- Add '--skip-mappings' and '--format custom' options to thin_dump.

* Fri Jul 22 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.3-1
- Fix regression in thin_repair and thin_restore so it works again
when using device as output.

* Thu Jul 21 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-2
- Improve documentation and messages on output file preallocation
when using thin_repair and thin_restore.

* Mon Jul 11 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-1
- Fixes providing proper use of compiler flags.

* Wed May 04 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc8
- Fixes for thin_trim and thin_repair.

* Wed Mar 09 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc6
- Add new fields to thin_ls: MAPPED_BYTES, EXCLUSIVE_BYTES and SHARED_BYTES.

* Tue Mar 08 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc5
- New thin_ls command.
- era_invalidate may be run on live metadata if the --metadata-snap
option is given.

* Thu Aug 13 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.5-1
- Support thin_delta's --metadata_snap option without specifying snap location.
- Update man pages to make it clearer that tools shoulnd't be run on live metadata.
- Fix bugs in the metadata reference counting for thin_check.

* Fri Jul 17 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.4-1
- Fix cache_check with --clear-needs-check-flag option to
make sure metadata device is not open already by the tool
when open with O_EXCL mode is requested.

* Tue Jul 07 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.3-1
- Tools now open the metadata device in O_EXCL mode to stop
running the tools on active metadata.
- Update to latest upstream release.

* Fri Jul 03 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.2-1
- Fix bug in damage reporting in thin_dump and thin_check.
- Update to latest upstream release.

* Thu Jun 25 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.1-1
- Add space map checking for thin_check.
- Add --clear-needs-check option for cache_check.
- Update to latest upstream release.

* Mon Jun 08 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.4.2-1
- New thin_delta and thin_trim commands.
- Update to latest upstream release.

* Wed Nov 12 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.4.1-2
- Resolves: #1083394
- Resolves: #1085620
- Fixes empty debuginfo packages

* Tue Oct 28 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.4.1-1
- Resolves: #1083394
- Resolves: #1085620

* Wed Apr 2 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.3.2-1
- Resolves: #1081546

* Fri Mar 28 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.3.0-1
- Resolves: #1081546

* Fri Feb 28 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.8-5
- Resolves: #1057951

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.2.8-4
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.2.8-3
- Mass rebuild 2013-12-27

* Wed Oct 30 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.8-2
- Resolves: #1022834

* Fri Oct 18 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.8-1
- New upstream version 0.2.8 introducing cache_{check,dump,repair,restore}
Resolves: #1020825

* Tue Sep 17 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.7-1
- New upstream version 0.2.7
Resolves: #966264

* Wed Jul 31 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.3-1
- New upstream version

* Tue Jul 30 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.2-1
- New upstream version with missing man pages, thin_metadata_size
calculator and thin_dump metadata snapshot support.
- Manual page header fixes

* Wed Jul 10 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-1
- New upstream version.

* Wed Jul 10 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.0-1
- New upstream version.

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Thu Apr 19 2012 Milan Broz <mbroz@redhat.com> - 0.1.4-1
- Fix thin_check man page (add -q option).
- Install utilities in /usr/sbin.

* Tue Mar 13 2012 Milan Broz <mbroz@redhat.com> - 0.1.2-1
- New upstream version.

* Mon Mar 05 2012 Milan Broz <mbroz@redhat.com> - 0.1.1-1
- Fix quiet option.

* Fri Mar 02 2012 Milan Broz <mbroz@redhat.com> - 0.1.0-1
- New upstream version.

* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.1-3
- Rebuilt for c++ ABI breakage

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Wed Dec 21 2011 Milan Broz <mbroz@redhat.com> - 0.0.1-1
- Initial version
Loading…
Cancel
Save