2

У меня есть 8x 2 ТБ дисков в raid6 с mdadm, и я решил добавить небольшой "слабый" раздел на каждый диск на случай, если запасной диск будет не совсем того же размера, что и диски, которые я сейчас использую. Цель в том, чтобы я не рискнул не иметь возможности добавить диск в рейд, потому что он слишком маленький.

Теперь, для слабых разделов, я просто обозначил их как разделы подкачки (не может повредить). Теперь, насколько я понимаю, Linux делает циклический перебор на этих дисках, когда он выделяет страницы для обмена. Опять же, насколько мне известно, это означает, что все мое пространство подкачки примерно эквивалентно набору полос raid0. Теперь, если один диск выйдет из строя, это будет означать, что ...

A: Все пространство подкачки повреждено или находится в недопустимом состоянии?

B: Любая программа, у которой есть страницы на устройстве подкачки, который вышел из строя, теперь взломана (или завершена ?!)

C: Я бы лучше запустил mdadm raid10 на разделах подкачки и вместо этого создал файл подкачки или подкачал напрямую на устройство mdX ?!

Я ценю, если бы кто-то мог пролить некоторый свет на то, как Linux обрабатывает своп в случае сбоя.

1 ответ1

2

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

В случае сбоя раздела подкачки никто не заметит, пока в каком-либо процессе, использующем неисправный раздел, не возникнет ошибка жесткого листа. Вероятный результат состоит в том, что страница памяти, выделенная для получения замененной страницы, останется нулевой, и процесс будет зависать. Скорее всего, вы увидите «Ошибка чтения на устройстве подкачки ...» в журнале ядра, но кроме регистрации ошибки ядро не помечает область подкачки как плохую. При записи в файл подкачки ядро печатает «Ошибка записи на устройстве подкачки» в klog и перезагружает страницу, чтобы она не записывалась снова, но повреждение уже сделано в том, что касается текущего процесса. , Нет кода для повторной попытки плохой записи в другой позиции в разделе или в другом разделе подкачки.

Есть некоторые люди, которые меняются на RAID1, см. Пост SE в моем комментарии к вашему OP. Мне трудно поверить, что это не окажет негативного влияния на производительность в подкачки системы. Возможно, они этого не видят, потому что у них много оперативной памяти, а их приложения не вызывают перестановки. Целью RAID в любом случае является защита ваших постоянных данных, а не свопинга. Это немного похоже на монтирование /tmp на RAID5 и еженедельное инкрементное резервное копирование. Я рекомендую купить диски "RAID Edition" (т.е. самого высокого качества) и поменять местами разделы, как вы сейчас делаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .