Должны ли своп и RAID-1 смешиваться?

9

У меня есть коробка с небольшим массивом RAID-1, который используется для подкачки. Я сделал это только потому, что настраивал зеркала для каждого другого раздела в системе.

Сегодня я прочитал этот вопрос, и он побудил меня задуматься: «Есть ли своп на RAID-1 идеальный / желательный?».

ЖРД
источник

Ответы:

17

Вы (вероятно) не должны снимать своп с RAID 1.

Иногда менее важно иметь своп на RAID 1, но это нормально, обычно полезно и часто необходимо . Редко есть какая-либо причина, чтобы преднамеренно переместить ваш обмен в другое место, если вы уже используете RAID 1.

Замена на RAID 1 может работать лучше

Можно ожидать, что SWAP на RAID 1 будет работать лучше, чем один раздел подкачки вне RAID, но не так, как два свопа с одинаковым приоритетом.

Запись в RAID 1 иногда выполняется медленнее, чем запись на один диск, поскольку все данные должны быть записаны на оба диска. Часто это не очень медленно - обычно замедление будет незначительным. Если у вас есть RAID 1 из двух дисков на одном контроллере IDE, это будет медленнее. Но когда доступ к одному диску не замедляет доступ к другому диску, запись в RAID 1 не будет значительно медленнее.

Чтение с RAID 1 почти всегда быстрее, чем чтение с одного диска, поскольку, когда один диск занят чтением, с другого диска можно прочитать больше данных. Чтение с RAID 1, состоящего из двух дисков , часто почти вдвое быстрее, чем чтение с одного диска.

Мне не известны какие-либо тесты для сравнения двух отдельных разделов подкачки с одним разделом подкачки на RAID 1 (или любом другом RAID). Нет причин полагать, что один раздел подкачки будет работать так же или лучше, чем подкачка на RAID 1. Ситуация более сложна, если у вас есть два подкачки на отдельных дисках:

  • Если свопам присвоены разные приоритеты /etc/fstab, к ним заменяются отдельные страницы; одна и та же страница не поменяется местами одновременно. Я ожидаю, что два обмена будут быстрее для одновременного доступа к несвязанным данным, но медленнее для доступа к одной странице.

  • Если свопы имеют одинаковый приоритет /etc/fstab, данные (даже с одной страницы) будут чередоваться . Это похоже на RAID 0 и, скорее всего, будет работать даже лучше, чем установка подкачки на RAID 1.

    Теоретически, если у вас есть аппаратный RAID 1, чередование программного обеспечения может быть менее эффективным, но если у вас нет необычных приложений, в которых чтение из свопинга в подавляющем большинстве случаев происходит чаще, чем запись в него, я бы ожидал, что чередующийся своп из не-RAID программного обеспечения превзойдет раздел подкачки на RAID 1.

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

См. Этот раздел статьи Wikipdia «Стандартные уровни RAID» для получения дополнительной информации о производительности RAID 1.

Спасибо gertvdijk за предоставление критически важной информации о полосатых свопах.

Вам действительно нужно своп на RAID 1

Нужен ли вам своп на RAID 1 или нет, зависит от того, зачем вам нужен RAID 1. Данные в свопе, как правило, очень изменчивы, и их потеря обычно не означает значительной потери активов. Однако.:

  1. Одним из преимуществ RAID (кроме RAID 0) является то, что в случае сбоя диска ваш компьютер продолжает работать (только несколько медленнее). Если у вас есть запущенные программы, которые подкачали страницы на диск (что практически всегда имеет место, если подкачка включена), диск, содержащий раздел подкачки (независимо от того, является ли он единственным разделом подкачки), выходит из строя и не имеет избыточного резервное копирование, ваша система сразу же перестанет работать правильно (и, вероятно, будет полностью непригодна до перезагрузки, в зависимости от того, как использовался своп). Если вы используете компьютер в качестве рабочего сервера или для какой-либо другой важной задачи, это приведет к простою .

    Если вы можете допустить общий сбой подкачки из-за одного часто встречающегося нежелательного события (сбой одного диска), вам следует спросить себя, почему вы вообще используете RAID 1 . У вас может быть хороший ответ ... а у вас нет. RAID (кроме RAID 0) защищает от сбоя диска, но RAID не является решением для резервного копирования . Если вы изменяете или удаляете файл на RAID-массиве или вредоносное ПО заражает систему на RAID-массиве, изменения вносятся немедленно везде - RAID-массив не позволит вам восстановиться после этого.

    Если вам нужна резервная копия, а не избыточность , и у вас еще нет высоконадежной, легко доступной резервной копии, то вам следует полностью вынуть один из дисков из RAID и использовать его для резервного копирования. (Конечно, иногда также необходимо иметь резервную копию вне сайта.)

  2. Если вы переводите компьютер в спящий режим (например, в режим приостановки на диск), содержимое ОЗУ копируется в раздел подкачки . Таким образом, вы можете потерять данные, потеряв раздел подкачки, если ваш компьютер находится в спящем режиме при сбое диска.

Элия ​​Каган
источник
Хороший ответ, @Eliah. Моя мотивация для RAID-1 проистекает из-за того, что в прошлом он был укушен сбоями дисков - мои резервные копии спасли меня от потери данных, но мне все равно пришлось вставлять новые диски и восстанавливать машину, что занимает много времени. Таким образом, я все еще могу иметь рабочую настройку в поврежденном массиве и вставлять новые диски для восстановления массива.
LRE
@LRE Ваш RAID работает как резервная копия, только когда причиной потери данных является отказ диска. Это вполне приемлемое использование для RAID, но убедитесь, что у вас есть отдельная резервная копия для защиты от всех других причин потери данных, которые также распространены .
Элия ​​Каган
«Замена на RAID 1 может быть лучше», не совсем верно. Смотрите эту страницу wiki.kernel.org : «Само ядро ​​может чередовать чередование на нескольких устройствах, если вы просто дадите им одинаковый приоритет в файле / etc / fstab». Насколько я могу судить, размещение swap поверх вашего RAID - это просто доступная вещь.
gertvdijk
@gertvdijk Спасибо, я редактировал, чтобы включить эту информацию. Мое намерение сказать, что swap на RAID 1, вероятно, будет работать лучше, потому что он будет работать лучше, чем один раздел подкачки (не в RAID); Я сузил иск и добавлю детали.
Элия ​​Каган
@EliahKagan, да, я понимаю это, и у меня есть резервные копии (и они сохранили мою шкуру в прошлом) - RAID-1 существует, чтобы дополнить резервные копии
LRE
3

В разделе « Расширенная установка » в документации по Ubuntu Server описана установка на программный массив RAID 1. Из того, что я вижу, они также создают раздел подкачки на RAID, так что это почти «рекомендуемый» макет.

Однако с чисто теоретической точки зрения использование RAID 1 для раздела подкачки может дать меньше преимуществ по сравнению с «обычными» разделами - данные на разделе подкачки более или менее изменчивы, поэтому менее вероятно, что вы потеряете много данных в случай сбоя диска, хотя процесс может произойти сбой или система может перезагрузиться, если раздел подкачки внезапно выйдет из строя.

Использование RAID-0 или двух отдельных не-RAID-разделов может иметь (а может и не иметь) больше смысла с точки зрения производительности, если вы беспокоитесь о производительности, вам может потребоваться провести некоторый сравнительный анализ.

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

Сергей
источник
Переключение на RAID 1 действительно имеет большой смысл .
Элия ​​Каган