Alexander Motin
2019-Apr-09 00:55 UTC
about zfs and ashift and changing ashift on existing zpool
On 08.04.2019 20:21, Eugene Grosbein wrote:> 09.04.2019 7:00, Kevin P. Neal wrote: > >>> My guess (given that only ada1 is reporting a blocksize mismatch) is that >>> your disks reported a 512B native blocksize. In the absence of any override, >>> ZFS will then build an ashift=9 pool. > > [skip] > >> smartctl 7.0 2018-12-30 r4883 [FreeBSD 11.2-RELEASE-p4 amd64] (local build) >> Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org >> >> === START OF INFORMATION SECTION ==>> Vendor: SEAGATE >> Product: ST2400MM0129 >> Revision: C003 >> Compliance: SPC-4 >> User Capacity: 2,400,476,553,216 bytes [2.40 TB] >> Logical block size: 512 bytes >> Physical block size: 4096 bytes > > Maybe it't time to prefer "Physical block size" over "Logical block size" in relevant GEOMs > like GEOM_DISK, so upper levels such as ZFS would do the right thing automatically.No. It is a bad idea. Changing logical block size for existing disks will most likely result in breaking compatibility and inability to read previously written data. ZFS already uses physical block size when possible -- on pool creation or new vdev addition. When not possible (pool already created wrong) it just complains about it, so that user would know that his configuration is imperfect and he should not expect full performance. -- Alexander Motin
Michael Butler
2019-Apr-09 01:25 UTC
about zfs and ashift and changing ashift on existing zpool
On 2019-04-08 20:55, Alexander Motin wrote:> On 08.04.2019 20:21, Eugene Grosbein wrote: >> 09.04.2019 7:00, Kevin P. Neal wrote: >> >>>> My guess (given that only ada1 is reporting a blocksize mismatch) is that >>>> your disks reported a 512B native blocksize. In the absence of any override, >>>> ZFS will then build an ashift=9 pool. >> >> [skip] >> >>> smartctl 7.0 2018-12-30 r4883 [FreeBSD 11.2-RELEASE-p4 amd64] (local build) >>> Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org >>> >>> === START OF INFORMATION SECTION ==>>> Vendor: SEAGATE >>> Product: ST2400MM0129 >>> Revision: C003 >>> Compliance: SPC-4 >>> User Capacity: 2,400,476,553,216 bytes [2.40 TB] >>> Logical block size: 512 bytes >>> Physical block size: 4096 bytes >> >> Maybe it't time to prefer "Physical block size" over "Logical block size" in relevant GEOMs >> like GEOM_DISK, so upper levels such as ZFS would do the right thing automatically. > > No. It is a bad idea. Changing logical block size for existing disks > will most likely result in breaking compatibility and inability to read > previously written data. ZFS already uses physical block size when > possible -- on pool creation or new vdev addition. When not possible > (pool already created wrong) it just complains about it, so that user > would know that his configuration is imperfect and he should not expect > full performance.And some drives just present 512 bytes for both .. no idea if this is consistent with the underlying silicon :-( I built a ZFS pool on it using 4k blocks anyway. smartctl 7.0 2018-12-30 r4883 [FreeBSD 13.0-CURRENT amd64] (local build) Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION ==Device Model: WDC WDS100T2B0A-00SM50 Serial Number: 1837B0803409 LU WWN Device Id: 5 001b44 8b99f7560 Firmware Version: X61190WD User Capacity: 1,000,204,886,016 bytes [1.00 TB] Sector Size: 512 bytes logical/physical Rotation Rate: Solid State Device Form Factor: 2.5 inches Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ACS-4 T13/BSR INCITS 529 revision 5 SATA Version is: SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Mon Apr 8 21:22:15 2019 EDT SMART support is: Available - device has SMART capability. SMART support is: Enabled AAM feature is: Unavailable APM level is: 128 (minimum power consumption without standby) Rd look-ahead is: Enabled Write cache is: Enabled DSN feature is: Unavailable ATA Security is: Disabled, frozen [SEC2] Wt Cache Reorder: Unavailable imb