OmniOS / ZFS / Windows 7: "Зберегти як" зсередини програм затримує 5 секунд для всіх розмірів файлів через CIFS / SMB


9

Ситуація:

Наступна дивна проблема виникла на одному файловому сервері, на якому працює OmniOS r151018 (95eaa7e), який обслуговує файли через SMB для гостей Windows та OS X.

Збереження певних файлів (.docx, .xlsx, деяких зображень) через діалогове вікно "Зберегти як ..." на SMB-спільному доступі призводить до відставання приблизно від 3 до 5 секунд, де програма взагалі не реагує, після цього файл зберігається нормально.

Проблема сталася «за ніч», не роблячи нічого з сервером, але важко визначити точну дату, оскільки скарги користувачів надійшли лише через деякий час після першого появи. Після перезавантаження сервера один vdev дзеркального кореневого пулу був недоступний, але при більш детальному огляді не виявлено жодних несправностей на пристрої, і він був повторно приєднаний до пулу. Проблема все ще зберігається.

Деякі зауваження:

  • Це відбувається у всіх клієнтів Windows 7
  • Це відбувається для всіх розмірів файлів
  • Це відбувається на всіх акціях цієї машини, незалежно від дозволів
  • Це відбувається для швидшого зберігання, імпортованого на хості через iSCSI з іншого сервера
  • Нормальна швидкість копіювання становить 110 Мб / сек через GB Ethernet
  • Дані та кореневий пул здаються нормальними
  • На інших файлових серверах цього не відбувається
  • Це не відбувається, коли файл зберігається локально, а потім копіюється через провідник
  • Це не відбувається в OS X (можна було протестувати лише OpenOffice)
  • dmesgпоказує кілька підрахунків NOTICE: bge0: interrupt: flags 0x0 - not updated?з різними значеннями, але це було і раніше, і не завдало шкоди

Подальші ідеї / плани:

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

  • Заміна мережевої картки Broadcom на карту Intel => не змінила значення
  • Замініть кореневий пул на SATA SSD (в даний час USB-накопичувачі пам'яті SLC, які добре працювали протягом 3 років) => не змінили значення
  • Перевірте мережу між собою (апаратно, підключившись безпосередньо до сервера)
  • Захоплення трафіку за допомогою WireShark: важко, якщо ви не знаєте, що саме шукаєте
  • Поверніться до попереднього завантажувального середовища / версії OmniOS, щоб виключити конфлікти програмного забезпечення => не змінилося
  • Відмовляйте оновлення Windows / Office, щоб виключити помилки
  • Видалення файлів із :(двокрапкою) у назви файлів зі знімків, пропозиція txgsync на потоці reddit, створеній ewwhite =>, не змінила значення

    Я бачив щось подібне до цього, коли функція Windows "попередніх версій" увімкнена автоматичними знімками, що містять символ ":". Просто стріляйте на вітер із цим, але, можливо, варто поглянути, оскільки символ ":" заборонений у назвах файлів Windows.

  • Моніторинг доступу до файлів: як запропонував shodanshok, я використовував DTraceі цей скрипт для контролю доступу до файлів. Я використовував це під час збереження відкритого файлу alread, видалення неспорідненого виводу та особистої інформації, а результат зосереджується навколо трьох файлів:

    CPU ID       FUNCTION:NAME
    1   18753    fop_open:entry Open: Workbook
    0   18181 fop_create:return Create: temp_1
    0   18753    fop_open:entry Open: temp_1
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_1
    0   18888  fop_rename:entry Rename: Workbook -> temp_2
    0   18888  fop_rename:entry Rename: temp_1 -> Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_2
    0   18892  fop_remove:entry Remove: temp_2
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    

    Та сама процедура на іншому сервері, де проблема не виникає, дає аналогічний результат:

    CPU ID       FUNCTION:NAME
    1   25182 fop_create:return Create: temp_1
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25889  fop_rename:entry Rename: Workbook -> temp_2
    1   25889  fop_rename:entry Rename: temp_1 -> Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_2
    1   25893  fop_remove:entry Remove: temp_2
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    

    Я також додав часові позначки ( walltimestamp) до сценарію, але в обох випадках усі файлові операції відбуваються в одну і ту ж секунду. => не змінився

  • Імпортуйте диски на інший хост, щоб перевірити, чи фрагментація пулу чи диски несправні => не змінили
  • Перемістіть дані та кореневий пул на однаковій машині, щоб виключити з'єднання кабелів, материнську плату тощо. => Проблема не зникає, тому вона повинна бути або кореневим пулом (програмним забезпеченням), або конкретним обладнанням, несумісним із програмним забезпеченням (або раптом стало несумісним. ..)

Чи можете ви запропонувати щось інше, що стане причиною такої поведінки? Або ви відчули щось подібне? оскільки я не зміг знайти нічого корисного в Інтернеті, я підозрюю, що це або дивна апаратна проблема (оскільки вона обмежена однією машиною), або проблема з Windows / Office.



@ewwhite Дякую за створення теми! Пропозиція була дійсно цікавою, оскільки насправді деякі знімки акцій мали файли perl, які були скопійовані з машини Unix, але видалення їх та знімків не змінило поведінку.
користувач121391

Під час збереження файлу на спільному доступі Office має особливу поведінку: спочатку створюється порожній файл, потім видаляється, нарешті він відновлює і зберігає файл із вашими даними. Якщо один із цих кроків триватиме більше часу, ніж очікувалося, вікно "Зберегти як" фактично заморожено. Чи у вашій системі є якісь засоби для відстеження доступу на рівні файлів? Чи можете ви налагодити сесію SMB? Ви використовуєте щось подібне до Samba або ZFS інтегрованого сервера SMB?
shodanshok

@shodanshok Дякую за вашу пропозицію, дивіться моє оновлене запитання щодо результатів. Я не знаю, чому замовлення трохи відключено, але часові позначки схожі на обох машинах. Що стосується вашого питання, це інтегрований CIFS-сервер Solaris / illos, який наразі використовує SMB 2.1 IIRC.
користувач121391

Можливо, антивірусна програма у клієнтів Windows 7 спричиняє затримку?
Janne Pikkarainen

Відповіді:


4

Рішення:

Проблема стосується лише OmniOS r151018, а не попередніх версій. Ця тема в списку розсилки omnios-дискусії стосувалася саме моєї проблеми, цитата Джеффа:

Я побачив подібну нитку на форумі Nexenta. Здається, проблема з opslock. Я відключив opslock, і ми зараз добре.

svccfg -s network/smb/server setprop smbd/oplock_enable=false

Не впевнений, чому це не кусає більше людей.

Отже, biteCount++;я здогадуюсь. Проблему було вирішено шляхом застосування виправлення та швидкого перезавантаження.

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


Як я потрапив:

Після декількох різних тестів, як це було показано в оновленому запитанні, я звузив це до проблем із програмним забезпеченням або конфліктів апаратних / драйверів щодо конкретного обладнання. Щоб виключити друге, я встановив дві свіжі віртуальні машини OmniOS, r151018 і r151016 на інший хост і вручну налаштував основну частку SMB на кожному з них.

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

Шукаючи способу оновлення пакетів один за одним, я переглянув список розсилки та шукав протягом smbостанніх 6 місяців, де з’явилося правильне рішення / та сама проблема, що датується травнем.

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