Project Description

Obtaining correct information about devices in the system is crucial for multipath-tools. Properties of devices depend on each other. Certain properties matter in some parts of the code and some in others. multipath currently relies strongly on udev, which is good because it provides abstraction, but has also strong drawbacks because udev isn't always reliable and too configurable. In particular during boot, udev lacks information about devices before "coldplug" has been run. Another issue is that some properties are cached in udev and others in sysfs, but for multipathd it's important to obtain up-to-date information.

Goal for this Hackweek

Refactor the way multipathd models physical devices. My (currently vague) idea is to use lazy evaluation of properties, and to model property dependencies explicitly. It sounds weird, but a key factor is to determine reliably whether a given device exists at a given time.

Looking for hackers with the skills:

c multipath storage

This project is part of:

Hack Week 20

Activity

  • over 4 years ago: mwilck added keyword "c" to this project.
  • over 4 years ago: mwilck added keyword "multipath" to this project.
  • over 4 years ago: mwilck added keyword "storage" to this project.
  • over 4 years ago: mwilck originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources