Доля / дом между центрами обработки данных

15

У меня есть два сервера, размещенные в центрах обработки данных в Голландии и Франции. Оба работают под управлением Debian Wheezy. Мне нужно поделиться / home между ними, с хорошей производительностью. На серверах насчитывается более 300 пользователей, около 30 из них должны иметь возможность иметь активные процессы на данном сервере в определенный момент времени, каждый из которых имеет чтение 50 кбит и запись 20 кбит / с, с короткими пиками около 2000 кбит / с. с чтением. мер с iotop на локальном хранилище. У меня много маленьких файлов, всего около 500000, и мне нужна минимальная задержка. Пинг между серверами составляет 17 мс, а при использовании scp и wget скорость соединения может достигать 20-30 МБ / с. Кажется, должно быть достаточно пропускной способности, чтобы это тоже работало, но ...

То, что я до сих пор проверял: sshfs: казалось, что он имел лучшую производительность, чем nfs, но он изменял права доступа к файлам root, что приводило к сбою приложения.

NFS: Способ замедления, пробовал noatime и кучу других опций, но он продолжает работать вяло, даже когда активны только несколько процессов.

drbd: 5 часов тупиковой работы, когда я понял, что не могу смонтировать файловую систему в обеих системах :-(

glusterfs: Локальная копия всех данных действительно звучит многообещающе, но произвольный доступ к файлам очень медленный, и через некоторое время он становится невероятно медленным и почти зависает. noatime не помогает.

НФС снова: все еще вялый.

Плач в клавиатуру: вообще никаких улучшений.

Что попробовать дальше? Каждое из неудачных испытаний заняло вечер или, может быть, больше в течение последней недели, и я бы очень хотел, чтобы следующий метод сработал. И да, крайне важно, чтобы файловые системы были общими для обоих серверов.

Спасибо за любые новые идеи по этой проблеме.

user3850506
источник
6
«Плач в клавиатуру: вообще никаких улучшений». Хорошо, это получает +1 от меня.
ceejayoz
Вы, вероятно, захотите либо glusterfs, либо ceph. Распределенная файловая система. Кроме того, вы можете монтировать drbd несколько раз, но только одно чтение-запись, и это в любом случае страшная плохая идея.
Sirex
Я попробовал glusterfs, и хотя он отлично работает с большими файлами, он становится очень медленным при чтении или записи маленьких файлов. Кажется, это общая проблема с glusterfs, и я не смог найти решение этой проблемы. Я посмотрю на Сефа. Ты пробовал, ты сам пробовал?
user3850506
3
Монтирование одного и того же блочного устройства и файловой системы, даже RO в другой системе - это плохо, если драйвер файловой системы не понимает, что устройство резервного блока может измениться произвольно в любое время. Блочное устройство может измениться и полностью лишить законной силы кэш-память узла, и VFS с радостью прочитает данные, которые больше не соответствуют вашим ожиданиям. Файловые системы, поддерживающие общий диск, такие как GFS2 и veritas, могут делать это на DRBD или любом SAN-подобном диске. Не могу точно сказать, что производительность вашего небольшого файла будет приемлемой.
Андрей Домашек
1
Как насчет MARS: schoebel.github.io/mars youtube.com/watch?v=WwXOQJ6XiVI
Эндрю

Ответы:

2

Есть несколько возможных решений для этого:

  1. Вы можете использовать реплицированное хранилище блоков, такое как DRBD (или MARS, как упомянуто выше), но вам необходимо настроить кластерную файловую систему поверх хранилища блоков. Такими файловыми системами могут быть GFS2 или OCFS2, которые доступны в ядре Debian afaik. DRBD может обрабатывать основной / основной, и вы можете монтировать его на обоих серверах одновременно. Но если вы делаете это со стандартной файловой системой, один сервер не знает о другом, и вы уничтожите свою файловую систему за несколько секунд. Кластерная файловая система сверху будет обрабатывать связь и блокировку, чтобы оба узла могли записывать в один и тот же блок.

  2. Используйте распределенную файловую систему для / home. Вы можете найти список таких файловых систем на http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems . Но будьте осторожны и выбирайте мудро. Все они не умеют творить магию и у всех есть свои недостатки. Gluster - это такая файловая система. Для некоторых систем вам может потребоваться более двух узлов.

  3. Если его не нужно реплицировать в режиме реального времени, а синхронизация файлов почти в реальном времени будет достаточной, тогда взгляните на BitTorrent Sync ( http://www.getsync.com/ ), Dropbox или альтернативные варианты. Каждый сервер имеет свой собственный / home, но изменения копируются на файловой основе на другой сервер.

mgabriel
источник
1
rsync ftw 123456
dmourati