BASH Programming - Введение

         

Уровни RAID


Здесь приводится короткое описание того, что поддерживается патчами Linux RAID. Часть из этой информации - чисто базовая информация о RAID, но я добавил несколько замечаний о особенностях реализации уровней в Linux. Если Вы знакомы с RAID, просто пропустите эту секцию. Позже, если возникнут проблемы, можете вернуться к ней :)

Текущие RAID патчи для Linux поддерживают следующие уровни:

  • Линейный режим

  • Два или более диска объединяются в одно устройство. Диски ``добавляются'' один к другому, таким образом, запись на устройство RAID будет заполнять сначала диск 0, затем диск 1 и так далее. Диски не обязательно должны быть одного размера. Фактически, размер здесь вообще не имеет значения :)
  • На этом уровне нет избыточности. Если один диск отказывает, Вы, скорее всего, потеряете все Ваши данные. Однако, Вы, возможно, сможете удачно восстановить часть данных, так как в файловой системе будет просто отсутствовать один большой последовательный кусок данных.
  • Производительность чтения и записи не увеличивается для одиночных операциях считывания/записи. Но если несколько пользователей используют устройство, Вам может повезти, и один один пользователь может фактически использовать первый диск, а другой пользователь обращаться к файлам на втором диске. Если это произойдет, вы получите прирост производительности.
  • RAID-0

    • Также называемый режим ``stripe''. Подобен линейному режиму, исключая то, что чтение и запись производятся параллельно с двух устройств. Устройства должны иметь приблизительно один размер. Так как весь доступ производится параллельно, устройства заполняются одинаково. Если одно устройство больше, чем другие, это дополнительное пространство все еще используется в RAID устройстве, но при записи в самом конце вашего RAID устройства, Вы получаете доступ только к этому одному диску, что, конечно, снижает производительность.
    • Как и в линейном режиме, на этом уровне нет никакой избыточности. В отличии от линейного режима, Вы не сможете восстановить никаких данных при отказе диска. Если Вы удаляете диск из RAID-0 набора, в RAID устройстве будет не просто отсутствовать последовательный кусок данных, оно будет заполнено маленькими дырочками по всему устройству. e2fsck будет не в состоянии восстановить большую данных на этом устройстве.

    • Производительность чтения и записи увеличится, так как чтение и запись будут выполняться параллельно на дисках. Обычно, это главная причина использования этого уровня RAID. Если шины к дискам достаточно быстрые, Вы сможете получить почти N*P Мб/сек.


    • RAID-1



      • Это первый режим, который реализует избыточность. RAID-1 может использоваться на двух или более дисках с нулем или более резервными дисками. Этот режим поддерживает точную копию информации одного диска на всех дисках. Конечно, диски должны быть одного размера. Если один из дисков больше другого, Ваш RAID будет размером с наименьший.


      • Если N-1 диск удален (или отказал), все данные все еще целы. Если имеются резервные диски, и если система (SCSI драйвера или IDE чипсет и т.п.) пережили отказ, после обнаружения отказа, начинается немедленная реконструкция зеркала на резервные диски.


      • Производительность записи немного хуже, чем у одного диска, так как на каждый диск массива должны быть посланы идентичные копии записанных данных. Производительность чтения обычно достаточно плохая из-за чрезмерного упрощения стратегии балансировки чтения в коде RAID. Однако, реализована более улучшеная стратегия балансировки чтения, которая может быть доступна для патчей RAID для Linux-2.2 (спросите в linux-kernel списке рассылки), и которая будет, по всей вероятности, в стандартной поддержке RAID в 2.4 ядре.


      • RAID-4



        • Этот уровень RAID не часто используется. Он может быть использован с тремя или более дисками. Вместо полной зеркализации информации, он сохраняет информацию о четности на отдельном диске, и записывает данные на другой диск подобным используемому в RAID-0 образом. Так как один диск зарезервирован для информации четности, размер массива будет (N-1)*S, где S - размер наименьшего устройства в массиве. Как и в RAID-1, диски должны быть либо одного размера, либо S, в формуле (N-1)*S, должно быть размером наименьшего диска в массиве.


        • Если один диск откажет, информация о четности может быть использована для восстановления всех данных. Если два диска откажет - все данные будут потеряны.




        • Причина нечастого использования этого уровня - информация о паритете хранится на одном диске. Эта информация должна быть обновлена каждый

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


        • RAID-5



          • Это, пожалуй, самый полезный режим RAID для тех, кто хочет соединить несколько физических дисков, и к тому же сохранить избыточность. RAID-5 может быть использован на трех или более дисках, с нулем или более резервных дисков. Размер результирующего RAID-5 устройства будет (N-1)*S, как и в RAID-4. Главное отличие между RAID -5 и -4 в том, что распределением информации о паритете по всем устройствам, избегается проблема бутылочного горлышка в RAID-4.


          • Если один из этих дисков отказывает, все данные все еще не повреждены, благодаря информации о паритете. Если имеются резервные диски, при отказе диска немедленно начинается реконструкция. Если отказывает два диска одновременно - все данные потеряны. RAID-5 может пережить отказ одного диска, но не двух или более.


          • Обычно увеличивается производительность как чтения, так и записи, но тяжело предсказать насколько.



          • Содержание раздела