9

Процитирую статью из Википедии о RAID:

RAID 0 может быть создан с дисками разных размеров, но объем памяти, добавляемый в массив каждым диском, ограничен размером самого маленького диска. Например, если диск размером 100 ГБ объединен с диском на 350 ГБ, размер массива будет 200 ГБ (100 ГБ × 2).

Однако в статье не указывается, почему он не может объединить их в RAID-массив и использовать все дисковое пространство. Я понимаю, что чередование записывает между ними, но, конечно же, оно не должно препятствовать записи в более поздние сектора второго диска, в то же время работая с пониженной производительностью? Существует ли альтернативная система RAID (например, программный RAID), которая предлагает такую функцию?

4 ответа4

10

Причина, по которой размер ограничен размером самого маленького диска, связана с тем, что полосы записываются "поочередно" и должны быть одинакового размера.

В двухдисковой системе все нечетные полосы находятся на одном диске, четные - на другом. Пишет поочередно между дисками, нечетные / четные / нечетные / четные / ...

Поскольку полосы должны быть одинакового размера и парными (для двух дисков), вы можете использовать максимально свободное пространство 2 * (размер наименьшего диска).

2

Вы можете использовать оставшееся пространство. Вы можете создать том, используя оставшееся пространство, или даже использовать его как часть другого RAID. Однако использование этого дополнительного пространства приведет к снижению производительности, которую дает RAID 0, поскольку два разных процесса могут пытаться получить доступ к одному и тому же физическому контроллеру и диску.

Почему вы не можете добавить это дополнительное пространство к исходному RAID? Ну, не вдаваясь в подробности, это из-за алгоритмов использования RAID. RAID 0 записывает данные на первый диск RAID, затем на следующий. Это увеличивает производительность, так как не нужно ждать, пока предыдущий диск завершит чтение или запись. Если в вашем посте использовалось 250 ГБ, большая часть записи была бы на первый диск, что практически исключало бы прирост производительности.

RAID может быть не тем решением, которое вы ищете, если вы хотите использовать все пространство дисков, вы должны занимать тома. Spanning позволяет вам брать много томов и объединять их в один большой том. Spanning не предлагает увеличения производительности или избыточности.

0
A RAID 0 can be created with disks of differing sizes, but the storage
space added to the array by each disk is limited to the size of the
smallest disk.

Это может быть правдой и будет справедливо для большинства реализаций RAID0. Однако не для всех.

Есть две причины для использования RAID 0:

  1. Объедините несколько дисков в один большой том.
  2. Спектакль.

Вариант 2 является наиболее распространенным, и я думаю, что он используется почти во всех текущих реализациях RAID 0. Техническое объяснение состоит в том, что информация записывается попеременно между дисками.

Нетехническим способом: думайте о дисках как о двух книгах. Эти книги имеют ограниченную скорость доступа (чтение / запись). Таким образом, вместо двух 100-страничных книг мы переформатируем их в две книги, но перенумеровываем страницы так, чтобы все четные числа были записаны в одной книге, а все нечетные числа - в другой.

Теперь наша новая книга «R0» ведет себя так, как если бы это была одна книга с удвоенным количеством страниц и удвоенной скоростью.


Вариант 1 может быть таким же простым, как «приклеивать книги друг к другу». В этом случае у вас нет увеличения скорости, но вы можете склеивать книги с разным количеством страниц. Кажется, я вспоминаю некоторые реализации RAID0, подобные этой, примерно в 1990 году. Но это не то, что большинство людей сочли бы «правильным RAID 0».

0

RAID - это псевдостандарт, который описывает, как данные могут храниться на массиве дисков. Стандарт описывает четыре различных способа хранения данных (технически больше, но больше никто не заботится о других):

Рейд-0: Чередование. Каждый блок данных распределяется по каждому члену устройства RAID. Нет избыточности, так что это больше просто массив недорогих дисков, а не избыточный массив недорогих дисков.

Рейд-1: Зеркальное отображение. Каждый блок данных хранится на каждом диске в массиве. Это только действительно делает так с двумя дисками. RAID 1/0 или просто RAID 10 представляет собой комбинацию зеркалирования и чередования и может использоваться для использования более двух дисков.

Рейд-5: Паритет. Каждый блок данных распределяется по каждому члену устройства RAID + один диск выделен для контроля четности.

Raid-6: Double Parity: такой же, как Raid-5, но с двумя дисками четности.

Вот и все. Raid не описывает, что делать с несоответствиями размеров или чем-то еще, но чередование действительно работает только с дисками одинакового размера. Обычно способ обойти это заключается в том, что вы можете использовать оставшееся пространство в качестве отдельного диска.

Отойдя от RAID как способа создания большого дискового массива, вы можете использовать такие вещи, как ZFS, и просто добавлять диски в пул хранения. ZFS всегда будет стараться использовать оба диска максимально эффективно, и вы сможете указать ZFS, какой уровень избыточности вас устраивает.

Предыдущие технологии - это такие вещи, как сопоставление томов (т. Е. LVM или эквивалент Windows), которые абстрагируют идею отображения блоков на диск на более высокий уровень. С LVM вы можете распределять диски, расширять разделы, иметь несмежные разделы и так далее. Сопоставление томов не является RAID-массивом, и вместо увеличения производительности при увеличении количества дисков оно просто будет произвольно выбирать запись на один или другой диск в зависимости от того, где вы находитесь в файловой системе. Это называется spanning и обычно лучше RAID, если вы предпочитаете IOPS, а не просто производительность.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .