Git Product home page Git Product logo

Comments (5)

tasleson avatar tasleson commented on August 17, 2024

This is caused by NVMe multipath support. We'll need to add some logic to handle this. /dev/nvme0n1 is a virtual path which can have 1 or more physical controllers. The other block devices for each of the redundant paths are "hidden".

More details here

from ledmon.

mtkaczyk avatar mtkaczyk commented on August 17, 2024

This is caused by NVMe multipath support. We'll need to add some logic to handle this. /dev/nvme0n1 is a virtual path which can have 1 or more physical controllers. The other block devices for each of the redundant paths are "hidden".

In this case I would check if we can report controller earlier, to avoid multipath specyfic paths but I don't know if it is possible and I don't have hardware to check:

/sys/devices/pci0000:e2/0000:e2:02.0/0000:e3:00.0/0000:e4:04.0/0000:ef:00.0 (Dell SSD)
/sys/devices/pci0000:64/0000:64:02.0/0000:65:00.0/0000:66:00.0/0000:67:00.0 (Dell SSD)
/sys/devices/pci0000:e2/0000:e2:02.0/0000:e3:00.0/0000:e4:00.0/0000:e5:00.0 (Dell SSD)
/sys/devices/pci0000:64/0000:64:02.0/0000:65:00.0/0000:66:04.0/0000:71:00.0 (Dell SSD)

Theoretically, if the controller will be reported for real NVME device, then problem should disappear (If I assumed correctly that these paths are NVMEs). We will need to do this anyway to hide duplicates.

I would prefer to not hide controllers but I understand that in this case it could not be possible.

from ledmon.

tasleson avatar tasleson commented on August 17, 2024

This is caused by NVMe multipath support. We'll need to add some logic to handle this. /dev/nvme0n1 is a virtual path which can have 1 or more physical controllers. The other block devices for each of the redundant paths are "hidden".

In this case I would check if we can report controller earlier, to avoid multipath specyfic paths but I don't know if it is possible and I don't have hardware to check:

The issue is that the normal /dev/nvme0n1 is the "virtual" one. There is nothing in /dev/ that refers to the physical one. It can be seen in sysfs /sys/block/nvme0c0n1 but to figure that out in code is a little weird IMHO.

/sys/devices/pci0000:e2/0000:e2:02.0/0000:e3:00.0/0000:e4:04.0/0000:ef:00.0 (Dell SSD)
/sys/devices/pci0000:64/0000:64:02.0/0000:65:00.0/0000:66:00.0/0000:67:00.0 (Dell SSD)
/sys/devices/pci0000:e2/0000:e2:02.0/0000:e3:00.0/0000:e4:00.0/0000:e5:00.0 (Dell SSD)
/sys/devices/pci0000:64/0000:64:02.0/0000:65:00.0/0000:66:04.0/0000:71:00.0 (Dell SSD)

Theoretically, if the controller will be reported for real NVME device, then problem should disappear (If I assumed correctly that these paths are NVMEs). We will need to do this anyway to hide duplicates.

All these paths are real NVMe. There are no duplicates as this system only has 1 path to each of the devices. I'm not sure if you can have multiple paths for directly attached PCI based NVMe devices. I would think this only applies if you're using NVMe-of. In that case I don't believe we can control the LED's anyways.

I would prefer to not hide controllers but I understand that in this case it could not be possible.

I don't think we need to hide anything yet.

from ledmon.

mtkaczyk avatar mtkaczyk commented on August 17, 2024

This is caused by NVMe multipath support. We'll need to add some logic to handle this. /dev/nvme0n1 is a virtual path which can have 1 or more physical controllers. The other block devices for each of the redundant paths are "hidden".

In this case I would check if we can report controller earlier, to avoid multipath specyfic paths but I don't know if it is possible and I don't have hardware to check:

The issue is that the normal /dev/nvme0n1 is the "virtual" one. There is nothing in /dev/ that refers to the physical one. It can be seen in sysfs /sys/block/nvme0c0n1 but to figure that out in code is a little weird IMHO.

You right, my bad, I was surprised by a huge list of controllers so first I wanted to make it smaller but it is not possible. Those links are pci devices (physical ones) and there are no nvme-subsystem entries. At first glance, I thought that there are duplicates on controller list (multiple links to the same nvme device ).

Let me review the change you proposed, I need to setup platform with MP drives to see how it will affect ledmon so I need few days.

from ledmon.

tasleson avatar tasleson commented on August 17, 2024

Should be addressed with: #167

from ledmon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.