Реферат по теме выпускной работы
Содержание
- Введение
- 1. Анализ существующих решений и обоснование применения машинного обучения
- 1.1 Ограничения традиционных подходов.
- 1.2 Превосходство подхода на основе машинного обучения
- 1.3 Обоснование выбора бинарной классификации
- 2. Архитектура интеллектуальной системы диагностики
- 2.1 Общая многослойная архитектура
- 2.2 Алгоритм работы ML-модуля
- 2.3 Решение проблемы кроссплатформенности данных для ML
- 2.4 Выбор и обоснование алгоритмов машинного обучения.
- 3. Реализация и ожидаемые результаты
- 3.1 Технологический стек реализации
- 3.2 План реализации ML-компонента.
- 3.3 Ожидаемые результаты
- 3.4 Стратегия интеграции и обеспечения надежности ML-компонента
- Заключение
- Список источников
Введение
В эпоху цифровой трансформации и взрывного роста данных надежность систем хранения становится критически важным фактором экономической и операционной стабильности организаций любого масштаба [1]. Традиционные методы диагностики, основанные на статическом анализе данных самодиагностики S.M.A.R.T. и реактивном мониторинге пороговых значений, стремительно устаревают. Они не способны выявлять сложные, нелинейные взаимосвязи между десятками диагностических параметров, которые являются ранними предвестниками сбоев [2].
Актуальность темы обусловлена наличием трех ключевых проблемных областей в существующих решениях, таких как CrystalDiskInfo или пакет smartmontools. Во-первых, это платформенная фрагментация, когда мощный инструмент доступен только для одной операционной системы. Во-вторых, реактивность и пассивность, при которых система лишь констатирует факт выхода параметра за порог, но не прогнозирует развитие ситуации. В-третьих, отсутствие интеллектуального анализа, не позволяющее перейти от простого наблюдения к предиктивному обслуживанию [3, 4]. Внедрение методов машинного обучения (МО) для анализа S.M.A.R.T.-атрибутов открывает путь к созданию принципиально нового класса систем — интеллектуальных, проактивных и способных количественно оценивать риск отказа накопителя [5].
Таким образом, разработка кроссплатформенной системы, объединяющей глубокий сбор низкоуровневых данных с алгоритмами машинного обучения для прогнозирования отказов, представляет собой актуальную научно-практическую задачу, решение которой позволит существенно повысить отказоустойчивость ИТ-инфраструктур.
Для достижения поставленной цели необходимо решить следующие задачи:
- Провести сравнительный анализ программных интерфейсов и методов доступа к диагностической информации о дисках в средах Windows (WMI, WinAPI) и Linux (sysfs, ioctl, libudev) [6].
- Разработать модульную архитектуру системы с четким разделением слоев: абстракции платформы, анализа данных и машинного обучения.
- Реализовать механизмы сбора и корреляции данных об иерархии устройств хранения (физические диски, логические разделы, S.M.A.R.T.-атрибуты).
- Исследовать, обучить и интегрировать модель машинного обучения для решения задачи бинарной классификации состояния дисков («стабилен» / «в зоне риска»).
- Разработать кроссплатформенный пользовательский интерфейс и провести комплексное тестирование системы на различных конфигурациях оборудования.
Объект исследования — методы сбора и интеллектуального анализа диагностических данных дисковых накопителей и кроссплатформенные программные интерфейсы.
Предмет исследования — методы машинного обучения для интеллектуального анализа диагностических данных дискового накопителя и возможности языка Python для реализации кроссплатформенных приложений.
Методология исследования включает системный анализ, объектно-ориентированное проектирование с использованием паттернов, методы машинного обучения для классификации (Random Forest, Gradient Boosting), экспериментальную разработку на Python и сравнительное тестирование.
Научная новизна работы заключается в следующем:
- Предложена архитектурная модель кроссплатформенной системы, органично интегрирующая слой сбора низкоуровневых данных и независимый модуль машинного обучения для прогнозирования отказов.
- Получила дальнейшее развитие методика обработки данных — от платформозависимого сбора сырых S.M.A.R.T.-атрибутов до их преобразования в вектор признаков для ML-модели.
Практическая значимость определяется тем, что результатом работы станет готовый к использованию инструмент с открытым исходным кодом. Он будет полезен:
- системным администраторам для проактивного планирования замены накопителей в гетерогенных парках;
- разработчикам встроенных систем и ЦОД как библиотека для интеграции в системы мониторинга;
- исследователям как платформа для сбора анонимных данных и валидации новых алгоритмов прогнозирования отказов.
1. Анализ существующих решений и обоснование применения машинного обучения
1.1 Ограничения традиционных подходов. Существующий рынок инструментов диагностики можно условно разделить на три категории, каждая из которых имеет существенные недостатки для реализации предиктивной аналитики [7]:
- утилиты производителей (Samsung Magician, WD Dashboard): обладают глубоким доступом к фирменным функциям, но работают только с дисками своего бренда, не являясь универсальными;
- универсальные мониторы (CrystalDiskInfo, HD Tune): предоставляют удобный интерфейс и базовый анализ, но их логика основана на жестких, зачастую устаревших эвристиках (if temperature > 60 then alert). Они не обучаемы и не адаптируются к специфике конкретных моделей дисков или паттернов их износа;
- профессиональные системы мониторинга (Zabbix, Nagios с плагинами): позволяют настроить сбор S.M.A.R.T., но анализ остается реактивным и пороговым. Создание сложных, многопараметрических правил прогнозирования в них чрезвычайно трудоемко и требует экспертных знаний [8].
1.2 Превосходство подхода на основе машинного обучения. Ключевое преимущество ML заключается в способности автоматически выявлять сложные, неочевидные для человека корреляции между параметрами. Исследования, например, анализ массивов данных от Backblaze, показывают, что отказ диска редко предсказывается одним критическим атрибутом. Чаще это комбинация изменений в нескольких, на первый взгляд, некритичных параметрах [9]. Алгоритм, такой как Random Forest, способен на обучающей выборке, помеченной исходами (отказ/работа), построить модель, которая найдет эти паттерны и будет обобщать их на новых данных. Это позволяет системе выдавать не просто предупреждение о превышении порога, а вероятностную оценку риска («Вероятность отказа в ближайшие 30 дней — 87%»), что является качественно новым уровнем информации для принятия решения [10].
1.3 Обоснование выбора бинарной классификации. В рамках магистерской диссертации в качестве достижимой и максимально прагматичной цели выбрана задача бинарной классификации. В отличие от более сложных задач регрессии (прогноз точного времени отказа) или мультиклассовой классификации (определение типа неисправности), бинарная классификация позволяет сосредоточить усилия на создании надежного, интерпретируемого и легко интегрируемого ML-модуля, который станет ядром системы предиктивной аналитики [11].
2. Архитектура интеллектуальной системы диагностики
2.1 Общая многослойная архитектура. Система будет спроектирована с учётом принципов SOLID и разделения ответственности, что обеспечит её гибкость, тестируемость и возможность независимой модернизации компонентов (например, замены ML-модели) [12].
- Слой абстракции платформы (Platform Abstraction Layer – PAL): реализует паттерн «Абстрактная фабрика». Конкретные классы (например, WindowsDataFetcher или LinuxDataFetcher) инкапсулируют все особенности работы с WMI, wmic (пример на рисунке 1), lsblk (пример на рисунке 3), udevadm и smartctl (пример на рисунке 3). Их единственная задача — предоставить верхним слоям единый поток структурированных данных в независимом от ОС формате.
- Слой моделей данных (Data Model Layer): определяет сущности предметной области: PhysicalDisk, LogicalVolume, SmartAttribute. Эти классы являются контейнерами для информации, циркулирующей между всеми модулями системы.
- Слой бизнес-логики и анализа (Core & Analysis Layer): координирует процесс диагностики. Здесь расположены:
- менеджер диагностики (DiagnosticsManager): управляет вызовами PAL, строит иерархию устройств;
- анализатор на статических правилах (RuleBasedAnalyzer): выполняет первичную, быструю проверку по заведомо критическим условиям (температура, количество Current_Pending_Sector);
- ML-Предиктор (MLPredictor): ключевой инновационный компонент. Загружает сериализованную обученную модель (файл .pkl), выполняет препроцессинг полученных S.M.A.R.T.-атрибутов (масштабирование, кодирование) и запускает модель для получения прогноза (в нашем случае просто классификация).
- Слой представления (Presentation Layer): абстрагированный интерфейс для вывода. Может быть реализован как консольное приложение, GUI или веб-интерфейс.
2.2 Алгоритм работы ML-модуля. Работа MLPredictor реализуется в виде четкого конвейера (pipeline), вызываемого для каждого физического диска после сбора его S.M.A.R.T.-атрибутов. Предварительный пример, как это может выглядеть, представлен на рисунке 4.
Интеграция этого модуля делает систему не сборщиком данных, а экспертной системой, способной давать количественно обоснованные рекомендации.
2.3 Решение проблемы кроссплатформенности данных для ML. Важной инженерной задачей является обеспечение идентичности входных данных для ML-модели независимо от ОС. Для этого в PAL реализуется этап нормализации S.M.A.R.T.-атрибутов, который приводит имена и форматы значений, полученные от smartctl в Windows и Linux, к единому стандартному виду, определенному на этапе обучения модели.
2.4 Выбор и обоснование алгоритмов машинного обучения. Для решения задачи бинарной классификации отказов дисков были рассмотрены классические алгоритмы, хорошо зарекомендовавшие себя на структурированных табличных данных, каковыми являются S.M.A.R.T.-атрибуты [13]. Логистическая регрессия рассматривалась как базовый и интерпретируемый метод, позволяющий оценить значимость каждого при-знака [14]. Однако для выявления сложных нелинейных взаимосвязей между параметрами (например, корреляции между температурой и скоростью накопления ошибок чтения) были выбраны более мощные алгоритмы ансамблевого обучения [15]:
- random Forest (случайный лес): этот алгоритм был выбран в качестве основного кандидата в силу своей устойчивости к переобучению, способности работать с данными в различном масштабе и возможности оценивать важность признаков, что критически важно для интерпретируемости результатов модели и возможного упрощения итогового пайплайна [16];
- gradient Boosting (градиентный бустинг, XGBoost/LightGBM): данные алгоритмы рассматривались как альтернатива, способная потенциально обеспечить более высокую точность за счет последовательной оптимизации, однако требующая более тщательной настройки гиперпараметров [17].
Пайплайн обработки данных для обучения модели включет следующие ключевые этапы, соответствующие современным практикам Data Science [18]:
- Очистка и обработка пропусков: заполнение пропущенных значений медианными для числовых признаков.
- Отбор признаков: анализ важности признаков с помощью встроенных методов Random Forest и удаление слабоинформативных атрибутов для борьбы с проклятием размерности и ускорения работы модели [19].
- Масштабирование: приведение всех числовых признаков к единому масштабу с использованием StandardScaler для корректной работы алгоритмов, чувствительных к дисперсии данных [20].
- Стратифицированное разделение: разделение датасета на обучающую (70%), и тестовую (30%) выборки с сохранением распределения целевого класса для обеспечения репрезентативности [21].
3. Реализация и ожидаемые результаты
3.1 Технологический стек реализации. Для разработки прототипа выбран язык Python, как лидер в области машинного обучения и кроссплатформенной разработки [22]. Ключевые зависимости:
- для сбора данных: psutil, wmi (Windows), pyudev (Linux), subprocess (для вызова smartctl);
- для машинного обучения: scikit-learn (обучение моделей, препроцессинг), pandas (работа с данными), joblib (сериализация модели);
- для GUI: фреймворк Flet/PyQt/Tkinter.
3.2 План реализации ML-компонента.
- Подготовка датасета: использование публичного датасета Backblaze [23]. Выборка данных за определенный период, очистка, формирование целевой переменной failure (0/1). Отбор наиболее информативных признаков (Feature Importance) для уменьшения размерности модели.
- Эксперименты и обучение: обучение и сравнение нескольких классических алгоритмов (Logistic Regression, Random Forest, Gradient Boosting) на выделенной валидационной выборке. Оптимизация гиперпараметров с фокусом на максимизацию Recall (полноты), чтобы минимизировать количество пропущенных реальных отказов.
- Интеграция и пайплайн: создание итогового пайплайна, включающего этапы масштабирования признаков и сам классификатор, его сериализация и встраивание в код системы.
3.3 Ожидаемые результаты. В результате выполнения работы будет получено:
- архитектурное решение в виде схем и диаграмм, демонстрирующее интеграцию ML-модуля в кроссплатформенную систему.
- функциональный прототип программного обеспечения, включающий:
- автоматический сбор и корреляцию диагностических данных в Windows и Linux;
- рабочий модуль прогнозирования отказов, выдающий оценку риска;
- интуитивный графический интерфейс для отображения состояния и прогнозов.
3.4 Стратегия интеграции и обеспечения надежности ML-компонента. Интеграция ML-модуля в производственное диагностическое приложение предъявляет особые требования к надежности и отказоустойчивости [24]. Для их обеспечения планируется принять следующие проектные решения:
Сериализация и легковесность: обученный пайплайн (включая этапы препроцессинга) будет сериализоваться в компактный бинарный файл с помощью joblib [25]. Это позволит хранить модель как ресурс приложения и загружать её без необходимости установки тяжелых ML-библиотек для инференса в продакшн-среде, что соответствует принципам MLOps [26].
Обработка исключений и деградация: ML-предиктор необходимо спроектировать с учетом возможных сбоев. В случае, если входные данные не соответствуют ожидаемому формату или модель не сможет выполнить прогноз, модуль должен логировать ошибку и вернуть системе статус UNKNOWN, при этом позволяя продолжить работу основному диагностическому контуру на основе статических правил. Этот принцип «graceful degradation» гарантирует работоспособность всей системы даже при проблемах в ML-части, что является стандартом для критически важных систем [27].
Оценка эффективности интегрированного решения будет проводиться по двум ключевым направлениям:
- точность прогноза: на тестовой выборке будет измеряться не только общая точность (Accuracy), но и метрики Precision (точность) и Recall (полнота). Для бизнес-задачи прогноза отказов максимизация Recall (минимизация ложноположительных срабатываний) является приоритетной, так как стоимость пропущенного реального отказа многократно выше ложного предупреждения;
- производительность: будет замеряться время, которое ML-модуль добавляет к общему циклу диагностики одного диска. Цель — удержать эту задержку в пределах 100-200 миллисекунд, что делает прогноз практически мгновенным для пользователя и не нарушает интерактивность работы приложения.
Эти дополнения демонстрируют не только факт использования машинного обучения, но и глубокое понимание всего жизненного цикла ML-модели — от выбора алгоритма и подготовки данных до промышленной интеграции и оценки её реального вклада в работу системы.
Заключение
Предлагаемая работа направлена на создание не просто очередного инструмента диагностики, а интеллектуальной системы предиктивной аналитики. Синтез глубокого низкоуровневого доступа к данным, обеспечиваемого системным программированием, с прогнозной мощью машинного обучения открывает новые возможности для обеспечения надежности систем хранения. Реализованный прототип станет значимым шагом в направлении создания самоуправляемых (autonomous) ИТ-инфраструктур, способных предвидеть и предотвращать сбои до их возникновения.
Список источников
- Таненбаум Э., Бос Х. Современные операционные системы. – 5-е изд. – СПб.: Питер, 2022. – 1120 с.
- Pinheiro E., Weber W., Barroso L. Failure Trends in a Large Disk Drive Population // Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST '07). – San Jose, CA, USA, 2007. – P. 17-28.
- Софт для проверки SSD [Электронный ресурс] // Клуб DNS. – 2023. – Режим доступа: https://club.dns-shop.ru/blog/t-477-ssd-nakopiteli-m-2/48924-soft-dlya-proverki-ssd/
- Программы для проверки жесткого диска на ошибки [Электронный ресурс] // remontka.pro. – 2023. – Режим доступа: https://remontka.pro/test-hdd/
- ГОСТ Р ИСО 13381-1-2016. Контроль состояния и диагностики машин. Общие руководство. – М.: Стандартинформ, 2017. – 20 с.
- Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. – 4-е изд. – СПб.: Питер, 2022. – 896 с.
- Предиктивная аналитика в сфере эксплуатации и ремонта оборудования [Электронный ресурс] // Хабр. - 2025. - Режим доступа: https://habr.com/ru/companies/se_blog/articles/941696/
- Лифтинг Н., Бэкел Б. Zabbix 7: мониторинг ИТ-инфраструктуры - М.: Sprint Book, 2025. - 512 с.
- Schroeder B., Lagisetty R., Merchant A. Flash Reliability in Production: The Expected and the Unexpected // Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST '16). – Santa Clara, CA, USA, 2016. – P. 67–80.
- Harrington P. Machine Learning in Action – NY: Manning Publications, 2012. – 384 p.
- Geron A. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. – 3rd ed. – Sebastopol, CA: O'Reilly Media, 2022. – 856 p.
- Фаулер М. Архитектура корпоративных программных приложений. – М.: Вильямс, 2007. – 544 с.
- Воронцов К. В. Математические методы обучения по прецедентам (теория обучения машин) – М., 2022. – 140 с.
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. – 2nd ed. – New York: Springer, 2017. – 745 p.
- Murphy K. P. Machine Learning: A Probabilistic Perspective. – Cambridge, MA: The MIT Press, 2012. – 1104 p.
- Breiman L. Random Forests // Machine Learning. – 2001. – Vol. 45, № 1. – P. 5–32.
- Chen T., Guestrin C. XGBoost: A Scalable Tree Boosting System // Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD '16). – San Francisco, CA, USA, 2016. – P. 785–794.
- McKinney W. Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter. – 3rd ed. – Sebastopol, CA: O'Reilly Media, 2022. – 550 p.
- Построение и отбор признаков. Часть 2: feature selection [Электронный ресурс] / proglib. - 2021 - Режим доступа: https://proglib.io/p/postroenie-i-otbor-priznakov-chast-2-feature-selection-2021-09-25
- Bishop C. M. Pattern Recognition and Machine Learning. – New York: Springer, 2006. – 738 p.
- Рашид Т. Создаем нейронную сеть. – СПб.: Питер, 2022. – 272 с.
- Лутц М. Изучаем Python. – 5-е изд., в 2 т. Т. 1. – М.: Вильямс, 2019. – 832 с.
- Backblaze Drive Stats: Hard Drive Reliability Test Data [Электронный ресурс] / Backblaze, Inc. – Режим доступа: https://www.backblaze.com/b2/hard-drive-test-data
- Соммервилл И. Инженерия программного обеспечения. – 6-е изд. – М.: Вильямс, 2002. – 624 с.
- Joblib: running Python functions as pipeline jobs [Электронный ресурс] / joblib 1.6dev0 documentation. – Режим доступа: https://joblib.readthedocs.io/en/latest/
- Хьюен Ч. Проектирование и эксплуатация систем машинного обучения. – Нур-Султан: Фолиант, 2023. – 368 с.
- Мифический человеко-месяц, или Как создаются программные системы / книги по программированию. – СПб.: Питер, 2022. – 368 с.