Рейтинг:0

Автоматизированный способ тестирования сетевого чтения/записи?

флаг in

У меня настроено следующее:

У меня есть клиенты, использующие программное обеспечение, которое «написано с использованием стандартных API Windows для чтения и записи», которое читает и записывает файлы на сервер Windows. Все клиенты — это машины с Windows 10, и все они используют программное обеспечение хранилища под названием PDM от Solidworks.

Сервер представляет собой сервер Windows 2016, на котором установлено серверное программное обеспечение PDM.

Основной рабочий процесс заключается в том, что пользователь работает с файлом локально. Когда они помещают файл в хранилище, файл переносится с их жесткого диска на серверное программное обеспечение. Сервер переименовывает файл и сохраняет его в папку. Поскольку у меня нет доступа к коду, я не могу точно определить, как это делается. Я считаю, что переименование предназначено для того, чтобы пользователь не «возился» с самим файлом, поскольку файл хранится в загадочной папке и структуре именования файлов.

Мы наблюдаем спорадические проблемы с файлами, которые в конечном итоге повреждаются при загрузке в какой-то момент в будущем. Все эти «поврежденные» файлы, кажется, можно «сохранить», используя утомительную и длительную процедуру ручной загрузки. Поскольку эта проблема является моим хранилищем данных, я хочу отследить проблему.

По словам сотрудников службы поддержки хранилища, «в 95% случаев эти проблемы связаны с сервером или сетью, а не с программным обеспечением сервера хранилища».

Есть ли известный вам, сетевым администраторам, способ многократного чтения и записи файлов на клиент/сервер и обратно, чтобы проверить наличие проблем с чтением и записью файлов по сети.Моя идея состоит в том, чтобы запустить клиент/сервер, который много-много раз передает файлы и проверяет хэши или что-то в этом роде.

Рейтинг:0
флаг cn
frr

Проверка передачи файлов по сети: Иметь файловый сервер MS и два клиента (чтобы возможное локальное кэширование на клиенте не мешало вашим результатам).

  • На клиентской машине №1 создайте файлы (со случайным содержимым?) и сохраните их на сервере. В то же время вычислите контрольную сумму (скажем, md5sum?) для каждого тестового файла и, возможно, просто добавьте суммы, строку за строкой, в «файл индекса передачи суммы» на том же сервере.

  • На клиентской машине № 2 загрузите файлы один за другим с сервера и посчитайте контрольную сумму. На самом деле вы можете просто запустить инструмент контрольной суммы, такой как md5sum, для каждого файла в сопоставленном сетевом ресурсе (с машины клиента № 2). И сравните контрольные суммы с тем, что произвела исходная машина.

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

Если у вас есть конкретный пример / инцидент с повреждением данных, есть ли способ получить исходный файл и поврежденный файл, которые должны были быть идентичными? В каком формате эти файлы? Является ли это машиночитаемым текстовым файлом (например, XML) или чем-то двоичным? Возможно, содержимое можно было бы сравнить, чтобы точно увидеть, как выглядит повреждение. Характер коррупции может дать дополнительные подсказки относительно того, откуда это могло исходить.

Помимо классического "diff", который работает с текстом ASCII, я помню есть инструменты специально для бинарного сравнения.

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

Даже если у вас больше нет нормального исходного файла: если поврежденный файл в конечном итоге будет отклонен частью программного обеспечения, анализирующего его, было бы неплохо получить более подробный журнал отладки, посмотреть, где парсер останавливается, где файл больше не является «правильным форматом», но я понимаю, что в программном обеспечении с закрытым исходным кодом, работающем с закрытым форматом файла, у вас обычно нет такой возможности.

Люди говорят, что это как раз и есть цель корпоративного оборудования для хранения данных, которое поддерживает «метаданные целостности» по всей «цепочке сигналов» — т. е. современные версии SCSI и производных технологий межсоединений (FC, SAS) и соответствующий класс вращающейся ржавчины, не уверен если есть SSD с такой возможностью. Вместо того, чтобы давать конкретные указатели, я предлагаю вам спросите Google о целостности данных в Linux. Скорее всего, это именно то, что вас укусило, на аппаратном уровне.Что вы знаете о базовой подсистеме хранения на сервере?

И, хотя это мизерный шанс: если у вас вообще проблемы с открытием старый файлы: обновляется ли прикладное программное обеспечение, работающее с файлами? Может ли это быть связано с тем, что обновление приложения нарушает совместимость со старыми данными? Если у вас нет резервных копий всех файлов, не могли бы вы организовать запись где-нибудь контрольной суммы вместе с именем файла, размером и отметкой времени, чтобы увидеть, является ли файл, извлеченный через 6 месяцев, тем же или другим?

Спасает "утомительная процедура ручного заряжания" - что именно? Какой-то алгоритм восстановления работает с битым файлом? Или просто извлечь исходный файл из соответствующей старой резервной копии? В любом случае есть некоторая возможность узнать больше о характере проблемы: либо вы сможете сравнить поврежденный файл с хорошим исходным файлом, либо, возможно, узнать, что на самом деле делает процесс «восстановления» с «поврежденным» файлом. .

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.