Re: Booting from ZFS RaidZ

From: Paul Wootton <paul_at_fletchermoorland.co.uk>
Date: Wed, 03 Jun 2009 10:33:04 +0100
Doug Rabson wrote:
>
> On 29 May 2009, at 18:18, Paul Wootton wrote:
>
>> Doug Rabson wrote:
>>>
>>> On 27 May 2009, at 20:55, Paul Wootton wrote:
>>>
>>>> Doug Rabson wrote:
>>>>>
>>>>> On 27 May 2009, at 16:38, Paul Wootton wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> With the recent changes allowing RaidZ boot, I thought I would 
>>>>>> finally drop my mirror pack and go RaidZ.
>>>>>>
>>>>>> The only problem I now have is
>>>>>> demophon# zpool set bootfs=DemoPool/root DemoPool
>>>>>> cannot set property for 'DemoPool': operation not supported on 
>>>>>> this type of pool
>>>>>>
>>>>>> Is this still a work in progress, or do I have something a-miss?
>>>>>>
>>>>>> I am using current as of today
>>>>>> "demophon# uname -a
>>>>>> FreeBSD demophon 8.0-CURRENT FreeBSD 8.0-CURRENT #17: Wed May 27 
>>>>>> 13:18:06 BST 2009     
>>>>>> paul_at_demophon:/usr/obj/usr/src/sys/DEMOPHON  amd64"
>>>>>
>>>>> This is a limitation which I will remove as soon as I have a 
>>>>> little time to work on it. Basically, Solaris can only boot from 
>>>>> simple structures such as mirrors and collections of mirrors. The 
>>>>> code enforces this by stopping you from setting the bootfs 
>>>>> property if the pool configuration is too complex for the Solaris 
>>>>> boot code. I will simply remove this limitation for FreeBSD since 
>>>>> we can now boot from any pool configuration.
>>>>>
>>>>> In the meantime, you can still boot if you put your root 
>>>>> filesystem files in the root of the pool. Not ideal I know but 
>>>>> I'll try to fix it properly soon.
>>>>>
>>>>
>>>> This does seem to work correctly for me as I get a BTX crash (see 
>>>> below)
>>>>
>>>> Verifying DMI Poll Data .............
>>>> \
>>>> FreeBSD/i386 boot
>>>> Default:DemoPool:/boot/kernel/kernel
>>>> boot:
>>>> |
>>>> int=00000000  err=00000000  elf=00010083  eip=00192adf
>>>> eax=00192e02a  ebx=df5610ed  ecx=d485b986  edx=00000000
>>>> esi=00000040  edi=000935d0  ebp=0009339c  esp=00000000
>>>> cs=0008 ds=0010 es=0010 fs-0010 gs=0010 ss=0010
>>>> cs:eip=c5 e4 00 66 0f 73 dc 02-ff e4 b8 8d 8d bc f2 2a
>>>> e9 ba e6 f4 2a 8a d8 24-df 86 c4 be 00 2b e9 8b
>>>> ss:esp=16 e8 00 f0 16 e8 00 f0-c3 e2 00 f0 16 e8 00 f0
>>>> 16 e8 00 f0 54 ff 00 f0-b8 6e 00 f0 16 e8 00 f0
>>>> BTX halted
>>>
>>> How frustrating. Can you give me some idea on your ZFS pool 
>>> configuration. Also, if you can dig out the symbol table for 
>>> /boot/loader (it should be lurking somewhere in your /usr/obj tree 
>>> as loader.sym), it would be interesting to see where it crashed 
>>> (i.e. whats the closest symbol to the value of EIP above).
>>>
>>> _______________________________________________
>>> freebsd-current_at_freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to 
>>> "freebsd-current-unsubscribe_at_freebsd.org"
>>>
>> Erm, Opps.... Im an idiot....
>> I went back over my steps and realised the I had forgotten to do a 
>> "make distrib-dirs" and "make distribution"
>> Now it boots the kernel but I can not get it to mount the root filing 
>> system.
>> I have got a few more thinks to try before I throw my hands in the 
>> air, but unfortunately that will not be until after the weekend (the 
>> BSD is my main PC at work)
>
> What do you have in /etc/fstab for the root filesystem? I'm not 
> exactly sure if the root mounting code can cope with mounting the root 
> of the pool as root filesystem. You might try the attached patch which 
> should allow setting bootfs on raidz pools to something more useful 
> than the root.
>
>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to 
> "freebsd-current-unsubscribe_at_freebsd.org"

I only have my swaps in the fstab file. This is the same as what i did 
for for my single and mirror setup. In /boot/loader.conf I specified 
"vfs.root.mountfrom=zfs:DemoPool/root"

The kernel loads and then fails just before switching to user land with 
an error saying trying to mount root from zfs:DemoPool/root and failed. 
It then asks for user intervention and specify where to load root filing 
system from. Pressing ? lists all my drives and ufs slices, but not any 
zfs partitions.

zfsroot is an ex-mirror setup, only running on one drive now. This boots 
fine and all is happy - again, nothing really in fstab but 
vfs.root.mountfrom=zfs:zfsroot/root in /boot/loader.conf

During all the tests, I was swapping the mountpoints so not to cause 
conflicts with each other...

As an experiment, I bootup from the raidz pool but changed to 
vfs.root.mountfrom=zfs:zfsroot/root
The kernel loaded but as before, bombed out asking for user intervention 
for where to find root.
Then is tried bootinng from the zfsroot single disk pool and set 
vfs.root.mountfrom=zfs:DemoPool/root. This booted up correctly and the 
machine was happy, although it meant that I had to use a none raidz 
drive to bootstrap - not really what I was looking for.

I have bootfs=DemoPool/root on DemoPool.


Any ideas?
Paul


-----------------------------------------------------------------------------------
Fletcher Moorland Limited is a company registered in England and Wales. 
Registration number: 2984467. 
Registered office: Elenora Street, Stoke on Trent, Staffordshire, ST4 1QG. 
VAT Registration number: 478730606 
Telephone: 01782 411021 | Fax: 01782 744470 | http://www.fletchermoorland.co.uk 
Received on Wed Jun 03 2009 - 07:33:08 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:49 UTC