Kugutsumen wrote:>> Matthew Ahrens wrote:
>>
>>> Ross Newell wrote:
>>>
>>>> What are this issues preventing the root directory being stored
on
>>>> raidz?
>>>> I''m talking specifically about root, and not boot
which I can see
>>>> would be
>>>> difficult.
>>>>
>>>> Would it be something an amateur programmer could address in a
>>>> weekend, or
>>>> is it more involved?
>>>>
>>> I believe this used to work with the old "zfs mountroot"
setup with
>>> boot-from-UFS then root-on-ZFS. So, you could probably hack it
back
>>> in, or just use the old bits. Lin or Lori could probably provide
>>>
>> more
>>
>>> details, or correct me...
>>>
>>>
>>>
>> If you''re using pre-build 62 bits, and the old
>> manual setup procedure documented in
>>
>> http://blogs.sun.com/tabriz/entry/are_you_ready_to_rumble
>>
>> a raidz pool can be used for booting.
>>
>> The zfs booter, in the current implementation, expects
>> to find these critical files:
>>
>> /boot/grub/menu.lst
>> /platform/i86pc/boot_archive
>> /platform/i86pc/kernel/unix
>>
>> in a dataset in a zfs pool and it can only access one
>> disk, so all of those files (and all blocks in those
>> files) need to be accessible on that disk. If the pool
>> is constructed of mirrored disks, that''s OK, because
>> every disk in the mirror has ALL of the blocks for
>> every file in the pool. But if the pool is a RAID-Z
>> pool, the blocks will be distributed over multiple
>> disks and so the booter can''t find them all.
>>
>> The reason RAID-Z worked in the older implementation
>> is that the system wasn''t really booted off zfs. It was
>> booted from a ufs file system, and then a zfs dataset
>> was mounted as root. That was useful as a prototype,
>> but not optimal for the long run because it required
>> a separate slice to be allocated for the ufs boot file system.
>>
>> Ultimately, we expect to support booting from RAID-Z
>> by implementing some kind of "replicate on all devices
>> in the pool" option for bootable datasets. But that
>> option doesn''t exist yet and it''s a ways down on the
>> priority list at this time.
>>
>> Lori
>>
>
> I don''t understand why support for mountroot was dropped in build
62;
> it was working fine for my raidz2 root pool, I just had to bootstrap
> it from a small UFS filesystem on a USB flash disk.
>
> Now I have tried to upgrade to build 70 and I get an error saying
> that zfsroot in /etc/system is not supported anymore.
> This machine has 4 disks and no space for more disk... and I don''t
> feel like repartitioning to accommodate a mirror for /root.
>
> Lori, what do you suggest I should do?
>
> I could just keep all of root minus /usr, /var, etc.. on the usb
> thumb drive? and mount the rest from the raidz2 pool... Is that the
> only clean way to do it?
>
>
mountroot was a temporary hack until we had a boot loader
that could boot zfs natively. Booting from raid-z was sort
of a fringe-benefit of the hack. However, the zfs boot loader can''t
read from raid-z because it can only read from one disk, and
raid-z datasets are spread over multiple disks.
So in the near term, the real zfs boot code will not support
booting from raid-z. Eventually, we do plan to support it,
but it will require some additional support in zfs.
So I''m afraid that your only option for the time being is
to reorganize your disk space to create at least one slice
for the root pool, and two if you want to mirror it.
Lori