Назад | Перейти на главную страницу

Почему при использовании RAID10 + BBWC лучше отделить файлы данных PostgreSQL от ОС и журналов транзакций, чем хранить их все в одном массиве?

Я видел советы везде (в том числе Вот и Вот): храните раздел ОС, файлы данных БД и журналы транзакций БД на отдельных дисках / массивах. Общая рекомендация - использовать RAID1 для ОС, RAID10 для данных (или RAID5, если нагрузка сильно смещена по чтению) и RAID1 для журналов транзакций.

Однако, учитывая, что для создания этой установки вам потребуется как минимум 6 или 8 дисков, не будет ли лучше работать RAID10 с 6-8 дисками с BBWC? Что делать, если диски SSD?

Я говорю здесь о внутренних дисках сервера, а не о SAN.

Я действительно не хочу отделять ОС от дисков с данными во внутренних дисковых установках, поскольку выгода от наличия большего количества шпинделей (в таком масштабе) превосходит выгоду от наличия дискретных наборов дисков.

Лучший способ узнать это - протестировать свою настройку и свои данные ...

Помните, что вы используете контроллер HP. Контроллеры Smart Array могут взять набор (массив) из 8 дисков и разделить его на несколько логических дисков с разными уровнями RAID. Таким образом, вы можете разделить это на 200 ГБ RAID 5, 36 ГБ RAID 1 + 0, 100 ГБ RAID 1 + 0 и 50 ГБ RAID 0, если хотите ... Лучше использовать больше дисков, если вы можете.

SSD немного меняют ситуацию. С контроллером P410 вам действительно не следует использовать более 6 дисков. Уменьшение доходности выше этого уровня.

Причина, по которой появляется этот совет, состоит в том, чтобы избежать перегрузки одной группы дисков. Рассмотрим следующий набор одновременных событий:

  1. Соединение с БД запускает SELECT для большой таблицы
  2. Второе соединение с БД запускает большой INSERT или UPDATE в другой таблице
  3. Несколько человек одновременно входят в систему (SSH)

Если ваша система работала на одном диске, головке теперь нужно прыгать между тем столом, где мы SELECTing from находится, где бы /var живет (для записи логинов), расположение журнала предварительной записи (для записи INSERT или UPDATE), различные места в /home и /bin необходимо для запуска новых пользовательских сеансов и, в конечном итоге, таблиц, которые были INSERTв или UPDATEd.

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

Если бы каждый из этих трех элементов происходил с отдельной группой дисков (SELECTs в группу данных, INSERTs и UPDATEs в группу WAL и материал ОС в группу ОС) теоретически каждый из трех вышеперечисленных элементов может происходить параллельно (и окончательная очистка журнала записи с опережением может быть выполнена, когда это удобно для группы данных).


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

Ключевым моментом здесь является сравнительный анализ вашей рабочей нагрузки (насколько это возможно).
Кроме того, как уже указывалось, твердотельные накопители опровергают основное базовое предположение (твердотельные накопители - это постоянный доступ к любому «сектору» - нет задержки вращения или позиционирования головы), поэтому вам следует иметь это в виду, если вы используете твердотельные накопители в своем дизайн: вы, вероятно, увидите больше преимуществ от чередования SSD, чем от разделения их для изоляции активности на основе предположения, что конфликтующие запросы к диску требуют больше времени для изменения положения механических головок и пластин.

Все ответы выше хороши, но есть еще одна причина отделить ОС от данных и / или журналов. Это упрощает установку различных политик для антивируса. Это также лучшая практика / требование безопасности как для базы данных, так и для веб-серверов, чтобы хранить данные отдельно от ОС. И последнее: вы можете стереть и восстановить ОС, не беспокоясь о данных.

Вероятно, это зависит от вашей скорости ввода-вывода. Массив RAID 10 с 4 дисками, вероятно, может приблизиться к 500 операциям ввода-вывода в секунду. Лучшие данные будут получены из теста производительности, в котором вы отслеживаете скорость ввода-вывода, длину дисковой очереди и процент занятости диска. Если все в порядке, не нужно ничего передвигать.

Для твердотельных накопителей - другая история. Один диск сможет обрабатывать огромные нагрузки ввода-вывода. Массив RAID 1 может работать почти в 2 раза лучше; зависит от того, насколько хороша ваша RAID-карта, и читает ли она с обоих дисков (скорее всего, так). Меня беспокоит, что SSD и журналы БД будут иметь огромное количество записей и сократят ли это срок службы диска. Я не видел слишком много данных по этому поводу.