All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Horsten <thomas@horsten.com>
To: "Kevin P. Fleming" <kpfleming@backtobasicsmgmt.com>,
	linux-raid@vger.kernel.org
Subject: Re: Driver for BIOS-based software RAIDs
Date: Mon, 13 Oct 2003 20:19:23 +0100	[thread overview]
Message-ID: <200310132019.23119.thomas@horsten.com> (raw)
In-Reply-To: <3F8AEF91.5080706@backtobasicsmgmt.com>

On Monday 13 October 2003 19:31, Kevin P. Fleming wrote:

> Thomas Horsten wrote:
> > Now, the problem is that these BIOS based software RAID's all use whole
> > disks as opposed to individual partitions like the Linux MD driver.
>
> Would it not make more sense to leverage the device-mapper and just
> create a new personality or two for it? It can already be configured
> to use whole disk devices if the user needs to.

In the light of the desired functionality of this driver, I don't think this 
will work (see below also). The main aims is to make it transparent to the 
user (this is the whole point of BIOS based RAID's). The array should present 
itself as a normal, whole disk style block device inside Linux at boot time 
(if compiled in), so that LILO etc. can be used transparently. Remember the 
user has set up the RAID outside Linux (using the BIOS utility), and is thus 
likely to expect it to be autodetected and autoconfigured. So it should be 
"partitionable" - the whole reason that the BIOS RAID was implemented. The 
RAID should appear as one logical disk to ensure consistency between Linux 
and other OS's that use the array.

> > My idea was to either reserve a new major for "md_wholedisk" mode and
> > split it into drive,partition blocks of 16/32 inodes each, like the
> > gendisk driver supports, or alternatively split the existing major with,
> > say, the first 64 minors for normal style MD devs and the upper part
> > split like I suggested above (I'm not sure if this would work with
> > gendisk though).
>
> This sounds very complicated, although what I'm going to suggest is
> not really less complicated :-)

Well, let's save the simple solutions for the simple problems :-)

> > Another way of doing it would be to create a separate native MD RAID for
> > each partition on the BIOS RAID, but this has the major drawback that the
> > user wouldn't be able to repartition the device.
>
> That's going to be the biggest problem, that you have to support
> partitioning of the RAID array, as opposed to its components. No
> matter what underlying method you choose to implement it, the kernel
> currently does not support partitioning of MD devices (or
> device-mapper devices, for that matter). That means that without a
> significant amount of work, you'd be limited to using userspace
> partition-reading tools that then talk to device-mapper to create
> "logical" devices that are parts of the RAID array. This is what many
> people want the kernel to move towards anyway, so maybe this is a
> reasonable method.

Yes and that's why I propose splitting the MD driver into either two majors, 
where one uses the partitioning support (register_disk in genhd), or using 
the partitioning support for the upper part of the existing minor space. The 
support is there in gendisk, it's just a matter of calling register_disk 
after setting up the right information in the struct. The RAID code would 
need some tweaking but I think it would be workable - I think :-)

> > 3) The foreign RAID driver creates mddev_s based on its detection. If
> > necessary, the foreign RAID driver can also create its own personalities
> > (like the special type of RAID0 that Highpoint devices use, that supports
> > having a RAID0 where all disks are not of equal size, without wasting
> > space).
>
> I think that for 2.6 (well, now 2.7 and then backported to 2.6), you
> should seriously consider using the udev/hotplug/etc. framework that's
> being worked on. Here's a (very basic) overview:

I agree it should be considered but again I don't think it's appropriate - I 
don't want to rely on userspace tools for this type of RAID, since the 
"userspace tools" were already provided by the manufacturer in the form of 
the BIOS configuration utility. This is where the user creates the RAID set, 
and since it's a BIOS drive, again I would prefer the kernel to autodetect it 
completely and let the user see it as he would a "normal" block device.

> I know this is radically different than what you are proposing, but
> it's the plan for many people to move this direction for 2.7. It
> removes policy problems from the kernel, it supports unlimited layers
> of partitioning/RAID/etc., and the user can control the order that
> things get done (looking for partitions first vs. RAID superblocks
> first, etc.).

Using the hotplug interface for the resulting "wholedisk" array would 
certainly be a possibility, and I think this is worth looking into especially 
in the module version of the driver. But I still propose the "partitionable 
gendisk" way for initial detection, since it will make it much simpler to 
install on these types of RAID.

Regards,

Thomas


  reply	other threads:[~2003-10-13 19:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-13 18:21 Driver for BIOS-based software RAIDs Thomas Horsten
2003-10-13 18:31 ` Kevin P. Fleming
2003-10-13 19:19   ` Thomas Horsten [this message]
2003-10-13 19:03 ` Lars Marowsky-Bree
2003-10-13 19:25   ` Thomas Horsten
2003-10-13 21:17     ` Lars Marowsky-Bree
2003-10-13 21:38       ` Thomas Horsten
2003-10-14  7:18         ` Lars Marowsky-Bree

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200310132019.23119.thomas@horsten.com \
    --to=thomas@horsten.com \
    --cc=kpfleming@backtobasicsmgmt.com \
    --cc=linux-raid@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.