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

решение для отказоустойчивого RAM-диска

Я ищу производственное решение для создания RAM-накопителя, который будет безопасно синхронизироваться с HDD.

У меня есть специальное программное обеспечение с большой нагрузкой на ввод-вывод (это своего рода проприетарная документно-ориентированная БД), и мне нужно резко ускорить его. Я не могу изменить или избавиться от самого программного обеспечения, поэтому мне приходится выполнять горизонтальное или вертикальное масштабирование. Программа не поддерживает горизонтальное масштабирование окна, поэтому я сначала рассмотрю вертикальное масштабирование.

Основная идея проста - мы покупаем много оперативной памяти (96 ГБ) и помещаем все это на RAM-накопитель. Но это должно быть отказоустойчивым, потеря любых данных при перезагрузке сервера недопустима. Поэтому я ищу решение, которое будет поддерживать прозрачную синхронизацию между RAM-диском и HDD.

Грязное решение вроде копирования файлов через bash-скрипт не вариант, нужно что-то более надежное.

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

Итак, есть идеи по поводу готового решения для RAM-накопителя с прозрачной синхронизацией с HDD?


данные UPD:

  1. Приблизительный объем данных, которые мне нужно будет хранить в ОЗУ, составляет около 50 ГБ.
  2. Серверы выделены HP DL320, 8 CPU, 16GB RAM (до 96GB).
  3. Профиль ввода-вывода похож на приложение базы данных - много операций чтения с произвольным доступом, меньше операций записи.

Вы не хотите иметь реальный RAM-диск, который синхронизируется с жестким диском - вам нужна карта PCIe на основе RAM с резервным аккумулятором и кеш-памятью NV. По сути, карта FusionIO.

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

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

Общее предложение - использовать массив SSD-накопителей. Другой вариант - использовать ускоритель PCIe, например FusioIO водить машину.

Может даже подумать DRBD в асинхронном режиме ...

Более эзотерическим решением было бы использование общего хранилища с определенной степенью многоуровневости, которое может хранить часто используемые данные в ОЗУ или на SSD. В Файловая система ZFS и его использование ЗИЛ писать ускорение и L2ARC кэширование чтения - хороший пример.

И еще более эзотерическим решением является программный подход к кэшированию, такой как В конечном итоге постоянный RAM-диск (EPRD). Это создает дисковый RAM-диск в файловой системе FUSE и может быть хорошим выбором для ускорения ввода-вывода вашего приложения. Это может быть то, что вы хотите ...

Из документации по конфигурации:

You can however also create a ramdisk that will have it's
changes flushed to disk every N seconds and instead of keeping
everything in ram it only allocated 512M for caching.

./eprd_setup -f /data/saverimg -s 10G -m 3 -c -p512M

In this example the data is flushed to disk every 3 seconds.

Редактировать:

Если это HP ProLiant DL320 системы, я предполагаю, что это модели G6. У вас есть контроллер Smart Array P410 и кэш с батарейным или флеш-резервом установлены? Если нет, это первый шаг, который вы должны сделать, прежде чем приступить к настройке RAM-диска. Это имеет значение!

Вы не может сделайте это сегодня, вы хотите «отказоустойчивого», но хотите использовать оперативную память, которая по своей сути небезопасна, поэтому делается NVRAM, но это стоит денег. Я использую FusionIO, и, конечно, это не дешево, но этот сегмент рынка хранилищ быстро меняется, и цены падают, посмотрите на некоторых других поставщиков, продающих флэш-память на основе PCIe, и вы найдете менее зрелые продукты, но по гораздо более низким ценам.

О, и никакая умная синхронизация ramdrive не сработает идеально, вы воля получить коррупцию в какой-то момент.