ZFS bug: Creating ZIL ignores vfs.zfs.min_auto_ashift

Michael Jung mikej at paymentallianceintl.com
Thu Nov 6 13:11:15 UTC 2014


What does smartctl -a /dev/ada1 show?

I see other posts via google showing that the SSDSA2CT040G3 has 512 byte physical sectors (ashift 9)
 
--mikej

=== START OF INFORMATION SECTION ===
Device Model:     INTEL SSDSA2CT040G3
Serial Number:    CVPR140301GV040AGN
LU WWN Device Id: 5 001517 9596e4f5f
Firmware Version: 4PC10362
User Capacity:    40,020,664,320 bytes [40.0 GB]
Sector Size:      512 bytes logical/physical    <--------------
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Sun May 13 14:36:47 2012 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

-----Original Message-----
From: owner-freebsd-fs at freebsd.org [mailto:owner-freebsd-fs at freebsd.org] On Behalf Of Borja Marcos
Sent: Thursday, November 06, 2014 6:01 AM
To: freebsd-fs at FreeBSD.org Filesystems
Subject: ZFS bug: Creating ZIL ignores vfs.zfs.min_auto_ashift



Hi,

I have noticed that ZIL creation _ignores_ the vfs.zfs.min_auto_ashift variable. ZIL and cache on SSDs should use this variable in order to apply the optimum sector size on SSDs or so-called advanced format drives.

The system is:
root at splunk:/ # uname -a
FreeBSD splunk 10.1-PRERELEASE FreeBSD 10.1-PRERELEASE #12: Tue Nov  4 11:22:48 CET 2014     root at splunk:/usr/obj/usr/src/sys/SPLUNK10  amd64



Example:

# sysctl vfs.zfs.min_auto_ashift=12

# zpool status       //// Just a common mirror with two hard disks
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0 in 5h55m with 0 errors on Wed Oct 29 23:26:03 2014
config:

	NAME        STATE     READ WRITE CKSUM
	rpool       ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    ada0p3  ONLINE       0     0     0
	    ada2p3  ONLINE       0     0     0

errors: No known data errors


# zpool add rpool log ada1

# zpool status
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0 in 5h55m with 0 errors on Wed Oct 29 23:26:03 2014
config:

	NAME        STATE     READ WRITE CKSUM
	rpool       ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    ada0p3  ONLINE       0     0     0
	    ada2p3  ONLINE       0     0     0
	logs
	  ada1      ONLINE       0     0     0

errors: No known data errors


///// There it is, but

# zdb | more
    version: 5000
    name: 'rpool'
    state: 0
    txg: 11738986
    pool_guid: 18110845055860026534
    hostid: 316898903
    hostname: 'splunk'
    vdev_children: 2
    vdev_tree:
        type: 'root'
        id: 0
        guid: 18110845055860026534
        children[0]:
            type: 'mirror'
            id: 0
            guid: 10858793804082837265
            metaslab_array: 30
            metaslab_shift: 32
            ashift: 12
            asize: 482922987520
            is_log: 0
            create_txg: 4
            children[0]:
                type: 'disk'
                id: 0
                guid: 10490056043151312448
                path: '/dev/ada0p3'
                phys_path: '/dev/ada0p3'
                whole_disk: 1
                DTL: 331
                create_txg: 4
            children[1]:
                type: 'disk'
                id: 1
                guid: 2441255496794840851
                path: '/dev/ada2p3'
                phys_path: '/dev/ada2p3'
                whole_disk: 1
                DTL: 252
                create_txg: 4
        children[1]:
            type: 'disk'
            id: 1
            guid: 3564614139316480036
            path: '/dev/ada1'
                id: 1
                guid: 2441255496794840851
                path: '/dev/ada2p3'
                phys_path: '/dev/ada2p3'
                whole_disk: 1
                DTL: 252
                create_txg: 4
        children[1]:
            type: 'disk'
            id: 1
            guid: 3564614139316480036
            path: '/dev/ada1'
            phys_path: '/dev/ada1'
            whole_disk: 1
            metaslab_array: 0
            metaslab_shift: 0
            ashift: 9                                      <======================= WRONG, SHOULDN'T IT BE 12??
            asize: 40015757312
            is_log: 1
            create_txg: 11738986
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data



If, however, I do the gnop trick,

# gnop create -S 4K ada1
# zpool add rpool log ada1.nop
# zpool status

  pool: rpool
 state: ONLINE
  scan: scrub repaired 0 in 5h55m with 0 errors on Wed Oct 29 23:26:03 2014
config:

	NAME        STATE     READ WRITE CKSUM
	rpool       ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    ada0p3  ONLINE       0     0     0
	    ada2p3  ONLINE       0     0     0
	logs
	  ada1.nop  ONLINE       0     0     0

errors: No known data errors


this time our mirror has the ashift we wanted, 12. 

        children[1]:
            type: 'disk'
            id: 1
            guid: 6487094506120463221
            path: '/dev/ada1.nop'
            phys_path: '/dev/ada1.nop'
            whole_disk: 1
            metaslab_array: 0
            metaslab_shift: 0
            ashift: 12
            asize: 40015757312
            is_log: 1
            create_txg: 11739034



The disks I am playing with are:

# camcontrol devlist
<ST3500418AS CC38>                 at scbus0 target 0 lun 0 (ada0,pass0)
<INTEL SSDSA2CT040G3 4PC10362>     at scbus1 target 0 lun 0 (ada1,pass1)
<ST500DM002-1BC142 JC4B>           at scbus2 target 0 lun 0 (ada2,pass2)
<INTEL SSDSA2CT040G3 4PC10362>     at scbus3 target 0 lun 0 (ada3,pass3)


And yes, I know the two hard disks have different sector sizes but I created the pool with an ashift of 12.






Borja.



_______________________________________________
freebsd-fs at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-fs
To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"


GoPai.com | Facebook.com/PaymentAlliance
 

CONFIDENTIALITY NOTE: This message is intended only for the use
of the individual or entity to whom it is addressed and may 
contain information that is privileged, confidential, and 
exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby 
notified that any dissemination, distribution or copying 
of this communication is strictly prohibited. If you have 
received this transmission in error, please notify us by 
telephone at (502) 212-4001 or notify us at PAI , Dept. 99, 
6060 Dutchmans Lane, Suite 320, Louisville, KY 40205






More information about the freebsd-fs mailing list