Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Jan 2012 09:23:51 -0800
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Martin Birgmeier <Martin.Birgmeier@aon.at>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Upgrade to 9.0: How to convert zpool from adX to adaX?
Message-ID:  <20120104172351.GA42855@icarus.home.lan>
In-Reply-To: <4F04749E.9020301@aon.at>
References:  <4F04749E.9020301@aon.at>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jan 04, 2012 at 04:47:42PM +0100, Martin Birgmeier wrote:
> I'll be upgrading a server from 8.2 to 9.0 soon. On it, I currently
> have the following zpool:
> 
> ----------
> [0]# zpool status
>   pool: hal.1
>  state: ONLINE
> status: The pool is formatted using an older on-disk format.  The pool can
>         still be used, but some features are unavailable.
> action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
>         pool will no longer be accessible on older software versions.
>  scrub: none requested
> config:
> 
>         NAME        STATE     READ WRITE CKSUM
>         hal.1       ONLINE       0     0     0
>           raidz2    ONLINE       0     0     0
>             ad10p3  ONLINE       0     0     0
>             ad12p3  ONLINE       0     0     0
>             ad14p3  ONLINE       0     0     0
>             ad16p3  ONLINE       0     0     0
>             ad18p3  ONLINE       0     0     0
>             ad20p3  ONLINE       0     0     0
> 
> errors: No known data errors
> [0]#
> ----------
> 
> I would like to do two things:
> 
> 1) Wire the ATA CAM disks such that ad10 -> ada0, ad12 -> ada1, etc.
> 
> 2) Change the zpool to use the then newly available ada0p3, ada1p3,
> ..., ada5p3 gparts.
> 
> Ultimately, I want to set sysctl kern.cam.ada.legacy_aliases=0.
> 
> Please advise on how best to achieve this.
> 
> Regards,
> 
> Martin
> 
> p.s. The following information relates to the current ata attachments:
> 
> ----------
> [0]# egrep 'ad[0-9]|ata[0-9]|atapci[0-9]' /var/run/dmesg.boot
> atapci0: <JMicron JMB361 UDMA133 controller> port
> 0xcc00-0xcc07,0xc880-0xc883,0xc800-0xc807,0xc480-0xc483,0xc400-0xc40f
> mem 0xfe8fe000-0xfe8fffff irq 18 at device 0.0 on pci3
> atapci0: [ITHREAD]
> atapci1: <AHCI SATA controller> on atapci0
> atapci1: [ITHREAD]
> atapci1: AHCI v1.00 controller with 2 3Gbps ports, PM supported
> ata2: <ATA channel 0> on atapci1
> ata2: [ITHREAD]
> ata3: <ATA channel 1> on atapci1
> ata3: [ITHREAD]
> ata4: <ATA channel 0> on atapci0
> ata4: [ITHREAD]
> atapci2: <ATI IXP700/800 SATA300 controller> port
> 0xa000-0xa007,0x9000-0x9003,0x8000-0x8007,0x7000-0x7003,0x6000-0x600f
> mem 0xfe4ffc00-0xfe4fffff irq 19 at device 17.0 on pci0
> atapci2: [ITHREAD]
> atapci2: AHCI v1.20 controller with 6 3Gbps ports, PM supported
> ata5: <ATA channel 0> on atapci2
> ata5: [ITHREAD]
> ata6: <ATA channel 1> on atapci2
> ata6: [ITHREAD]
> ata7: <ATA channel 2> on atapci2
> ata7: [ITHREAD]
> ata8: <ATA channel 3> on atapci2
> ata8: [ITHREAD]
> ata9: <ATA channel 4> on atapci2
> ata9: [ITHREAD]
> ata10: <ATA channel 5> on atapci2
> ata10: [ITHREAD]
> ad10: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata5-master
> UDMA100 SATA 3Gb/s
> ad12: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata6-master
> UDMA100 SATA 3Gb/s
> ad14: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata7-master
> UDMA100 SATA 3Gb/s
> ad16: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata8-master
> UDMA100 SATA 3Gb/s
> ad18: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata9-master
> UDMA100 SATA 3Gb/s
> ad20: 1907729MB <WDC WD2001FASS-00W2B0 01.00101> at ata10-master
> UDMA100 SATA 3Gb/s
> [0]#

You can try doing this on 8.2 already, and always revert if need be.
All you need to do is add ahci_load="yes" to /boot/loader.conf and see
how things behave after that.  This will make use of the AHCI-to-CAM
translation layer (which is now default in 9.0).

There isn't much you need to do with ZFS either: it should "taste"
the disks and find them on boot.  If it doesn't, try "zpool import",
then when it shows the pool, do "zpool import {poolid}".

It should automatically refer to everything as adaX going forward.

No need to bother with kern.cam.ada.legacy_aliases.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120104172351.GA42855>