You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During benchmark testing/parameter scan of a Lustre 2.10 system (actually 2.9.58_57_gc252b3b) using obdfilter-survey, getting panics in ABD when larger-than-SPA_MAXBLOCKSIZE assertion fails.
Describe how to reproduce the problem
Summary of disk arrangement:
90 SAS disks in 3 JBODS on two SAS cards, all using multipath.
8 11-disk raidz2 pools, two global spares
On ZFS 0.7.0-rc3 with Lustre 2.9, this ran successfully using zfs dataset recordsizes from 512K to 16M.
On ZFS 0.7.0-rc4 with Lustre 2.9.58_57_gc252b3b, this ran fine on zfs recordsizes of 512K and 1M, but with zfs 2M, failed when lustre recordsize reached 2M. (see obdfilter-survey output below)
Looking at the panic and assertion failure, and digging around for similar problem reports, I suspect the unusually-large zfs_vdev_aggregation_limit=16777216 is causing issues. Reducing it to 8388608 allowed the obdfilter-survey run to succeed. It was originally set at that high value in an attempt to improve lustre small-file performance, but is probably not appropriate.
This could very well be a bug in Lustre, or at least the lack of checking for unusually stupid combinations of parameters.
Include any warning/errors/backtraces from the system logs
Commit 8542ef8 allowed optional IOs to be aggregated beyond
the specified aggregation limit. Since the aggregation limit
was also used to enforce the maximum block size, setting
`zfs_vdev_aggregation_limit=16777216` could result in an
attempt to allocate an ABD larger than 16M.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue openzfs#6259
@NateCrawford thanks for the detailed bug report. This issue was introduced by 8542ef8 and it can only occur when the zfs_vdev_aggregation_limit is set close to the maximum block size as you observed. I've opened #6270 with a proposed fix.
System information
Describe the problem you're observing
During benchmark testing/parameter scan of a Lustre 2.10 system (actually 2.9.58_57_gc252b3b) using obdfilter-survey, getting panics in ABD when larger-than-SPA_MAXBLOCKSIZE assertion fails.
Describe how to reproduce the problem
Summary of disk arrangement:
90 SAS disks in 3 JBODS on two SAS cards, all using multipath.
8 11-disk raidz2 pools, two global spares
Non-default kernel module parameters:
metaslab_aliquot=2097152
metaslab_debug_unload=1
zfs_dirty_data_max=2147483648
zfs_dirty_data_sync=134217728
zfs_max_recordsize=16777216
zfs_prefetch_disable=1
zfs_txg_history=10
zfs_vdev_aggregation_limit=16777216
zfs_vdev_async_write_min_active=5
zfs_vdev_async_write_max_active=15
zfs_vdev_async_write_active_min_dirty_percent=20
zfs_vdev_scheduler=deadline
zfs_arc_max=51539607552
Non-default zfs dataset settings:
atime=off
dnodesize=auto
xattr=sa
recordsize=2M
compression=lz4
Lustre automatically detected zfs backend recordsize:
obdfilter.DFS-L-OST0000.blocksize=2097152
osd-zfs.DFS-L-OST0000.blocksize=2097152
On this Object Storage Server (dfs-data-1), this command was run as part of a scan over zfs recordsizes:
On ZFS 0.7.0-rc3 with Lustre 2.9, this ran successfully using zfs dataset recordsizes from 512K to 16M.
On ZFS 0.7.0-rc4 with Lustre 2.9.58_57_gc252b3b, this ran fine on zfs recordsizes of 512K and 1M, but with zfs 2M, failed when lustre recordsize reached 2M. (see obdfilter-survey output below)
Looking at the panic and assertion failure, and digging around for similar problem reports, I suspect the unusually-large zfs_vdev_aggregation_limit=16777216 is causing issues. Reducing it to 8388608 allowed the obdfilter-survey run to succeed. It was originally set at that high value in an attempt to improve lustre small-file performance, but is probably not appropriate.
This could very well be a bug in Lustre, or at least the lack of checking for unusually stupid combinations of parameters.
Include any warning/errors/backtraces from the system logs
obdfilter-survey output:
Syslog:
The text was updated successfully, but these errors were encountered: