Project

Profile

Help

Story #1337

As a user, I want to reduce the number of inodes used by nodes.

Added by jortel@redhat.com about 6 years ago. Updated over 2 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
2.6.6
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

Description

Here is a proposal to update nodes to use ZERO symlinks.

In the nodes apache configuration add:


+Alias /pulp/nodes/https/content /var/www/pulp/nodes/https/content
+<Directory /var/www/pulp/nodes/https/repos >
+  Options FollowSymLinks Indexes
+  SSLRequireSSL
+  SSLVerifyClient require
+  SSLVerifyDepth  5
+  SSLOptions +FakeBasicAuth
+  SSLRequire %{SSL_CLIENT_S_DN_O} eq "PULP" and %{SSL_CLIENT_S_DN_OU} eq "NODES"
+</Directory>

To expose /var/lib/pulp/content at: /pulp/nodes/https/content and protect it using the node certificate.

The published manifest contains a base url property today that the child uses to construct urls to download content. The manifest would be augmented to include a new property having the value of: '/var/www/pulp/nodes/https/content'. The child node (importer) would use this information (when available) when constructing the download urls instead. If not available, it would construct the urls as it does today.

After upgrade:

The parent node (satellite):

On the next node publish will generate a new manifest and NOT create any symlinks. Any existing symlinks are cleaned up as part of the atomic publish.

The child node (capsule):

On the next node sync, the new manifest is downloaded. When content needs to be downloaded, the new property is noticed and used to construct the download URL.

So, no migration required unless we want to do this without requiring users to run a node publish. But not sure that is worth the extra effort.

Associated revisions

Revision bc0d42aa View on GitHub
Added by jortel@redhat.com almost 6 years ago

ref #1337 - Discontinue linking files for each unit during node publish.

Revision bc0d42aa View on GitHub
Added by jortel@redhat.com almost 6 years ago

ref #1337 - Discontinue linking files for each unit during node publish.

Revision ee0522b9 View on GitHub
Added by jortel@redhat.com almost 6 years ago

Merge pull request #2239 from jortel/issue-1337

ref #1337 - Discontinue linking files for each unit during node publish.

Revision ee0522b9 View on GitHub
Added by jortel@redhat.com almost 6 years ago

Merge pull request #2239 from jortel/issue-1337

ref #1337 - Discontinue linking files for each unit during node publish.

History

#1 Updated by jortel@redhat.com about 6 years ago

  • Description updated (diff)

#3 Updated by jortel@redhat.com almost 6 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to jortel@redhat.com

#5 Updated by jortel@redhat.com almost 6 years ago

  • Status changed from ASSIGNED to POST

#6 Updated by jortel@redhat.com almost 6 years ago

  • Status changed from POST to MODIFIED
  • Platform Release set to 2.6.6

#7 Updated by jortel@redhat.com almost 6 years ago

Small deviation from the proposal:

The importer was changed to always download content using the new endpoint instead of deciding based on an optional property included during publishing. As a result, it is safe to remove ALL symlinks under /var/lib/pulp/nodes/published/ manually rather than wait for the next node publishes.

For example, admins can do something like this:

find /var/lib/pulp/nodes/published -type l -delete
find /var/lib/pulp/nodes/published -type d -empty -delete

We can do something like this in the .spec to clean up the links but would rather admins do this manually.

#8 Updated by rbarlow almost 6 years ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

#10 Updated by bmbouter over 2 years ago

  • Tags Pulp 2 added

Please register to edit this issue

Also available in: Atom PDF