Re: What's the typical RAID10 setup?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ssd time to make head positioning (latency): <0.1ms
hd max time to make head positioning (latency): 10ms

ssd rate of read: 270MB/s random/sequential read (excluding latency)
check that ssd is BLOCK (4kb mostly) oriented
hd rate of read? 130MB/s sequential read? check that hd is BIT oriented
write rate? random/sequencial?

with these answers we can make a simple 'time' model of read/write,
per device (use of raid0 (/dev/md0) is a device!, raid1 too
(/dev/md1), raid5 (/dev/md2) ,raid6 (/dev/md3)) any device have this
variables...
just make a model and use the model to optimize minimal time to
execute write/read

2011/2/2 Roberto Spadim <roberto@xxxxxxxxxxxxx>:
> pros against closest head:
> since we can use raid1 with identical disks (buyed at same time, with
> near serial numbers) we can have disks with same time to fail
> using closest head, the more used disk, will fail first
> failing first we have time to change it (while the second isn't as
> used as first device)
>
> but, think about it...
> it's like a write-mostly not?
>
>
> 2011/2/2 Roberto Spadim <roberto@xxxxxxxxxxxxx>:
>> check that, read balance is:
>> time based
>> closest head
>> round robin
>> algorithms
>>
>> plus....
>> failed device problem and write-mostly
>>
>> with time based we can drop write-mosty.... just make the time of that
>> device very high
>>
>>
>> 2011/2/2 Roberto Spadim <roberto@xxxxxxxxxxxxx>:
>>> it's cpu/mem consuming if use a complex model, and less cpu/mem
>>> consuming if use a single model
>>>
>>> another idea....
>>> many algorithm....
>>>
>>> first execute time based
>>> it selected a bug (failed) device
>>> execute closest head
>>> if selected a bug (failed) device
>>> execute round robin
>>> if selected a bug (failed) device
>>> select first usable non write-mostly
>>> if selected a bug (failed) device
>>> select first usable write-mostly
>>> if end of devices, stop md raid
>>>
>>> to make this, today... we need a read_algorithm at
>>> /sys/block/md0/xxxxxx, to select what algorith to use, write algorithm
>>> is based on raid being used.. raid0 make linear and stripe, raid1 make
>>> mirror, there's no algorithm to use here...
>>> we need some files at /sys/block/md0/xxx to manage 'devices' time
>>> model (parameters)
>>> we need a adaptive algorithm to update parameters and make it closest
>>> possible to real model of 'devices'
>>> a raid0 have global parameters, inside raid0 devices have per device parameters
>>> a raid1 over raid0, should use raid0 parameters
>>> raid0 over devices, should use devices parameters
>>>
>>>
>>> 2011/2/2 Roberto Spadim <roberto@xxxxxxxxxxxxx>:
>>>> time based: is the time to:
>>>> HD:head positioning , SSD: time to send command to ROM chip
>>>> HD:read/write time (disk speed - rpm), SSD: time to write/read (time
>>>> to ssd rom chip receive bytes)
>>>> that's time based
>>>>
>>>> what is fast por read?
>>>> consider that time based must know that disk is doing a I/O and that
>>>> you have a time to end, this time to end is another time in algorithm
>>>>
>>>> for example:
>>>> NBD (network block device)
>>>> time to send read message + time to send command to rom or head positioning
>>>> read/write time: time to nbd server return the read/write bytes
>>>>
>>>> what algorithm should do?
>>>> calculate all time or all mirrors, including time to end current
>>>> request (if only one request could be processed, or if allow more than
>>>> 1 request, the time spent to start our command)
>>>> after all time calculated, select the minimal value/device
>>>>
>>>> that's time based
>>>> it's not based on round robin
>>>> it's not based on closest head
>>>> it's based on device speed to:
>>>> *(1)position head/send rom command
>>>> *(2)read/write time (per total of bytes read/write)
>>>> *(3)time to start out request command (if don't allow more than 1
>>>> request per time, don't have a device queue)
>>>>
>>>> the total time per device will tell us the best device to read
>>>> if we mix, nbd + ssd + hdd (5000rpm) + hdd(7500rpm) + hdd(10000rpm) +
>>>> hdd(15000rpm)
>>>> we can get the best read time using this algorithm
>>>> the problem? we must run a constante benchmark to get this values *(1)
>>>> *(2) *(3) and calculate good values of time spent on each process
>>>>
>>>> resuming... whe need a model of each device (simple-constants or very
>>>> complex-neural network?), and calculate time spent per device
>>>> nice?
>>>>
>>>>
>>>> 2011/2/2 Robin Hill <robin@xxxxxxxxxxxxxxx>:
>>>>> On Tue Feb 01, 2011 at 09:12:11PM -0200, Roberto Spadim wrote:
>>>>>
>>>>>> but the best algorithm is time based (minimize time to access data)
>>>>>>
>>>>> And what do you think takes the time accessing the data?  In a rotating
>>>>> disk, it's moving the heads - that's why the current strategy is nearest
>>>>> head.  In an SSD there's no head movement, so access time should be the
>>>>> same for accessing any data, making it pretty much irrelevant which
>>>>> strategy is used.
>>>>>
>>>>> Cheers,
>>>>>    Robin
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Roberto Spadim
>>>> Spadim Technology / SPAEmpresarial
>>>>
>>>
>>>
>>>
>>> --
>>> Roberto Spadim
>>> Spadim Technology / SPAEmpresarial
>>>
>>
>>
>>
>> --
>> Roberto Spadim
>> Spadim Technology / SPAEmpresarial
>>
>
>
>
> --
> Roberto Spadim
> Spadim Technology / SPAEmpresarial
>



-- 
Roberto Spadim
Spadim Technology / SPAEmpresarial
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux