Add mount-point inode and read-only operational state leaves - #1519
Add mount-point inode and read-only operational state leaves#1519Verma-Anukul wants to merge 2 commits into
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Code Review
This pull request updates the openconfig-system.yang model to version 3.2.0, introducing new operational leaves for filesystem mount-points: inodes-available, inodes-total, and read-only. The feedback suggests clarifying the description of inodes-total to avoid ambiguity with inodes-available and recommends adding an inodes-utilized leaf to maintain consistency with existing storage metrics.
3d38fca to
9e43d2b
Compare
Extend mount-point operational state with inodes-total, inodes-available, inodes-utilized, and read-only so implementations can expose filesystem inode utilization and mount mode without vendor extensions. Signed-off-by: Verma-Anukul <anukulverma2013@gmail.com>
|
Thanks for the review. Addressed both points in the latest update:
SONiC currently publishes inode free/total counts from |
9e43d2b to
a25932f
Compare
|
/azp run |
|
OC review Jul 21. @Verma-Anukul we need 2 reference implementations from vendors for us to take this request in. |
|
OC Review 28th. @Verma-Anukul we would need 2 supporting vendor implementation references to take this forward. @nokia1adam @earies can you please add your comments on this ? |
|
OC review August 4th: Need input on the reference implementations. |
I have added a few references in the PR description for context. Both the standard Linux Most network operating systems also provide access to these standard utilities through their underlying Linux/Unix shell. For example:
Additionally, SONiC's STATE_DB has been extended to expose these filesystem attributes: The proposed OpenConfig augmentation is intended to expose these already available filesystem attributes ( |
LGTM |
This change introduces new mount-point operational state leaves
inodes-total,inodes-available,inodes-utilized, andread-onlyunder/system/mount-points/mount-point/state. These complement the existing storage space leaves (size,available,utilized) by exposing inode capacity/utilization and mount mode for filesystem monitoring and troubleshooting.The version has been bumped to
3.2.0inopenconfig-system.yang.Change-Id: Ia25932ff09415b97d0960384579a37a4013d8183
Change Scope
mount-point-stategrouping inopenconfig-system.yangfor inode total/free/used counts and read-only mount status.inodes-totalrefers to total inode capacity;inodes-availablerefers to free/unused inodes;inodes-utilizedmirrors the existing storageutilizedleaf for used inode count.Use case
Filesystem exhaustion is a common cause of control-plane and application failures on network devices. While existing mount-point leaves report block storage (
size,available,utilized), operators also need inode utilization to detect cases where free space remains but file creation fails due to inode exhaustion. Theread-onlyleaf surfaces mount mode changes that can silently block writes during disk pressure or maintenance events.Platform Implementations
statfs(2)/dfprovide inode total and free counts on Linux-based NOS platforms.https://man7.org/linux/man-pages/man1/df.1.html
https://man7.org/linux/man-pages/man2/statfs.2.html
https://www.juniper.net/documentation/us/en/software/junos/cli-reference/topics/ref/command/show-system-inventory-hardware-storage.html
https://www.cisco.com/c/en/us/td/docs/iosxr/cisco8000/system-management/b-system-management/m-utility-commands.html#wp8767566250
https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-514/Monitoring-and-Troubleshooting/Monitoring-Best-Practices/
Tree View
module: openconfig-system +--rw system ... +--rw mount-points +--rw mount-point* [name] ... +--ro state ... +--ro size? uint64 +--ro available? uint64 +--ro utilized? uint64 +--ro type? union + +--ro inodes-available? uint64 + +--ro inodes-total? uint64 + +--ro inodes-utilized? uint64 + +--ro read-only? boolean