* striping 2x500G to mirror 1x1T
@ 2022-03-05 4:47 David T-G
2022-03-07 14:19 ` Natanji
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: David T-G @ 2022-03-05 4:47 UTC (permalink / raw)
To: Linux RAID
Hi, all --
I have a 1T data drive (currently in use with data) that I'd like to
mirror with a pair of 500G drives striped together. I'll be mirroring
two partitions, and I'll be striping partitions to ensure the correct
size, and my understanding is that I'll have to create the mirror on the
two new drives with half missing, mount it up, copy over the data, dump
the original disk, and add it as the other half of the mirror to sync.
If I've missed anything there, please let me know, but all of that
matches my Googling and I don't think I have any questions.
What I do wonder, and what I don't see in any searches since apparently
nobody talks about striping up half of a mirror, is if I should do
anything special with my two-disk RAID0 stripe. I was gobsmacked at
the simplicity of RAID10 on only two drives by splitting each in half
and "flipping" one to maximize head movement performance. Awesome! :-)
Are there any brilliant hacks for simple striping? If I'm just putting
together two [not terribly large] disks, will I benefit from any other
funny stuff, or should I just stripe together two partitions -- each
half the size of my other drive, of course -- to make a "boring basic"
stripe and run with that?
TIA & HANW
:-D
--
David T-G
See http://justpickone.org/davidtg/email/
See http://justpickone.org/davidtg/tofu.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: striping 2x500G to mirror 1x1T
2022-03-05 4:47 striping 2x500G to mirror 1x1T David T-G
@ 2022-03-07 14:19 ` Natanji
2022-03-07 16:24 ` Wols Lists
2022-03-09 3:02 ` backups and losses (was "Re: striping 2x500G to mirror 1x1T") David T-G
2022-03-08 23:08 ` striping 2x500G to mirror 1x1T Jani Partanen
2022-03-09 16:04 ` to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T") David T-G
2 siblings, 2 replies; 9+ messages in thread
From: Natanji @ 2022-03-07 14:19 UTC (permalink / raw)
To: David T-G, Linux RAID
Hello David,
what you propose here should work, but be aware that you are essentially
first writing all data to the 2 smaller drives and then reading from
them only when the mirror 1 TB disk gets added. If there are bad sectors
that only gets dicovered while reading (not writing), you might lose
data. A much cleaner way would be to make a backup of your data disk and
then first crate the array with all disks, then write the data back from
your backup once the disks are in sync. You should definitely make a
backup or you could potentially lose data when creating this array.
I don't see the benefit of striping in your setup, by the way. For the
two smaller disks it might seem that this is beneficial for performance,
but since every write also needs to be made on the mirror, this will
essentially lead to your read/write head moving back and forth a lot,
no? Because if you write four consecutive chunks C1-C4 on the striped
side, two of these would be written to each smaller disk. And on the 1
TB disk side this would mean writing the sectors with only one
read/write head, each around 500GB apart from each other, and in a back
and worth fashion (although that might be optimized by queuing). So your
write performance could actually be *worse* than on a single drive, and
definitely not gain the 2x speed benefit of striping. For read
performance you might be okay, but nevertheless put unneccessary
mechanical wear on your 1 TB drive.
[C1 C3 ....] 500GB-1 [C2 C4 ....] 500GB-2
[C1 C3 ... (500G space) C2 C4 ....] 1TB
At least that's my understanding, someone correct me if I'm wrong and
mdadm handles such setups more intelligently (i.e. by laying out the
chunks completely linearly on the 1TB disk instead of 1-to-1 "mirroring"
the chunks on the 2x500G RAID0). If you think I'm correct, then instead
of striping I would just use linear mode on the 500GB disks to pool them
into one large volume, and thus essentially get Raid1 speed benefits of
double read performance compared to a single drive. This has the
downside of putting very different wear on the two 500GB volumes, of course.
Best regards,
Natanji
Am 05.03.2022 um 05:47 schrieb David T-G:
> Hi, all --
>
> I have a 1T data drive (currently in use with data) that I'd like to
> mirror with a pair of 500G drives striped together. I'll be mirroring
> two partitions, and I'll be striping partitions to ensure the correct
> size, and my understanding is that I'll have to create the mirror on the
> two new drives with half missing, mount it up, copy over the data, dump
> the original disk, and add it as the other half of the mirror to sync.
> If I've missed anything there, please let me know, but all of that
> matches my Googling and I don't think I have any questions.
>
> What I do wonder, and what I don't see in any searches since apparently
> nobody talks about striping up half of a mirror, is if I should do
> anything special with my two-disk RAID0 stripe. I was gobsmacked at
> the simplicity of RAID10 on only two drives by splitting each in half
> and "flipping" one to maximize head movement performance. Awesome! :-)
> Are there any brilliant hacks for simple striping? If I'm just putting
> together two [not terribly large] disks, will I benefit from any other
> funny stuff, or should I just stripe together two partitions -- each
> half the size of my other drive, of course -- to make a "boring basic"
> stripe and run with that?
>
>
> TIA & HANW
>
> :-D
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: striping 2x500G to mirror 1x1T
2022-03-07 14:19 ` Natanji
@ 2022-03-07 16:24 ` Wols Lists
2022-03-09 3:02 ` backups and losses (was "Re: striping 2x500G to mirror 1x1T") David T-G
1 sibling, 0 replies; 9+ messages in thread
From: Wols Lists @ 2022-03-07 16:24 UTC (permalink / raw)
To: Natanji, David T-G, Linux RAID
On 07/03/2022 14:19, Natanji wrote:
> Hello David,
> what you propose here should work, but be aware that you are essentially
> first writing all data to the 2 smaller drives and then reading from
> them only when the mirror 1 TB disk gets added. If there are bad sectors
> that only gets dicovered while reading (not writing), you might lose
> data. A much cleaner way would be to make a backup of your data disk and
> then first crate the array with all disks, then write the data back from
> your backup once the disks are in sync. You should definitely make a
> backup or you could potentially lose data when creating this array.
But then David is in an equal pickle - what happens if the backup
contains errors that only get discovered when reading, not writing ...
no, David's plan is just the same as yours, his "half a mirror" is your
backup, they suffer the same advantages and disadvantages.
>
> I don't see the benefit of striping in your setup, by the way. For the
> two smaller disks it might seem that this is beneficial for performance,
> but since every write also needs to be made on the mirror, this will
> essentially lead to your read/write head moving back and forth a lot,
> no? Because if you write four consecutive chunks C1-C4 on the striped
> side, two of these would be written to each smaller disk. And on the 1
> TB disk side this would mean writing the sectors with only one
> read/write head, each around 500GB apart from each other, and in a back
> and worth fashion (although that might be optimized by queuing). So your
> write performance could actually be *worse* than on a single drive, and
> definitely not gain the 2x speed benefit of striping. For read
> performance you might be okay, but nevertheless put unneccessary
> mechanical wear on your 1 TB drive.
>
> [C1 C3 ....] 500GB-1 [C2 C4 ....] 500GB-2
> [C1 C3 ... (500G space) C2 C4 ....] 1TB
>
> At least that's my understanding, someone correct me if I'm wrong and
> mdadm handles such setups more intelligently (i.e. by laying out the
> chunks completely linearly on the 1TB disk instead of 1-to-1 "mirroring"
> the chunks on the 2x500G RAID0).
mdadm doesn't have a clue that the second device in your mirror is a
raid0. As far as it is concerned you have two completely SEPARATE raids,
a raid0-stripe, and a raid1-mirror.
So when reading from the mirror it should preferentially read from the
raid0 because it's the faster device. Which means it WON'T put
unnecessary mechanical wear on the 1TB device because it preferentially
will only use it for writing. And because the layer above sees it as a
1TB device, it won't be scattering writes all over the place. All three
drives would see a "stream write to the mirror" as a stream write to the
drive. A1,B1,A2,C1,A3,B2,A4,C2, ...
Cheers,
Wol
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: striping 2x500G to mirror 1x1T
2022-03-05 4:47 striping 2x500G to mirror 1x1T David T-G
2022-03-07 14:19 ` Natanji
@ 2022-03-08 23:08 ` Jani Partanen
2022-03-08 23:34 ` Roman Mamedov
2022-03-09 16:04 ` to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T") David T-G
2 siblings, 1 reply; 9+ messages in thread
From: Jani Partanen @ 2022-03-08 23:08 UTC (permalink / raw)
To: David T-G, Linux RAID
Hello, I don't think you gain really any benefit from that raid-0, just
go linear array, IMHO.
// JiiPee
David T-G kirjoitti 05/03/2022 klo 6.47:
> Hi, all --
>
> I have a 1T data drive (currently in use with data) that I'd like to
> mirror with a pair of 500G drives striped together. I'll be mirroring
> two partitions, and I'll be striping partitions to ensure the correct
> size, and my understanding is that I'll have to create the mirror on the
> two new drives with half missing, mount it up, copy over the data, dump
> the original disk, and add it as the other half of the mirror to sync.
> If I've missed anything there, please let me know, but all of that
> matches my Googling and I don't think I have any questions.
>
> What I do wonder, and what I don't see in any searches since apparently
> nobody talks about striping up half of a mirror, is if I should do
> anything special with my two-disk RAID0 stripe. I was gobsmacked at
> the simplicity of RAID10 on only two drives by splitting each in half
> and "flipping" one to maximize head movement performance. Awesome! :-)
> Are there any brilliant hacks for simple striping? If I'm just putting
> together two [not terribly large] disks, will I benefit from any other
> funny stuff, or should I just stripe together two partitions -- each
> half the size of my other drive, of course -- to make a "boring basic"
> stripe and run with that?
>
>
> TIA & HANW
>
> :-D
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: striping 2x500G to mirror 1x1T
2022-03-08 23:08 ` striping 2x500G to mirror 1x1T Jani Partanen
@ 2022-03-08 23:34 ` Roman Mamedov
2022-03-09 2:59 ` David T-G
0 siblings, 1 reply; 9+ messages in thread
From: Roman Mamedov @ 2022-03-08 23:34 UTC (permalink / raw)
To: Jani Partanen; +Cc: David T-G, Linux RAID
On Wed, 9 Mar 2022 01:08:47 +0200
Jani Partanen <jiipee@sotapeli.fi> wrote:
> Hello, I don't think you gain really any benefit from that raid-0, just
> go linear array, IMHO.
There is no gain from the linear array either. In none of the performance,
reliability or even simplicity, since managing a linear md array is not any
simpler than managing an md RAID0.
Smaller disks tend to be slower in linear speeds than larger and more densely
written ones. If that is the case with the particular models used here, then
having the 2x500 side in a RAID0 will help them match up in linear speeds to
the 1TB side.
And a very good point that Wols mentioned, the 1TB-disk member can be set as
--write-mostly, since the 2x500GB RAID0 is likely to overshoot the performance
of a single 1TB disk, even if its individual disks were slower. Not to mention
it has two independent head sets for the same amount of data. (If we're still
talking rotational here...)
--
With respect,
Roman
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: striping 2x500G to mirror 1x1T
2022-03-08 23:34 ` Roman Mamedov
@ 2022-03-09 2:59 ` David T-G
0 siblings, 0 replies; 9+ messages in thread
From: David T-G @ 2022-03-09 2:59 UTC (permalink / raw)
To: Linux RAID
Hi again, all --
...and then Roman Mamedov said...
%
...
% And a very good point that Wols mentioned, the 1TB-disk member can be set as
% --write-mostly, since the 2x500GB RAID0 is likely to overshoot the performance
% of a single 1TB disk, even if its individual disks were slower. Not to mention
% it has two independent head sets for the same amount of data. (If we're still
% talking rotational here...)
Thanks so much for all of the input! This sounds like the right way to
go.
I had completely forgotten the "strange magic" ;-) of RAID10 on just
two drives by reordering the two partitions on the second drive, but I
don't think that that applies here and I don't imagine it's worth the
complexity of striping two mirrors, half of each of which are partitions
on the 1T drive, so I'll just stripe [partions on] the two 500s.
Thanks again & have a great day!
:-D
--
David T-G
See http://justpickone.org/davidtg/email/
See http://justpickone.org/davidtg/tofu.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: backups and losses (was "Re: striping 2x500G to mirror 1x1T")
2022-03-07 14:19 ` Natanji
2022-03-07 16:24 ` Wols Lists
@ 2022-03-09 3:02 ` David T-G
1 sibling, 0 replies; 9+ messages in thread
From: David T-G @ 2022-03-09 3:02 UTC (permalink / raw)
To: Linux RAID
Natanji, et al --
...and then Natanji said...
%
% Hello David,
% what you propose here should work, but be aware that you are essentially
% first writing all data to the 2 smaller drives and then reading from them
% only when the mirror 1 TB disk gets added. If there are bad sectors that
% only gets dicovered while reading (not writing), you might lose data. A much
[snip]
Thanks for the input!
While I'd love to have the luxury of redundant backups and more devices,
that's out of the cards on this little server :-/ However, after I rsync
across all content I then use diff -r to check it, so I have to read each
byte on each side anyway. That gives me at least a little more confidence!
Have a great day
:-D
--
David T-G
See http://justpickone.org/davidtg/email/
See http://justpickone.org/davidtg/tofu.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
* to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T")
2022-03-05 4:47 striping 2x500G to mirror 1x1T David T-G
2022-03-07 14:19 ` Natanji
2022-03-08 23:08 ` striping 2x500G to mirror 1x1T Jani Partanen
@ 2022-03-09 16:04 ` David T-G
2022-03-09 16:25 ` Roman Mamedov
2 siblings, 1 reply; 9+ messages in thread
From: David T-G @ 2022-03-09 16:04 UTC (permalink / raw)
To: Linux RAID
Hi again, all --
...and then davidtg-robot@justpickone.org said...
%
% I have a 1T data drive (currently in use with data) that I'd like to
% mirror with a pair of 500G drives striped together. I'll be mirroring
% two partitions, and I'll be striping partitions to ensure the correct
[snip]
Is it OK to mirror a partition and an entire device? Are there any pros
or cons?
I now have my 2ea 500G drives partitioned
jpo:~ # parted /dev/sdc unit MiB print
Model: ATA WDC WD5000AAVS-0 (scsi)
Disk /dev/sdc: 476940MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 472171MiB 472170MiB raid0-WD-WMASU0686160 raid
4 472171MiB 476940MiB 4769MiB reiserfs wwn-0x50014ee055b724ad
jpo:~ # parted /dev/sdd unit MiB print
Model: ATA WDC WD5000AAVS-0 (scsi)
Disk /dev/sdd: 476940MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 472171MiB 472170MiB raid0-WD-WMASU0769665 raid
4 472171MiB 476940MiB 4769MiB ext3 wwn-0x50014ee055b72bcd
(I always reserve a small slice at the end of the disk in which to keep
array structure data and other helpful info) and striped
jpo:~ # mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 9 05:48:41 2022
Raid Level : raid0
Array Size : 966739968 (921.96 GiB 989.94 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 9 05:48:41 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : -unknown-
Chunk Size : 512K
Consistency Policy : none
Name : jpo:500Graid0md (local to host jpo)
UUID : fc674dbd:577b7d48:5cbe936f:6954eb62
Events : 0
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
into a 1T-ish device ready to be half a mirror. I had originally done
lots of partition size math equal exactly half of my 1T drive partition
jpo:~ # parted /dev/sdb unit MiB print
Model: ATA ST31000524AS (scsi)
Disk /dev/sdb: 953870MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 858307MiB 858306MiB xfs pri
4 950055MiB 953869MiB 3814MiB pri
with existing data (and having to fudge around, not surprisingly, the
striping metadata overhead), and so I've been playing
jpo:~ # parted /dev/md0 unit MiB print
Model: Linux Software RAID Array (md)
Disk /dev/md0: 944082MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.00MiB 934641MiB 934640MiB 500Graid0md raid
4 934641MiB 944081MiB 9440MiB pri msftdata
with how to slice up the stripe device to size it to match the existing
sdb1 partition with the mirroring metadata overhead, when I wondered ...
do I care? I don't need the s4 slice on this virtual device; that's just
leftover space. I hate to think of it going to waste, but it's really
trivial in the grand scheme of things. Soooooo ... if it's just as happy
to mirror against a whole device as it is a slice of one, then maybe I
can skip ahead.
Thoughts?
Thanks again! :-)
:-D
--
David T-G
See http://justpickone.org/davidtg/email/
See http://justpickone.org/davidtg/tofu.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T")
2022-03-09 16:04 ` to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T") David T-G
@ 2022-03-09 16:25 ` Roman Mamedov
0 siblings, 0 replies; 9+ messages in thread
From: Roman Mamedov @ 2022-03-09 16:25 UTC (permalink / raw)
To: David T-G; +Cc: Linux RAID
On Wed, 9 Mar 2022 11:04:03 -0500
David T-G <davidtg-robot@justpickone.org> wrote:
> Is it OK to mirror a partition and an entire device?
Yes it is OK.
> jpo:~ # parted /dev/sdb unit MiB print
> Model: ATA ST31000524AS (scsi)
> Disk /dev/sdb: 953870MiB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number Start End Size File system Name Flags
> 1 1.00MiB 858307MiB 858306MiB xfs pri
> 4 950055MiB 953869MiB 3814MiB pri
>
Here it seems weird that your 1TB drive has a 858GB partition, then a hole of
free space about 92 GB in size, and only then another partition of 4 GB. In
preparation for that partition to become a RAID member (instead of xfs data
directly), you could resize it to match the 944082MiB size of md0.
> with existing data (and having to fudge around, not surprisingly, the
> striping metadata overhead), and so I've been playing
>
> jpo:~ # parted /dev/md0 unit MiB print
> Model: Linux Software RAID Array (md)
> Disk /dev/md0: 944082MiB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number Start End Size File system Name Flags
> 1 1.00MiB 934641MiB 934640MiB 500Graid0md raid
> 4 934641MiB 944081MiB 9440MiB pri msftdata
>
> with how to slice up the stripe device to size it to match the existing
> sdb1 partition with the mirroring metadata overhead, when I wondered ...
> do I care? I don't need the s4 slice on this virtual device; that's just
> leftover space. I hate to think of it going to waste, but it's really
> trivial in the grand scheme of things. Soooooo ... if it's just as happy
> to mirror against a whole device as it is a slice of one, then maybe I
> can skip ahead.
It is definitely an overkill to partition the md0 device. Better to just use
it entirely. If you fix up the partition size on sdb as mentioned above, there
will not be any wasted space on md0.
--
With respect,
Roman
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-03-09 16:35 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-05 4:47 striping 2x500G to mirror 1x1T David T-G
2022-03-07 14:19 ` Natanji
2022-03-07 16:24 ` Wols Lists
2022-03-09 3:02 ` backups and losses (was "Re: striping 2x500G to mirror 1x1T") David T-G
2022-03-08 23:08 ` striping 2x500G to mirror 1x1T Jani Partanen
2022-03-08 23:34 ` Roman Mamedov
2022-03-09 2:59 ` David T-G
2022-03-09 16:04 ` to partition or not to partition (was "Re: striping 2x500G to mirror 1x1T") David T-G
2022-03-09 16:25 ` Roman Mamedov
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.