RAID-Z1 или RAID-Z2 | TrueNAS Community
- Status
- Not open for further replies.
chsn
Dabbler
- #1
Доброго времени суток! имеется 5 дисков WD 2Тб red 5400. Какой райд лучше использовать z1 или z2??? Файловый сервер.
mav@
iXsystems
- #2
Смотря что нужно хранить и с каким средним временем простоя. Z2 выдержит отказ двух дисков, а Z1 — только одного. Конечно бакап всегда хорошо иметь, но если нужна работа 24×7, то с Z2 может спаться чуть лучше. Z1 же даст чуть большую скорость и чуть больше свободного места.
BaT
Explorer
- #3
mav@ said:
Смотря что нужно хранить и с каким средним временем простоя. Z2 выдержит отказ двух дисков, а Z1 — только одного.
Click to expand.
..
Проблема нынешних объемов дисков в том, что пока восстанавливается один диск в RaidZ легко может отвалиться и второй. При 2Тб эта проблема не так остро стоит, а вот при 12Тб дисках это уже почти гарантированная потеря данных. Так что, если интересует именно сохранность данных — я бы голосовал за Z2, а для 10-12Тб дисков — Z3.
Если же нужна скорость — то stripe лучшее решение, хоть и без всякой сохранности данных. Ну а далее stripe mirrorов и т.д.
chsn
Dabbler
- #4
Спасибо за помощь! А каким способом лучше перенести набор данных с одного сервера на другой. 1.5Тб 40 снимков.?
- Status
- Not open for further replies.
Перенос набора данных
- chsn
- Russian — Русский
- Replies
- 10
- Views
- 2K
mav@
Оптимальный RAID для 10ти дисков.
- T@ller
- Russian — Русский
- Replies
- 5
- Views
- 862
mav@
FreeNAS на аппаратный RAID Perc H710
- root31337
- Russian — Русский
- Replies
- 2
- Views
- 778
root31337
Создание зеркала 2+2 без 2-х дисков
- Yrwn
- Russian — Русский
- Replies
- 2
- Views
- 2K
shubert
Что лучше RAID массив или ZFS массив
- djonik1562
- Russian — Русский
- Replies
- 17
- Views
- 3K
djonik1562
Share:
Facebook Twitter Reddit Pinterest Tumblr WhatsApp Email Share Link
ZFS и скорость доступа к диску в гипервизорах / Хабр
В данной статье публикуются результаты замеров скорости доступа к файловой системе внутри гипервизора в различных вариантах установки ZFS.
Всем привет! В сети довольно много материалов, посвященных файловой системе (далее ФС) ZFS, ее развитию в Linux’е и практическому применению. Меня данная ФС очень заинтересовала в контексте совершенствования моего домашнего сервера виртуализации ( а также благодаря посту пользователя kvaps), однако я не смог найти в интернете (может быть плохо искал?) сравнительных тестов производительности виртуализированных машин. Поэтому решил собрать тестовую платформу для проведения своего сравнительного исследования.
Моя статья не претендует на какие-либо научные открытия, вряд ли поможет профессионалам, которые давно работают с ZFS, и знают все ее возможности, однако поможет новичкам приблизительно оценить «цену» каждого гигабайта поделенного на производительность.
Суть эксперимента заключалась в следующем: на машину устанавливалась (каждый раз с загрузочного диска) ОС Proxmox VE 5.
Тест на ФС XFS использовался для измерения эталонной скорости работы одного ЖД (возможно это и неправильно, но других вариантов ее оценить я не придумал).
Тесты ZFS RAID 0, RAID 1 проводились на двух случайно выбранных дисках, ZFS RaidZ1 на 3 дисках, ZFS RAID 10, RaidZ2 на 4 дисках. Тесты с ZFS RaidZ3 не проводились по причине отсутствия желания купить еще один крайне экономически нецелесообразный HDD на 500GB.
Под спойлером кратко приведу описания каждого из видов ZFS RAID с моим примером получаемого объема «коммерческих» гигабайтов:
ZFS RAID
2 диска:
- ZFS RAID 0 — чередование (Striped), объем 2 * DiskSize = 1000ГБ.
- ZFS RAID 1 — зеркалирование (Mirror), объем 1 * DiskSize = 500ГБ.
3 диска:
- ZFS RaidZ1 — он же ZFS RaidZ, аналог RAID5, объем (N — 1) * DiskSize = 1000ГБ.
4 диска:
- ZFS RAID 10 — зеркалирование с чередованием (Striped Mirrored), объем 2 * DiskSize = 1000ГБ.
- ZFS RaidZ2 — аналог RAID6, объем (N — 2) * DiskSize = 1000ГБ.
- при этом, я такой тест не проводил, но ZFS RaidZ1 при 4 дисках = 1500ГБ.
Очень понятно расписана суть вот тут (англ). А также сколько дисков допустимо потерять, сохранив информацию.
Хочется отметить, что помимо различной скорости доступа файловой системы, еще нужно учитывать общий объем получаемого массива, и надежность сохранности данных, в случаях выхода из строя жестких дисков.
Технические характеристики платформы, (возможно) влияющие на результаты тестирования:
- Материнская плата: Intel Desktop Board DS67SQ-B3;
- Процессор: Intel Pentium G630 2.
7GHz;
- Оперативная память: 2 x 4096Mb Hynix PC3-10700;
- Жесткие диски: 3 x WD 5000AZRX 500GB SATA 64MB Cache, 1 x WD 5000AZRZ 500GB SATA 64MB Cache, SSD SATA Goldenfir T650-8GB;
- Блок питания: DeepCool DA500N 500W.
Виртуальной машине (KVM) для тестов выделялось 4GB оперативной памяти, 1 ядро процессора, жесткий диск VirtIO Block 100GB.
Для систем, установленных на ZFS выполнялось 2 теста, во втором в качестве кэш-диска подключался SSD.
Все результаты представлены в виде скриншотов ниже. Если у кого-нибудь возникнет желание оцифровать данные результаты — буду благодарен и включу результаты работы в статью.
ZFS RAID 0
ZFS RAID 0 + cache
ZFS RAID 1
ZFS RAID 1 + cache
ZFS RAID 10
ZFS RAID 10 + cache
ZFS RaidZ1
ZFS RaidZ1 + cache
ZFS RaidZ2
ZFS RaidZ2 + cache
Спасибо всем кто уделил внимание, надеюсь для кого-то данная выборка окажется, как и для меня, полезной.
P.S. по непонятным мне причинам часть изображений куда-то пропали, замеры проводились в конце весны, тестовую платформу уже не собрать в том виде, к счастью все они приходятся на тесты с 32 GiB.
P.P.S. Не пытался рекламировать какие-либо организации и/или программные продукты, не имел цели нарушить лицензионных соглашений, если где-то был неправ, прошу писать в личные сообщения.
P.P.P.S. Изображение с логотипом ZFS является репродукцией.
Глава 9. Тонкая настройка — Мастерство FreeBSD: ZFS для профессионалов
Содержание
- 9. Тонкая настройка
- Выделение чередований ZFS
- Зеркалирование и чередование
- RAID-Z1
- RAID-Z2
- RAID-Z3
- Чередующиеся зеркала
- Изменение выделенного размера
- Рекомендации
- Базы данных и ZFS
- Все базы данных
- MySQL – InnoDB/XtraDB
- MySQL – MyISAM
- PostgreSQL
- Настройка под размер файла
- Маленькие файлы
- Большие файлы
- Худшее из обоих миров: Bittorrent
- Короткие переходы
Изучающий ZFS системный администратор обычно чешет свою голову над использованием пространства ZFS. Объединение собранных в пул хранилищ, наборов данных, снимков и клонов делает использование пространства
ZFS очень сложным, занимающим целую главу в книге Мастерство FreeBSD: ZFS. Когда вы начинаете разгребать свои свойства
recordsize
и volblocksize
для баз данных и zvol,
использование пространства может свернуть прямиком в Сумеречную Зону.
Свойство volblocksize
задаёт
размер блока хранения в zvol. Размер блока должен представлять размер блока вашей файловой системы, используемый
в данном zvol. Значение volblocksize
по умолчанию равно 8кБ
, что может содержать два 4кБ или 16
512-байтных сектора файловой системы.
Свойство recordsize
задаёт
максимальный размер логического блока в наборе данных файловой системы ZFS. Значение по умолчанию для recordsize
равно 128кБ
, которое приводит к 32 секторам на диске с 4кБ
секторами или 256 секторам на диске с 512 байтовым секторами. Максимальный размер записи был увеличен до
1МБ при введении в 2015г флага свойства
large_blocks
. Многие механизмы
баз данных предпочитают блоки меньшего размера, например 4кБ или 8кБ. Имеет смысл изменить recordsize
на наборах данных,
выделенных для подобных файлов. Даже если вы не измените recordsize
,
ZFS автоматически откалибрует записи как нужно. Запись файла 16кБ должна занять только 16кБ пространства
(плюс метаданные и пространство для избыточности), не растрачиваясь на целую запись в 128кБ.
Взаимодействие между размером блока и RAID-Z означает, что диски сервера могут неожиданно заполниться, даже если они имеют только 25 процентов данных, которые вы ожидали там разместить.
Понимание почему это происходит требует более глубоко погружения в то как ZFS выделяет блоки.
Выделение чередований ZFS
Полосы создаются из секторов вашего физического диска (или других поставщиков, например, GELI). Если ваш
диск имеет 4кБ секторы, выделение 128кБ потребует 32 физических сектора.
Zpool-ы хранят всю информацию контрольных сумм (parity) в дисковых секторах, или блоках. Каждый уровень чётности (parity) требует блока для каждой полосы. Пулу RAID-Z3 требуется три блока для контрольной информации для каждой размещаемой на диске порции.
Пулы RAID-Z всегда размещают блоки в множителях равных размеру чётности (parity) плюс один. То есть, RAID-Z1 размещает за раз два блока, RAID-Z2 три блока за раз, а RAID-Z3- четыре блока за раз. Это помогает ZFS предотвращать фрагментацию и уменьшает опасность потери большего пространства. Если полосе не требуется столько пространства, ZFS дополняет его чтобы заполнить всё размещение. Для обычных размеров полос не имеет значения дополнительный сектор или пара на файл. RAID-Z размещается в блоках согласованного размера, поэтому при освобождении блока он легко может применяться повторно.
Рассмотрим выделение 8кБ пространства в RAID-Z2. Хотя 8кБ требуют всего двух секторов {Прим.
пер.: в оригинале: четырёх}, RAID-Z2 выделяет только со множителем три, следовательно оно требует
шести блоков. Вы удаляете этот файл и выделяете для 4кБ файла в тех же самых секторах. Этому 4кБ файлу нужно
только три блока. Если бы RAID-Z не заполнял до множителя N+1, вы бы получили единственный неиспользуемый
дисковый блок между 4кБ файлом и вашим следующим файлом. Такой одинокий блок, осиротевший сектор, никогда
не будет использован.
Записывайте и удаляйте, а ещё записывайте связки файлов различных размеров, и в скором времени ваш диск получит целую кучу свободного пространства- но всё оно будет из неприменимых одноблоковых кусочков. Ваш диск будет парализован.
Каждому файлу также необходимы прочие метаданные для присоединения его к вашему дереву ZFS, предоставления
блоков содержащих этот файл, их хэш-сумм и тому подобного. Каждый такой блок метаданных содержит информацию по
многим файлам и может быть опущен в данном обсуждении. Всё это кажется простым и не вызывает беспокойства, но
давайте посмотрим как эти факторы факторы взаимодействуют с файловыми системами при использовании секторов
4кБ и 512-байт.
Зеркалирование и чередование
Зеркалам и чередующимся записям требуется подключать блоки к вашему дереву ZFS, однако им не требуются дополнительные избыточные блоки. Наш файл с 8кБ использует два 4кБ или 16’512-байтные сектора диска.
RAID-Z1
RAID-Z2
RAID-Z3
Чередующиеся зеркала
Изменение выделенного размера
Рекомендации
Выделение чередований ZFS
w3.org/1999/xhtml»> Все базы данныхMySQL – InnoDB/XtraDB
MySQL – MyISAM
PostgreSQL
Выделение чередований ZFS
Маленькие файлы
Большие файлы
Выделение чередований ZFS
Выделение чередований ZFS
Справочник по типам RAIDZ
| |||||||||||||||||||||||||||||||||||||||||||||||||
Существует множество различных способов организации данных в массиве RAIDZ.
Эти способы называются «RAIDZ-уровнями». Есть и более сложные схемы, представляющие собой комбинации базовых уровней RAIDZ. Хотя вы можете использовать традиционные имена для такой вложенной схемы, например RAID50 или RAID60, Названия «Z» для них не вводятся, и часто макеты просто называются по схемам, использованным для их создание как зеркало + чередование или RAIDZ + зеркало. Однако они выходят за рамки данной ссылки. | |||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||
Чередование — это способ хранения данных на дисковом массиве. Непрерывный поток данных делится на блоки, и блоки записываются на несколько дисков по определенному шаблону. Чередование используется со всеми уровнями RAIDZ из-за специфики файловой системы ZFS, которая используется в пулах RAIDZ. Размер блока выбирается динамически для каждой строки данных, записываемой в пул ZFS. | |||||||||||||||||||||||||||||||||||||||||||||||||
Stripe pool и RAID0 почти равны друг другу. Хотя ZFS обеспечивает контрольную сумму, чтобы избежать скрытого повреждения данных, нет избыточных данных (нет четности или зеркала) для восстановления данных в случае сбоя диска. Еще одно отличие состоит в том, что ZFS хранит записи метаданных в нескольких копиях независимо от схемы RAIDZ верхнего уровня. Однако пользовательские данные по-прежнему хранятся в единственном экземпляре в чередующемся пуле ZFS. Хотя эту конфигурацию не рекомендуется использовать отдельно, его по-прежнему можно рассматривать как часть избыточных схем, таких как RAID10 (чередование плюс зеркало). Как и RAID0, чередующийся пул ZFS вообще не обеспечивает отказоустойчивости. Если какой-либо из дисков в массиве выходит из строя, выходит из строя весь пул и все данные теряются. Решения ZFS с чередованием дешевы, и они используют всю емкость диска за вычетом дискового пространства, используемого для избыточности метаданных, что является обязательным. Если чередующийся пул ZFS дает логический сбой, но все диски присутствуют и исправны, вы можете выполнить Восстановление страйп-пула ZFS относительно легко использовать программу восстановления ReclaiMe Pro ZFS. Однако следует помнить, что в случае сбоя диска данные теряются безвозвратно.
| |||||||||||||||||||||||||||||||||||||||||||||||||
Требуется как минимум два диска и в целом очень похож на RAID1.
Использование в сочетании с файловой системой ZFS дает вам определенные преимущества, такие как автоматическая контрольная сумма.
Хотя контрольная сумма просто позволяет обнаруживать повреждение данных, это все же то, чего не хватает большинству традиционных систем RAID. В то время как традиционный RAID1 рекомендуется использовать, когда вам нужно надежное хранилище относительно небольшой емкости, зеркальный пул ZFS рекомендуется, когда вам нужна чрезвычайно надежная система хранения. Обычный RAID1 хранит две идентичные копии данных на двух жестких дисках и не использует блоки и полосы. Зеркальные пулы ZFS могут хранить столько копий данных, сколько вы пожелаете, и используют блоки и полосы: копии хранятся внутри определенные «ряды». Зеркальный пул ZFS использует емкость (N-1) дисков для обеспечения отказоустойчивости. Это составляет (N-1) \ N потери емкости для массива.
Например, если вы объедините четыре диска по 500 ГБ в зеркале ZFS, вы получите только 500 ГБ полезного дискового пространства, а 1,5 ТБ пойдет на резервирование.
| |||||||||||||||||||||||||||||||||||||||||||||||||
RAIDZ подходит как большое, надежное, относительно дешевое хранилище. RAIDZ (иногда называемый RAIDZ1, указывающий на одиночную четность) больше всего похож на традиционный RAID5 и требует как минимум 2 диска.
Как и в обычном RAID5, каждая «строка» вместе с блоками данных хранит рассчитанную функцию четности.
над блоками данных, что позволяет системе пережить отказ одного диска.
Разница заключается в схеме размещения строк, которая больше не является одинаковой для набора дисков;
другое отличие — размер блока, который может варьироваться в зависимости от строки.
Кроме того, в пулах ZFS RAIDz больше не различаются правый/левый, синхронный/асинхронный макеты RAID5. Если все диски в порядке, запросы на чтение распределяются по дискам равномерно, обеспечивая скорость чтения, аналогичную скорости чередующегося пула. Теоретически для N-дискового массива чередующийся пул обеспечивает в N раз более быстрое чтение, а RAIDZ должен обеспечивать (N-1) раз быстрее читает. Однако количество блоков в конкретной строке зависит от размера записываемого блока данных. а также на размер блока модуля ZFS, поэтому мы можем говорить только об ускорении скорости чтения (N-1) раз в качестве верхнего предела. Если один из дисков вышел из строя, скорость чтения снижается до скорости одного диска, потому что все блоки подряд необходимы для обслуживания запроса. Скорость записи RAIDZ ограничена обновлениями четности.
Для каждого записанного блока соответствующий ему блок четности должен быть прочитан, обновлен и затем записан обратно.
Таким образом, в RAIDZ нет значительного улучшения скорости записи, если оно вообще есть. Емкость одного диска-участника используется для обеспечения отказоустойчивости. Например, если у вас есть 10 дисков по 1 ТБ каждый, результирующая емкость RAIDZ будет 9ТБ. В случае сбоя пула ZFS RAIDZ вы все равно можете восстановить данные из пула с помощью Программное обеспечение для восстановления RAIDZ. В отличие от чередующегося пула ZFS, RAIDZ является избыточным и может пережить сбой одного члена диска.
| |||||||||||||||||||||||||||||||||||||||||||||||||
RAIDZ2 — это большое, высоконадежное и относительно дорогое хранилище, для которого требуется как минимум 3 диска. RAIDZ2 похож на RAID6 — позволяет пережить сбой двойного диска за счет сохранения двух разных функций четности. Все соображения о шаблоне размещения блоков и размере блока такие же, как и для RAIDZ. Скорость чтения N-диска RAIDZ2 до (N-2) раз выше (примените те же соображения, что и для RAIDZ выше), чем скорость одного диска, аналогично RAIDZ. Если один или два диска выходят из строя в RAIDZ2, скорость чтения значительно снижается из-за восстановления отсутствующих блоков. требует чтения всей строки. В схеме RAIDZ2 нет значительного улучшения скорости записи. Обновления четности RAIDZ2 требуют еще большей обработки, чем в RAIDZ. Емкость двух дисков-участников используется для обеспечения отказоустойчивости. Для массива из 10 дисков по 1 ТБ каждый результирующая емкость RAIDZ2 составит 8 ТБ. Восстановление пула RAIDZ2 в случае сбоя довольно сложно, но в любом случае вам нужно
Программное обеспечение для восстановления ZFS для этого.
| |||||||||||||||||||||||||||||||||||||||||||||||||
RAID с тройной четностью.
| |||||||||||||||||||||||||||||||||||||||||||||||||
Полосатый зеркальный пул — это большое, быстрое, надежное, но дорогое хранилище. Пул чередующихся зеркал использует несколько (минимум два) зеркальных набора дисков для хранения идентичных копий содержимого. Схема очень похожа на RAID10 и традиционно требует минимум четырех устройств. Предполагая, что зеркала в среде ZFS можно создавать на любом количестве дисков (начиная с 2 дисков), можно легко создать кучу практически любых возможных зеркал (по количеству дочерних дисков) а затем чередовать данные по ним.
| |||||||||||||||||||||||||||||||||||||||||||||||||
Этот калькулятор RAIDz был создан командой ReclaiMe с сайта www.
|
Катастрофический сбой RAID-Z2, как определить, что его вызвало? : zfs
Привет, ребята. Я запускаю ZFS дома пару лет. Это не пост о восстановлении данных, содержимое моего Z2 было скопировано, поэтому я не ожидаю (важной) потери данных.
Я запустил свой домашний RAID-массив с 5 несовместимыми дисками SATA емкостью 3 ТБ, используя ZoL 0.8 в Debian. Позже я обновил пул до ZoL 2.0, создав свой собственный .debs из репозитория OpenZFS. Я постепенно заполнил 9ТБ полезного пространства с моей библиотекой Plex и резервными копиями ноутбука.
Ранее в этом году мне повезло: пользователь Redditor продавал большое количество дисков SAS-3 емкостью 12 ТБ. Мне удалось заполучить 7 из них (хотел 8), чтобы иметь 6 дисков + запасные. Я построил новый zpool, используя новые диски, используя карту Adaptec ASR-78165 SAS-2 и мое шасси U-NAS NSC-800 (пришлось использовать трюк с лентой с выводом 3, чтобы заставить диски раскручиваться), а затем отправил снимки из старого пула в новый. И несколько месяцев все работало отлично.
Остальным оборудованием был i5-7400T на потребительской материнской плате Asus h210i+ с 32 ГБ памяти без ECC. Затем, играя с резервными копиями, я обнаружил, что один из моих тестовых файлов Bacula поврежден. Я решил заполнить последний пробел и модернизировал машину до i3-9100T на материнской плате Asus P11C-i с памятью ECC. Все остальные данные были в порядке.
На прошлой неделе я получил предупреждение о том, что ZFS должна восстановить один из дисков. Я заметил, что тесты SMART на диске прерываются, поэтому я обратился за помощью к r/homelab, так как решил, что это больше связано с физическим диском. Рекомендация заключалась в том, чтобы вынуть диск из массива и провести на нем несколько деструктивных тестов записи/чтения. Тесты записи не показали ошибок, а вот чтение показало 69(приятно…) плохие сектора на диске.
Итак, диск не в хорошем состоянии. К счастью, у меня есть запасной, но он на складе, и я не смогу добраться до него в течение нескольких недель (переезд). Так что, возможно, я допустил здесь логическую ошибку — я знаю, что на жестких дисках есть запасные сектора именно по этой причине, поэтому я решил поместить диск обратно в пул и восстановить избыточность, пока я не смогу добраться до запасного. Так я и сделал — заменил диск в массиве, и он начал восстанавливаться.
И тут все пошло не так. Всего 30 ГБ в resilver, все остальные диски выдавали ошибки, и resilver останавливался. Он даже исключил один из дисков из пула, потому что он выдавал слишком много ошибок. Файловые системы остались смонтированными, но ввод-вывод был заморожен, поэтому я не мог получить какие-либо данные.
Так вот как Я потерял свой zpool, но мне вот интересно почему . Я предполагаю, что на первом диске могло быть несколько неисправных секторов (в конце концов, он был подержанным), хотя я провел тщательное тестирование, когда впервые получил диски. Во время первоначальной копии zpool я также забыл подключить вытяжные вентиляторы к корпусу, в результате чего температура дисков превышала номинальный максимум как минимум на 11°C. Так что я уже не был блестящим с этими дисками. После этого были подключены вентиляторы (два 120-мм вытяжных вентилятора, и я разделил диски, чтобы было по 3 на каждый вентилятор), и диски работали при температуре 30-40°C.
Тот факт, что все 6 дисков одновременно выдавали ошибки, указывает на что-то общее — может ли это быть карта SAS? Корпус (так как он был разработан для SAS-1)? Я вложил довольно много денег в эту установку, и я хотел бы спасти и повторно использовать как можно больше.
Я понимаю, что многие люди больше не будут доверять этим компонентам. Однако я домашний пользователь, поэтому мои данные не являются критически важными. Мне еще предстоит восстанавливать из резервной копии, но у меня есть и другие копии, поэтому я вполне уверен, что мои данные все еще не повреждены, и если я практикую хорошее резервное копирование, должно быть, даже если этот катастрофический сбой произойдет снова.
Редактировать 1:
Давненько, работа мешала, но я попробовал. Я удалил неисправный диск из шасси и попытался повторно импортировать пул. Просто замер. Не удалось отменить, пришлось перезагрузить машину. Затем я попробовал варианты восстановления ( -F
и -Fx
), ни один из них не сработал, и я просто выдавал ошибки транзакции. Когда эта штука пошла не так, похоже, это произошло таким образом, что сломался весь пул.
Я купил тестер блока питания и проверил блок питания NAS; Я попробовал тестер на заведомо хорошем и заведомо плохом блоке питания, и он показал точные результаты. Длину кабеля изменить непросто, и она и так очень короткая — внутри шасси U-NAS совсем мало места, а кабели тщательно проложены вокруг вещей. Однако мне пришлось купить 20-сантиметровые удлинители для разъемов питания материнской платы.
Сегодня вечером я решил заняться восстановлением бассейна. Чтобы сделать это, я решил сначала обнулить диски, так как это сделает несколько зайцев одним выстрелом (ZFS думает, что диски свежие, а также выделяет любые ошибки записи). Я скинул dd
сразу на 3 диска. Я также провел тест whdd
на одном из пропущенных дисков. Увеличил среднюю нагрузку примерно до 4,5.
Примерно через час я проверил его, и все остановилось. Один из 9Экземпляры 0654 dd показали ошибку ввода-вывода на диске, который раньше ее не выдавал (и прошел тест чтения whdd
без ошибок). 2 других экземпляра заморожены. А whdd
показывает ошибку за ошибкой за ошибкой на последнем HDD.
Я начинаю думать, что проблема действительно в контроллере. Загрузите его дисковым вводом-выводом, и он просто не справится. Либо это баг прошивки, либо неисправная карта. Перед этим я провел тесты чтения на 5 из 7 дисков по отдельности, и все они прошли успешно, поэтому только когда нагрузка особенно высока, обращаясь к нескольким дискам одновременно (например, resilver), кажется, что что-то идет не так. Я собираюсь попробовать получить другой ASR-78165 или, возможно, другую модель Adaptec.
Редактировать 2:
Я купил второй контроллер Adaptec 7-й серии (ASR-71605) для тестирования. Я повторил свой тест с обнулением 3 дисков и 1 диском, выполняющим тест чтения, и произошло то же самое — все дисковые вводы-выводы SAS заблокированы. Таким образом, контроллер исключается, но остается только объединительная плата.
Я купил несколько отводных кабелей SAS и установил тестовую установку — я поместил свои диски SAS в запасное шасси с охлаждением и собственным блоком питания и проложил отводные кабели обратно к HBA. Повторно запустив тот же тест, все 5 дисков были обнулены, а 1 диск прочитан до конца. Таким образом, похоже, что объединительная плата действительно является виновником. Если он искажал сигналы к дискам, это может объяснить, почему Z2 рухнул. Странно, потому что объединительная плата очень простая — никаких расширителей, никакой обработки, только отдельные разъемы SATA для каждого слота и общее питание Molex, и 2 светодиода (питание и активность) для каждого слота. Видимо может выйти из строя. Я не знаю, является ли эта проблема исключительной для дисков SAS, но она работала исправно в течение нескольких месяцев.
Я связался с U-NAS напрямую и могу получить обновленную объединительную плату SAS-3 для этого шасси, поэтому я заказываю пару (надеюсь, мне не понадобится трюк с лентой на новых платах). !). Надеюсь, это решит проблему.
Что такое RAID-Z?
Файловые системы старше самой UNIX. И с тех пор, как мы начали оцифровывать нашу жизнь на лентах, дисках и твердотельных накопителях, возникла одна угроза. Это аппаратный сбой. Данные, хранящиеся на дисках, часто дороже, чем сами диски, и для этих данных требуется вся избыточность, которую мы можем собрать.
RAID-Z — один из лучших инструментов, который гарантирует, что ваши данные будут храниться без ошибок даже на самых дешевых дисках. Это часть OpenZFS. Вы можете понять основы OpenZFS в этой краткой статье, если вы не слышали об этом раньше. Это файловая система корпоративного уровня с открытым исходным кодом, доступная для Linux, FreeBSD, Mac OS X, SmartOS, Illumos и других основных операционных систем.
RAID означает избыточный массив независимых (недорогих) дисков. Это относится к широко распространенной в отрасли практике хранения данных не только на одном диске, но и на нескольких дисках, чтобы даже в случае сбоя диска данные можно было восстановить с других дисков. Способ распределения данных по дискам различается для разных типов избыточности, соответственно они называются RAID 0, RAID 1 и т. д. Мы не будем их здесь рассматривать. Мы сосредоточимся на RAIDZ, специфичном для OpenZFS.
RAID (а также RAID-Z) — это не то же самое, что запись копий данных на резервный диск. Когда у вас есть два или более дисков, настроенных в RAID, данные записываются на них одновременно, и все диски активны и подключены к сети. Именно по этой причине RAID отличается от резервного копирования и, что более важно, почему RAID не заменяет резервное копирование. Если весь ваш сервер сгорит, то все онлайн-диски могут уйти вместе с сервером, но резервные копии спасут ваш день. Точно так же, если произошел сбой одного диска и что-то не было скопировано, потому что вы не можете делать это каждый день, RAID может помочь вам восстановить эту информацию.
Резервные копии — это периодически создаваемые копии соответствующих данных, а RAID — резервирование в реальном времени. Существует несколько способов хранения данных в традиционных RAID-системах, но мы не будем их здесь рассматривать. Здесь мы углубимся в RAIDZ, который является одной из самых крутых функций OpenZFS.
И последнее, прежде чем мы начнем, традиционный RAID иногда поощряет использование выделенных аппаратных устройств для создания RAID. Это оставляет операционную систему и файловую систему в неведении о действующих механизмах RAID. Но часто сама карта RAID (специальное оборудование) выходит из строя, и весь дисковый массив практически бесполезен.
Чтобы избежать этого, вы всегда должны пытаться использовать OpenZFS без какого-либо аппаратного RAID-контроллера.
ZFS объединяет задачи диспетчера томов и файловых систем. Это означает, что вы можете указать узлы устройств для своих дисков при создании нового пула, и ZFS объединит их в один логический пул, а затем вы сможете создавать наборы данных для различных целей, таких как /home, /usr и т. д., поверх этого тома.
Для настройки RAID-Z потребуется как минимум 3 или более дисков. Нельзя использовать менее трех дисков. Поставщиком хранилища может быть что-то другое, а также сетевое хранилище, виртуальное блочное устройство и т. д., но давайте в качестве простого примера остановимся на трех дисках одинакового размера.
Три диска можно объединить в виртуальное устройство (vdev). Это строительный блок zpool. Если вы начинаете только с 3 дисков, у вас есть 1 vdev в вашем zpool. У вас может быть 2 vdev с 6 дисками и так далее.
Предположим, у вас есть файл размером 1 ГБ, который вы хотите сохранить в этом пуле. RAID-Z разбивает его на два равных блока по 512 МБ, а затем выполняет между ними математическую операцию, в результате которой создается третий блок размером 512 МБ (называемый блоком четности ). Затем эти три фрагмента записываются в три отдельных vdev. Таким образом, файл в итоге занимает 1,5 ГБ места.
Преимущество, однако, состоит в том, что если один из дисков выходит из строя, скажем, первый фрагмент потерян, то второй фрагмент и блок четности можно использовать для воссоздания первого. Точно так же, если второй фрагмент потерян, первый и третий могут быть использованы для воссоздания второго.
Ваши файлы занимают на 50 % больше места, чем необходимо, но вы можете выдержать сбой одного диска на vdev. Это RAID-Z1.
Но пул ZFS может расти, и со временем вам потребуется больше места. Ну, вы не можете добавить больше дисков непосредственно в vdev (эта функция предлагается и вполне может быть в разработке прямо сейчас). Однако вы можете добавить файл vdev. Это означает, что вы можете добавлять диски наборами по три и рассматривать каждый новый набор как один логический vdev.
Теперь вы можете допустить сбой одного диска в этом новом виртуальном устройстве и один сбой диска в старом. Но если в одном виртуальном устройстве выходит из строя более одного диска, это невозможно восстановить. Весь ваш пул становится бесполезным, даже более здоровые vdevs.
Это очень упрощенная модель. Файлы никогда не разбиваются ровно пополам, а данные обрабатываются как блоки фиксированной длины. Более того, вы можете использовать более 3 дисков (минимум 3) для каждого виртуального устройства, а RAID-Z1 гарантирует, что каждый уникальный блок данных будет записан таким образом, чтобы его можно было восстановить после сбоя любого отдельного диска в каждом виртуальном устройстве. К счастью, вам не нужно беспокоиться об этих внутренних деталях. Это ответственность ZFS. После настройки пула данные автоматически распределяются по нему наиболее оптимальным образом.
Отказоустойчивость по-прежнему ограничена одним отказом диска на vdev. Чтобы пойти дальше, нам нужно перейти на RAID-Z2. RAID-Z2 работает аналогичным образом, но создает два блока четности и два блока данных из одной части информации. Это позволяет выдерживать до 2 отказов дисков на vdev. Кроме того, vdev должен иметь как минимум 4 диска, если он собирается реализовать настройку RAID-Z2.
Аналогично, для RAID-Z3 требуется не менее 5 дисков на vdev, и он может выдержать отказ 3 из них. RAID-Z3 не так эффективен с точки зрения пространства, как RAID-Z2, который не так эффективен с точки зрения пространства, как RAID-Z1.
Заключение
В RAID-Z мы видим компромисс между полезным пространством, предлагаемым отдельными дисками, и надежностью, которую может обеспечить набор таких дисков.