Raw disks with no partitions can now also be used as RAID members.
Spare groups can now be created and used when creating a RAID device.
When a RAID set is deleted, the superblocks on component devices are cleared in order to remove metadata about the old RAID set.
+Added an option to skip initialization of metadata when creating a RAID device.
&create_raid($raid);
&unlock_raid_files();
-if ($err = &make_raid($raid, $in{'force'}, $in{'missing'})) {
+if ($err = &make_raid($raid, $in{'force'}, $in{'missing'}, $in{'assume'})) {
&delete_raid($raid);
&error($err);
}
create_parity=Parity algorithm
create_chunk=Chunk size
create_force=Force initialisation of RAID?
+create_assume=Skip initialization of devices?
create_rdev=RAID device $1
create_lvm=LVM VG $1, LV $2
create_err=Failed to create RAID
}
}
-# make_raid(&raid, force, [missing])
+# make_raid(&raid, force, [missing], [assume-clean])
# Call mkraid or mdadm to make a raid set for real
sub make_raid
{
push(@spares, $d->{'value'});
}
elsif (&find("parity-disk", $d->{'members'})) {
- # XXX how to handle?
push(@parities, $d->{'value'});
}
}
$cmd .= " --raid-devices ".scalar(@devices);
$cmd .= " --spare-devices ".scalar(@spares) if (@spares);
$cmd .= " --force" if ($_[1]);
+ $cmd .= " --assume-clean" if ($_[3]);
$cmd .= " --run";
$cmd .= " $_[0]->{'value'}";
foreach $d (@devices, @parities, @spares) {
print &ui_table_row($text{'create_force'},
&ui_yesno_radio("force", 0));
+# Assume clean
+if ($raid_mode eq 'mdadm') {
+ print &ui_table_row($text{'create_assume'},
+ &ui_yesno_radio("assume", 0));
+ }
+
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'create'} ] ]);