У меня проблема с дизайном инфраструктуры приложения. Прямо сейчас у нас есть доступ к множеству небольших файлов (до 10 МБ) из двухузлового кластера GFSv2. 90% доступа к файлам - это "произвольное чтение" в этот раздел GFSv2, остальные 10% - произвольная запись. Я сделал все настройки для noatime, nodirtime и plocks, но IOwait все еще слишком высок. Какие альтернативы лучше для этого типа сценария?
Другие, возможно, важные детали: все гигабитные сети, все хосты находятся в одной стойке, gfs поступает из многоуровневой SAN SSD с задержкой <1 мс и высокой производительностью, iowait с использованием DLM составляет 3%, просто записывая два файла по 3 МБ в секунду. Очевидно, мы планируем сделать гораздо больше, чем это. Мне нужно решение, которое будет HA и масштабируется по горизонтали.
Я знаю, что выбор файловой системы очень зависит от типа трафика, поэтому я надеюсь, что дал точное описание моего варианта использования.
Это зависит от размера файлов. Если ваш размер превышает 10 КБ, вы можете попробовать GlusterFS. Это отлично подходит для файлов большего размера, и кластер из 2 узлов с зеркалом должен иметь возможность обрабатывать большую пропускную способность. С действительно маленькими файлами - gluster не работает :(
Вы также можете попробовать Ceph (объектное или блочное хранилище) или Swift (объект). С объектным хранилищем дело в том, что к нему нужно подключиться через api.