diff --git a/SOURCES/bz1693000-fsck_gfs2_8_Manpage_updates.patch b/SOURCES/bz1693000-fsck_gfs2_8_Manpage_updates.patch new file mode 100644 index 0000000..f4a0a66 --- /dev/null +++ b/SOURCES/bz1693000-fsck_gfs2_8_Manpage_updates.patch @@ -0,0 +1,86 @@ +commit f81fd07bdf8cf9f87c603754e3e5b89ed5445bf8 +Author: Andrew Price +Date: Thu Oct 17 13:12:31 2019 +0100 + + fsck.gfs2(8): Manpage updates + + - Improve style consistency with the other manpages + - Remove an unnecessary paragraph that gives a misleading impression of + gfs2's device atomicity requirements (rhbz#1693000) + - Add "See Also" section + - "fsck.gfs" -> "fsck.gfs2" + - Various other language tweaks + + Signed-off-by: Andrew Price + +diff --git a/gfs2/man/fsck.gfs2.8 b/gfs2/man/fsck.gfs2.8 +index b2b326fb..9e9f9250 100644 +--- a/gfs2/man/fsck.gfs2.8 ++++ b/gfs2/man/fsck.gfs2.8 +@@ -1,11 +1,11 @@ + .TH fsck.gfs2 8 + + .SH NAME +-fsck.gfs2 - Offline GFS and GFS2 file system checker ++fsck.gfs2 - offline GFS and GFS2 file system checker + + .SH SYNOPSIS + .B fsck.gfs2 +-[\fIOPTION\fR]... \fIDEVICE\fR ++[\fIoptions\fR] \fIdevice\fR + + .SH WARNING + All computers \fImust\fP have the filesystem unmounted before running +@@ -13,30 +13,22 @@ fsck.gfs2. Failure to unmount from all nodes in a cluster will likely result + in filesystem corruption. + + .SH DESCRIPTION +-fsck.gfs2 will check that the GFS or GFS2 file system on a device is structurally valid. +-It should not be run on a mounted file system. If file system corruption is +-detected, it will attempt to repair the file system. There is a limit to what +-fsck.gfs2 can do. If important file system structures are destroyed, such that +-the checker cannot determine what the repairs should be, reparations could +-fail. ++fsck.gfs2 will check that the GFS or GFS2 file system on a device is ++structurally valid. It should not be run on a mounted file system. If file ++system corruption is detected, it will attempt to repair the file system. ++There is a limit to what fsck.gfs2 can do. If important file system structures ++are destroyed, such that the checker cannot determine what the repairs should ++be, reparations could fail. + +-GFS2 is a journaled file system, and as such should be able to repair damage to +-the file system on its own. However, faulty hardware has the ability to write +-incomplete blocks to a file system thereby causing corruption that GFS2 cannot +-fix. The first step to ensuring a healthy file system is the selection of +-reliable hardware (i.e. storage systems that will write complete blocks - even +-in the event of power failure). +- +-Note: Most file system checkers will not check the file system if it is +-"clean" (i.e. unmounted since the last use). The fsck.gfs program behaves +-differently because the storage may be shared among several nodes in a +-cluster, and therefore problems may have been introduced on a different +-computer. Therefore, fsck.gfs2 will always check the file system unless +-the -p (preen) option is used, in which case it follows special rules ++Other file system checkers will not check the file system if it is "clean" ++(i.e. unmounted since the last use). With gfs2, storage may be shared among ++several nodes in a cluster, and therefore problems may have been introduced on ++a different computer. Therefore, fsck.gfs2 will always check the file system ++unless the -p (preen) option is used, in which case it follows special rules + (see below). + +-fsck.gfs2 will log to the system log on start and exit to aid debugging and +-administration. ++fsck.gfs2 will log a message to the system log on start and exit to aid ++debugging and administration. + .SH OPTIONS + .TP + \fB-a\fP +@@ -86,3 +78,8 @@ Yes to all questions. By specifying this option, fsck.gfs2 will not prompt befor + changes. + + This option may not be used with the \fB-n\fP or \fB-p\fP/\fB-a\fP options. ++ ++.SH SEE ALSO ++.BR gfs2 (5), ++.BR gfs2_jadd (8), ++.BR gfs2_grow (8) diff --git a/SOURCES/bz1757115-gfs2_5_General_updates_and_layout_improvements.patch b/SOURCES/bz1757115-gfs2_5_General_updates_and_layout_improvements.patch new file mode 100644 index 0000000..46b6b6d --- /dev/null +++ b/SOURCES/bz1757115-gfs2_5_General_updates_and_layout_improvements.patch @@ -0,0 +1,291 @@ +commit 75934649b85259d1559eabca40be820095643239 +Author: Andrew Price +Date: Tue Feb 12 09:58:11 2019 +0000 + + gfs2.5: General updates and layout improvements + + - Update the manpage to mention lvmlockd and don't mention gfs2_quota + or gfs_controld (both obsolete). + - Simplify the setup instructions and refer to distribution-specific + docs and support requirements. + - Rearrange the "See also" section for relevance and incorporate the + references from the setup section. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/man/gfs2.5 b/gfs2/man/gfs2.5 +index 56d1a008..436abc09 100644 +--- a/gfs2/man/gfs2.5 ++++ b/gfs2/man/gfs2.5 +@@ -21,6 +21,20 @@ mounts which are equivalent to mounting a read-only block device and as + such can neither recover a journal or write to the filesystem, so do not + require a journal assigned to them. + ++The GFS2 documentation has been split into a number of sections: ++ ++\fBmkfs.gfs2\fP(8) Create a GFS2 filesystem ++.br ++\fBfsck.gfs2\fP(8) The GFS2 filesystem checker ++.br ++\fBgfs2_grow\fP(8) Growing a GFS2 filesystem ++.br ++\fBgfs2_jadd\fP(8) Adding a journal to a GFS2 filesystem ++.br ++\fBtunegfs2\fP(8) Tool to manipulate GFS2 superblocks ++.br ++\fBgfs2_edit\fP(8) A GFS2 debug tool (use with caution) ++ + .SH MOUNT OPTIONS + + .TP +@@ -200,220 +214,55 @@ versa. Finally, when first enabling this option on a filesystem that had been + previously mounted without it, you must make sure that there are no outstanding + cookies being cached by other software, such as NFS. + +-.SH BUGS +- +-GFS2 doesn't support \fBerrors=\fP\fIremount-ro\fR or \fBdata=\fP\fIjournal\fR. +-It is not possible to switch support for user and group quotas on and +-off independently of each other. Some of the error messages are rather +-cryptic, if you encounter one of these messages check firstly that gfs_controld +-is running and secondly that you have enough journals on the filesystem +-for the number of nodes in use. +- +-.SH SEE ALSO +- +-\fBmount\fP(8) for general mount options, +-\fBchmod\fP(1) and \fBchmod\fP(2) for access permission flags, +-\fBacl\fP(5) for access control lists, +-\fBlvm\fP(8) for volume management, +-\fBccs\fP(7) for cluster management, +-\fBumount\fP(8), +-\fBinitrd\fP(4). +- +-The GFS2 documentation has been split into a number of sections: +- +-\fBgfs2_edit\fP(8) A GFS2 debug tool (use with caution) +-\fBfsck.gfs2\fP(8) The GFS2 file system checker +-\fBgfs2_grow\fP(8) Growing a GFS2 file system +-\fBgfs2_jadd\fP(8) Adding a journal to a GFS2 file system +-\fBmkfs.gfs2\fP(8) Make a GFS2 file system +-\fBgfs2_quota\fP(8) Manipulate GFS2 disk quotas +-\fBgfs2_tool\fP(8) Tool to manipulate a GFS2 file system (obsolete) +-\fBtunegfs2\fP(8) Tool to manipulate GFS2 superblocks +- + .SH SETUP + +-GFS2 clustering is driven by the dlm, which depends on dlm_controld to +-provide clustering from userspace. dlm_controld clustering is built on +-corosync cluster/group membership and messaging. +- +-Follow these steps to manually configure and run gfs2/dlm/corosync. +- +-.B 1. create /etc/corosync/corosync.conf and copy to all nodes +- +-In this sample, replace cluster_name and IP addresses, and add nodes as +-needed. If using only two nodes, uncomment the two_node line. +-See corosync.conf(5) for more information. +- +-.nf +-totem { +- version: 2 +- secauth: off +- cluster_name: abc +-} +- +-nodelist { +- node { +- ring0_addr: 10.10.10.1 +- nodeid: 1 +- } +- node { +- ring0_addr: 10.10.10.2 +- nodeid: 2 +- } +- node { +- ring0_addr: 10.10.10.3 +- nodeid: 3 +- } +-} +- +-quorum { +- provider: corosync_votequorum +-# two_node: 1 +-} +- +-logging { +- to_syslog: yes +-} +-.fi +- +-.PP +- +-.B 2. start corosync on all nodes +- +-.nf +-systemctl start corosync +-.fi +- +-Run corosync-quorumtool to verify that all nodes are listed. +- +-.PP +- +-.B 3. create /etc/dlm/dlm.conf and copy to all nodes +- +-.B * +-To use no fencing, use this line: ++GFS2 clustering is driven by the dlm, which depends on dlm_controld to provide ++clustering from userspace. dlm_controld clustering is built on corosync ++cluster/group membership and messaging. GFS2 also requires clustered lvm which ++is provided by lvmlockd or, previously, clvmd. Refer to the documentation for ++each of these components and ensure that they are configured before setting up ++a GFS2 filesystem. Also refer to your distribution's documentation for any ++specific support requirements. + +-.nf +-enable_fencing=0 +-.fi ++Ensure that gfs2-utils is installed on all nodes which mount the filesystem as ++it provides scripts required for correct withdraw event response. + +-.B * +-To use no fencing, but exercise fencing functions, use this line: +- +-.nf +-fence_all /bin/true +-.fi +- +-The "true" binary will be executed for all nodes and will succeed (exit 0) +-immediately. +- +-.B * +-To use manual fencing, use this line: +- +-.nf +-fence_all /bin/false +-.fi +- +-The "false" binary will be executed for all nodes and will fail (exit 1) +-immediately. +- +-When a node fails, manually run: dlm_tool fence_ack +- +-.B * +-To use stonith/pacemaker for fencing, use this line: +- +-.nf +-fence_all /usr/sbin/dlm_stonith +-.fi +- +-The "dlm_stonith" binary will be executed for all nodes. If +-stonith/pacemaker systems are not available, dlm_stonith will fail and +-this config becomes the equivalent of the previous /bin/false config. +- +-.B * +-To use an APC power switch, use these lines: +- +-.nf +-device apc /usr/sbin/fence_apc ipaddr=1.1.1.1 login=admin password=pw +-connect apc node=1 port=1 +-connect apc node=2 port=2 +-connect apc node=3 port=3 +-.fi +- +-Other network switch based agents are configured similarly. +- +-.B * +-To use sanlock/watchdog fencing, use these lines: +- +-.nf +-device wd /usr/sbin/fence_sanlock path=/dev/fence/leases +-connect wd node=1 host_id=1 +-connect wd node=2 host_id=2 +-unfence wd +-.fi +- +-See fence_sanlock(8) for more information. +- +-.B * +-For other fencing configurations see dlm.conf(5) man page. +- +-.PP +- +-.B 4. start dlm_controld on all nodes +- +-.nf +-systemctl start dlm +-.fi +- +-Run "dlm_tool status" to verify that all nodes are listed. +- +-.PP +- +-.B 5. if using clvm, start clvmd on all nodes +- +-systemctl clvmd start +- +-.PP +- +-.B 6. make new gfs2 file systems ++.B 1. Create the gfs2 filesystem + + mkfs.gfs2 -p lock_dlm -t cluster_name:fs_name -j num /path/to/storage + +-The cluster_name must match the name used in step 1 above. +-The fs_name must be a unique name in the cluster. +-The -j option is the number of journals to create, there must +-be one for each node that will mount the fs. ++The cluster_name must match the name configured in corosync (and thus dlm). ++The fs_name must be a unique name for the filesystem in the cluster. ++The -j option is the number of journals to create; there must ++be one for each node that will mount the filesystem. + + .PP ++.B 2. Mount the gfs2 filesystem + +-.B 7. mount gfs2 file systems ++If you are using a clustered resource manager, see its documentation for ++enabling a gfs2 filesystem resource. Otherwise, run: + + mount /path/to/storage /mountpoint + + Run "dlm_tool ls" to verify the nodes that have each fs mounted. + + .PP ++.B 3. Shut down + +-.B 8. shut down ++If you are using a clustered resource manager, see its documentation for ++disabling a gfs2 filesystem resource. Otherwise, run: + +-.nf + umount -a -t gfs2 +-systemctl clvmd stop +-systemctl dlm stop +-systemctl corosync stop +-.fi + + .PP ++.SH SEE ALSO + +-.B More setup information: +-.br +-.BR dlm_controld (8), +-.br +-.BR dlm_tool (8), +-.br +-.BR dlm.conf (5), +-.br +-.BR corosync (8), +-.br +-.BR corosync.conf (5) +-.br ++\fBmount\fP(8) and \fBumount\fP(8) for general mount information, ++\fBchmod\fP(1) and \fBchmod\fP(2) for access permission flags, ++\fBacl\fP(5) for access control lists, ++\fBlvm\fP(8) for volume management, ++\fBdlm_controld\fP(8), ++\fBdlm_tool\fP(8), ++\fBdlm.conf\fP(5), ++\fBcorosync\fP(8), ++\fBcorosync.conf\fP(5), diff --git a/SPECS/gfs2-utils.spec b/SPECS/gfs2-utils.spec index 507a398..274ce31 100644 --- a/SPECS/gfs2-utils.spec +++ b/SPECS/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 5%{?dist} +Release: 7%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -37,6 +37,8 @@ Patch0: bz1622050-1-fsck_gfs2_Don_t_check_fs_formats_we_don_t_recognise.patch Patch1: bz1622050-2-libgfs2_Fix_pointer_cast_byte_order_issue.patch Patch2: bz1659490-gfs2_utils_Wrong_hash_value_used_to_clean_journals.patch Patch3: bz1698858-mkfs_gfs2_Improve_alignment_of_first_resource_group.patch +Patch4: bz1757115-gfs2_5_General_updates_and_layout_improvements.patch +Patch5: bz1693000-fsck_gfs2_8_Manpage_updates.patch %prep %setup -q -n gfs2-utils-%{version} @@ -44,6 +46,8 @@ Patch3: bz1698858-mkfs_gfs2_Improve_alignment_of_first_resource_group.patch %patch1 -p1 -b .bz1622050-2-libgfs2_Fix_pointer_cast_byte_order_issue %patch2 -p1 -b .bz1659490-gfs2_utils_Wrong_hash_value_used_to_clean_journals %patch3 -p1 -b .bz1698858-mkfs_gfs2_Improve_alignment_of_first_resource_group +%patch4 -p1 -b .bz1757115-gfs2_5_General_updates_and_layout_improvements +%patch5 -p1 -b .bz1693000-fsck_gfs2_8_Manpage_updates %build ./autogen.sh @@ -83,6 +87,14 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Fri Oct 18 2019 Andrew Price - 3.2.0-7 +- fsck.gfs2(8): Manpage updates + Resolves: rhbz#1693000 + +* Wed Oct 16 2019 Andrew Price - 3.2.0-6 +- gfs2.5: General updates and layout improvements + Resolves: rhbz#1757115 + * Fri May 03 2019 Andrew Price - 3.2.0-5 - mkfs.gfs2: Improve alignment of first resource group Resolves: rhbz#1698858