From owner-freebsd-stable@FreeBSD.ORG Thu Aug 22 22:51:02 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BA72E9B2 for ; Thu, 22 Aug 2013 22:51:02 +0000 (UTC) (envelope-from mcdouga9@egr.msu.edu) Received: from mail.egr.msu.edu (dauterive.egr.msu.edu [35.9.37.168]) by mx1.freebsd.org (Postfix) with ESMTP id 71A992BE0 for ; Thu, 22 Aug 2013 22:51:02 +0000 (UTC) Received: from dauterive (localhost [127.0.0.1]) by mail.egr.msu.edu (Postfix) with ESMTP id 8B0113D113 for ; Thu, 22 Aug 2013 18:50:55 -0400 (EDT) X-Virus-Scanned: amavisd-new at egr.msu.edu Received: from mail.egr.msu.edu ([127.0.0.1]) by dauterive (dauterive.egr.msu.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TMGUf6w7-YAj for ; Thu, 22 Aug 2013 18:50:55 -0400 (EDT) Received: from EGR authenticated sender Message-ID: <521695CE.5000202@egr.msu.edu> Date: Thu, 22 Aug 2013 18:50:54 -0400 From: Adam McDougall User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130808 Thunderbird/17.0.8 MIME-Version: 1.0 To: freebsd-stable@freebsd.org Subject: Re: ZFS pool with 4k sector size References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Aug 2013 22:51:02 -0000 On 08/22/13 04:23, Trond Endrestøl wrote: > On Thu, 22 Aug 2013 11:40+0400, Michael BlackHeart wrote: > >> Hello, >> I'd like to know what is the best way to convert my pool from 512b sector >> size to 4k sector size. >> >> Hardware: 2 x2Tb WD Green with 4k physical sector size >> >> Model Family: Western Digital Caviar Green (AF, SATA 6Gb/s) >> Device Model: WDC WD20EARX-00PASB0 >> Serial Number: WD-WCAZA8280575 >> LU WWN Device Id: 5 0014ee 206032063 >> Firmware Version: 51.0AB51 >> User Capacity: 2 000 398 934 016 bytes [2,00 TB] >> Sector Sizes: 512 bytes logical, 4096 bytes physical >> Device is: In smartctl database [for details use: -P show] >> ATA Version is: ATA8-ACS (minor revision not indicated) >> SATA Version is: SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s) >> Local Time is: Thu Aug 22 11:33:16 2013 MSK >> SMART support is: Available - device has SMART capability. >> SMART support is: Enabled >> >> They're running in a mirror >> >> pool: storage >> state: ONLINE >> scan: resilvered 48K in 0h0m with 0 errors on Thu Jul 25 19:18:01 2013 >> config: >> >> NAME STATE READ WRITE CKSUM >> storage ONLINE 0 0 0 >> mirror-0 ONLINE 0 0 0 >> ada3 ONLINE 0 0 0 >> ada7 ONLINE 0 0 0 >> >> zdb info >> >> storage: >> version: 5000 >> name: 'storage' >> state: 0 >> txg: 1292269 >> pool_guid: 18442220950447532371 >> hostid: 708219113 >> hostname: 'diablo.miekoff.local' >> vdev_children: 1 >> vdev_tree: >> type: 'root' >> id: 0 >> guid: 18442220950447532371 >> create_txg: 4 >> children[0]: >> type: 'mirror' >> id: 0 >> guid: 4289294206539029185 >> metaslab_array: 33 >> metaslab_shift: 34 >> ashift: 9 >> asize: 2000394125312 >> is_log: 0 >> create_txg: 4 >> children[0]: >> type: 'disk' >> id: 0 >> guid: 16348588566764560218 >> path: '/dev/ada3' >> phys_path: '/dev/ada3' >> whole_disk: 1 >> DTL: 95 >> create_txg: 4 >> children[1]: >> type: 'disk' >> id: 1 >> guid: 7655198429866445090 >> path: '/dev/ada7' >> phys_path: '/dev/ada7' >> whole_disk: 1 >> DTL: 97 >> create_txg: 4 >> features_for_read: >> >> As you see ashift is 9 (512b). >> >> I know a common solution with gnop and export-mport pool, but how should I >> manage mirror this way? Should I create a mirror on gnop-ed devices and >> then export-import? > I'm afraid you're out of luck. You need to backup the data > somehow, recreate the pool with ashift=12, and restore the data. > > A better option would be to buy a couple of new drives, assuming you > can connect them to the current system, create a new mirrored pool > with ashift=12, and transfer the data using a recursive set of > snapshots on the current pool and a ZFS send stream sent to the new > pool. > > You can zpool detach storage ada7, gnop create -S 4k ada7, zpool create storage2 ada7.nop, then copy all of your data into storage2 manually. When done, destroy the original zpool then zpool attach storage2 ada7.nop ada3 which will resilver ada7 onto ada3 to complete the new mirror. Then I'd zpool export storage2, destroy the nop or just reboot, and re-import storage2 as storage if you wish to rename it. The risk is losing all of your data if there is a problem while you only have one valid copy.