FERRA.RU РАМБЛЕР

Перейти к содержимому


Фотография

F.a.q. По Raid


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 21 Март 2007 - 06:25

1.Q: Что такое Raid?
A: Raid – это объединение нескольких жестких дисков в один диск. Используется с целью увеличения объема пространства для хранения данных, увеличение скорости чтения/записи, защита от потери информации по причине выхода из строя одного жесткого диска (а некоторые и более одного).

2.Q: Хочу создать рэйд-массив. Какой создать и какие будут преимущества?
A:
- Raid 0 (stripping, чередование) - Организовывается из 2 и более дисков. Емкость равна сумме размеров всех дисков. Запись\чтение данных осуществляется поочередно на каждый диск массива. Теоретически скорость дисковых операций может возрасти во столько раз, сколько в массиве дисков. Этот raid обладает самой высокой скоростью чтения/записи. Но при этом полное отсутствие надежности, так как при выходе из строя одного любого диска в массиве, ВСЕ данные массива теряются. Это единственный рэйд-массив, который не обеспечивает отказоустойчивость.
Хорошо подумайте о сохранности своих данных, прежде чем использовать такой raid в своем компьютере!
Применение: используется на рабочих станциях и серверах, нуждающихся в высокой скорости работы дисковой системы, и не требующих обязательной сохранности данных.
+ высокая скорость работы дисковой системы.
- полное отсутствие отказоустойчивости.


- Raid 1 (mirroring, зеркало) – Организовывается из 2 дисков. Емкость равна емкости одного диска. Второй диск является зеркальной копией первого. Запись одновременно осуществляется на основной диск и диск-копию. Обеспечивается отказоустойчивость системы. Скорость чтения соизмерима со скорость работы одиночного жесткого диска. Скорость записи несколько ниже одиночного диска. Но некоторые редкие рэйд-контроллеры могут выдать скорость чтения соизмеримо raid 0 за счет чередования чтения с основного и резервного диска.
Применение: обычно используется в небольших системах, главная задача которых обеспечить сохранность данных.
+ отказоустойчивость.
- избыточность, из двух жестких дисков используется объем только одного.


- Raid 10 (или Raid1+0 ). В этом массиве объединяется быстродействие raid 0 и отказоустойчивость raid 1. Организовывается из 4, 6, 8, и т.д. жестких дисков. Принцип реализации прост. Объявляются зеркальные пары дисков (raid1), а потом эти пары соединяются в stripe (raid 0). Скорость чтения соизмерима со скорость работы raid 0 (возможно на некоторых редких контроллерах скорость чтения выше чем в raid 0, причина описана в описании raid 1). Скорость записи несколько меньше чем в raid 0. Среди отказоустойчивых массивов этот raid обладает самой высокой скоростью и чтения и записи в совокупности. Но «ложка дегтя» все равно есть – это самый дорогой raid.
Применение: обычно используется в системах, где требуется высокая скорость последовательной записи, а также гарантированная сохранность данных.
+ отказоустойчивость.
+ высокая скорость записи.
- большая избыточность, половина дискового простанства не доступно.


- Raid 5. Сложный raid. Организовывается из 3 и более дисков. Каждый диск содержит помимо "своей" информации, еще и контрольные суммы информации с соседнего. Емкость приблизительно равна емкости всех дисков минус один. Обладает высокой скоростью чтения, но не высокой скоростью записи (в статьях часто скорость записи 5 рэйда ставят равным скорости 10 рэйда. при "не сильно записывающей" работе вполне возможно это так, но на практике при интенсивной работе, например с какой-нибудь БД, скорость записи на контроллерах, которые вы сможете приобрести в магазинах, 5 рэйд проигрывает рэйду 10). Преимущество – недорогой по цене. В персональных компьютерах встречается крайне редко.
Применение: используется в серверах благодаря эффективному соотношению установленной и доступной емкостей.
+ отказоустойчивость.
+ не большая избыточность.
- достаточно низкая скорость записи из-за необходимости расчета информации об избыточности.
- низкая скорость восстановления массива после сбоя одного из дисков.


- JBOD (spanning). Скорее это полурэйд. Служит для объединения нескольких дисков разного калибра в один массив. Емкость равна сумме размеров всех дисков. Но ни о каком увеличении производительности, ни об отказоустойчивости здесь речи не идет. Придуман только для того, чтоб увеличить размер дискового массива, если размера одного диска вам не хватает. Никаких чередований в записи нет, идет простая последовательность записи сперва на один диск, он заполнился – запись продолжается на другом, и т.д.
Применение: «… А кто это был? Это был Неуловимый Джо! А почему он неуловимый? А на фик он кому нужен!?»
+ возможность объединения дисков разного объема.
- отсутствует отказоустойчивость.
- помимо увеличения объема за счет дисков разного объема, никаких других преимуществ не имеет.


- Raid 0+1. Принцип организации аналогичен raid 10. Только сперва создаются два страйпа (raid 0), которые потом объединяются в зеркало (raid 1). Встречается редко.
- Raid 50. Комбинация из raid 5 и raid 0.
- Более подробную информацию по названным и raid других уровней можно получить, например, здесь:
http://ru.wikipedia.org/wiki/RAID
http://www.ferra.ru/.../storage/26107/,
http://www.raidinfo....ex.asp?mode=394,
http://itc.ua/article.phtml?ID=28408.

3.Q: Если я создам защищенный рэйд-массив, значит мои данные будут в полной сохранности?
A: Нет. Защищенный рэйд-массив защищает данные от потери возникающей по причине отказа в работе одного из дисков. Но он совсем не защищает информацию, например, от «нерадивого» пользователя или вируса, которые могут вашу информацию просто стереть.
Гарантию в сохранности данных может дать только наличие резервных копий этих самых данных.

4.Q: Слышал, что raid можно создать программный или аппаратный. В чем разница и какой лучше выбрать?
A: На самом деле существует три вида: программный, аппаратный, полуаппаратный.
- Программный. Диски объединяются в raid средствами операционной системы. Достоинство – дешево. Недостатков два. 1– отработка рэйда осуществляется самой ОС, т.е. центральным процессором, что влечет за собой спад в производительности всей системы (особенно при использовании сложных массивов, таких как raid 5). 2– если ОС «безвозвратно упадет», то с данными можно попрощаться. Исключение состовляет raid уровня 1, с него данные восстанавливаются обычно без проблем (кстати по этой причине среди программных именно raid 1 и встречается чаще всего).
- Аппаратный. Работа такого рэйд никак не зависит от ОС, все «лежит на железке» - на рэйд-контроллере. Этот рэйд-контроллер имеет собственный процессор и собственную память (кэш). Недостатками, характерными для программного рэйда, «не страдает». К недостаткам можно отнести большую стоимость таких устройств.
- Полуаппаратный. Это что-то среднее между программным и аппаратным raid. У этого устройства отсутствует собственная память (кэш). Собственного процессора хватает только на контроль за правильностю работы raid, а сама работа рэйда возлагается на драйвер (т.е. на центральный процессор). Такие устройства часто называют хост-контроллер или host-adapter. Эти устройства недороги по цене, но имеется недостаток «загруженности процессора». Сложный raid (уровня 5) на таком устройстве лучше не организовывать.
Такими полуаппаратными raid сейчас оснащены практически все материнские платы.

5.Q: Хочу собрать рэйд из двух дисков разного объема. Какая емкость рэйд-массива у меня получится?
A: Отчет будет вестись от размера меньшего из дисков. Например есть диски на 120ГБ и 250ГБ. Тогда размер raid 1 будет 120ГБ. Размер raid 0 получится 240ГБ. Это не относиться к JBOD, он "складывает" диски разного объема.

6.Q: При создании рэйд-массива требуется ввести значение StripeSize. Что это такое и какое значение надо ввести?
A: StripeSize – можно сказать, это объем блока данных, который записывается/считывается на рэйд «неделимым целым за раз». Однозначно назвать наилучший размер никто не сможет. Все зависит от того, какие задачи перед вами стоят и какое ПО будет использоваться. Можно сказать следующее. Если на рэйде будут обрабатываться большое количество мелких файлов, то размер stripe нужно выбрать небольшим. Для обработки файлов большого размера обратная ситуация. Выбор StripeSize для специализированного ПО определяется особенностями работы этого продукта.
Но производительность рэйд-массива зависит не только от значения stripe, но и соотношения stripe с размером кластера файловой системы на этом рэйд-массиве. Точной информации по этому вопросу пока нет, но считается универсальным размеры stripe и кластера делать одинаковыми.
Вот пример: http://www.citforum..../data/int_raid/, в котором опытным путем попытались определить оптимальный размер StripeSize для специализированного ПО.

7.Q: При создании рэйд-массива требуется ввести значение для write policy, выбрав из write-through или write-back. Что мне выбрать?
A: Этот параметр определяет использование кэш (cash – собственная память рэйд-контроллера) в режиме записи. Когда приходят данные на запись, они сперва попадают в кэш (в память) контроллера, а потом из памяти переносятся на физические носители.
Write-through – в этом случае контроллер рапортует ОС, что присланные на запись данные записаны, только тогда, когда эти данные действительно записаны на дисковый массив.
Write-back – в этом случае контроллер рапортует, что присланные на запись данные записаны, уже тогда, когда они поступили в его кэш (позже он их сбросит на диски). Использование такого режима позволяет весьма серьезно повысить производительность дисковой системы. Но тут есть одна очень и очень большая опасность. Если в момент, когда данные получены (находятся в памяти) но еще не записаны, исчезнет питание компьютера, то недозаписанные данные безвозвратно потеряются. И при включении компьютера вы найдете свои данные в сломанном и не читабельном виде.
Специально для таких случаев к рэйд-контроллеру дополнительно устанавливается «батарейка» (аккумулятор – называется как модуль BBU). Батарейка, после исчезновения питания, продолжает «запитывать» память контроллера, тем самым сохраняя хранящиеся в кэше данные. Чаще всего заряда батарейки хватает где-то на двое суток. Если за это время успеть восстановить питание компьютера и его включить, то недозаписанные данные автоматически дозапишутся.

8.Q: Необходимо заменить рэйд-контроллер. Если старые диски установить как и на старом, и объединить их в аналогичный старому raid, данные сохраняться?
A: Раньше бы я ответил так:
Нет. Независимо от того, ставите вы рэйд-контроллер другой фирмы, или аналогичный старому, данные на дисках будут потеряны. Это связано с тем, что когда вы в рейд-контроллере объявляете raid и инициализируете его, то все данные на дисках в этот момент обнуляются. Более того. Если вы на том же самом контроллере удалите запись о рэйде и потом его заново объявите, данные тоже будут потеряны. Исключение в некоторых случаях может составить raid 1.
Но времена меняются. Сейчас существуют контроллеры, которые сохраняют информацию о конфигурации виртуальных дисков (объявленных масивов) на самих дисках. И это позволяет при замене такого контроллера на аналогичный сохранить инфу. При подключении дисков от другого такого же контроллера, в настройках этого контроллера есть возможность импорта настроек массивов с вновь подключенных дисков.

9.Q: При выборе аппаратного рэйд-контроллера, натолкнулся на контроллер "Zero-Channel". Что это такое?
A: Как правило, аппаратный рэйд-контроллер имеет свои интерфейсы (разъемы) для подключения жестких дисков. По количеству этих интерфейсов определяется их "канальность". Если интерфейс один - это однокональный рейд-контроллер, если два - двухканальный контроллер, и т.д. Но существуют такие контроллеры, которые не имеют своего интерфейса для подключения жестких дисков, т.е. это нольканальный (Zero-Channel) контроллер. Эта плата с процессором и памятью, которая вставляется в материнскую плату и использует для создания рейд-массивов контроллер дисков, встроенный в материнскую плату.

10.Q: При выборе конфигурации сервера натолкнулся на слова hot-spare и hot-swap. Что это такое?
A: Hot swap – это аппаратная возможность вашего сервера физически заменить/добавить/убрать жесткий диск в вашем сервере «на ходу», т.е. не выключая сервер и не прерывая его работу. На русском это звучит как горячая замена. Внимание! Это именно физическая возможность горячей замены диска, но она никак не гарантирует что ваше программное обеспечение такую процедуру «переживет» без проблем, ПО должно быть адаптировано к таким действиям.
А вот уже использование отказоустойчивого рейд-массива (к коим не относиться например raid-0), да еще с hot-spare, дает вам возможность спокойно использовать hot-swap независимо от используемого ПО.
Hot spare – это технология автоматической подмены вышедшего из строя диска в отказоустойчивом рейд-массиве на резервный. Наверное, все аппаратные рейд-контроллеры поддерживаю такую технологию (ну, разве что могут быть исключения в самых дешевых аппаратных рейд-контроллерах).
Когда вы определились с уровнем рейд на вашем сервере и с количеством жестких дисков в нем, то для использования hot-spare вам надо установить в сервер как минимум на один диск больше. Этот «лишний» диск (или диски), после объявления рэйда (а может и во время, а может и до), объявляется как hot-spare. И когда в основном рейд-массиве один из дисков выйдет из строя, то диск hot-spare встанет на его место (заменит вышедшего из строя бойца) автоматически и без вашего участия.
Если ваш сервер поддерживает hot-swap, то вы, не останавливая сервер, вытаскиваете сломавшийся диск, и на его место вставляете исправный. А вот дальше – зависит от рейд-контроллера и ваших настроек. В простом варианте, надо будет дальше войти в программу управления рейд-контроллером, и уже этот новый исправный диск объявить как hot-spare. Но существуют в контроллерах (во всех ли – не знаю) такие настройки, что когда вы вставите исправный диск, то он встанет опять в строй рейд-массива, а резервный диск (который автоматом подменил вышедший из строя) опять перейдет в режим hot-spare. Т.е. используя соответствующие настройки в рейд-контроллере, вы можете физически заменять вышедшие из строя жесткие диски не выключая сервера и не делая никаких дополнительных действий с настройками контроллера или ПО.
Еще пару слов о hot-spare. Диски hot-spare могут быть глобальными или эксклюзивными. Это становиться важным, когда у вас объявлено несколько виртуальных дисков (рейд-массивов) на контроллере. Глобальный – это значит диск hot-spare подменит вышедший из строя диск в любом из виртуальных дисков. Эксклюзивный – это значит, что диск hot-spare привязывается к конкретному виртуальному диску, и будет подменять вышедший из строя жесткий диск только в нем, а остальные виртуальные диски этот hot-spare будет игнорировать.

Сообщение отредактировал v_user: 07 Апрель 2010 - 08:26

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#2 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 22 Ноябрь 2007 - 09:22

Изменения в Q8. Интересная вещь.
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#3 Odavid

Odavid

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 05 Декабрь 2007 - 12:00

Здравствуйте!
Вот тут на Trinity Ваш FAQ вызвал очень оживленное обсуждение. Особенно по пункту 6 "Про страйпы и кластеры". С вашего позволения приведу свою рецензию полностью:
Есть статья Сергея Антончука на Citforum от 2004 года. Статья интересная в плане тестирования работы RAID при разных страйпах, нагрузка - обработка запросов MSSQL при работе 1Сv8 (и только её!).
Одновременно ставится условие размера страницы MS SQL сервера, которая составляет 8 Кб и не меняется, судя по статье, на протяжении всего тестирования (например, почему не тестировался MSSQL 7 или другая похожая СУБД, но с другим размером страницы).
Хотя сдается мне, что у автора смешались понятия Sripped Mode (RAID0) и Stripe Size, судя по фразе "производительность RAID-0 вообще и Matrix RAID-0 в частности серьезно зависит от параметра strip size". И вообще красота получается: Sripped Mode - рулит параметр Stripe Size; Mirror Mode (RAID1) - mirror size... А производительность RAID1 не зависит от strip size? И почему не сравниваются разные Stripe Size отдельно в RAID0 и отдельно в RAID1 - они потому и разные, что один более быстрый, а второй - более надежный в ущерб скорости.
Из статьи не ясно, где и кто проводил тестирование, откуда автор его накопал, но в общем-то реальность и достоверность тестирования не вызывает сомнений - RAID0 сам по себе быстрее RAID1, а то, что уступил при 128 КБ рэйду1 - так это еще не известно, кто где тормозит (3 уровня (клиент-1С сервер-SQL сервер) - это не хухры-мухры, и на каждом этапе передаются данные, и на каждом идет работа с диском). И вопрос - а что понимается под "настройкой page size"? Вообще (хоть я, возможно, и не такой знаток архитектуры баз SQL, как Сергей Антончук), page size в SQL - это размер виртуальной страницы представления данных в базе, т.е. блоки, с которыми SQL работает внутри базы, и использует эту страницу как единый блок данных при считывании с винчестера. А сколько физических блоков это составляет на винчестере - это уже особого значения не имеет. Потому как обращение в базе к одной строке заставляет SQL считывать всю страницу 8К целиком, даже если там еще что кроме нужных данных. А эти нужные данные могут быть разбросаны по многим страницам - вот тут да, серьезный затык может возникнуть (и возникает при больших выборках разнородных данных из разных таблиц), но размер кластера FS тут может сыграть роль только если будет большая фрагментация диска - а это в любом случае нехорошо. И размер этих page size зависит от того, какая база (в MSSQL жестко: SQL7 - 2K, SQL2000/2005 - 8K; а в Oracle - задается при создании базы), содержимого этой базы, размера полей, а не сколько оно места занимает на диске.
Или это страница памяти? Хотя вроде бы есть намек, что это "кратность данных, с которой SQL сервер взаимодействует с дисковой подсистемой". Еще раз повторюсь, что SQL сам не взаимодействует с подсистемой, минуя ОС. А вот, кстати, Oracle, который упоминается ниже, может создавать собственные файловые системы и форматировать диски специально под свою базу. MS так не умеет, но и стоит на 2 порядка меньше.
Но автор почему-то делает вдруг вывод, что именно при совпадении: страйп=8 КБ, размер страницы SQL = 8 Кб получается огромный прирост скорости и тут же делается вывод о "правильности" выбранных параметров. Правильность - это в совпадении цифр 8, я так понимаю?
При этом "правильное" значение - это Sripe Size=8K, предпочтительный - 32K, а оптимальный по тесту - 16K. Может, все сразу выставить? И пусть MSSQL "чередует запись"... Вот только 8K не вписались в формулу (рассматриваемую далее), ну да это мелочи. Главное, значения 16/32 КБ получились.
Автор откуда-то (нашел в интернете) вытащил формулу зависимости stripe size от таинственного striping factor и Block size(Cylinder), рядом с которым ключевое слово Cylinder однозначно указывает, что под Block size имеется ввиду кластер файловой системы. Автор честно признался, что формула выведена "для Oracle". А следовательно, возможно, и не имеет никакого отношения к Windows как таковой и к её файловым системам в частности.
А заявление "Oracle и MSSQL — это, конечно, разные СУБД, но физика процесса одинакова везде" вообще не имеет никакого обоснования. Это справедливо только по отношению, например, к "MySQL и MSSQL", но никак не к "Oracle и MSSQL", у которых и файловые системы подчас разные.
Возвращаясь к ключевому striping factor в формуле, который по заверению автора, везде "типичный" и составляет 32 блока (заметьте, 32 блока, т.е. это некий пакет из 32-х блоков данных, который считывается неким устройством), то хотелось бы узнать, где я могу посмотреть эту "типичность" в своей Windows? А то скорость чтения-записи есть, ширина канала есть, а вот сколько блоков за раз у меня читается.... и за какой раз....
Тут же в формуле первый и последний раз появляется реальный размер кластера - 512/1024 Байт.
Дается вердикт "Именно эти размеры и оказались оптимальными", как выше - "о правильности" значений Stripe Size.
Только я так и не понял - что правильно: Stripe Size RAID=8 КБ, равный размеру страницы базы SQL = 8 Кб; или Block size NTFS=512 Б д.б. сопоставлено Stripe Size RAID=16/32 КБ; или все приложения должны читать данные по 32 блока (striping factor)?
Создатель FAQ v_user понял это как "ставьте все одинаково" (о чем пишет в пункте 6). Причем размер страницы MS SQL почему-то превратился в размер кластера файловой системы.
По большому счету мне этот FAQ нравится (полезен тем, кто ничего не знает о RAID), но недоработки есть, конечно же. Ну так не ошибается тот, кто не ошибается :) А таких нет :)
И хотя автор данной темы не давал ссылку именно на этот FAQ, я усматриваю в обсуждении по его ссылке тот же самый испорченный телефон по поводу взаимосвязи кластеров NTFS и stripe size RAID-контроллера.
Что уж говорить, если даже на уважаемом мной CITForum напечатана статья, которая вызывает одни вопросы и воспринимается столь неодназначно, а по части многих выводов так и просто неверна.

Сообщение отредактировал Odavid: 05 Декабрь 2007 - 12:02


#4 Odavid

Odavid

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений

Отправлено 05 Декабрь 2007 - 01:25

И рекомендую дополнить FAQ вот отсюда.

#5 TheSystem

TheSystem

    Гуру

  • Продвинутый пользователь
  • PipPipPipPip
  • 5 110 сообщений

Отправлено 05 Декабрь 2007 - 01:45

FAQи местного форума изначально задумывались как локальные. Безусловно, любой FAQ можно развить до обширного, профессионального материала за счёт дополнения его НЕчасто задаваемыми вопросами, но тогда потеряется связь с изначальной идеей..

Предыстория вопроса здесь..

#6 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 05 Декабрь 2007 - 01:47

Создатель FAQ   v_user понял это как "ставьте все одинаково" (о чем пишет в пункте 6). Причем размер страницы MS SQL почему-то превратился в размер кластера файловой системы.

<{POST_SNAPBACK}>

Может я что не допонял? В пункте 6 написано про размер страйпа и кластера - причем тут страница SQL? Про SQL и его завязки со страйпом я ничего не говорил, по этому вопросу дана ссылка на статью другого человека.

Вообще же я честно пытался разобраться в таких вопросах. Соотношение оптимальных размеров страйпа и кластера ФС ОС для многих (в т.ч. и для меня) остается однозначно не выясненным. А уж сотношение размеров страйпа и кластера ФС ОС при использовании некого специального ПО (в частности MS SQL) - так это вообще можно загадкой назвать (даже какого-то наиболее популярного мнения на этот счет я не нашел).
А вот по Oracle ответ есть. И дан самим Oracle. С выпуском 10g, они рекомендуют использовать страйп в 1МБ и использовать ASM (т.е. свою файловую систему). Практика рекомендации подтверждает.

З.Ы. А по поводу полноты f.a.q. - TheSystem уже ответил (этот f.a.q. для начинающих, и главное назначение действительно для местного пользования).

Сообщение отредактировал v_user: 05 Декабрь 2007 - 07:34

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#7 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 07 Апрель 2010 - 07:53

Добавил 10.Q в чавошку.
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!




Количество пользователей, читающих эту тему: 1

0 пользователей, 0 гостей, 0 скрытых пользователей


    Google (1)

Rambler's Top100