vinum RAID5. Снова
- From
- Sergey Korolew (2:6053/1.2)
- To
- leo@tcnet.ru
- Date
- 2005-06-03T17:41:46Z
- Area
- RU.UNIX.BSD
Пpивет Cherepanov!
03 Июн 05 16:00, Cherepanov Leonid писал к Sergey Korolew:
CL> Вы просто не правы.
Почему на "Вы"-то сразу ?
CL> Абсолютно. Я десятки раз получал прекрасную производительность
CL> софтового 5-го раида на виндах.
Дык вот и используй. Под виндами. А здесь - способен помочь с оптимизацией ?
Тогда welcome.
Кстати, у меня получались противоположные результаты. Софтовый RAID5 под виндой не идет ни в какое сравнение даже с убогим 2120S. На идентичных дисках.
CL> Думаю, что и тут Вы не правы. Перед записью надо, конечно, поксорить
CL> блоки. Но _дописать_ надо только 1 блок только на один диск.
Не надо ничего придумывать, алгоритм работы описан в исходниках.
* There are a number of different kinds of
* transfer, each of which relates to a
* specific subdisk:
*
* 1. Normal read. All participating subdisks
* are up, and the transfer can be made
* directly to the user buffer. The bounds
* of the transfer are described by
* m.dataoffset and m.datalen. We have
* already calculated m.initoffset and
* m.initlen, which define the parameters
* for the first data block.
*
* 2. Recovery read. One participating
* subdisk is down. To recover data, all
* the other subdisks, including the parity
* subdisk, must be read. The data is
* recovered by exclusive-oring all the
* other blocks. The bounds of the
* transfer are described by m.groupoffset
* and m.grouplen.
*
* 3. A read request may request reading both
* available data (normal read) and
* non-available data (recovery read).
* This can be a problem if the address
* ranges of the two reads do not coincide:
* in this case, the normal read needs to
* be extended to cover the address range
* of the recovery read, and must thus be
* performed out of malloced memory.
*
* 4. Normal write. All the participating
* subdisks are up. The bounds of the
* transfer are described by m.dataoffset
* and m.datalen. Since these values
* differ for each block, we calculate the
* bounds for the parity block
* independently as the maximum of the
* individual blocks and store these values
* in m.writeoffset and m.writelen. This
* write proceeds in four phases:
*
* i. Read the old contents of each block
* and the parity block.
* ii. ``Remove'' the old contents from
* the parity block with exclusive or.
* iii. ``Insert'' the new contents of the
* block in the parity block, again
* with exclusive or.
*
* iv. Write the new contents of the data
* blocks and the parity block. The data
* block transfers can be made directly from
* the user buffer.
*
* 5. Degraded write where the data block is
* not available. The bounds of the
* transfer are described by m.groupoffset
* and m.grouplen. This requires the
* following steps:
*
* i. Read in all the other data blocks,
* excluding the parity block.
*
* ii. Recreate the parity block from the
* other data blocks and the data to be
* written.
*
* iii. Write the parity block.
*
* 6. Parityless write, a write where the
* parity block is not available. This is
* in fact the simplest: just write the
* data blocks. This can proceed directly
* from the user buffer. The bounds of the
* transfer are described by m.dataoffset
* and m.datalen.
*
* 7. Combination of degraded data block write
* and normal write. In this case the
* address ranges of the reads may also
* need to be extended to cover all
* participating blocks.
*
* All requests in a group transfer transfer
* the same address range relative to their
* subdisk. The individual transfers may
* vary, but since our group of requests is
* all in a single slice, we can define a
* range in which they all fall.
CL> реализации. А аппаратные рейдконтроллеры нужны в основном для других
CL> целей. Например, чтобы при сбое питания держать на борту за счёт
CL> батарейки незаписанные данные.
Это все сказки. У того же 2120S на борту 64Мб. Сколько времени они будут сохраняться ? А UPS использовать религия не позволяет ?
CL> Т.е. совершенно другой уровень "сервиса". А скорость - это пошло :)
CL> Она всегда получаться должна.
Приежай, покажу raid5 на трех винтах. Аппаратный. Жалкое зрелище.
Всего наилучшего,
Sergey aka DS
--- GoldED+/W32 snapshot-2001.03.04
* Origin: Нету. Придумывать лень. (2:6053/1.2)
SEEN-BY: 46/50 50/551 140/1 400/814 450/1024 5000/5000 5011/13 5015/10 5019/31
SEEN-BY: 5020/178 380 545 715 1822 2044 4441 12000 5021/29 5025/3 5027/16
SEEN-BY: 5030/115 5035/38 5036/34 5043/19 5052/4 5054/1 4 8 9 28 35 36 37 63
SEEN-BY: 5054/66 67 70 75 81 84 85 5062/10 5063/3 5069/7 5080/1003 5085/13
SEEN-BY: 5095/20 5096/18 6000/254 6001/10 6053/1 4 6056/1
PATH: 6053/1 5020/715 545 5054/1 37