Я будую додаток, який повинен розподіляти стандартний файловий сервер на декількох сайтах по мережі. В основному, кожен сайт повинен написати багато файлів різного розміру різного розміру (деякі в діапазоні 100 Мб, але більшість малих), а програма написана таким чином, що зіткнення не є проблемою. Я хотів би створити систему, яка відповідатиме наступним вимогам:
- Кожен сайт може зберігати файли у спільному "просторі імен". Тобто всі файли відображатимуться в одній файловій системі.
- Кожен сайт не надсилатиме дані через WAN, якщо не потрібно. Тобто, з кожної сторони WAN було б місцеве сховище, яке було б "об'єднане" в одну і ту ж логічну файлову систему.
- Linux & Free ($$$) - це плюс
В основному, щось на зразок центральної частки NFS відповідало б більшості вимог, однак це не дозволило б місцевим записаним даним залишатися локальними. Усі дані з віддалених сторін WAN весь час будуть копіюватися локально.
Я вивчив Luster і провів з ним кілька успішних тестів, однак, схоже, вони розподіляють файли досить рівномірно по розподіленому сховищу. Я переглянув документацію і не знайшов нічого, що автоматично «віддасть перевагу» локальному сховищу перед віддаленим сховищем. Навіть те, що йшло із найнижчою затримкою, було б добре. Він би працював більшу частину часу, що відповідало б вимогам цієї програми.
Деякі відповіді на деякі запитання, задані нижче:
- Серверні вузли: 2 або 3 для запуску. Кожен сервер мав би десятки одночасно підключених клієнтів для читання / запису.
- WAN Topology є повною сіткою та надійною. (велика корпорація, вартість не така обмежує, як бюрократія)
- Відмова від клієнтів: Я фактично не думав про те, щоб відмовитись від клієнтів (в основному тому, що наше поточне застосування не робить цього лише на одному сайті). Я припускаю, що відповідь практик полягає в тому, що очікується, що сервери на кожному географічно розподіленому майданчику будуть єдиними пунктами відмов для клієнтів, яких вони обслуговують. Хоча, якщо ви думаєте про щось конкретне тут, я думаю, це було б цілком германно до дискусії.
- Roll-my-own: Я думав про rsync / unison, проте мені знадобиться трохи фантазійної логіки, щоб зробити "динамічну" частину цієї роботи безпроблемною. Тобто файл видається локальним, але отримується лише на вимогу.
- MS-DFS: Звичайно, мені здається, що я повинен заглянути. Моя головна проблема може бути невпевненою у конфігурації / надійності / продуктивності сервера NFS в Windows, оскільки багато клієнтів, що підключаються, є клієнтами NFS.