[New: openFATE 311037] let partitioner create faster RAID
Feature added by: Bernhard Wiedemann (bmwiedemann) Feature #311037, revision 1 Title: let partitioner create faster RAID openSUSE Distribution: Unconfirmed Priority Requester: Desirable Requested by: Bernhard Wiedemann (bmwiedemann) Partner organization: openSUSE.org Description: Both mkfs.ext[234] and mkfs.xfs have options to tune the filesystem for striped RAID (i.e. RAID0/RAID10), so it would be nice if yast2/disk could make use of it. The options are -E stride=x -E stripe-width=y and -d sunit=x,swidth=y notice that units of above sizes may vary. There are several sites out there describing how to choose the proper values for x and y, e.g. http://www.mythtv.org/wiki/Optimizing_Performance -- openSUSE Feature: https://features.opensuse.org/311037
Feature changed by: Bernhard Wiedemann (bmwiedemann) Feature #311037, revision 2 Title: let partitioner create faster RAID openSUSE Distribution: Unconfirmed Priority Requester: Desirable Requested by: Bernhard Wiedemann (bmwiedemann) Partner organization: openSUSE.org Description: Both mkfs.ext[234] and mkfs.xfs have options to tune the filesystem for striped RAID (i.e. RAID0/RAID10), so it would be nice if yast2/disk could make use of it. The options are -E stride=x -E stripe-width=y and -d sunit=x,swidth=y notice that units of above sizes may vary. There are several sites out there describing how to choose the proper values for x and y, e.g. http://www.mythtv.org/wiki/Optimizing_Performance + Discussion: + #1: Bernhard Wiedemann (bmwiedemann) (2011-01-04 16:14:20) + I have found this perl code doing the calculations #!/usr/bin/perl -w + use strict; my $raiddev="/dev/md0"; my $raidlevel=0; # one of 0,5,6 for + striping with 0,1,2 redundant disks my $blocksize=4; # FS block size + KiBiBytes my $chunksize=128; # 4-256 KiBiBytes (multiple of $blocksize) + my @physdevs=(); # ... # create new RAID system(qw(echo mdadm -- + create), $raiddev, "--level", $raidlevel, "--chunk", $chunksize, "-- + raid-devices", scalar @physdevs, @physdevs); + # create FS my $stripewidth=@physdevs; if($raidlevel==1) + {$stripewidth=1;} if($raidlevel==5) {$stripewidth--;} if($raidlevel==6) + {$stripewidth-=2;} $stripewidth*=$chunksize/$blocksize; system(qw(echo + mkfs.ext3 -b), $blocksize*1024, "-R", "stride=". + ($chunksize/$blocksize), "-R", "stripe-width=".$stripewidth, + $raiddev); -- openSUSE Feature: https://features.opensuse.org/311037
Feature changed by: Greg Freemyer (gregfreemyer) Feature #311037, revision 4 Title: let partitioner create faster RAID openSUSE Distribution: Unconfirmed Priority Requester: Desirable Requested by: Bernhard Wiedemann (bmwiedemann) Partner organization: openSUSE.org Description: Both mkfs.ext[234] and mkfs.xfs have options to tune the filesystem for striped RAID (i.e. RAID0/RAID10), so it would be nice if yast2/disk could make use of it. The options are -E stride=x -E stripe-width=y and -d sunit=x,swidth=y notice that units of above sizes may vary. There are several sites out there describing how to choose the proper values for x and y, e.g. http://www.mythtv.org/wiki/Optimizing_Performance Discussion: #1: Bernhard Wiedemann (bmwiedemann) (2011-01-04 16:14:20) I have found this perl code doing the calculations #!/usr/bin/perl -w use strict; my $raiddev="/dev/md0"; my $raidlevel=0; # one of 0,5,6 for striping with 0,1,2 redundant disks my $blocksize=4; # FS block size KiBiBytes my $chunksize=128; # 4-256 KiBiBytes (multiple of $blocksize) my @physdevs=(); # ... # create new RAID system(qw(echo mdadm -- create), $raiddev, "--level", $raidlevel, "--chunk", $chunksize, "-- raid-devices", scalar @physdevs, @physdevs); # create FS my $stripewidth=@physdevs; if($raidlevel==1) {$stripewidth=1;} if($raidlevel==5) {$stripewidth--;} if($raidlevel==6) {$stripewidth-=2;} $stripewidth*=$chunksize/$blocksize; system(qw(echo mkfs.ext3 -b), $blocksize*1024, "-R", "stride=". ($chunksize/$blocksize), "-R", "stripe-width=".$stripewidth, $raiddev); + #2: Greg Freemyer (gregfreemyer) (2011-01-13 00:02:31) + Even in 11.3 this should already work. The kernel got "disk topology" + support around 2.6.32 I think. Definitely by 2.6.34 which is in 11.3. + The mdraid layer of the kernel got patches to set these values in time + for 2.6.34 as well. Ext4 and XFS should both have the code already that + uses this internal kernel knowledge. If a userspace app (eg. mkfs.ext4) + wants to access it, it can look in /sys/block/sda/queue/* for the info. + So if you have a machine that is not tuning the filesystem based on + your raid setup, its a bug, not a missing feature of yast. -- openSUSE Feature: https://features.opensuse.org/311037
Feature changed by: Karl Cheng (qantas94heavy) Feature #311037, revision 5 Title: let partitioner create faster RAID - openSUSE Distribution: Unconfirmed + openSUSE Distribution: New Priority Requester: Desirable Requested by: Bernhard Wiedemann (bmwiedemann) Partner organization: openSUSE.org Description: Both mkfs.ext[234] and mkfs.xfs have options to tune the filesystem for striped RAID (i.e. RAID0/RAID10), so it would be nice if yast2/disk could make use of it. The options are -E stride=x -E stripe-width=y and -d sunit=x,swidth=y notice that units of above sizes may vary. There are several sites out there describing how to choose the proper values for x and y, e.g. http://www.mythtv.org/wiki/Optimizing_Performance Discussion: #1: Bernhard Wiedemann (bmwiedemann) (2011-01-04 16:14:20) I have found this perl code doing the calculations #!/usr/bin/perl -w use strict; my $raiddev="/dev/md0"; my $raidlevel=0; # one of 0,5,6 for striping with 0,1,2 redundant disks my $blocksize=4; # FS block size KiBiBytes my $chunksize=128; # 4-256 KiBiBytes (multiple of $blocksize) my @physdevs=(); # ... # create new RAID system(qw(echo mdadm -- create), $raiddev, "--level", $raidlevel, "--chunk", $chunksize, "-- raid-devices", scalar @physdevs, @physdevs); # create FS my $stripewidth=@physdevs; if($raidlevel==1) {$stripewidth=1;} if($raidlevel==5) {$stripewidth--;} if($raidlevel==6) {$stripewidth-=2;} $stripewidth*=$chunksize/$blocksize; system(qw(echo mkfs.ext3 -b), $blocksize*1024, "-R", "stride=". ($chunksize/$blocksize), "-R", "stripe-width=".$stripewidth, $raiddev); #2: Greg Freemyer (gregfreemyer) (2011-01-13 00:02:31) Even in 11.3 this should already work. The kernel got "disk topology" support around 2.6.32 I think. Definitely by 2.6.34 which is in 11.3. The mdraid layer of the kernel got patches to set these values in time for 2.6.34 as well. Ext4 and XFS should both have the code already that uses this internal kernel knowledge. If a userspace app (eg. mkfs.ext4) wants to access it, it can look in /sys/block/sda/queue/* for the info. So if you have a machine that is not tuning the filesystem based on your raid setup, its a bug, not a missing feature of yast. -- openSUSE Feature: https://features.opensuse.org/311037
participants (1)
-
fate_noreply@suse.de