Уникнення SPOFS з GlusterFS та Windows


10

У нас є кластер GlusterFS, який ми використовуємо для своєї функції обробки. Ми хочемо інтегрувати в нього Windows, але у нас виникають певні проблеми, як з'ясувати, як уникнути єдиного пункту відмови - це сервер Samba, який обслуговує об'єм GlusterFS.

Наш потік файлів працює так:

Потік документів GlusterFS

  1. Файли зчитуються вузлом обробки Linux.
  2. Файли обробляються.
  3. Результати (можуть бути невеликими, можуть бути досить великими) списуються в об'єм GlusterFS, коли вони зроблені.
    • Результати замість цього можуть бути записані в базу даних або можуть містити кілька файлів різного розміру.
  4. Вузол обробки знімає чергове завдання з черги та GOTO 1.

Gluster чудовий тим, що забезпечує розподілений обсяг, а також миттєву реплікацію. Стійкість до катастроф приємна! Нам це подобається.

Однак, оскільки у Windows немає рідного клієнта GlusterFS, нам потрібен спосіб взаємодії наших вузлів обробки Windows з файловим сховищем аналогічно еластичним способом. Документація GlusterFS зазначає, що спосіб надання доступу до Windows - це налаштування сервера Samba поверх встановленого тома GlusterFS. Це призведе до потоку файлів таким чином:

Документація GlusterFS через Winders

Для мене це схоже на те, що я не вдавався.

Один із варіантів - це кластеризація Samba , але, схоже, вона базується на нестабільному коді зараз і, таким чином, не працює.

Тому я шукаю інший метод.

Деякі основні деталі про типи даних, які ми передаємо:

  • Оригінальні розміри файлів можуть бути від кількох КБ до десятків ГБ.
  • Розміри файлів, що обробляються, можуть бути від кількох КБ до ГБ або двох.
  • Деякі процеси, такі як копання в архівному файлі, наприклад.
  • Підрахунок файлів може потрапити в десятки мільйонів.

Це навантаження не працює при налаштуванні Hadoop на "статичний розмір роботи". Так само ми оцінювали магазини об’єктів у стилі S3, але виявляли їх відсутність.

Наш додаток написано на рубіні, і у нас є середовище Cygwin на вузлах Windows. Це може нам допомогти.

Один із варіантів, який я розглядаю, - це проста послуга HTTP на кластері серверів, на яких встановлений обсяг GlusterFS. Оскільки все, що ми робимо з Gluster, це по суті операції GET / PUT, що здається легко передавальним на метод передачі файлів на основі HTTP. Помістіть їх за пару вантажистів, і вузли Windows можуть HTTP PUT до вмісту синього серця.

Я не знаю, як підтримуватиметься когерентність GlusterFS . Рівень HTTP-проксі вводить достатню затримку між тим, коли вузол обробки повідомляє, що це робиться з записом, і коли він фактично видно на томі GlusterFS, що я переживаю за подальші етапи обробки, намагаючись забрати файл, не буде знайти це. Я майже впевнений, що використання direct-io-mode=enableопції mount допоможе, але я не впевнений, чи цього достатньо . Що ще я повинен зробити, щоб поліпшити когерентність?

Або я повинен повністю переслідувати інший метод?


Як Том вказав нижче, NFS - це інший варіант. Тому я пройшов тест. Оскільки у вищезазначених файлах є імена, що надаються клієнтом, які нам потрібно зберегти, і вони можуть надходити будь-якою мовою, нам потрібно зберегти імена файлів. Тому я створив каталог з цими файлами:

Каталог NFS з хорошими іменами, на сервері

Коли я монтую його із системи Server 2008 R2 із встановленим клієнтом NFS, я отримую каталог, що містить такий перелік:

Каталог NFS з невірними іменами на клієнті

Ясна річ, що Unicode не зберігається. Тож NFS не буде працювати для мене.


Я вважаю, що команда Samba вважає ctdbстабільним та готовим до використання для виробництва, і перше речення у посиланні, яке ви надали, робить друге недійсним, тому що якщо воно ніколи не було оновлено. Я планував це встановити, але перед тим, як обійтись до цього, я переключив роботу на майже вільне середовище.
Свен

Яку версію Windows ви шукаєте?
Том О'Коннор

@ TomO'Connor Як зазначено в тезі, Windows 7. Хоча, сервер 2008 R2 буде в якийсь момент.
sysadmin1138

Я гадаю, що про Cygwin не йдеться?
Том О'Коннор

Відповіді:


5

Мені подобається GlusterFS. Насправді я обожнюю GlusterFS. Поки ви можете надати йому деяку виділену пропускну здатність, все добре.

Одна з найкращих речей щодо GlusterFS - це використання її з NFS. Одне з дивовижних речей, з якими я працював останнім часом, - це NFS на Windows 7 та 2k8R2 .

Ось що б я зробив.

  1. Налаштуйте 2 сервери GlusterFS, які можуть експортувати NFS.
  2. Встановіть між ними зв’язок серцебиття.
  3. Можливо, розгортати щось на зразок Heartbeat / Pacemaker?
  4. Налаштуйте віртуальний IP (VIP) між своїми вузлами Gluster.
  5. Підключіть картографічні мережеві накопичувачі Windows boxen за допомогою IP-адреси VIP.
  6. Перевірте все, що ви можете собі уявити.

Кластеризація Samba звучить страшно, і навіть якщо ви це зробите, Samba все ще не має можливості надійно поводитися в деяких мережах Windows (все, що відповідає сумісності домену NT4, ніколи не може пройти це).

Я думаю, що оскільки кожен вузол глюстера знаходиться в розподіленому, реплікуваному режимі, то теоретично ви повинні мати можливість підключитися до будь-якого і дозволити йому турбуватися про переміщення ваших даних. Як результат, серцебиття повинно бути тією дією, яка здійснює перенаправлення та контроль того, з ким ви говорите.

Що стосується вашого

  • Підрахунок файлів може потрапити в десятки мільйонів.

Я пропоную вам дослідити використання XFS як базової файлової системи, оскільки це досить добре з великими файловими системами та підтримується під GlusterFS


Зараз я використовую XFS! Ми деякий час повернулися до NFS3, щоб обробити початкову функцію введення, але вона виявилася непрацездатною через відсутність підтримки Unicode. Це було з сервером NFS в Windows. "会計 2012.xls" не буде правильним, і це дуже важливо. Але ... я не знав, що про 7 / R2, і варто розслідувати!
sysadmin1138

Тому я пройшов тест. На жаль, це не принесло хороших результатів (див. Оновлення питання). Проблема Unicode виглядає двонаправленою.
sysadmin1138

Баггер. Тоді я не в ідеях. Цікаво, чи можете ви поставити Самба за VIP.
Том О'Коннор

Робоча група так, Домен (який ми використовуємо) ні. Таким чином, моя проблема.
sysadmin1138

З іншого боку, після розмови з розробниками збереження імен файлів не є настільки критичним, як я очікував. Мабуть, до тих пір, поки ми зможемо отримати їх на першому етапі (проковтнути), база даних буде відслідковувати імена. Таким чином, NFS є дійсним варіантом тут (як тільки ми отримаємо правильні версії Windows).
sysadmin1138

1

Можливо, ви можете подумати в рішенні HA ... використовуйте LDAP для аутентифікації (це може бути реплікація стільки серверів LDAP, які ви хочете) та введіть IP для прослуховування служб SMB.

Цей IP буде плавати на головному сервері. Якщо це не працює, серцебиття може запускати послуги на другому сервері.

Ці сервери матимуть точку кріплення до glusterfs, і тоді всі дані будуть там.

Це можливе рішення, і це так просто керувати ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.