Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Jan 2012 12:55:12 +0100
From:      Miroslav Lachman <000.fbsd@quip.cz>
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:  <4F058FA0.7070301@quip.cz>
In-Reply-To: <4F058075.1020108@aon.at>
References:  <4F04749E.9020301@aon.at> <20120104172351.GA42855@icarus.home.lan>	<4F05586B.9060109@aon.at> <4F056EEB.3050902@gmail.com> <4F058075.1020108@aon.at>

next in thread | previous in thread | raw e-mail | index | archive | help
Martin Birgmeier wrote:
> On 01/05/12 10:35, Volodymyr Kostyrko wrote:
>> 05.01.2012 09:59, Martin Birgmeier wrote:
>>> In 9.0, if I keep kern.cam.ada.legacy_aliases=1, there will be two paths
>>> to each device, one through adX, the other through adaX. Which one will
>>> zfs use, and show with 'zpool status'?
>>
>> You are partially incorrect here:
>> [torn] ~> ls -la /dev | grep ad
>> lrwxr-xr-x 1 root wheel 4 5 jan 08:22 ad6@ -> ada0
>> lrwxr-xr-x 1 root wheel 5 5 jan 08:22 ad6a@ -> ada0a
>> lrwxr-xr-x 1 root wheel 5 5 jan 08:22 ad6b@ -> ada0b
>> lrwxr-xr-x 1 root wheel 5 5 jan 08:22 ad6d@ -> ada0d
>> lrwxr-xr-x 1 root wheel 5 5 jan 08:22 ad6e@ -> ada0e
>> lrwxr-xr-x 1 root wheel 5 5 jan 08:22 ad6f@ -> ada0f
>> lrwxr-xr-x 1 root wheel 13 5 jan 08:22 ad6f.journal@ -> ada0f.journal
>> crw-r----- 1 root operator 0, 64 5 jan 08:22 ada0
>> crw-r----- 1 root operator 0, 66 5 jan 08:23 ada0a
>> crw-r----- 1 root operator 0, 68 5 jan 08:22 ada0b
>> crw-r----- 1 root operator 0, 70 5 jan 08:23 ada0d
>> crw-r----- 1 root operator 0, 72 5 jan 08:23 ada0e
>> crw-r----- 1 root operator 0, 74 5 jan 08:22 ada0f
>> crw-r----- 1 root operator 0, 79 5 jan 08:23 ada0f.journal
>>
>>> Also, I understand that I will have to wire down the various ATA CAMs to
>>> obtain the old numbering. How can I do this? Again, which path would zfs
>>> use if I did not wire down the ATA CAMs? Will I have half of my devices
>>> go through adX and the other through adaX, or will zfs even believe that
>>> it has a multipath connectivity to each device?
>>
>> Not at all, ad6 would be a symlink to correct ada device, I haven't
>> yet changed the fstab on this machine and it reads:
>>
>> # Device Mountpoint FStype Options Dump Pass#
>> /dev/ad6b none swap sw 0 0
>> /dev/ad6a / ufs rw 1 1
>> /dev/ad6e /tmp ufs rw 2 2
>> /dev/ad6f.journal /usr ufs rw,async 2 2
>> /dev/ad6d /var ufs rw 2 2
>> /dev/cd0 /cdrom cd9660 ro,noauto 0 0
>>
> Sigh... I get only half the answers, and these are not so helpful either.
>
> First of all, I *am* correct in saying that there are two paths to the
> same device, because the purpose of a (sym-)link precisely is to have an
> alternate path to the same object in the filesystem. So if someone tells
> me that zfs somehow (how?) excludes devices reached through symlinks,
> *that* would be an information I would find useful.
>
> Second, the whole purpose of the kern.cam.ada.legacy_aliases is to have
> backwards compatibility for fstab etc by installing symlinks in /dev. I
> know this very well but want to prepare for the day when I want to get
> rid of the necessity for this compatibility.
>
> Third, I have now asked twice how to wire the ATA CAM devices, without
> anybody even referring to that question. Well, I guess I'll have to find
> that out myself.
>
> I do appreciate all answers, even more so as I perfectly understand they
> are *free* answers, and maybe the above is even helpful to someone else
> (and does not confuse them instead), but I'd appreciate it even more if
> they were real answers.

ZFS taste available devices on boot, find ondisk stored metadata and 
additionally useses informations stored in /boot/zfs/zpool.cache

"ad" to "ada" transition is not the only case where one disk device is 
accessible by multiple ways.
On one of my servers with SAS drives, the ZFS partitions can be accessed 
by /dev/daXsY or /dev/gpt/<gpt_label> or /dev/gptid/<long-uuid-string>
It works correctly without any confusions.

If you will delete zpool.cache and then export / import pool, the member 
devices will be named as "first tasted". So if you will disable symlinks 
to "ad" device names, your zpool will be correctly loaded with new 
device names. ZFS is smart enough to not depend on device names and 
order. You can safely change order of cables / devices on controller and 
ZFS will start without any problem.
So the problem with "ad" to "ada" transition on ZFS is rather cosmetic 
(device names shown in zpool status output) but it will work with 
whatever names.
You just need to fix UFS / fstab issues.

Miroslav Lachman



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