Главная Архив и поиск Сайты Последние комменты Канал Карта Троицка
Велосипедное Компьютерное Фототема Троицк Разное
Категория: Компьютерное
 Теги: 
бновлено: 03.07.2020

RAID массив из старых жёстких дисков

Вступление

RAID массив из старых жёстких дисков

Всем привет, это Я. Ранее я уже писал на тему жёстких дисков. В той статье я описывал, как продляю жизнь посыпавшемуся жёсткому диску WD Green ёмкостью 2 Тб. Мой метод оказался настолько будоражащим сознание, что у некоторых сдетонировало и они всячески критиковали мои действия. Как оказалось, посторонних, неизвестных мне людей, сохранность моих данных беспокоит больше, чем меня самого. Поразительно! Сегодня будет не менее взрывоопасный контент, ведь мы будем делать RAID 0 из четырёх старых жёстких дисков в 2020 году. Погнали!

Так уж вышло, что в моей системной плате есть встроенный RAID-контроллер, который можно включить в BIOS. С годами у меня накопилось несколько килограмм жёстких дисков. Покоя они мне не давали и я всё думал, как же мне их пристроить, чтоб не лежали без дела. В основном это диски небольшого объёма: 20 Гб, 60 Гб, 80 Гб. В общем вы поняли. Однажды вспомнил я про RAID и решил: “А дай-ка сделаю RAID 0 из завалявшихся дисков”. Массив я создал вполне успешно и он работает должным образом, но прежде чем перейти к конечному варианту, покажу, какие диски будут участвовать в RAID.

Что такое RAID 0

Думаю, немного стоит написать про то, что такое RAID. RAID — массив из нескольких физических жёстких дисков, объединённых в один виртуальный носитель. Существует большое количество различных конфигураций RAID, каждый их которых обладает как плюсами, так и минусами. Чаще всего массив из нескольких дисков используется для обеспечения отказоустойчивости путём хранения избыточных данных. Большие массивы, состоящие из множества жёстких дисков, позволяют не допустить потери данных при выходе из строя сразу нескольких физических жёстких дисков.

Самый простой вариант RAID, не обеспечивающий отказоустойчивости, это RAID 0. Его плюсом является повышенная производительность по сравнению с другими реализациями RAID. По сути, всё что делает RAID 0, так это чередует записываемые в массив данные между всеми дисками массива. На входе данные разбиваются на равные блоки и записываются параллельно на все физические диски. Подобный принцип сильно повышает скорость последовательной записи и последовательного чтения. В теории скорость последовательного чтения/записи может быть равна сумме скоростей каждого диска. Хуже обстоит ситуация со случайной записью и случайным чтением мелких файлов. Впрочем, эти скорости также увеличиваются по сравнению с единичным диском, хоть и не так сильно, как в случае с последовательными операциями чтения/записи.

Схема RAID 0 (источник)
RAID массив из старых жёстких дисков

Основные цели, которые я преследовал при создании массива были: объединение ёмкостей дисков и максимальная производительность. Лучший выбор для этого — RAID 0.

Диски, используемые для RAID 0

Как я написал в введении, наш RAID будет состоять из четырёх дисков. Первый диск — Seagate Barracuda 80 Гб с интерфейсом IDE — самый слабенький:

Тем не менее, состояние его вполне нормальное. Сбойных секторов или прочих ошибок нет. На скриншоте ниже SMART и быстродействие этого диска в программе CrystalDiskMark:

Seagate Barracuda 80 Gb IDE
RAID массив из старых жёстких дисков

Поскольку на моей системной плате нет разъёмов IDE, то подключить этот диск напрямую я не мог. Для этого пришлось использовать плату-контроллер. Так она выглядит:

Не подумайте, что контроллер я купил специально, дабы подключить старый диск. Делать мне нечего. Случайно я вспомнил, что он у меня валяется без дела и решил задействовать. Контроллер этот двусторонний. То есть, с его помощью можно подключить старый IDE диск к современной системной плате, но также можно подключить новый SATA диск к старой плате, у которой нет SATA контроллера. На фотографии ниже показываю, как диск подключается к плате. В разъём IDE вставляется плата-контроллер, а уже к ней подключается SATA шлейф и питание самого контроллера. Питание диска подключается как обычно:

Конечно же первый вопрос, который возникает, при работе с подобными контроллерами: “Насколько он ухудшает скорость работы диска?” Мне тоже хотелось это проверить и я подключил диск к старой плате, имеющей разъём IDE. Ниже скриншот быстродействия, но диск уже подключен напрямую IDE to IDE:

Сравнение производительности (подключение напрямую — слева и через контроллер — справа)
RAID массив из старых жёстких дисков

Как видно на сравнительном скриншоте, разницы в производительности почти нет. Она настолько незначительная, что можно сказать в пределах погрешности измерений. Так что хорошая новость, подобный контроллер практически никак не ограничивает быстродействие жёсткого диска. С этим разобрались, переходим к следующему диску.

Следующий диск тоже Seagate Barracuda 80 Гб, но уже с интерфейсом SATA, более современный:

Диск этот хоть и SATA, но тоже далеко не первой свежести. И тем не менее со SMART всё в порядке. Его вы видите на скриншоте ниже вместе с тестом производительности:

Seagate Barracuda 80 Gb SATA
RAID массив из старых жёстких дисков

Третий диск, используемый мною для создания массива — Maxtor 80 Gb SATA:

SMART и тест быстродействия этого диска:

Maxtor 80 Gb SATA
RAID массив из старых жёстких дисков

Четвёртого диска на 80 Гб у меня не было. Но для создания RAID массива совершенно не обязательно использовать диски одинакового объёма. Посему четвёртым диском был выбран Seagate Barracuda 160 Gb SATA:

SMART этого диска показывает 1 сбойный сектор. Появился он уже давно и новых не добавляется, так что всё в порядке. Хотя наработка внушительная — 47 тысяч 300 часов:

Seagate Barracuda 160 Gb SATA
RAID массив из старых жёстких дисков

В завершение вступительной части покажу, как все эти 4 диска разместились в корпусе компьютера. Прямо перед ними расположен 120 мм вентилятор, продувающий всю “корзину” (между дисками есть расстояние). С охлаждением проблем нет:

Все четыре диска подключены к компьютеру, переходим к созданию RAID:

Скриншот окна “Управление дисками”
RAID массив из старых жёстких дисков

Создание RAID 0

Первым делом я переключил в BIOS режим работы SATA контроллера с AHCI на RAID. Выяснилось, что настройки встроенного в плату контроллера не такие уж богатые. В настройках можно выбрать размер блока Stripe Block, политику чтения Read Policy и политику записи Write Policy. И всё. Больше менять ничего нельзя. Впрочем, для моих целей и этих настроек вполне достаточно.

Конечно же все имеющиеся настройки могут влиять на скорость работы будущего RAID. Возник вопрос, какая комбинация настроек обеспечит максимальное быстродействие? К счастью настроек не так уж и много, я проверил их все. Начал с того, что выставил Stripe Block 64 КБ. Политику записи — Write Thru. При таком выборе, единственный доступный вариант политики чтения это NA. Я не буду вдаваться в описание значений всех этих параметров, всё это описано задолго до меня и при желании вы можете найти всё в интернете. Единственное, стоит отметить, что политика записи Write Thru по логике должна быть медленнее других. Поскольку при включении данной политики не используется кэш записи.

Производительность RAID 0 в этом режиме представлена на следующем скриншоте:

RAID 0 — Stripe Block 64 KB, Read Policy: NA, Write Policy: Write Thru
RAID массив из старых жёстких дисков

После, не меняя размер Stripe Block, я установил Read Policy как Read Cache, а Write Policy как Write Back. Эти параметры задействуют кэш, в теории увеличивая производительность. Минус политики Write Back в том, что при внезапном отключении электричества, с данными, которые не были записаны из кэша на носитель, произойдут алаверды. Они пропадут.

Производительность RAID 0 в режиме с описанными выше параметрами:

RAID 0 — Stripe Block 64 KB, Read Policy: Read Cache, Write Policy: Write Back
RAID массив из старых жёстких дисков

По результатам тестов получается, что разница в производительности между протестированными вариантами не такая уж большая. При смене политики на Write Back ощутимо увеличилась лишь случайная запись блоками по 4 КБ. Последовательное чтение, ровно как и случайное, в скорости не прибавило.

Следующая комбинация настроек для тестирования: Stripe Block 64 KB, политики Read Ahead, Write Back. Результаты на скриншоте:

RAID 0 — Stripe Block 64 KB, Read Policy: Read Ahead, Write Policy: Write Back
RAID массив из старых жёстких дисков

Результаты не слишком отличаются от предыдущих. Для наглядности объединим их в один скриншот:

Сравнение полученных результатов при тестировании с разными параметрами Read Policy и Write Policy
RAID массив из старых жёстких дисков

Думал я, думал, да и решил, что остановлюсь на варианте Read Policy: Read Ahead, Write Policy: Write Back. Осталось только определиться с размером блока Stripe Block. В настройках контроллера этот параметр можно устанавливать в следующих вариациях: 64 KB, 128 KB, 256 KB. В теории, меньший размер блока позволяет добиться большей производительности при работе с мелкими файлами. Больший размер, наоборот, должен повышать быстродействие при записи и чтении файлов большого объёма. Теория есть теория, но почему бы не проверить на практике? Хоть я изначально и склонялся к варианту в 256 KB, так как использовать RAID планировалось для больших файлов, всё же протестировал все три варианта.

Все дальнейшие тесты будут проводиться с включеными политиками Read Ahead и Write Back. Результаты с размером Stripe Block 64 KB нам уже известны. Тестируем Stripe Block 128 KB:

RAID 0 — Stripe Block 128 KB, Read Policy: Read Ahead, Write Policy: Write Back
RAID массив из старых жёстких дисков

Разница не особа заметна. Случайная запись по 4 КБ немного снизилась, но вместе с тем немного увеличилась при глубине запросов равной 32. Немного возрасло последовательное чтение. Проверим, что получится, если выбрать Stripe Block 256 KB:

RAID 0 — Stripe Block 256 KB, Read Policy: Read Ahead, Write Policy: Write Back
RAID массив из старых жёстких дисков

Получается, что относительно Stripe Block 128 KB, незначительно увеличилась скорость последовательного чтения. Случайное чтение по 512 КБ немного уменьшилось, зато возрасла скорость случайной записи по 512 КБ и очень сильно, аж на целых 10 МБ/с. Было 49 МБ/с, стало 59 МБ/с. Это уже что-то. Случайная запись по 4 КБ также заметно увеличилась. В остальном разница минимальна. Объединим результаты в один скриншот:

Сравнение результатов Stripe Block 64 KB, 128 KB и 256 KB
RAID массив из старых жёстких дисков

Мне больше всего понравились результаты с Stripe Block 256 KB. Но я решил убедиться и провести ещё два теста, выставив максимальные настройки в CrystalDiskMark: количество повторений 9, объём теста 4000 MB. Результаты Stripe Block 64 KB:

Тест с количеством повторений 9, объём теста 4000 MB, Stripe Block 64 KB
RAID массив из старых жёстких дисков

Тот же самый тест с Stripe Block 256 KB:

Тест с количеством повторений 9, объём теста 4000 MB, Stripe Block 256 KB
RAID массив из старых жёстких дисков

Проверять Stripe Block 128 KB я не стал, поскольку выбирал между 64 KB и 256 KB. Объединим результаты:

Сравнение результатов Stripe Block 64 KB и 256 KB, максимальный объём тестирования
RAID массив из старых жёстких дисков

Полученные результаты окончательно сбили с толку. Где-то лучше Stripe Block 64 KB, где-то лучше 256 KB. Значительная разница в результатах наблюдается в случайной записи по 512 КБ. 34 МБ/с при Stripe Block 64 KB и целых 59 МБ/с при 256 KB. В конечном итоге я остановился на размере Stripe Block равным 256 KB. Ведь, как я уже писал, планируется работать с файлами большого объёма.

Так выглядит финальная версия RAID в настройках контроллера:

Общий объём массива в операционной системе — 294 ГБ. На этом скриншоте я уже успел наполнить RAID файлами:

Объём получившегося массива
RAID массив из старых жёстких дисков

Сравнение RAID 0, Single HDD, SSD

Под конец самое интересное. Сравним быстродействие получившегося RAID 0 с единичным жёстким диском, который у меня используется как основной и с твердотельным накопителем (SSD), на котором установлена операционная система.

Чувствуете запахло горелым? Это начинает подгорать у тех, кто слишком остро реагирует на скриншоты с плохим SMART. Вот, любуйтесь, это мой основной диск Hitachi на 2 ТБ для хранения данных, в программе Hard Disk Sentinel. Готовы? 3… 2… 1… Ignition:

Состояние моего основного диска в Hard Disk Sentinel
RAID массив из старых жёстких дисков

Скриншот с вкладкой SMART в той же программе:

SMART в Hard Disk Sentinel
RAID массив из старых жёстких дисков

Да, этот диск во всю сыпется. У него была не лёгкая жизнь. Это внешний жёсткий диск, который использовался мной портативно на протяжение нескольких лет. Время наработки у него на тот момент, когда он посыпался, было менее тысячи часов. Сгубило диск то, что я его постоянно возил туда-суда. Но когда он посыпался, я его разобрал, извлёк из корпуса сам диск и по известной методике продлил ему срок службы.

Так этот диск выглядел, пока я его не разобрал:

Внешний HDD Hitachi 2Tb (источник изображения)
RAID массив из старых жёстких дисков

Непосредственно жёсткий диск, извлечённый из корпуса:

Структура разделов на диске такова: 456 ГБ в начале диска не распределено, именно там находятся заросли бэдов и нестабильных секторов с низкой скоростью доступа. Остальная поверхность в отличном состоянии, там и расположился единственный раздел:

Структура разделов
RAID массив из старых жёстких дисков

В самом начале отрезано немало пространства. Так я изолировал кучно лежащие бэды и нестабильные сектора. Конечно это существенно сказывается на производительности диска, ведь чем ближе к концу физического пространства, тем ниже скорость чтения/записи. Но это так, к слову.

Что ж, давайте сравним быстродействие RAID 0 из старых жёстких дисков с единичным диском, который уже давно сыпется и с вполне неплохим SSD на MLC чипах. Результаты на скриншоте. Слева RAID 0, по середине HDD Hitachi 2 TB и справа SSD Plextor 128 Gb:

Сравнение производительности: RAID 0, HDD Hitachi 2TB, SSD Plextor 128 Gb
RAID массив из старых жёстких дисков

По скорости лидирует SSD с большим отрывом. Было бы странно, будь оно иначе. Но посмотрите на RAID 0 в сравнении с единичным жёстким диском. Тут уже иная картина. RAID 0 показывает куда большие скорости и это при том, что состоит он из старых, можно даже сказать древних дисков, один из которых к тому же имеет интерфейс IDE.

К сожалению не всё так радужно, как хотелось бы. Скорость чтения/записи у жёсткого диска снижается по мере приближения к концу физического пространства. Не лишён этого недостатка и массив из нескольких дисков. На данный момент массив заполнен на 96%. Я решил прогнать тест ещё раз. При такой заполненности результаты совсем печальные:

Производительность RAID 0 при заполненности в 96%
RAID массив из старых жёстких дисков

Поскольку массив заполнен почти до отказа, тест выполнялся в конце физического пространства каждого диска (кроме диска на 160 Гб). Это не могло не сказаться на скорости чтения/записи. В таких условиях скорость RAID 0 уже не так разительно отличается от скорости единичного жёсткого диска.

Итоги

Прежде чем подводить итоги, я хочу дать вам послушать запуск четырёх старых дисков одновременно. Это прикольно звучит. Посмотрите небольшое видео, в нём вы также сможете услышать, как стрекочут все четыре диска при случайном чтении/записи:

Я не хочу перечислять минусы подобного RAID массива из старых дисков, они слишком очевидны. А вот немного о плюсах можно сказать. Во-первых, ощутимо повышается производительность, если конечно не забивать массив под завязку. Скорости старых жёстких объёмом 80 Гб крайне низкие по современным меркам. Создание RAID 0 позволяет дотянуть производительность до уровня современных жёстких дисков. Во-вторых, если использовать диски одинакового размера, то их ёмкости суммируются, это тоже плюс. Иметь в операционной системе четыре отдельных логических диска маленького размера неудобно. Объединив 4 диска на 80 Гб в RAID 0, получаем почти 300 ГБ сплошного дискового пространства. В-третьих, подобная манипуляция позволяет дать старым, забытым “жестянкам” новую жизнь.

Заметна ли разница в производительности невооружённым взглядом, без тестов? Да, заметна. Первое, на что я обратил внимание, что файлы быстрее копируются как в массив, так и из него. Также была замечена существенно возросшая производительности при работе в виртуальной машине. Разместив виртуальный жёсткий диск на RAID 0, я ощутил, как виртуалка “задышала”. Загрузка гостевой операционной системы стала быстрее да и вообще отзывчивость виртуальной машины в целом улучшилась.

Предвосхищая будущие комментарии, не могу не сказать об опасности хранения важных данных на подобных массивах. Но ведь это же очевидно, не так ли? Вероятность того, что в любой момент что-нибудь пойдёт не так, слишком высока. RAID 0 сам по себе мягко говоря не блещет отказоустойчивостью. А если создавать его из старых дисков с огромной наработкой, то высоки шансы, что весь массив внезапно накроется медным тазом. Я использовал этот массив для того, чтобы рендерить на него видео. Даже если массив отвалится, то ничего страшного не произойдёт. Всё, что я потеряю, это отрендеренный файл, который можно рендерить снова. Но ничего подобного не произошло. Не скажу, что я долго пользовался этим массивом, но за всё время его работы не было замечено ни единого сбоя. Всё работало как часы.

На этом всё, спасибо за внимание!

Автор: Sandy Programmer
Дата: 03.07.2020
94
Категория: Компьютерное
 Теги: 

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ваш комментарий будет опубликован после автоматической проверки системой фильтрации спама и гадостей.

Автор статей и фото: Sandy Programmer Условия использования моих статей и фотографий: читать
This site uses icons made by Freepik from flaticon.com is licensed under CC BY 3.0 Also uses Fotorama from Fotorama.io