Uploaded image for project: 'OpenShift Runtimes'
  1. OpenShift Runtimes
  2. RUN-1755

Spike: split filesystem and make each partition first class citizen of kube

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Normal Normal
    • openshift-4.14
    • None
    • None
    • None
    • Split filesystem
    • False
    • None
    • False
    • Not Selected
    • To Do
    • OCPSTRAT-188 - Split filesystem and make each partition first class citizen for kubelet
    • sst_container_tools
    • 100% To Do, 0% In Progress, 0% Done

      OCP/Telco Definition of Done
      Epic Template descriptions and documentation.

      <--- Cut-n-Paste the entire contents of this description into your new Epic --->

      Epic Goal

      • /var/lib/container is moved to a different disk sda1.
      • Ephemeral storage stays with /var/lib/kubelet
      • This is achieved by crio creating the writable layer for containers on the first disk when configured with a separate disk for /var/lib/container, instead of under the default /var/lib/containers which is on the second disk.
      • Only sda0 hosting /var/lib/kubelet is considered for disk usage accounting, capacity and eviction calculations
      • Since rootfs and ephemeral storage are on sda0, that is okay.
      • One problem here is the image GC will look at sda0 filling-up and try to clean-up sda1 in order to free-up space. Obviously, this will not work.
      • Mitigation is to make it read-only ( no writable layer by default), so, writable layer is not used by accident.

       

      Notes from Cabal:

      1. Having kube manage one ephemeral storage
      2. There is var/lib/kubelet and var/lib/containers in kubelet
      3. Customers want to optimize performance, and we suggest they move to a different disk if they have too much data
      4. But when they start using 2 disks, then kubelet can’t manage the data because there is only one ephemeral storage
      5. So a short term solution is what if we have kubelet create the writable layer directory under var/lib/kubelet and pass it over the CRI and cri-o can pass it down to the storage so we don’t break ephemeral storage
      6. Are there any downsides to this? Could it break overlay?
      7. Could we configure cri-o to have readable and writable directories that are cri-o managed?
      8. Advantage of kubelet creating and passing it down is kubelet will monitor the directory and is responsible for the lifecycle of the pod and will know when to track and remove it as needed
      9. Disadvantage: It makes it impossible to test this scenario in c/storage etc. without including a Kubelet in the setup.
      1. This is overlay specific
      2. Create a spike to continue seeing how much effort this would be

      Why is this important?

      • Saving space on root by separating read only layer on sda1 it will free up space of images in sda0 (root)
      • I/O throttling : having multiple disk can improve I/O

      Scenarios

      1. ...

      Acceptance Criteria

      • CI - MUST be running successfully with tests automated
      • Release Technical Enablement - Provide necessary release enablement details and documents.
      • ...

      Dependencies (internal and external)

      1. ...

      Previous Work (Optional):

      Open questions::

      Done Checklist

      • CI - CI is running, tests are automated and merged.
      • Release Enablement <link to Feature Enablement Presentation>
      • DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>
      • DEV - Upstream documentation merged: <link to meaningful PR or GitHub Issue>
      • DEV - Downstream build attached to advisory: <link to errata>
      • QE - Test plans in Polarion: <link or reference to Polarion>
      • QE - Automated tests merged: <link or reference to automated tests>
      • DOC - Downstream documentation merged: <link to meaningful PR>

            gscrivan@redhat.com Giuseppe Scrivano
            umohnani Urvashi Mohnani
            Archiver:
            mheon@redhat.com Matt Heon
            Sunil Choudhary Sunil Choudhary

              Created:
              Updated:
              Archived: