О надежности и доступности объектных хранилищ данных
д.т.н. А. Д. Хомоненко, Р. Абу Хасан Петербургский государственный университет путей сообщения Императора Александра I
Санкт-Петербург, Россия [email protected], [email protected]
Аннотация. Рассматриваются вопросы надежности и доступности распределенных объектно-ориентированных хранилищ геоинформационных систем. Обсуждаются меры, направленные на повышение характеристик надежности и доступности (кластерная архитектура, репликация данных, балансирование нагрузки, обеспечение безопасности данных, мониторинг и диагностика, управление версиями данных, обеспечение масштабируемости). Характеризуется популярная объектно-ориентированная система хранения данных с открытым исходным кодом Apache Cassandra, документоори-ентированные системы MongoDB, Couchbase, CouchDB, а также системы хранения данных Redis и MinIO.
Ключевые слова: объектные хранилища данных, ГИС, Apache Cassandra, MongoDB, Couchbase, CouchDB, Redis, MinIO, надежность, доступность.
Введение
Повышение надежности и доступности распределенных объектно-ориентированных хранилищ геоинформационных систем (ГИС) является актуальной задачей, поскольку такие хранилища обеспечивают хранение, управление и анализ пространственных данных. Объектно-ориентированные системы хранения данных, такие как Oracle Object Storage, позволяют хранить и управлять данными в виде объектов, что делает их более гибкими и эффективными в сравнении с реляционными системами.
Для повышения надежности и доступности данных в таких системах необходимо реализовать ряд мер:
1. Использование кластерной архитектуры. Распределенные объектно-ориентированные хранилища ГИС должны быть развернуты в кластере, что позволит обеспечить высокую доступность и масштабируемость системы. Кластеры ГИС состоят из нескольких серверов, каждый из которых обрабатывает определенный набор данных. Это позволяет распределить нагрузку на систему и обеспечить высокую производительность при большом количестве запросов.
2. Применение механизмов репликации данных. Для обеспечения отказоустойчивости системы необходимо предусмотреть механизмы репликации данных между узлами кластера. Это позволит обеспечить быстрое восстановление после сбоев и минимизирует время простоя системы. Технологии репликации данных позволяют автоматически дублировать данные на нескольких серверах для обеспечения их доступности в случае отказа одного из серверов.
3. Использование технологии автоматического балансировщика нагрузки. Балансировщик нагрузки позволяет равномерно распределить нагрузку между узлами кластера, обеспечивая оптимальное использование ресурсов системы.
4. Применение технологий обеспечения безопасности данных. В распределенных системах хранения данных важно обеспечить надежную защиту информации от несанкционированного доступа, использования и изменения. Для этого следует использовать шифрование данных, аутентификацию пользователей и авторизацию доступа к данным.
5. Мониторинг и диагностика системы. Необходимо осуществлять постоянный мониторинг работы системы и ее компонентов для выявления возможных проблем и своевременного их устранения.
6. Мониторинг и аналитика. Использование инструментов мониторинга и аналитики позволяет оперативно выявлять проблемы и прогнозировать неисправности.
7. Управление версиями данных. Важно обеспечить возможность управления версиями объектов для обеспечения возможности отката к предыдущим состояниям данных в случае возникновения ошибок или сбоев.
8. Обеспечение масштабируемости. Система должна быть спроектирована таким образом, чтобы она могла легко масштабироваться в соответствии с ростом объема данных и увеличением нагрузки на систему.
9. Обучение и повышение квалификации персонала, ответственного за обслуживание и эксплуатацию систем хранения данных.
10. Тестирование и сценарии восстановления. Регулярное тестирование процедур восстановления данных и создание сценариев восстановления помогут убедиться в работоспособности мер безопасности и восстановления в случае сбоев.
11. Планирование аварийных ситуаций. Разработка планов и процедур для реагирования на аварийные ситуации поможет минимизировать потери в случае серьезных инцидентов.
Соблюдение этих рекомендаций позволит существенно повысить надежность и доступность распределенных объектно-ориентированных хранилищ данных ГИС, что в свою очередь обеспечит эффективность и безопасность работы с пространственными данными. Схема архитектуры объектного хранилища данных приведена на рисунке 1.
На железнодорожном транспорте распределенные объектно-ориентированные хранилища данных используются для управления информацией о маршрутах, расписании движения поездов, состоянии инфраструктуры и других аспектах работы железнодорожного транспорта.
Моделирование надежности и доступности хранилищ данных является важным аспектом для любой железнодорожной системы, так как это напрямую влияет на безопасность и эффективность перевозок. В объектно-ориентиро-
Архитектура ХД
Оперативные базы данных (ОПТ)
ц
Другие
ИСТОЧНИКИ
Эрсгракиля Тра исфсрмапля Загрузка Обновлю нне
Мониторинг
и интеграция
OLAP-сервер
Хранилище данных
Анализ Запросы Отчеты Разведка
ланных
Вшрины ланных
m
Источники данных
JL
!
Хранение информации
J \_)_IL
OLAP-
процессор
т
Внешний интерфейс
Рис. 1. Схема архитектуры объектного хранилища данных
ванном подходе к моделированию данных надежность и доступность могут быть определены через следующие аспекты:
1. Протоколы связи. Должны быть надежными и обеспечивать высокую доступность для передачи данных между объектами.
2. Аппаратное обеспечение. Должно быть надежным и иметь возможность восстановления после сбоев.
3. Точность данных. Надежность данных включает в себя точность и целостность информации. Ошибки в данных могут привести к негативным последствиям в железнодорожной системе, поэтому важно обеспечить высокую точность данных.
4. Программное обеспечение. Должно обеспечивать отказоустойчивость и возможность восстановления после ошибок.
5. Человеческий фактор. Обучение и подготовка персонала также играет важную роль в обеспечении надежности и доступности системы.
6. Резервное копирование и восстановление данных. Необходимо обеспечить наличие надежных механизмов резервного копирования и восстановления данных в случае их потери.
Моделирование доступности и надежности в объектно-ориентированной ГИС включает в себя обеспечение надежности хранения данных, их доступности для пользователей и возможности восстановления после сбоев. Для этого используются различные механизмы, такие как резервное копирование данных, дублирование данных на разных серверах и использование георепликаторов для автоматического распределения данных по разным серверам.
Важным аспектом моделирования доступности и надежности является обеспечение также отказоустойчивости системы. Для этого используются механизмы автоматического перезапуска сервисов, переключения на резервные компоненты и мониторинг состояния системы.
Таким образом, моделирование доступности и надежности в объектно-ориентированных ГИС является важным аспектом, который обеспечивает надежность хранения данных, их доступность для пользователей и возможность восстановления после сбоев.
Для обеспечения доступности и надежности данных важно обеспечить эффективное управление данными, которое включает не только предотвращение сбоев и отказов, но и готовность быстро реагировать на них и восстанавливать работоспособность системы. Такой комплексный подход позволяет обеспечить надежность и доступность данных в железнодорожной системе, что критически важно для безопасности и эффективности железнодорожных перевозок.
Для оценки надежности и доступности хранилища данных необходимо провести анализ рисков, который включает анализ возможных отказов и их последствий, а также определение соответствующих мер по их предотвращению. Это может включать в себя тестирование системы, анализ данных о сбоях и анализ требований к производительности.
Объектно-ориентированные системы
хранения данных с открытым кодом
Объектно-ориентированные системы хранения данных с открытым исходным кодом в условиях импортозаме-щения представляют большой практический интерес. Одной из популярных объектно-ориентированных систем
хранения данных с открытым исходным кодом является Apache Cassandra. Она предназначена для работы с большими объемами данных и обеспечивает высокую доступность и масштабируемость. Другие популярные системы: MongoDB, Couchbase, Redis и MinIO. Все эти системы обеспечивают высокую производительность и гибкость в работе с данными [1-3].
Объектно-ориентированное моделирование данных — это метод организации и представления данных, который фокусируется на объектах и их свойствах, а не на связях между ними. Этот подход позволяет создавать более гибкие и модульные системы, которые легче поддерживать и изменять.
Одним из преимуществ объектно-ориентированного подхода является то, что он позволяет моделировать сложные системы более точно и детально. Это особенно полезно в железнодорожной отрасли, где важно учитывать множество различных факторов, таких как движение поездов, управление инфраструктурой и безопасность пассажиров.
Другим преимуществом является улучшение сотрудничества и командной работы. Структурированный и абстрактный подход к моделированию данных упрощает командную работу и обмен информацией между разработчиками и другими участниками проекта. Это способствует более эффективному взаимодействию и позволяет командам быстрее реагировать на новые требования и вызовы.
Развитие технологий влияет на функционирование железнодорожных систем, объектно-ориентированный подход позволяет более гибко интегрировать новые технологии и инновации. Это может включать в себя внедрение сенсоров, системы управления данными на основе искусственного интеллекта, мобильные приложения и многое другое.
Еще одним преимуществом является то, что объектно-ориентированный подход позволяет создавать системы, которые легко расширяются и адаптируются к новым требованиям. Это важно для железнодорожных систем, которые постоянно развиваются и изменяются.
Однако объектно-ориентированный подход также имеет свои недостатки. Одним из них является то, что он может быть более сложным для понимания и разработки, чем другие подходы. Кроме того, он может требовать больше ресурсов для работы, что может быть проблемой для небольших проектов.
Тем не менее объектно-ориентированный подход остается одним из наиболее популярных методов моделирования данных, и он широко используется в железнодорожной отрасли и также содействует успешному развитию и совершенствованию железнодорожных перевозок.
Apache Cassandra — это распределенная система управления базами данных (СУБД), разработанная компанией Apache Software Foundation. Она была создана для работы с очень большими объемами данных и поддерживает различные типы данных, включая строки, числа, даты и другие. Cassandra обладает высокой доступностью и масштабируемостью, что позволяет ей обрабатывать большое количество запросов без потери производительности. Кроме того, она имеет открытый исходный код, что дает возможность пользователям свободно использовать и модифицировать ее.
Cassandra также имеет ряд других преимуществ, которые делают ее привлекательной для использования в различных приложениях. Например, она поддерживает репликацию данных, что способствует обеспечению высокой доступности данных и помогает защитить их от потери. Кроме того, Cassandra имеет гибкий механизм запросов, который позволяет пользователям создавать свои собственные запросы и выполнять их на больших объемах данных. Наконец, Cassandra является одной из немногих систем управления базами данных, которые поддерживают работу с данными в режиме реального времени, что делает ее идеальной для использования в приложениях, требующих высокой производительности и надежности. Схожими особенностями обладают и две другие рассматриваемые СУБД, MongoDB и Redis.
MongoDB — это документоориентированная система управления базами данных, то есть данные хранятся в виде документов, которые могут содержать различные типы полей. MongoDB поддерживает различные типы документов, включая строки, числа, массивы и другие. Она также позволяет хранить данные в формате JSON, что упрощает работу с данными. MongoDB имеет высокую производительность и может обрабатывать большое количество запросов. Как и Cassandra, она имеет открытый исходный код и может быть использована бесплатно.
Среди документоориентированных СУБД можно отметить также Couchbase и CouchDB [4, 5], которые в определенном смысле конкурируют с MongoDB. Основные сравнительные их характеристики приведены в таблице 1.
Redis — это система хранения данных, которая используется для кеширования данных и обеспечения быстрого доступа к ним. Она имеет высокую производительность и поддерживает различные типы данных, такие как строки, числа, даты и другие. Redis также имеет открытый исходный код и может использоваться бесплатно.
Redis, как и любой другой инструмент, имеет свои недостатки и ограничения, например:
1. Ограничения на размер данных. Redis имеет ограничение на максимальный размер данных, которые могут быть сохранены в одной строке. Это может ограничить использование Redis для больших объемов данных.
2. Сложность настройки. Настройка Redis может быть сложной задачей для новичков, так как требует знания конфигураций и команд.
3. Производительность. Хотя Redis обычно имеет высокую производительность, в некоторых случаях она может быть ниже, чем у других систем хранения данных.
MinlO — это объектное хранилище с высокой производительностью, разработанное для развертывания в облаке или локально [6]. Оно предлагает масштабируемость, надежность и безопасность для хранения и управления данными. MinIO использует Amazon S3 API для обеспечения совместимости с другими сервисами и приложениями, поддерживающими этот протокол.
На рисунке 2 представлена архитектурная диаграмма MinIO, которая иллюстрирует внутренние компоненты и взаимосвязи в системе. Эта диаграмма помогает понять, как MinIO обрабатывает запросы, управляет данными и обеспечивает отказоустойчивость в кластере серверов.
Таблица 1
Характеристики документоориентированных СУБД
MongoDB Couchbase CouchDB
Тип Документоориентированная Документоориентированная Документоориентированная
Разработчик MongoDB Inc. Couchbase Inc. Apache Software Foundation
Долговечность Да Да Да
Пар аллельный доступ Master-slave MVCC MVCC
Кластеризация Шардинг, консистентное хеширование Шардинг, репликация Шардинг, консистентное хеширование
MapReduce Да Да Да
Запросы Internal API Поддержка сложных запросов Internal API (MapReduce) Internal API (MapReduce)
Поддерживаемые языки С, С#, C++, Clojure, ColdFusion, D, Dart, Delphi, Erlang, Go, Groovy, Haskell, Java, JavaScript, Lisp, Lua, MATLAB, Peri, PHP, PowerShell, Prolog, Python, R, Ruby, Scala, Smalltalk .Net, C, Clojure, ColdFusion, Erlang, Java, JavaScript, Go, Perl, PHP, Python, Ruby, Scala, Tcl C, C#, ColdFusion, Erlang, Haskell, Java, JavaScript, Lisp, Lua, Objective-C, OCaml, Perl, PHP, PL/SQL. Python, Ruby, Smalltalk
Операционная система сервера Linux, OS X, Solaris, Windows Linux, OS X, Windows Android, BSD, Linux, OS X, Solaris, Windows
Лицензия Open Source Open Source Open Source
Рис. 2. Схема архитектуры MinIO
Ключевые характеристики MinIO:
1. Производительность. Обеспечивает высокую пропускную способность и низкие задержки, что делает его идеальным для крупномасштабных инфраструктур.
2. Масштабируемость. Позволяет легко масштабировать хранилище по мере роста потребностей. Это может быть выполнено путем добавления новых узлов в кластер или увеличения объема дисков на существующих узлах.
3. Надежность. Поддерживает избыточное хранение данных на нескольких узлах, обеспечивая высокую доступность и надежность.
4. Безопасность. Предлагает различные механизмы аутентификации и шифрования для защиты данных от несанкционированного доступа.
5. Совместимость. Использует S3 API, что позволяет легко интегрировать его с другими сервисами AWS и приложениями.
6. Простота использования. Имеет простой и понятный веб-интерфейс, который упрощает управление и мониторинг системы.
7. Управление доступом и безопасностью. MinЮ предоставляет средства для управления доступом к данным и обеспечения безопасности. Возможно настраивать политики доступа, шифрование данных и аутентификацию для защиты данных.
8. Экономичное использование ресурсов. MinЮ оптимизирован для использования ресурсов и может быть запущен на относительно недорогом оборудовании, что делает его экономически привлекательным решением.
Объектно-ориентированное моделирование ГИС — это подход, который использует объекты и связи между ними для представления географической информации. Этот подход позволяет создавать модели, которые более точно отражают реальную географическую ситуацию и делает их более гибкими и легкими для изменения.
Заключение
Охарактеризованные объектно-ориентированные системы хранения данных, на наш взгляд, в настоящее время представляют наиболее приемлемые средства обеспечения требуемых характеристик надежности и доступности хранения данных. Обоснованный выбор того или иного средства для практического применения требует дополнительного учета требований, предъявляемого со стороны заказчиков и потребителей, стоимости оборудования и программного обеспечения и, возможно, ряда других условий.
Литература
1. Lawrence, R. Integration and Virtualization of Relational SQL and NoSQL Systems Including MySQL and MongoDB // Proceedings of the 2014 International Conference on Computational Science and Computational Intelligence (CSCI), (Las Vegas, NV, USA, 10-13 December 2014). — Institute of Electrical and Electronics Engineers, 2014. — Vol. 1. — Pp. 285-290. DOI: 10.1109/CSCI.2014.56.
2. Масич, Г. Ф. Аспекты надежности информационно-телекоммуникационной инфраструктуры / Г. Ф. Масич, С. Р. Латыпов, Д. П. Чугунов // Вестник Пермского федерального исследовательского центра. 2018. № 3. С. 25-40. DOI: 10.7242/1998-2097/2018.3.3.
3. Spillar, M. 10 Common NoSQL Use Cases for Modern Applications // Couchbase Blog. — 2023. — 02 March. URL: http://www.couchbase.com/blog/10-common-nosql-use-cases-for-modern-applications (дата обращения 16.03.2023).
4. Harrison, G. Next Generation Databases: NoSQL, NewSQL, and Big Data. — Berkeley (CA): Apress, 2015. — 256 p. DOI: 10.1007/978-1-4842-1329-2.
5. Choosing the Right NoSQL Database for the Job: A Quality Attribute Evaluation / J. R. Lourengo, B. Cabral, P. Car-reiro, [et al.] // Journal of Big Data. 2015. Vol. 2. Art No. 18. 26 p. DOI: 10.1186/s40537-015-0025-0.
6. Mellor, C. Traditional File and Block Storage Vendors Are Toast — Minio // Blocks & Files. — 2019.— 24 July. URL: http://blocksandfiles.com/2019/07/24/minio-object-stor-age-benchmarks (дата обращения 16.03.2023).
About the Reliability and Availability of Object Data Stores
Grand PhD A. D. Khomonenko, R. Abou Hasan Emperor Alexander I St. Petersburg State Transport University Saint Petersburg, Russia [email protected], [email protected]
Abstract. The issues of reliability and availability of distributed object-oriented storage of geographic information systems are considered. Measures aimed at improving reliability and availability characteristics are discussed (cluster architecture, data replication, load balancing, data security, monitoring and diagnostics, data versioning, scalability). The popular open source object-oriented data storage system Apache Cassandra, document-oriented systems MongoDB, Couchbase, CouchDB, as well as data storage systems Redis and MinIO are described.
Keywords: object data warehouses, GIS, Apache Cassandra, MongoDB, Couchbase, CouchDB, Redis, MinIO, reliability, availability.
References
1. Lawrence R. Integration and Virtualization of Relational SQL and NoSQL Systems Including MySQL and MongoDB, Proceedings of the 2014 International Conference on Computational Science and Computational Intelligence (CSCI), Las Vegas, NV, USA, 10-13 December 2014. Volume 1. Institute of Electrical and Electronics Engineers, 2014, Pp. 285-290. DOI: 10.1109/CSCI.2014.56.
2. Masich G. F., Latypov S. R., Chugunov D. P. The Aspects of Information and Telecommunication Infrastructure's Dependability [Aspekty nadezhnosti informatsionno-telekom-munikatsionnoy infrastruktury], Perm Federal Research Centre Journal [Vestnik Permskogo federalnogo issledovatelskogo tsentra], 2018, No. 3, Pp. 25-40.
DOI: 10.7242/1998-2097/2018.3.3.
3. Spillar M. 10 Common NoSQL Use Cases for Modern Applications, Couchbase Blog. Published online at March 02, 2023. Available at: http://www.couchbase.com/blog/10-common-nosql-use-cases-for-modern-applications (accessed 16 Mar 2023).
4. Harrison G. Next Generation Databases: NoSQL, NewSQL, and Big Data. Berkeley (CA), Apress, 2015, 256 p. DOI: 10.1007/978-1-4842-1329-2.
5. Lourengo J. R., Cabral B., Carreiro P., et al. Choosing the Right NoSQL Database for the Job: A Quality Attribute Evaluation, Journal of Big Data, 2015, Vol. 2, Art No. 18, 26 p. DOI: 10.1186/s40537-015-0025-0.
6. Mellor C. Traditional File and Block Storage Vendors Are Toast — Minio, Blocks & Files. Published online at July 24, 2019. Available at: http://blocksandfiles.com/2019/07/24/minio-ob-ject-storage-benchmarks (accessed 16 Mar 2023).