Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New subvolume code fails to generate fstab entry on SES6 GMC2 (and probably GM too!). #1700

Open
tuxwielder opened this issue Jul 3, 2019 · 1 comment

Comments

@tuxwielder
Copy link

tuxwielder commented Jul 3, 2019

Description of Issue/Question

Since GMC2 the btrfs volume step as documented in the official deployment and admin guides fails (i.e. the instruction to run "root@master # salt-run state.orch ceph.migrate.subvolume"). I'm too frustrated to create a separate bug-report on the production! documentation being wrong :).

It fails because since commit c0eef05 this logic has been moved to 'srv/salt/ceph/subvolume'

The README for this, is not packaged into the GMC2 RPM's, but reading the instructions from the Github repository, we are supposed to run:

  # salt '*' saltutil.sync_all
  # salt 'minion*' state.apply ceph.subvolume

As a preparatory step on the monitor minions.

The latter fails on our SLES15SP1/SES6 GMC2 (and probably SES6 GM!) deployments, because the code in '/srv/salt/ceph/subvolume/default.sls' assumes a default label in fstab ('LABEL=ROOT'), whereas our SLES15SP1/SES6 GMC2 installation uses UUID as labels (e.g.
UUID=e0f0dd5d-4559-46fa-8894-c76da5fb359e /var btrfs subvol=/@/var 0 0 ).

Therefore the fstab is never adopted properly.

Setup

Just install SLES15SP1 with SES6 GMC2 and follow the new instructions.

Steps to Reproduce Issue

  sds-adm1:/# salt 'sds-mon*' state.apply ceph.subvolume
  sds-mon1.XXXXX:
    Name: btrfs subvolume create /var/lib/ceph - Function: cmd.run - Result: Changed Started: - 14:17:03.400141 Duration: 18.126 ms
    Name: sed -i 's!LABEL=ROOT /var btrfs defaults,subvol=@/var 0 0!&\
  LABEL=ROOT /var/lib/ceph btrfs defaults,subvol=@/var/lib/ceph 0 0!' /etc/fstab - Function: 
  cmd.run - Result: Changed Started: - 14:17:03.418499 Duration: 12.234 ms
  ----------
            ID: mount
      Function: cmd.run
          Name: mount /var/lib/ceph
        Result: False
       Comment: Command "mount /var/lib/ceph" run
       Started: 14:17:03.430969
      Duration: 14.736 ms
       Changes:
                ----------
                pid:
                    26163
                retcode:
                    1
                stderr:
                    mount: /var/lib/ceph: can't find in /etc/fstab.
                stdout:

  Summary for sds-mon1.XXXXX
  ------------
  Succeeded: 2 (changed=3)
  Failed:    1
 ------------
  Total states run:     3
  Total run time:  45.096 ms
  ....

Versions Report

(Provided by running:
salt-run deepsea.version
rpm -qi salt-minion
rpm -qi salt-master
)

  sds-adm1:~ # salt-run deepsea.version
  0.9.22+git.0.29e84a00e
  sds-adm1:~ # rpm -qi salt-minion
 Name        : salt-minion
  Version     : 2019.2.0
  Release     : 4.4
  Architecture: x86_64
  Install Date: Wed Jul  3 11:03:46 2019
  Group       : System/Management
  Size        : 41019
  License     : Apache-2.0
  Signature   : RSA/SHA256, Mon May 13 14:44:42 2019, Key ID 70af9e8139db7c82
  Source RPM  : salt-2019.2.0-4.4.src.rpm
 Build Date  : Mon May 13 14:40:28 2019
  Build Host  : sheep65
  Relocations : (not relocatable)
  Packager    : https://www.suse.com/
 Vendor      : SUSE LLC <https://www.suse.com/>
  URL         : http://saltstack.org/
 Summary     : The client component for Saltstack
  Description :
 Salt minion is queried and controlled from the master.
 Listens to the salt master and execute the commands.
  Distribution: SUSE Linux Enterprise 15
  sds-adm1:~ # rpm -qi salt-master
  Name        : salt-master
  Version     : 2019.2.0
  Release     : 4.4
  Architecture: x86_64
  Install Date: Wed Jul  3 09:58:24 2019
   Group       : System/Management
  Size        : 2936818
  License     : Apache-2.0
  Signature   : RSA/SHA256, Mon May 13 14:44:42 2019, Key ID 70af9e8139db7c82
  Source RPM  : salt-2019.2.0-4.4.src.rpm
  Build Date  : Mon May 13 14:40:28 2019
  Build Host  : sheep65
  Relocations : (not relocatable)
  Packager    : https://www.suse.com/
  Vendor      : SUSE LLC <https://www.suse.com/>
  URL         : http://saltstack.org/
  Summary     : The management component of Saltstack with zmq protocol supported
  Description :
  The Salt master is the central server to which all minions connect.
  Enabled commands to remote systems to be called in parallel rather
  than serially.
  Distribution: SUSE Linux Enterprise 15
@tuxwielder
Copy link
Author

The following seems to fix our issue for us:

--- srv/salt/ceph/subvolume/default.sls.org	2019-07-03 16:24:24.393357287 +0200
+++ srv/salt/ceph/subvolume/default.sls	2019-07-03 16:42:44.248197060 +0200
@@ -8,7 +8,7 @@
 {# sed is easier to explain/debug than file.replace #}
 fstab:
   cmd.run:
-    - name: "sed -i 's!LABEL=ROOT /var btrfs defaults,subvol=@/var 0 0!&\\\nLABEL=ROOT /var/lib/ceph btrfs defaults,subvol=@/var/lib/ceph 0 0!' /etc/fstab"
+    - name: "sed -i 's!\\(^[^ ]*\\).*/var .*.*$!&\\n\\1  /var/lib/ceph           btrfs  subvol=@/var/lib/ceph         0  0!' /etc/fstab"
     - unless: "grep -q subvol=@/var/lib/ceph /etc/fstab"
     - failhard: True

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant