Raid 5 замена жесткого диска
Сегодня хочу поделиться с вами краткой инструкцией, как добавить диск в существующий RAID 5/6 не пересобирая массив (зачастую это просто нереально — забэкапить 4-10Тб данных) и не останавливая работу сервера на сутки-другие. Данная инструкция написана для линуксовых софтрейдов через mdadm, с аппаратными контроллерами/виндой разговор особый и зачастую очень короткий (никак и все).
Итак, приступим (система — Ubuntu 10.04, но работать должно практически везде).
Первым делом, подключаем диск и день-другой (ну или хотя-бы один раз полная перезапись) гоняем его под нагрузкой, записываем/считываем файлы. Это необходимо чтобы сразу обнаружить проблемы с диском, контроллером, кабелем. Если этого не сделать, и добавить «сбойный» диск в массив, может быть довольно весело (собственно, это случилось со мной, SATA6 диск оказался не очень совместим с SATA1 контроллером. Но благодаря безопасности mdadm потери данных удалось избежать).
0. Проверяем версию mdadm – желательно иметь последнюю стабильную версию. (в часности, в процессе написания этого гайда был найден баг при продолжении работы после сбоя — не устанавливался stripe_cache_size — но это уже должно быть исправлено)
1. Отключаем write intent bitmap, если он у вас конечно был (используется для ускорения пересборки массива в случае сбоя):
mdadm --grow --bitmap=none /dev/md0
2. Добавляем диски в массив как горячая замена (hot spare) – на этом этапе пока на них ничего не начинает писаться, диски будут использоваться в случае сбоя или последующего изменения размера массива.
mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md0 -a /dev/sdb1
Делаем cat /proc/mdstat, и видим что диски добавились как hot spare (S)
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdb1[7](S) sda1[6](S) sdd1[2] sdc1[4] sdh1[0] sdg1[5] sdf1[1]
2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
3. Проверяем UPS, выдергивая розетку из стены вилку из розетки (хотя розетку тоже можно). Аккумуляторы любят со временем сульфатироваться незаметно для упса, и могут неожиданно сдохнуть за пару секунд.
Несмотря на то, что наличие UPS-а необязательно для безопасного ресайза, с ним спокойнее. Драйвер рейд-массивов в ядре постоянно сохраняет прогресс ресайза, и при сбое в любом месте – может продолжить без проблем.
4. Самая главная команда:
mdadm --grow /dev/md0 --raid-disk=8 --backup-file=/var/backup
backup-file – необходим для сохранения резервной копии данных о массиве в случае сбоя на самом первом этапе изменения размера массива. Само собой файл не нужно ложить на сам рейд . Аналогично можно из RAID-5 сделать RAID-6 указав --level=6 (напомню, что RAID-6 выдерживает смерть 2-х любых дисков, что очень важно, т.к. восстановление большого RAID-5 занимает до 10-20 часов и что-то может произойти в это время. )
Операция изменения размера в среднем происходит со скоростью самого медленного диска. Т.е. если самый медленный диск жмет 60Мб/сек, то mdadm нужен будет один проход по массиву с такой скоростью. В случае терабайтных дисков это около 5 часов, если процессор будет успевать, и медленнее если не будет. Если скорость слишком маленькая – делаем
echo "200000" > /sys/block/md0/md/sync_speed_max
В процессе расширения массива данные остаются доступными, смотреть прогресс можно через /proc/mdstat.
5. После завершения ресайза – расширяем файловую систему. Сначала проверка
e2fsck -f /dev/md0
Затем собственно расширение:
resize2fs /dev/md0
6. Добавляем обратно write intent bitmap:
mdadm -G /dev/md0 --force -b /var/md0_intent --bitmap-chunk=65536
7. Перегенерируем конфиг mdadm.conf. Выполняем
mdadm --detail --scan –verbose
И результат вставляем в /etc/mdadm/mdadm.conf
8. Перегенерируем ramfs, чтобы после перезагрузки использовался правильный конфиг mdadm:
update-initramfs -k all –u
Готово
Теперь у вас RAID-массив стал больше, и вам не пришлось платить безумные деньги для того чтобы получить эту возможность. Не забываем про мониторинг – чем больше дисков, тем выше риск один из них перегреть.
PP. С mdadm можно делать и другие веселые вещи – например если у вас маccив из 1Тб дисков, а вдруг нашлись 2 по 500 – их можно объеденить в RAID-0, и добавить в основной массив. А если на этих двух дисках останется по 100Мб свободного места – можно это сделать отдельным разделом, объеденить в RAID-1, и замонтировать туда /boot/ — и тогда можно будет систему полностью перенести на RAID, и грузится без вспомогательных средств (вроде флешек, старых веников и проч.).
PPS. Глядя на количество дисков справа со своего домашнего файлсервера, я начинаю думать, что у меня в детстве наверное был слишком маленький винчестер… Впрочем, могло быть хуже
В первых персональных компьютерах винчестеров вообще не было. Чуть позднее они стали штатным оборудованием. Еще позднее в основном были решены проблемы совместимости, мешающие использованию одновременно и поддерживаемой в теории пары устройств, а к концу 90-х годов прошлого века конфигурация среднестатистического компьютера потенциально могла включать в себя уже и четыре винчестера. С этого момента многие пользователи заинтересовались уже использованием накопителей не по-отдельности, а в составе единого массива — как во «взрослых системах». В последних, впрочем, чаще всего применялся SCSI-интерфейс, доступный и владельцу обычной «персоналки», но излишне дорогой — требовались дешевые решения. И они появились в виде контроллеров IDE RAID.
Заметим, что наиболее часто используемым вариантом был RAID0, строго говоря, к «RAID-массивам» не относящийся, поскольку избыточность данных он не обеспечивает. Надежность хранения сравнительно с одиночным диском даже снижает. Но иногда было просто некуда деваться, поскольку винчестеры тех лет были слишком медленными для некоторых сфер применения, а альтернативных решений с более высокой производительностью не было вовсе. Использование же чередования позволяло их заметно «пришпорить». Но применялись (да и сейчас применяются) и «зеркала» (RAID1) — для повышения надежности. А наиболее обеспеченные граждане могли объединить достоинства обоих подходов посредством создания массива RAID10, что позволяло повысить и скорость, и надежность. Других режимов в те времена в массовых контроллерах «не водилось»: слишком сложными были для программной реализации — с учетом вычислительных возможностей систем того времени.
Через некоторое время дискретные RAID-контроллеры начали устанавливать и на топовые системные платы — надо же было чем-то выделяться их производителям. В итоге к массивам стали приглядываться и пользователи, ранее о них не задумывавшиеся — раз уж возможность есть. В итоге идею подхватили сами производители чипсетов, так что возможность создания RAID-массивов стала стандартной для последних. Как минимум — для старших модификаций. Причем к числу возможных вариантов добавился и RAID5, на первый взгляд выглядящий очень привлекательно: более экономным расходованием дискового пространства, чем у RAID10, но при обеспечении необходимой для надежности хранения избыточности.
А позднее начались новые времена — винчестеры перестали быть основным и единственным типом накопителей, применяющихся в компьютере. Внедрение твердотельных накопителей прервало эволюцию, оказавшись революционным шагом с точки зрения производительности. Правда было оно достаточно медленным — просто потому, что и стоимость хранения информации первое время была очень высокой. Довольно быстро снижалась, но и сейчас до паритета с винчестерами еще далеко — особенно если рассматривать «настольные» модели. Да и с абсолютной емкостью тоже пока все не просто: теоретически флэш-памяти в стандартный корпус «напихать» можно очень много, а практически это будет слишком уж дорого. Собственно, поэтому до сих пор подавляющее большинство компьютеров продается лишь с одним-единственным винчестером в качестве накопителя «для всего»: и для программ, и для данных. В принципе, даже устройств этого класса минимальной на сегодня емкости достаточно для того, чтобы полностью закрыть все потребности среднестатистического пользователя, поэтому в бюджетном сегменте такой вариант долго еще будет преобладающим, несмотря на низкую производительность. А вот чуть выше решений минимальной стоимости у покупателя есть выбор, часто приводящий его к одному из гибридных вариантов системы хранения данных. Самым дешевым (но пока до конца не изученным и освоенным) способом является кэширование посредством технологии Optane Memory. Более дорогим, но предсказуемым и совместимым со старыми системами — использование SSD невысокой емкости для операционной системы и приложений в паре с тихоходным, но очень емким винчестером для хранения данных. В итоге про RAID-массивы в бытовых персоналках все как-то и забыли. Хотя некоторые пользователи считают, что зря — все-таки и емкость самая большая (в пределах фиксированного бюджета), и производительность должна быть более высокой, чем у одиночного накопителя. Пусть, даже, и не на столько, как обеспечивают твердотельные накопители, но ведь дешево же — а вдруг и этого хватит на практике. Поэтому мы сегодня решили немного отклониться от основной линейки тестов и посмотреть — как ведут себя лучшие винчестеры в т. ч. и в массивах из двух-трех дисков, сравнительно с разными твердотельными накопителями.
Участники тестирования
Поскольку в наших руках оказалось одновременно три не совсем идентичных, но почти идентичных винчестера Seagate, они и выступили в роли «подопытных кроликов». Было бы сразу четыре — можно было бы и RAID10 организовать, а так пришлось ограничиться RAID0 из двух и RAID5 из трех дисков (три-четыре диска в RAID0 это уже за границей добра и зла, которую без необходимости мы стараемся не переступать), имеющие одинаковый объем в 20 ТБ. Собственно, чем RAID5 многим и кажется привлекательным — «пропадает» всего один накопитель в массиве, а не половина, как в «зеркалах» (RAID1, 10 и подобных). RAID0 еще «гуманнее», но ценой потенциальных проблем с надежностью. Сами же винчестеры — одни из лучших на сегодняшний день: модели на 10 ТБ со скоростью вращения 7200 об/мин, использующие заполнение гермоблока гелием. Понятно, что в роли системного и единственного накопителя даже один такой винчестер выглядит странно (мягко говоря), однако дает оценку сверху того, что вообще можно получить от массивов. Недорогие устройства малой емкости просто медленнее, в чем мы уже не раз убеждались.
С кем будем сравнивать? Во-первых, интересна разница в пределах группы. Во-вторых, для части тестов мы отобрали следующую четверку твердотельных накопителей:
-
— медленный бюджетный SATA — чуть более «серьезный» накопитель, но тоже недорогой и тоже SATA — бюджетная реализация NVMe-устройства — похоже, но не бюджетно
Можно было бы ограничиться и меньшим количеством, но мы решили пойти навстречу читателям, жалующимся на то, что в статьях сайта редко сравниваются твердотельные накопители разных классов или, тем более, твердотельные с механическими. Просили? Сами виноваты :)
Итого
В общем и целом, картина понятная. Равно как понятно и то, почему тема RAID-массивов в персональных компьютерах практически сошла на нет. Во всяком случае, в их «винчестерной» ипостаси — с массивами из SSD некоторые энтузиасты продолжают баловаться, чему способствуют производители, реализовав, в частности, возможность создания RAID из NVMe-устройств. Да и в топовых ноутбуках нет-нет да и встречаются RAID0 из пары твердотельных накопителей — в основном, конечно, чтобы блистать в обзорах. На этом всё. В тех сферах, где технология RAID-массивов зарождалась, она по-прежнему является нужной и полезной, но в ПК ей делать особо нечего. С одной стороны, современные ОС способны и из одиночного винчестера «выжимать» все, на что он способен, так что улучшением части характеристик «подстегнуть» производительность не получится. С другой — доступными стали более быстрые накопители. В том числе, существенно более быстрые в тех сценариях, ради которых до сих пор имеет смысл использовать RAID-массивы с увеличением производительности (благодаря чередованию). А «настоящие» RAID (т. е. с избыточностью хранения данных) по-прежнему полезны, но в бюджетном исполнении силами программного обеспечения они могут заметно понизить производительность. Кроме того, RAID в любом случае не заменяет резервного копирования данных, так что начинать надо с него, а не наоборот.
В наличии файловый сервер. Ubuntu 14.04. Из 3 HDD 1Gb собран RAID5.
Задача: заменить 3 HDD 1Gb на 3 HDD 2Gb
Как я это представляю: отключаю от рейда 1 диск, на его место ставлю новый диск, жду когда рейд сделает ребилд с новым диском. И так со всеми остальными дисками.
рейд поймет, что новый диск большего размера, чем был до этого?
Мы не телепаты. RAID чем сформирован? Общий ответ на вопросы: Вероятно нет.
Райд верняк софтовый.
Лучше сделать бекап и заного на новые винты райд сделать.
Как правило, да. Смотри документацию RAID-контроллера.
Рейд софтовый, собран при установки системы.
Всего подключено 4 винта к SATAII (сиреневые порты) 1 винт c OS и 3 винта с рейдом.
Есть такая идея: Не менять винты на большие, а добавить еще через внешний контролер.
Ставлю этот контроллер, к нему подключаю новые винты, винты добавляю к рейду.
Ставлю этот контроллер, к нему подключаю новые винты, винты добавляю к рейду.
Интерфейс PCI 32-Bit 33MHz
Поддержка стандартов SATA-1
и я вижу там целых 4 порта sata
Если ты очень хочешь, чтобы просела скорость работы со всем массивом, то добавляй конечно через него. Предполагаю, что падение скорости ты заметишь уже при подключении к нему второго винта из 4х возможных (пиковая пропускная способность для 32bit pci 33mhz не более 133МБ/c)
NightOperator ★★★ ( 10.01.17 11:52:18 )
Последнее исправление: NightOperator 10.01.17 11:57:27 (всего исправлений: 3)
А если другой контролер, по быстрее, поставить? Смысл есть?
рейд поймет, что новый диск большего размера, чем был до этого?
ответ «нет». Понять-то он поймет, но будет использовать только объем, равный отключенному (меньшему) диску.
Если простой сервера в 1-2 дня не критичен, предлагаю: приготовить livecd, подключить новые диски к упомянутому контроллеру (жаль что такое старье, лучше было бы что-нибудь на PCIe), собрать там md-raid нужной конфигурации, скопировать разделы со старых дисков. Убрать старые диски (аккуратно пометив, в каком порту какой стоял), переткнуть новые диски в мать, убрать контроллер и добиться загрузки с новых дисков.
А если другой контролер, по быстрее, поставить
У тебя на матплате стоит P965+ICH8, почитай спеки на неё, на pci rev 2.x и pci-express 1.0 и подумай ;)
NightOperator ★★★ ( 10.01.17 12:04:01 )
Последнее исправление: NightOperator 10.01.17 12:10:06 (всего исправлений: 4)
Странно, но никто не написал про бэкапы. ТС они же у вас есть? Воткнуть новые харды, развернуть из бэкапа. По времени простоя скорее всего больше получиться но и гемороя меньше. За теже 1-2 дня уложиться должны.
заодно, бекапы проверить
ТС пишет, что ОС на отдельном винте, наверное и загрузчик там. Или именно из-за этого пункта планируется простой 2 дня?
2ТС. mdadm понимает, но сам ничего не делает. Руками по одному удаляете старый диск из массива, добавляете новый, если добавлете не диск, а раздел диска, то сначала делаете его на весь диск. После того как все диски станут 2Гб, даёте команду:
Так стало после того, как я этот диск на другой контроллер переставил. После diskpart clean стл один раздел, но это ни на что не влияет.
Это мне и нужно, но без него весь массив FAIL
Serega I
Сделайте поправку на размер массива и производительность сервера. Наберитесь терпения и ждите. Ресинхронизация такого массива может запросто занять десятки часов.
Полная синхронизация моего массива занимает около 2х суток. В Failed Rd же вываливается после примерно 4х часов примерно на 12 отображаемых проценатх.
bomv
Из того что вы написали не понятно что у вас за RAID контроллер, программный или железный и какая платформа (железо)?
Я надеялся, что из скриншотв и приведенных мной процедур для восстановления ясно, что используется программный рейд WS 2008.
All
В английской версии моего треда, я уточнил и локилзовал свою проблему, но мне не особо ответли, переведу сюда на русский.
Я провел дальнейшие исследования и выяснил следующее: В RAID5 6 членов (диски с 2 по 7 в моем случае, 5 здоровых и 1 сбойный), один здоровый диск (например диск 6) был переведен в оффлайн, таким образом весь массив першел в состояние failed rd. Сразу после этого диск 6 был возвращен в онлайн. Началась процедура ресинка. Потому что на диске 4 обнаруживаются сбойные блоки, ресинк никогда не завершается успехом. Когда ресинк встречает ошибку на диске 4, он останавливается и помечает массив как errors. Хотя статус здорового диска 6 -- онлайн, на нем не содержатся верные данные для обеспечения отказоустойчивости массива, потому что ресинк был прерван ошибкой на диске 4.
Я подключил резервный диск 8. Когда я питыюсь сделать repair массива, эта процедура пытается заменить диск с неверными данными (в данном случае диск 6). Тепрь диск 6 чист и диск 8 подлежит синхронизации. Процедура ресинка начинается и прерывается ошибкой на диске 4. Следующий repair заменить диск 8 на диск 6 и так далее.
В начале темы я написал, что заменяется любой диск кроме сбойного, это была не правда. Просто Win не сохраняет номера дисков при их переключении на другие контроллеры, вот я и сделал неверный вывод.
Правда в том, что процедура repair только меняет местами диски 6 и 8.
Чтобы не возникало ошибок с диска 4 во время ресинка, я пробовал клонировать 4 на новый с пропуском ошиьок чтения. Пробовал Acronis и Gohst. Acronis отказался заниматься динамическим членом RAID5, Ghost тоже отказался, но я умудрился его убедить сделать это в "тупом режиме". Не удачно, после 4х часов клонирования полученный диск определился как INVALID в системе. Пришлось вернуть все в старое состояние.
Ребята, помогите плиз! Массив еще работает, но я не знаю сколько еще этот сбойный диск проянет. Данные на массиве не особо критичны, но терять их крайне не желательно и их МНОГО, 3 ТБ, забекапить некуда. MCITP: Enterprise Administrator, MCSA
Допустим, у сервера 2 диска: /dev/sda и /dev/sdb . Эти диски собраны в софтверный RAID1 с помощью утилиты mdadm --assemble .
Один из дисков вышел из строя, например, это /dev/sdb . Повержденный диск нужно заменить.
Перед заменой диска желательно убрать диск из массива.
Заменить диск, если он сбойный
Диск в массиве можно условно сделать сбойным с помощью ключа --fail (-f) :
Сбойный диск можно удалить с помощью ключа --remove (-r) :
Добавить новый диск в массив можно с помощью ключей --add (-a) и --re-add :
Тестирование
Методика тестирования
Методика подробно описана в отдельной статье. Там можно познакомиться с используемым аппаратным и программным обеспечением. Для данной статьи нам ее пришлось, немного доработать, поскольку участие в тестировании сегодня принимают и винчестеры, и твердотельные накопители, но касается это в основном использования результатов (благо тестовые программы в основном пересекаются) и их группировки.
Последовательные операции
Для начала начнем с «чисто винчестерных» тестов, в которых твердотельные накопители по понятным причинам не участвуют — для них нет зависимости скорости от конкретной области данных.
Как и предполагается априори, скорость чтения удваивается. Точнее, для RAID0 из двух дисков это очевидно. Для RAID5 на трех дисках — в общем-то тоже: для данных используется то же самое чередование. В итоге даже минимальная скорость чтения оказалась выше средней одиночного диска, а средняя — выше максимальной. Идеальный случай.
Потому что при записи все уже не так просто. Точнее, для RAID0 — по-прежнему просто и быстро, на что любят упирать «любители» этого типа массивов (который, строго говоря, RAID-массивом и не является, как уже было сказано выше). Все также работает чередование блоков с данными, так что два винчестера (или большее их количество) работают, по сути параллельно.
А вот ситуация с RAID5 печальна. Однако легко объяснима: специфика организации этого типа массивов такова, что практически любая операция записи превращается в две операции чтения и две записи, которые должны «отработать» практически одновременно. Итоговая производительность в случае «чипсетного» контроллера, фактически лишенного собственных «мозгов», так что реализующего всю необходимую функциональность на базе программного драйвера, оказывается удручающе низкой. «Нормальный аппаратный» контроллер способен ослабить проблему, но не решить ее полностью — RAID5 все равно остается одним из самых медленных типов массивов в любых условиях. Радикальным способом решения проблемы (да и практически единственно-возможным для программной реализации) является использование RAID10, сочетающего в себе и производительность, и отказоустойчивость, но. Но ценой потери уже половины потенциального пространства, т. е. для создания массива в те же 20 ТБ потребуется уже не три, а четыре диска по 10 ТБ, о чем было сказано в начале статьи. Впрочем, можно «выжать» и из чипсетного RAID5 немного больше: подбором размера блока чередования и кластера файловой системы, чем мы не занимались, оставив значения по-умолчанию. Однако повысить скорость записи до уровня хотя бы одиночного винчестера и это не позволяет — в отличие от RAID10, обеспечивающего ее удвоение (пусть и высокой ценой). В лучшем случае получается повысить скорость примерно до 100 МБ/с, т. е. RAID5 на практике даже при тонкой настройке снижает производительность операций записи. Где-нибудь в NAS это не важно: данные записываются редко, а читаются часто, да и лимитирует производительность сам по себе сетевой интерфейс (как раз значениями в районе сотни мегабайт в секунду, а то и меньше), так что высокая емкость и отказоустойчивость выходят на первый план. А вот в персональном компьютере или рабочей станции массивы такого типа просто не интересны. Точнее, интересны еще меньше, чем RAID0 или RAID1. А ведь и у первых уже появились серьезные конкуренты, но об этом чуть ниже.
Время доступа
Если при чтении данных латентность практически неизменна, то при записи в массиве RAID0 она резко снижается. В чем, впрочем, заслуга, скорее, не его, а алгоритмов кэширования, применяемых контроллером для массивов. Но, как видим, RAID5 и это никак не помогает. Даже наоборот, что вполне согласуется с логикой его работы.
Последовательные операции (Crystal Disk Mark)
Поскольку HD Tune Pro при тестировании твердотельных накопителей мы не используем, а вот Crystal Disk Mark «прогоняется» везде, посмотрим на его результаты.
Как и положено, производительность при чтении данных примерно удваивается. Забавный результат в многопоточном режиме связан с тем, что при использовании ограниченной области данных (в программе, напомним, мы используем лишь 2 ГБ) и современных алгоритмов внутреннего кэширования винчестеров, вкупе с нынешними емкостями кэш-памяти, данные зачастую в ней и будут оказываться еще до соответствующего запроса. Остается только передать нужный блок по интерфейсу, что происходит очень быстро. Это позволяет с легкостью опережать SATA SSD (поскольку их сдерживает именно интерфейс), да и в однопоточном режиме от них практически не отставать. Но только в «тепличных условиях» — внешние дорожки (на внутренних скорость вдвое ниже, что уже было показано выше), небольшие объемы данных. Что бывает в более сложных случаях — посмотрим чуть позже.
С записью же все намного хуже: чем-то подстегнуть многопоточный режим не получается, так что он не только медленнее однопоточного, но и удвоения скорости сравнительно с одиночным накопителем уже не наблюдается. Но в один поток потягаться с SATA SSD хотя бы можно. Во всяком случае, при использовании RAID0 из двух дисков. Если бы мы объединили в такой массив три имеющихся винчестера — было бы еще быстрее, хотя и слишком перпендикулярно здравому смыслу. А с RAID5 все традиционно плохо. Поэтому в последующих тестах мы его использовать не будем — и без того картина ясна.
Работа с большими файлами
Как и следовало ожидать на основании низкоуровневых тестов, в однопоточном режиме хотя бы на внешних дорожках скорость чтения сравнима с SATA SSD. Но если нужно считать 32 ГБ в 32-х файлах по 1 ГБ, производительность резко падает почти до уровня одиночного винчестера (кэширование же при таких объемах ничем помочь уже не может). Для твердотельных же накопителей, напротив, это идеальный случай. А если они не ограничены интерфейсом — тем более.
Чем, все-таки, до сих пор привлекательны механические накопители — симметричностью производительности при записи и чтении, чего для флэш-памяти и близко нет. Соответственно, на операциях записи даже некоторые NVMe-накопители могут оказаться медленнее одиночного современного винчестера. Двух — тем более. Но если не рассматривать самые медленные из устройств, то опять ничего похожего на «честную конкуренцию» не наблюдается.
А запись одновременно с чтением — хороший случай для большинства SSD и плохой для винчестеров. Причем твердотельным накопителям и (псевдо)случайный режим «жизнь не портит», в отличие от. Таким образом, быстро прочитать или записать большой объем данных современные винчестеры могут — если есть куда или откуда. Объединенными в массив RAID0 сделают это быстрее. Но поскольку обработка данных предполагает обычно и запись, и чтение, и далеко не всегда последовательные — для этой цели уже лучше использовать твердотельные накопители. Если, конечно, объемы позволяют. А вот хранить данные лучше там, где это обходится дешевле.
Производительность в приложениях
Но основной темой сегодняшней статьи было вовсе не исследование вопросов хранения и обработки больших массивов данных, хотя и это тоже интересно. Еще важнее — оценить перспективность использования RAID0 для ускорения обычной работы за компьютером. Когда-то это позволяло что-то выиграть сравнительно с одиночным винчестером, но тогда и программы были другими, да и операционные системы тоже. Да и сравнивать сейчас уже нужно не только «механику с механикой». Вот и сравним :)
Тестируя SSD, мы временами жаловались на то, что с точки зрения тестов высокого уровня они слишком похожи. Тестируя винчестеры — аналогично. Но они «по-разному похожи»: это два непересекающихся мира. А одиночный винчестер и RAID0 из винчестеров — один мир. Совсем один. Потенциальное ускорение от чередования к настоящему моменту по сути рассосалось: современные операционные системы и с одиночным винчестером работают настолько эффективно, насколько он позволяет (чему сильно помогает развитое кэширование данных в оперативной памяти, радикально улучшившееся в современных версиях Windows — пусть это и вызывает жалобы некоторых пользователей, привыкших к примитивной Windows XP и более ранним, на «расход памяти»). Снижение задержек пригодилось бы, но его при чтении данных (что важно для тестов высокого уровня) как раз и нет.
И даже по низкоуровневому баллу появляются различия между разными моделями твердотельных накопителей, но не более того. Винчестеры (что с ними не делай) намного медленнее. Причем в этом случае и порядки-то величин разные, что «замаскировать» получается лишь потому, что реальная работа приложений «упирается» и в другие компоненты компьютера. А иногда и в самого пользователя, что и не всегда позволяет реализовать потенциальные возможности накопителей. Твердотельных. У «механики» таковых и не водится.
Кстати, и предыдущая версия тестового пакета ведет себя аналогично. Когда-то, кстати, PCMark на массивы реагировал хорошо — но это было под управлением других ОС и на трассах, имитирующих другие приложения. А сейчас уже так. Подробные результаты, думаем, уже не нужны.
Рейтинги
Как видим, с точки зрения тестов низкого уровня, ориентированных в первую очередь на SSD (так что изобилующими операциями со случайным доступом) сравнивать «механику» (что с ней не делай) и SSD большого смысла нет. Но и ничего удивительного в этом тоже уже нет — для винчестеров лучший сценарий это однопоточный последовательный, однако, как уже было показано выше, и в этом случае о прямой конкуренции говорить не всегда приходится. Иногда при записи, разве что, но и при этом «потолок» винчестеров (и массивов из них) сопоставим лишь с «полом» твердотельных накопителей с SATA-интерфейсом (eMMC-модули — отдельная история; но они и используются чаще всего там, куда никакие другие накопители просто «не лезут»).
Да и «подмешивание» к оценке результатов тестов высокого уровня не слишком меняет картину. По совокупности разные SSD при этом отличаются друг от друга примерно вдвое, поскольку мы взяли один из самых медленных и один из самых быстрых из протестированных накопителей, радикально различающихся конструктивно. Однако при этом и «самый медленный» быстрее массива RAID0 из пары топовых винчестеров даже не в два, а в два с половиной раза. Комментарии излишни.
Добавить диск в массив
Если на /dev/sdb созданы разделы, то можно добавить диск в массив:
После добавления диска в массив должна начаться синхронизация. Скорость зависит от размера и типа диска (ssd/hdd):
Установить загрузчик
После добавления диска в массив нужно установить на него загрузчик.
Если сервер загружен в нормальном режиме или в infiltrate-root , то это делается одной командой:
Если сервер загружен в Recovery или Rescue (т.е. с live cd), то для установки загрузчика:
Смонтируйте корневую файловую систему в /mnt :
Смонтируйте /dev , /proc и /sys :
Выполните chroot в примонтированную систему:
Установите grub на sdb :
Затем попробуйте загрузиться в нормальный режим.
Определить таблицу разделов (GPT или MBR) и перенести ее на новый диск
После замены поврежденного диска нужно добавить новый диск в массив. Для этого надо определить тип таблицы разделов: GPT или MBR. Для этого используется gdisk .
Где /dev/sda — исправный диск, находящийся в RAID.
Для MBR в выводе будет примерно следующее:
Для GPT примерно следующее:
Перед добавлением диска в массив на нем нужно создать разделы в точности такие же, как и на sda . В зависимости от разметки диска это делается по-разному.
Копировать разметку для MBR
Для копирования разметки MBR:
Здесь первым пишется диск, с которого копируется разметка, а вторым — на который копируется.
Если разделы не видны в системе, то можно перечитать таблицу разделов командой:
Копировать разметку для GPT
Для копирования разметки GPT:
Обратите внимание! Здесь первым пишется диск, на который копируется разметка, а вторым — с которого копируется (то есть с sda на sdb ). Если перепутать их местами, то разметка на изначально исправном диске будет уничтожена.
Второй способ копирования разметки:
После копирования присвойте диску новый случайный UUID:
Удалить диск из массива
Проверьте, как размечен диск в массиве:
В данном случае массив собран так, что md0 состоит из sda2 и sdb2 , md1 — из sda3 и sdb3 .
На этом сервере md0 — это /boot , а md1 — своп и корень.
Удалите sdb из всех устройств:
Если разделы из массива не удаляются, то mdadm не считает диск неисправным и использует его, поэтому при удалении будет выведена ошибка, что устройство используется.
В этом случае перед удалением пометьте диск как сбойный:
Снова выполните команды по удалению разделов из массива.
После удаления сбойного диска из массива запросите замену диска, создав тикет с указанием s/n сбойного диска. Наличие downtime зависит от конфигурации сервера.
Участники тестирования
Поскольку в наших руках оказалось одновременно три не совсем идентичных, но почти идентичных винчестера Seagate, они и выступили в роли «подопытных кроликов». Было бы сразу четыре — можно было бы и RAID10 организовать, а так пришлось ограничиться RAID0 из двух и RAID5 из трех дисков (три-четыре диска в RAID0 это уже за границей добра и зла, которую без необходимости мы стараемся не переступать), имеющие одинаковый объем в 20 ТБ. Собственно, чем RAID5 многим и кажется привлекательным — «пропадает» всего один накопитель в массиве, а не половина, как в «зеркалах» (RAID1, 10 и подобных). RAID0 еще «гуманнее», но ценой потенциальных проблем с надежностью. Сами же винчестеры — одни из лучших на сегодняшний день: модели на 10 ТБ со скоростью вращения 7200 об/мин, использующие заполнение гермоблока гелием. Понятно, что в роли системного и единственного накопителя даже один такой винчестер выглядит странно (мягко говоря), однако дает оценку сверху того, что вообще можно получить от массивов. Недорогие устройства малой емкости просто медленнее, в чем мы уже не раз убеждались.
С кем будем сравнивать? Во-первых, интересна разница в пределах группы. Во-вторых, для части тестов мы отобрали следующую четверку твердотельных накопителей:
-
— медленный бюджетный SATA — чуть более «серьезный» накопитель, но тоже недорогой и тоже SATA — бюджетная реализация NVMe-устройства — похоже, но не бюджетно
Можно было бы ограничиться и меньшим количеством, но мы решили пойти навстречу читателям, жалующимся на то, что в статьях сайта редко сравниваются твердотельные накопители разных классов или, тем более, твердотельные с механическими. Просили? Сами виноваты :)
Читайте также: