From owner-freebsd-fs@FreeBSD.ORG Thu Nov 6 11:01:43 2014 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 04FD4EBC for ; Thu, 6 Nov 2014 11:01:43 +0000 (UTC) Received: from cu01176a.smtpx.saremail.com (cu01176a.smtpx.saremail.com [195.16.150.151]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49598BFE for ; Thu, 6 Nov 2014 11:01:42 +0000 (UTC) Received: from [172.16.2.2] (izaro.sarenet.es [192.148.167.11]) by proxypop03.sare.net (Postfix) with ESMTPSA id 1513D9DCDE6 for ; Thu, 6 Nov 2014 12:01:32 +0100 (CET) From: Borja Marcos Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: ZFS bug: Creating ZIL ignores vfs.zfs.min_auto_ashift Date: Thu, 6 Nov 2014 12:01:27 +0100 Message-Id: To: "freebsd-fs@FreeBSD.org Filesystems" Mime-Version: 1.0 (Apple Message framework v1283) X-Mailer: Apple Mail (2.1283) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Nov 2014 11:01:43 -0000 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@splunk:/ # uname -a FreeBSD splunk 10.1-PRERELEASE FreeBSD 10.1-PRERELEASE #12: Tue Nov 4 = 11:22:48 CET 2014 root@splunk:/usr/obj/usr/src/sys/SPLUNK10 amd64 Example: # sysctl vfs.zfs.min_auto_ashift=3D12 # 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 = <=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = 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.=20 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 at scbus0 target 0 lun 0 (ada0,pass0) at scbus1 target 0 lun 0 (ada1,pass1) at scbus2 target 0 lun 0 (ada2,pass2) 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.