
OPERATIONAL DEFECT DATABASE
...

...
A customer uses the CSI Driver for PowerFlex version 1.2.1 to format a PowerFlex volume as an XFS file system type. Symptoms When creating an XFS file system from a 2TB PowerFlex volume by the CSI Driver version 1.2.1, the inode size becomes 256 bytes (isize=256), also CRC is disabled (crc=0), while it was isize=512 before. The issue was not present in the CSI Driver for PowerFlex version 1.2.0. When creating an XFS file system from a 2TB PowerFlex volume by mkfs.xfs Linux command with the default option, the inode size becomes 512 bytes (isize=512) and CRC is enabled (crc=1). cf. man page for mkfs.xfs: https://man7.org/linux/man-pages/man8/mkfs.xfs.8.html Size=value (isize) The inode size is specified either as a value in bytes with size= or as the number fitting in a file system block with perblock=. The minimum (and default) value is 256 bytes without crc, 512 bytes with crc enabled. crc=value This is used to create a file system which maintains and checks CRC information in all metadata objects on disk. The value is either 0 to disable the feature, or 1 to enable the use of CRCs. By default, mkfs.xfs will enable metadata CRCs. Impact Users cannot have a volume with more than 400 million files due to a lack of free inodes.
The root cause is not on the PowerFlex software side but on the CSI Driver side. With the CSI driver, a Go library called gofsutil is internally used to interact with a file system format operation, and there is a side effect of forcing formatting with crc=0 in that library. https://github.com/dell/gofsutil/blob/v1.4.0/gofsutil_mount_linux.go#L133 The issue introduces the UBI (Universal Base Image) version change with the gofsutil at the CSI Driver for PowerFlex version 1.2.1. https://github.com/dell/csi-powerflex/compare/v1.2.0…v1.2.1#diff-d947c64a65fbadc3496bff6bf4f3dd823c7300954d9072ddbd3f54513c2766b5R7 Examples of the mkfs.xfs command mkfs.xfs -i size=256 is not allowed; it is required by disabling "crc". $ mkfs.xfs -i size=256 /dev/scinib Minimum inode size for CRCs is 512 bytes mkfs.xfs -m crc=0 option will get an xfs file system with "isize=256" and "crc=0", which is equivalent result with the CSI driver v1.2.1. $ xfs_info /dev/scinib meta-data=/dev/scinib isize=256 agcount=4, agsize=134217728 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 spinodes=0 data = bsize=4096 blocks=536870912, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=262144, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 mkfs.xfs default option will get an xfs file system with "isize=512" and "crc=1", which are expected metadata values in general. $ xfs_info /dev/scinib meta-data=/dev/scinib isize=512 agcount=4, agsize=134217728 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=536870912, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=262144, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 CSI Driver case handling notes Typically, the ViPR/SRM L2 team is the first contact point for CSI-related issues.PowerFlex L2 (and L3) team possibly is engaged on a case-by-case basis for collaboration from the PowerFlex software perspective.Refer to Requirements for Kubernetes Escalation Reference for CSI Driver for PowerFlex csi-powerflex (CSI Driver for PowerFlex): https://github.com/dell/csi-powerflexgofsutil (A Go library for filesystem-related operations such as mount, format, etc.): https://github.com/dell/gofsutil
Not a PowerFlex software issue
Click on a version to see all relevant bugs
Dell Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.