Я видел оба перечисленных, и чередующиеся, и зеркальные на нескольких дисках, но есть ли разница между ними, которую я не улавливаю?
Это связано с порядком, в котором выполняются операции, и применяется только к массивам, состоящим из 6 дисков или больше (если у вас 4 диска, они оба почти одинаковы).
RAID 1 + 0 (10): Диски 1 + 2, 3 + 4, 5 + 6 зеркалируются для создания массива RAID-1, а массив RAID 0 создается поверх массивов.
RAID 0 + 1 (01): Диск 1 + 2 + 3 чередуется для создания массива RAID 0, а затем диски 4 + 5 + 6 для создания избыточности RAID 1.
С RAID 0 + 1 потеря одного диска с одной стороны массива (1,2,3 или 4,5,6) приведет к ухудшению состояния массива до состояния, в котором вы, по сути, используете RAID 0 (что является плохой).
С RAID 1 + 0 вы можете потерять по одному диску из каждой пары (1,2, 3,4 или 5,6), и массив останется работоспособным. Единственный способ перевести этот массив в автономный режим - это отказать оба диска в паре.
Если ваши обстоятельства не являются исключительными, вам следует никогда используйте 0 + 1.
Вот немного математики, которая должна показать разницу в частоте отказов. Для простоты предположим, что количество дисков четное.
В обеих конфигурациях массива каждый диск разбит на блоки. В Raid 0 + 1 сначала происходит чередование, а затем зеркальное отображение. В Raid 1 + 0 сначала происходит зеркальное отображение, а затем чередование.
Мы всегда можем разделить Raid 0 + 1 на две группы (G1 и G2).
Обратите внимание, что я использую «разделение» в математическом смысле.
Для n дисков мы можем определить:
G1 = {D1, D2, ..., Dп / 2}
G2 = {Dп / 2 + 1, Dп / 2 + 2, ..., Dп}
Raid 0+1
4 Disks: 6 Disks:
Disk1 Disk2 Disk3 Disk4 Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
| a | | b | | a | | b | | a | | b | | c | | a | | b | | c |
| c | | d | | c | | d | | d | | e | | f | | d | | e | | f |
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
G1 = {D1, D2} G1 = {D1, D2, D3}
G2 = {D3, D4} G2 = {D4, D5, D6}
Для Raid 1 + 0 мы всегда можем разделить диски на n / 2 группы.
Обратите внимание, что я использую «разделение» в математическом смысле.
Для n дисков мы можем определить:
G1 = {D1, D2}
G2 = {D3, D4}
...
граммп / 2 = {Dп-1, Dп}
Raid 1+0
4 Disks: 6 Disks:
Disk1 Disk2 Disk3 Disk4 Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
| a | | a | | b | | b | | a | | a | | b | | b | | c | | c |
| c | | c | | d | | d | | d | | d | | e | | e | | f | | f |
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
G1 = {D1, D2} G1 = {D1, D2}
G2 = {D3, D4} G2 = {D3, D4}
G3 = {D5, D6}
Теперь, разобравшись с этим, давайте займемся математикой!
Для сбоя в конфигурации Raid 0 + 1 должен умереть как минимум 1 жесткий диск из каждой группы.
Чтобы сбой произошел в конфигурации Raid 1 + 0, все жесткие диски в любой отдельной группе должны умереть.
В любой конфигурации Raid должны умереть как минимум два диска. Давайте рассмотрим все возможные способы отказа обеих конфигураций Raid, если два диска умрут.
Number of Disks (n) = 4
2 Disks Die : Raid Failure
D1D2 : R10
D1D3 : R01
D1D4 : R01
D2D3 : R01
D2D4 : R01
D3D4 : R10
С 4 дисками всего C (n, 2) = C (4, 2) = 6 комбинаций.
4/6 из этих комбинаций приведет к сбою конфигурации Raid 0 + 1. (66% шанс неудачи)
Можно сказать, что:
P1 = P (Raid 0+1 Failure | 2 Disks die) = 2/3
2/6 из этих комбинаций приведет к сбою конфигурации Raid 1 + 0. (33% шанс неудачи)
Можно сказать, что:
P2 = P (Raid 1+0 Failure | 2 Disks die) = 1/3
Мы можем провести тот же тест с n = 6, но я опущу таблицу.
P1 = 9/15 = 3/5
P2 = 3/15 = 1/5
P3 = P (No failures | 2 Disks die) = 4/15
P1P2 = 1/15
С 6 дисками возможны c (n, 2) = c (6, 2) = 15 возможных комбинаций.
Существует 60% вероятность того, что конфигурация Raid 0 + 1 не сработает.
Существует 20% вероятность того, что конфигурация Raid 1 + 0 не удастся.
Теперь эти результаты можно обобщить для n дисков.
P1 = c(n/2, 1) * c(n/2, 1) / c(n, 2)
= (n/2 * n/2) / (n * (n - 1) / 2)
= (n/2 * n/2) * (2 / (n * (n - 1))
= (n * n / 4) * (2 / (n * (n - 1))
= (n / 2) * (1 / (n - 1))
= n / (2 * (n - 1))
P2 = (n/2) / c(n, 2)
= (n/2) / (n * (n - 1) / 2)
= (n/2) * (2 / (n * (n - 1)))
= 1 / (n - 1)
А теперь самая полезная и интересная часть математики. Мы можем ограничиться двумя приведенными выше уравнениями. Ниже я использую «inf» для обозначения бесконечности.
Lim n->inf P1 = Lim n->inf n / (2 * (n - 1)) // We can use L'Hopital's rule
= Lim n->inf 1 / 2 = 1 / 2
Другими словами, всегда будет как минимум 50% шанс отказа, если 2 диска умрут в конфигурации Raid 0 + 1!
Теперь посмотрим, как работает конфигурация Raid 1 + 0.
Lim n->inf P2 = Lim n->inf 1 / (n - 1) = 0
Другими словами, чем больше дисков мы добавляем в конфигурацию raid 1 + 0, тем ближе к теоретической 0% вероятности отказа!
Одна итоговая таблица (обратите внимание, что я округляю значения до целых чисел.)
-------------------
| n | P1 | P2 |
-------------------
| 4 | 66% | 33% |
| 6 | 60% | 20% |
| 8 | 57% | 14% |
| 10 | 55% | 11% |
| 12 | 54% | 9% |
| 16 | 53% | 7% |
| 20 | 52% | 5% |
| 24 | 52% | 4% |
| 32 | 51% | 3% |
| 64 | 50% | 1% |
| 128 | 50% | 0% |
-------------------
Вывод: используйте Raid 1 + 0.
Это относится к ServerFault, но вот краткий обзор отличий от Википедии
RAID 10
RAID 1 + 0 (или 10) - это зеркальный набор данных (RAID 1), который затем чередуется (RAID 0), отсюда и название «1 + 0». Для массива RAID 1 + 0 требуется как минимум четыре диска - два зеркальных диска для хранения половины данных с чередованием, плюс еще два зеркальных диска для другой половины данных. В Linux MD RAID 10 представляет собой невложенный тип RAID, такой как RAID 1, для которого требуется не менее двух дисков и может обеспечить производительность чтения на уровне RAID 0.
RAID 01
RAID 0 + 1 (или 01) - это чередующийся набор данных (RAID 0), который затем зеркалируется (RAID 1). Для массива RAID 0 + 1 требуется как минимум четыре диска: два для хранения данных с чередованием и еще два для зеркалирования первой пары.