Features of data processing and storage using the virtual file system
The work developed and considered a software system aimed at creating a virtual file system (VFS) based on FUSE, which provides a convenient and flexible interface for interacting with the file structure. The main goal of this project is to speed up file processing by customizing file system operati...
Збережено в:
Дата: | 2024 |
---|---|
Автори: | , , , |
Формат: | Стаття |
Мова: | Ukrainian |
Опубліковано: |
Інститут програмних систем НАН України
2024
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/654 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-654 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/25/6aaab2fd57696bf57bdac264a7d7f325.pdf |
spelling |
pp_isofts_kiev_ua-article-6542025-02-15T14:22:14Z Features of data processing and storage using the virtual file system Особливості обробки та збереження даних за допомогою віртуальної файлової системи Popereshnyak, S.V. Panchenko, S.V. Fedorchenko, O.D. Ilyin, S.A. virtual file system; UNIX; FUSE; OS kernel; file; directory; soft-link; static polymorphism; hybrid systems; survivability; databases; multicriteria optimization; data center UDC 004.4 віртуальна файлова система; UNIX; FUSE; ядро ОС; файл; директорія; soft-посилання; статичний поліморфізм; гібридні системи; живучість; бази даних; багатокритеріальна оптимізація; центр обробки даних УДК 004.4 The work developed and considered a software system aimed at creating a virtual file system (VFS) based on FUSE, which provides a convenient and flexible interface for interacting with the file structure. The main goal of this project is to speed up file processing by customizing file system operations and creating a tool that allows users to easily manipulate the virtual file structure using a console interface. The development is intended for data processing and storage on operating systems of the Unix family. The functional tasks of the software system are focused on creating a virtual file system (VFS) based on FUSE with the aim of providing users with a convenient interface for interacting with the file structure. The main goal is to provide functionality for creating and deleting objects, obtaining detailed information about file attributes, reading and writing file contents, working with symbolic links, and navigating and interacting with directories. This includes the ability to create new files and directories, delete objects, get detailed information about file attributes, read and edit their contents, and work with symbolic links. The further goal is to create a convenient and functional tool for users, which can be used for conducting experiments, training or solving specific tasks, while providing flexibility and efficiency of interaction with the FUSE-based file system through the console interface.Prombles in programming 2024; 2-3: 334-342 В роботі було розроблено та розглянуто програмну систему, спрямовану на створення віртуальної файлової системи (ВФС) на основі FUSE, яка надає зручний та гнучкий інтерфейс для взаємодії з файловою структурою. Основною метою цього проєкту є пришвидшення обробки файлів за допомогою кастомізації операцій файлової системи та створення інструменту, який дозволяє користувачам легко маніпулювати віртуальною файловою структурою, використовуючи консольний інтерфейс. Розробка призначена для обробки та збереження даних на операційних системах сімейства Unix. Функціональні завдання програмної системи сфокусовані на створенні віртуальної файлової системи (ВФС) на основі FUSE з метою надання користувачам зручного інтерфейсу для взаємодії з файловою структурою. Головною метою є забезпечення функціональних можливостей для створення та видалення об’єктів, отримання детальної інформації про атрибути файлів, читання та запису вмісту файлів, роботи із символьними посиланнями, а також навігації та взаємодії з директоріями. Це включає в себе можливість створення нових файлів та директорій, видалення об’єктів, отримання детальної інформації про атрибути файлів, читання та редагування їх вмісту, а також роботу із символьними посиланнями. Подальшою метою є створення зручного та функціонального інструменту для користувачів, який може бути використаний для проведення експериментів, навчання або вирішення конкретних завдань, забезпечуючи гнучкість та ефективність взаємодії з файловою системою на основі FUSE через консольний інтерфейс.Prombles in programming 2024; 2-3: 334-342 Інститут програмних систем НАН України 2024-12-17 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/654 10.15407/pp2024.02-03.334 PROBLEMS IN PROGRAMMING; No 2-3 (2024); 334-342 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2024); 334-342 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2024); 334-342 1727-4907 10.15407/pp2024.02-03 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/654/706 Copyright (c) 2024 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2025-02-15T14:22:14Z |
collection |
OJS |
language |
Ukrainian |
topic |
virtual file system UNIX FUSE OS kernel file directory soft-link static polymorphism hybrid systems survivability databases multicriteria optimization data center UDC 004.4 |
spellingShingle |
virtual file system UNIX FUSE OS kernel file directory soft-link static polymorphism hybrid systems survivability databases multicriteria optimization data center UDC 004.4 Popereshnyak, S.V. Panchenko, S.V. Fedorchenko, O.D. Ilyin, S.A. Features of data processing and storage using the virtual file system |
topic_facet |
virtual file system UNIX FUSE OS kernel file directory soft-link static polymorphism hybrid systems survivability databases multicriteria optimization data center UDC 004.4 віртуальна файлова система UNIX FUSE ядро ОС файл директорія soft-посилання статичний поліморфізм гібридні системи живучість бази даних багатокритеріальна оптимізація центр обробки даних УДК 004.4 |
format |
Article |
author |
Popereshnyak, S.V. Panchenko, S.V. Fedorchenko, O.D. Ilyin, S.A. |
author_facet |
Popereshnyak, S.V. Panchenko, S.V. Fedorchenko, O.D. Ilyin, S.A. |
author_sort |
Popereshnyak, S.V. |
title |
Features of data processing and storage using the virtual file system |
title_short |
Features of data processing and storage using the virtual file system |
title_full |
Features of data processing and storage using the virtual file system |
title_fullStr |
Features of data processing and storage using the virtual file system |
title_full_unstemmed |
Features of data processing and storage using the virtual file system |
title_sort |
features of data processing and storage using the virtual file system |
title_alt |
Особливості обробки та збереження даних за допомогою віртуальної файлової системи |
description |
The work developed and considered a software system aimed at creating a virtual file system (VFS) based on FUSE, which provides a convenient and flexible interface for interacting with the file structure. The main goal of this project is to speed up file processing by customizing file system operations and creating a tool that allows users to easily manipulate the virtual file structure using a console interface. The development is intended for data processing and storage on operating systems of the Unix family. The functional tasks of the software system are focused on creating a virtual file system (VFS) based on FUSE with the aim of providing users with a convenient interface for interacting with the file structure. The main goal is to provide functionality for creating and deleting objects, obtaining detailed information about file attributes, reading and writing file contents, working with symbolic links, and navigating and interacting with directories. This includes the ability to create new files and directories, delete objects, get detailed information about file attributes, read and edit their contents, and work with symbolic links. The further goal is to create a convenient and functional tool for users, which can be used for conducting experiments, training or solving specific tasks, while providing flexibility and efficiency of interaction with the FUSE-based file system through the console interface.Prombles in programming 2024; 2-3: 334-342 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2024 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/654 |
work_keys_str_mv |
AT popereshnyaksv featuresofdataprocessingandstorageusingthevirtualfilesystem AT panchenkosv featuresofdataprocessingandstorageusingthevirtualfilesystem AT fedorchenkood featuresofdataprocessingandstorageusingthevirtualfilesystem AT ilyinsa featuresofdataprocessingandstorageusingthevirtualfilesystem AT popereshnyaksv osoblivostíobrobkitazberežennâdanihzadopomogoûvírtualʹnoífajlovoísistemi AT panchenkosv osoblivostíobrobkitazberežennâdanihzadopomogoûvírtualʹnoífajlovoísistemi AT fedorchenkood osoblivostíobrobkitazberežennâdanihzadopomogoûvírtualʹnoífajlovoísistemi AT ilyinsa osoblivostíobrobkitazberežennâdanihzadopomogoûvírtualʹnoífajlovoísistemi |
first_indexed |
2025-07-17T10:02:47Z |
last_indexed |
2025-07-17T10:02:47Z |
_version_ |
1838410389365194752 |
fulltext |
334
Моделі та засоби систем баз даних і знань
УДК 004.4 http://doi.org/10.15407/pp2024.02-03.334
С.В. Поперешняк, С.В. Панченко, О. Д. Федорченко, С. А. Ільїн
ОСОБЛИВОСТІ ОБРОБКИ ТА ЗБЕРЕЖЕННЯ
ДАНИХ ЗА ДОПОМОГОЮ ВІРТУАЛЬНОЇ
ФАЙЛОВОЇ СИСТЕМИ
В роботі було розроблено та розглянуто програмну систему, спрямовану на створення віртуальної
файлової системи (ВФС) на основі FUSE, яка надає зручний та гнучкий інтерфейс для взаємодії з фай-
ловою структурою. Основною метою цього проєкту є пришвидшення обробки файлів за допомогою
кастомізації операцій файлової системи та створення інструменту, який дозволяє користувачам легко
маніпулювати віртуальною файловою структурою, використовуючи консольний інтерфейс. Розробка
призначена для обробки та збереження даних на операційних системах сімейства Unix. Функціональні
завдання програмної системи сфокусовані на створенні віртуальної файлової системи (ВФС) на основі
FUSE з метою надання користувачам зручного інтерфейсу для взаємодії з файловою структурою. Го-
ловною метою є забезпечення функціональних можливостей для створення та видалення об’єктів,
отримання детальної інформації про атрибути файлів, читання та запису вмісту файлів, роботи із сим-
вольними посиланнями, а також навігації та взаємодії з директоріями. Це включає в себе можливість
створення нових файлів та директорій, видалення об’єктів, отримання детальної інформації про атри-
бути файлів, читання та редагування їх вмісту, а також роботу із символьними посиланнями. Подаль-
шою метою є створення зручного та функціонального інструменту для користувачів, який може бути
використаний для проведення експериментів, навчання або вирішення конкретних завдань, забезпечу-
ючи гнучкість та ефективність взаємодії з файловою системою на основі FUSE через консольний ін-
терфейс.
Ключові слова: віртуальна файлова система, UNIX, FUSE, ядро ОС, файл, директорія, soft-посилання,
статичний поліморфізм, гібридні системи, живучість, бази даних, багатокритеріальна оптимізація ,
центр обробки даних
S.Popereshnyak, S. Panchenko, O. Fedorchenko, S. Ilyin
FEATURES OF DATA PROCESSING AND STORAGE
USING THE VIRTUAL FILE SYSTEM
The work developed and considered a software system aimed at creating a virtual file system (VFS) based on
FUSE, which provides a convenient and flexible interface for interacting with the file structure. The main
goal of this project is to speed up file processing by customizing file system operations and creating a tool
that allows users to easily manipulate the virtual file structure using a console interface. The development is
intended for data processing and storage on operating systems of the Unix family. The functional tasks of the
software system are focused on creating a virtual file system (VFS) based on FUSE with the aim of providing
users with a convenient interface for interacting with the file structure. The main goal is to prov ide function-
ality for creating and deleting objects, obtaining detailed information about file attributes, reading and writing
file contents, working with symbolic links, and navigating and interacting with directories. This includes the
ability to create new files and directories, delete objects, get detailed information about file attributes, read
and edit their contents, and work with symbolic links. The further goal is to create a convenient and functional
tool for users, which can be used for conducting experiments, training or solving specific tasks, while provid-
ing flexibility and efficiency of interaction with the FUSE-based file system through the console interface.
Key words: virtual file system, UNIX, FUSE, OS kernel, file, directory, soft-link, static polymorphism, hybrid
systems, survivability, databases, multicriteria optimization, data center.
Вступ
З урахуванням швидкого розвитку
сучасних технологій та зростання обсягів
даних, виникає необхідність вдосконалення
існуючих віртуальних файлових систем або
розроблення нових, які відповідають сучас-
ним вимогам ефективності, безпеки та гну-
чкості. Актуальність написання нової фай-
лової системи полягає у здатності відпові-
© С.В. Поперешняк, С.В. Панченко, О. Д. Федорченко, С. А. Ільїн, 2024
ISSN 1727-4907. Проблеми програмування. 2024. №2-3
335
Моделі та засоби систем баз даних і знань
сти на виклики, пов'язані з розширеним об-
сягом даних, розподіленими обчисленнями,
вимогами до конфіденційності та високою
швидкодією обробки інформації.
Після розгляду успішних аналогів
важливо відзначити, що багато з них харак-
теризуються закритим кодом чи вимагають
від розробників власної реалізації операцій,
що часто може обмежувати гнучкість та ро-
зширюваність. У цьому контексті власно-
розроблена файлова система, заснована на
FUSE бібліотеці, виділяється серед анало-
гів, пропонуючи низку вагомих переваг.
Вона не лише гнучка завдяки стандартному
інтерфейсу FUSE, а й має відкритий код, що
сприяє активній участі розробників і прис-
корює виявлення та виправлення помилок.
Крім того, забезпечення конфіденційності,
висока швидкодія, цілісність даних у бага-
топотоковому середовищі, сумісність з
Unix-подібними системами та можливість
розширення функціональності за допомо-
гою кастомізації операцій роблять її важли-
вим рішенням для сучасних вимог до фай-
лових систем.
Мета роботи – є пришвидшення об-
робки файлів за допомогою кастомізації
операцій файлової системи та створення ін-
струменту, який дозволяє користувачам
легко маніпулювати віртуальною файло-
вою структурою, використовуючи консоль-
ний інтерфейс.
У даній роботі буде розглянуто кон-
цепцію віртуальних файлових систем, про-
ведений аналіз існуючих рішень, та обґрун-
тована необхідність розробки нової файло-
вої системи, яка відповідає вимогам сучас-
ності та враховує актуальні тенденції в об-
ласті обробки та збереження даних.
Віртуальна файлова система та
галузі практичного застосування
Файлові системи пропонують зага-
льний інтерфейс для програм для доступу
до даних. Хоча мікроядра реалізують фай-
лові системи в просторі користувача [1],
більшість файлових систем є частиною мо-
нолітних ядер [2]. Реалізації ядра дозволя-
ють уникнути великих накладних витрат
на передачу повідомлень мікроядер і демо-
нов простору користувача [3]. Проте в
останні роки популярність файлових сис-
тем простору користувача зросла з чоти-
рьох причин.
(1) Кілька файлових систем, які можна
стекувати, додають спеціалізовані фу-
нкції до існуючих файлових систем
(наприклад, дедуплікацію та стис-
нення [4]).
(2) В академічному середовищі та нау-
ково-дослідних установах ця струк-
тура дозволила швидко експеримен-
тувати та створювати прототипи но-
вих підходів [5, 6].
(3) Кілька існуючих файлових систем на
рівні ядра було перенесено в простір
користувача (наприклад, ZFS [7],
NTFS [8]).
(4) Більше компаній покладаються на
впровадження простору користувача:
GPFS і LTFS від IBM, CASL від
Nimble Storage, HDFS від Apache,
файлова система Google, GlusterFS від
RedHat, Data DDFS домену [9] тощо.
Збільшення складності файлових
систем є фактором, що сприяє зростанню
популярності файлових систем у просторі
користувача. Код простору користувача ле-
гше розробляти, переносити та підтриму-
вати. Помилки ядра можуть вивести з ладу
цілі системи, тоді як помилки в просторі ко-
ристувача є більш обмеженими. Багато біб-
ліотек і мов програмування доступні в про-
сторі користувача на різних платформах.
Віртуальна файлова система
(ВФС)— це програмна або апаратна конст-
рукція, яка надає інтерфейс для роботи з
файловою системою. Це може бути шар аб-
стракції між програмним забезпеченням та
фізичними носіями даних, який дозволяє
звертатися до файлів і папок, незалежно від
їхнього розташування чи форматування
зберігання.
ВФС може забезпечувати деякі до-
даткові функції, такі як шифрування, конт-
роль доступу, кешування, компресія, відо-
браження віддалених ресурсів тощо. Вона
дозволяє програмам взаємодіяти з файло-
вою системою, не враховуючи конкретні
деталі роботи фізичних пристроїв чи мере-
жевих ресурсів.
Основні переваги віртуальних фай-
лових систем:
336
Моделі та засоби систем баз даних і знань
– абстракція від апаратних рішень;
– управління різноманітністю джерел
даних;
– додаткові функціональні можливості;
– підтримка віддалених ресурсів;
– зручність розробки та тестування.
Віртуальна файлова система пере-
хоплює системні виклики, пов'язані з опе-
раціями файлової системи. Ці виклики ге-
неруються операційною системою або
програмами, що намагаються взаємодіяти
з файловою системою. ВФС взаємодіє з яд-
ром операційної системи для обробки сис-
темних викликів і отримання доступу до
ресурсів. Вона реєструється у ядрі як обро-
бник файлових операцій та може взаємоді-
яти з іншими компонентами операційної
системи. Розглянемо схему роботи на при-
кладі рисунка 1 за електронним джере-
лом [10].
Реалізація віртуальної файлової сис-
теми може зустрічати ряд проблем, з якими
розробники повинні враховувати, створю-
ючи інтерфейс.
Рис. 1. Схема роботи файлової системи
Деякі з основних проблем включа-
ють:
– продуктивність: віртуальні файлові
системи можуть впливати на продук-
тивність, оскільки вони додають дода-
тковий шар абстракції; ефективність
роботи з файлами і папками повинна
бути належним чином оптимізована;
– безпека: забезпечення безпеки даних і
запобігання можливим атакам на вір-
туальну файлову систему є важливим
завданням; це включає управління до-
ступом, шифрування інформації та
інші заходи безпеки;
– сумісність: важливо враховувати су-
місність віртуальної файлової сис-
теми з різними операційними систе-
мами і програмами; розробка таких
систем повинна враховувати різні ста-
ндарти та протоколи;
– відновлення та відміна змін: якщо ста-
ється помилка чи відмова в роботі, ва-
жливо мати ефективні механізми від-
новлення та відміни змін для запобі-
гання втраті даних або пошкодженню
файлової системи;
– масштабованість: в роботі з великою
кількістю файлів та об'ємом даних, ва-
жливо забезпечити ефективну масш-
табованість віртуальної файлової сис-
теми.
Особливості обробки та збереження
даних за допомогою віртуальної файлової
системи можуть бути ключовим елементом
для підвищення живучості гібридних сис-
тем керування базами даних в умовах руй-
нівних зовнішніх впливів. Використання ві-
ртуальних файлових систем може забезпе-
чити гнучкість і надійність зберігання да-
них, що стає особливо важливим у сцена-
ріях, коли системи керування базами даних
мають витримувати різні види наванта-
ження, такі як кібератаки, природні катаст-
рофи або технічні неполадки.
Віртуальні файлові системи можуть
дозволяти ефективно реплікувати та резер-
вувати дані, забезпечуючи їхню доступ-
ність в умовах аварійного відновлення. На-
приклад, можливість автоматичного ство-
рення резервних копій даних на віртуаль-
них дисків, розподілених по різних фізич-
них пристроях або хмарних сервісах, може
забезпечити швидке відновлення системи
та мінімізацію втрат інформації в разі непе-
редбачених ситуацій.
Крім того, використання віртуальних
файлових систем може дозволити гібрид-
ним системам керування базами даних ви-
конувати операції резервного копіювання
та міграції даних без перерв у роботі, що
сприяє підвищенню їхньої живучості та до-
ступності.
Отже, використання віртуальних фай-
лових систем може стати важливим елеме-
нтом стратегії забезпечення живучості гіб-
ридних систем керування базами даних в
умовах негативних зовнішніх впливів.
Також обробка та збереження даних
за допомогою віртуальної файлової сис-
теми грають важливу роль у багатокритері-
337
Моделі та засоби систем баз даних і знань
альній оптимізації балансування наванта-
ження центрів обробки даних при варіабе-
льності топології інтранет-мережі.
Віртуальні файлові системи можуть
допомагати ефективно керувати розподі-
лом даних між центрами обробки даних, за-
безпечуючи оптимальну доступність та
швидкодію у разі зміни топології інтранет-
мережі. Наприклад, вони можуть автомати-
чно розподіляти навантаження залежно від
доступної пропускної здатності та ресурсів
кожного центру обробки даних.
Крім того, використання віртуальних
файлових систем може допомогти забезпе-
чити надійне зберігання даних у різних ло-
каціях, що може бути важливим для забез-
печення резервного копіювання та віднов-
лення даних у випадку виникнення аварій-
них ситуацій.
Отже, інтеграція віртуальних файло-
вих систем у системи керування даними
може сприяти оптимізації балансування на-
вантаження центрів обробки даних за умов
варіабельності топології інтранет-мережі.
Успішність та актуальність
розробки віртуальної файлової
системи
Успішність віртуальних файлових
систем визначається за кількома ключо-
вими критеріями. Перш за все, це продук-
тивність, виміряна швидкодією та ефекти-
вністю роботи під високими навантажен-
нями. Надійність вказує на стійкість та мо-
жливість відновлення даних у разі виник-
нення збоїв. Масштабованість визначає
здатність системи працювати ефективно
при збільшенні обсягу даних. Безпека
включає захист від несанкціонованого дос-
тупу та забезпечення конфіденційності.
Інші важливі аспекти включають суміс-
ність з іншими системами, здатність до
інновацій та користувацький досвід, а та-
кож вартість власності, яка визначає ви-
трати на утримання та розвиток файлової
системи. Всі ці критерії враховуються для
визначення та оцінки успішності віртуаль-
них файлових систем у сучасному ІТ-сере-
довищі.
Розробка власної ВФС, реалізованої
на основі FUSE, може бути актуальною з
ряду причин:
– гнучкість та розширюваність: FUSE
дозволяє створювати віртуальні
файлові системи в просторі користу-
вача без необхідності зміни ядра
операційної системи; це забезпечує
гнучкість та розширюваність у роз-
робці, дозволяючи легко адаптувати
ВФС до конкретних потреб проєкту;
– сумісність з різними ОС: віртуальні
файлові системи, розроблені за до-
помогою FUSE, можуть легко пере-
носитися між різними операційними
системами, оскільки FUSE підтри-
мується на багатьох платформах
(Linux, macOS, FreeBSD, інші); це
робить розробку більш універсаль-
ною та ефективною;
– розвиток функціональності: розро-
бка на основі FUSE дозволяє вам
створювати власні файлові системи
з розширеними функціональними
можливостями, які можуть відпові-
дати конкретним потребам користу-
вачів чи проєкту; це особливо кори-
сно у випадках, коли існуючі ВФС
не влаштовують за вимогами;
– експериментація та навчання: розро-
бка ВФС на основі FUSE може слу-
гувати відмінною можливістю для
навчання та експериментації в ца-
рині системного програмування; ро-
зуміння принципів роботи файлових
систем та їхній вплив на взаємодію з
операційною системою може бути
корисним для розробників.
Програмна система, що розробля-
ється, спрямована на створення віртуаль-
ної файлової системи (ВФС) на основі
FUSE, яка надає зручний та гнучкий інтер-
фейс для взаємодії з файловою структу-
рою. Основною метою цього проєкту є
створення інструменту, який дозволяє ко-
ристувачам легко маніпулювати віртуаль-
ною файловою структурою, використову-
ючи консольний інтерфейс.
Функціональні завдання та мета
програмної системи сфокусовані на ство-
ренні віртуальної файлової системи (ВФС)
на основі FUSE з метою надання користу-
338
Моделі та засоби систем баз даних і знань
вачам зручного інтерфейсу для взаємодії з
файловою структурою. Головною метою є
забезпечення функціональних можливос-
тей для створення та видалення об'єктів,
отримання детальної інформації про атри-
бути файлів, читання та запису вмісту фай-
лів, роботи з символьними посиланнями, а
також навігації та взаємодії з директорі-
ями. Це включає в себе можливість ство-
рення нових файлів та директорій, вида-
лення об'єктів, отримання детальної інфо-
рмації про атрибути файлів, читання та ре-
дагування їх вмісту, а також роботу із сим-
вольними посиланнями. Подальшою ме-
тою є створення зручного та функціональ-
ного інструменту для користувачів, який
може бути використаний для проведення
експериментів, навчання або вирішення
конкретних завдань, водночас забезпечу-
ючи гнучкість та ефективність взаємодії з
файловою системою на основі FUSE через
консольний інтерфейс.
Розробка може бути застосована під
час розроблення інших видів програмного
забезпечення та у повсякденній взаємодії з
файлами.
Цільова аудиторія для віртуальної
файлової системи на основі FUSE включає
розробників програмного забезпечення,
системних адміністраторів, та інших IT-
професіоналів, які використовують та інте-
грують файлові системи у своїх проєктах.
Також, система має бути пристосована для
кінцевих користувачів, які використову-
ють віртуальну файлову систему для зруч-
ного управління та взаємодії з файлами.
Архітектура програмного
забезпечення
В розробці віртуальної файлової си-
стеми, використання паттернів проєкту-
вання стає важливим етапом для забезпе-
чення ефективності, читабельності та лег-
кості управління кодом. Один із таких пат-
тернів – Model-View-Controller (MVC) –
дозволяє відокремити представлення, ло-
гіку та дані, роблячи архітектуру більш мо-
дульною та гнучкою.
Модель у віртуальній файловій сис-
темі представляє основні концепції, такі як
звичайні файли, директорії та soft-поси-
лання. Кожен із цих елементів відповідає
реальній структурі файлової системи та за-
безпечує базовий функціонал для взаємо-
дії з користувачем.
Представлення вирішує, як інформа-
ція буде відображатися для користувача.
Контролер виконує роль посередника між
користувачем та моделлю. Він приймає ко-
манди від користувача через консоль та ви-
значає, як ці команди мають бути оброб-
лені. Після цього він взаємодіє з моделлю
для виконання необхідних операцій.
Для кращого розуміння архітектури
побудуємо UML-діаграму компонентів.
Розглянемо діаграму компонентів віртуа-
льної файлової системи (Рис. 2.).
Архітектура, побудована за MVC
паттерном, дозволяє зберігати код чистим,
легко його розширювати та модифікувати.
Розподіл обов'язків між моделлю, предста-
вленням та контролером полегшує роботу
Рис. 2. Діаграма компонентів ВФС
339
Моделі та засоби систем баз даних і знань
над проєктом, забезпечуючи оптимальну
організацію та легкість управління.
Опис структур даних
Детальний огляд реалізації класів і
їхніх методів дозволить виявити сильні та
слабкі сторони структури даних, аналізу-
вати оптимальність вибраних рішень та
вирішувати проблеми, які можуть виник-
нути під час реалізації віртуальної файло-
вої системи.
Класи-моделі, “Composite” пат-
терн, std::variant
Розглянемо звичайний Composite
паттерн [15]. Цей шаблон проєктування
належить до структурних патернів і дозво-
ляє клієнтам однаково обробляти окремі
об'єкти та їхні композиції (групи об'єктів).
У цьому шаблоні створюється ієрархія
класів, що представляють як окремі об'є-
кти, так і їхні композиції, де обидва типи
об'єктів реалізують спільний інтерфейс.
Таким чином, клієнт може взаємодіяти з
кожним об'єктом (примітивним або склад-
ним) через спільний інтерфейс, що спро-
щує обробку об'єктів в ієрархії.
Розглянемо UML-дігараму моделей
файлової системи на прикладі віртуальної
файлової системи на рисунку 3. Зліва мо-
жна побачити звичайний Composite,
справа — Composite у поєднанні з
TRwLock:
Рис. 3. Composite шаблон на прикладі ВФС
Як бачимо, TRwLock<TFile> та
TRwLock<TDirectory> не мають спільного
батьківського класу, а тому не можуть
бути покладені разом у контейнері.
Щоб вирішити проблему, зазначену
у попередньому пункті, потрібно предста-
вити певний варіантивний тип, який одно-
часно може представляти класи, які не ма-
ють спільного походження. Для цього у
C++ був представлений std::variant.
Аналіз якості та тестування
програмного забезпечення
Розглянемо детально якість та ста-
більність розробленого програмного про-
дукту, а також проведемо процес тесту-
вання для впевненості в його надійності та
ефективності.
Аналіз якості ПЗ
Аналіз якості ПЗ було проведено з
допомогою github-застосунку CCCC (C and
C++ Code Counter), який автоматично гене-
рує звіт якості коду за різними метриками.
Загальний звіт використаних мет-
рик можна побачити на рисунку 4.
NOM (Number of modules) — це кі-
лькість нетривіальних модулів, ідентифі-
кованих аналізатором. Загалом кількість
ідентифікованих окремих модулів для
коду складає 40.
Рис. 4. Звіт якості коду CCCC
LOC (Lines of Code) — кількість не-
порожніх рядків вихідного коду без коме-
нтарів, підрахованих аналізатором. Зага-
лом кількість рядків коду оцінена в 1696
рядки.
340
Моделі та засоби систем баз даних і знань
COM (Lines of Comments) — кіль-
кість рядків коментарів, визначених аналі-
затором. Загалом кількість рядків комента-
рів оцінена в 4 рядки. Ця метрика може
бути досить важливою для великої кодової
бази, однак у даній роботі автор намагався
писати самодокументований код, за яким
особа, що читає, може зрозуміти сенс на-
писаного.
MVG (McCabe's Cyclomatic
Complexity) — міра складності рішення для
функцій, які складають програму. Суворе
визначення цієї міри полягає в тому, що це
кількість лінійно незалежних маршрутів че-
рез спрямований ациклічний граф, який ві-
дображає потік керування підпрограмою.
Аналізатор підраховує це, записуючи кіль-
кість різних результатів рішення, що міс-
тяться в кожній функції, що дає гарне на-
ближення до формально визначеної версії
міри. Загалом аналізатор показує 125.
Опис процесів тестування
Тестування віртуальної файлової
системи було проведено з використанням
фреймворку для тестування googletest. Ви-
бір googletest був обумовлений його визна-
ною ефективністю, гнучкістю та набором
зручних інструментів для написання та ви-
конання тестів.
Однією з основних переваг
googletest є його зручний і легкий у вико-
ристанні синтаксис для написання тестів.
Тестові кейси та перевірки можуть бути
легко створені і організовані за допомогою
зрозумілих механізмів структури тестових
класів та макросів, що полегшує процес
написання і управління тестами.
Ще однією важливою перевагою є
можливість паралельного виконання тес-
тів. Це забезпечує швидший оборот часу за
великої кількості тестових кейсів, що
сприяє ефективності та розподілу ресурсів
у процесі тестування.
Покажемо оцінку продуктивності, а
саме швидкість пошуку файлів за їхнім
іменем. Для цього напишемо юніт-тест
скрипт, що заповнить ВФС директоріями
від A-Z, потім всередині кожної директорії
іще раз створить директорії від A-Z, повто-
рить цю операцію 4 рази, тобто у резуль-
таті будемо мати 28 ^ 4 = 614656 директо-
рій. Під час тестування, скажемо ВФС
знайти усі повні шляхи директорій, які ма-
ють ім’я H (рис. 5).
Рис. 5. Результати пошуку
Бачимо, що ВФС знайшла усі файли
з іменем “H” за 12 мілісекунд, натомість
файлова система Linux віднайшла їх за 22
секунди 309 мілісекунд. Прискорення у
1859 разів.
Висновки
У роботі розглянуто концепцію вір-
туальних файлових систем, проведений
аналіз існуючих рішень та обґрунтована
необхідність розробки нової файлової сис-
теми, яка відповідає вимогам сучасності та
враховує актуальні тенденції в області об-
робки та збереження даних. Під час вико-
нання роботи було створено інструмент,
який дозволяє користувачам легко маніпу-
лювати віртуальною файловою структу-
рою, використовуючи консольний інтер-
фейс, що уможливлює пришвидшення об-
робки файлів за допомогою кастомізації
операцій файлової системи.
У процесі аналізу вимог до Віртуа-
льної Файлової Системи (ВФС) визначено
ключові функціональні та нефункціона-
льні вимоги. Серед них — висока ефекти-
вність, забезпечення безпеки та гнучкість
використання. Спроєктовано основні взає-
модії з файловою системою, визначено фо-
рмати даних та розглянуто основні сцена-
рії використання.
Під час проведення етапу моделю-
вання та конструювання була розроблена
архітектура ВФС. Вона включає класи та
компоненти, представлені для файлів та
директорій. Використано різні паттерни
проєктування, такі як Visitor для забезпе-
чення різноманітності операцій над різ-
ними типами файлів. Статичний полімор-
фізм реалізовано за допомогою шаблонів
та CRTP паттерну.
Тестування ВФС було проведено за
допомогою фреймворку googletest. Обрано
341
Моделі та засоби систем баз даних і знань
його через високу ефективність, гнучкість
та можливість паралельного виконання те-
стів. Тестування охопило різні аспекти фу-
нкціональності, забезпечивши стабіль-
ність та надійність програмного забезпе-
чення.
На етапі впровадження були дета-
льно описані кроки для розгортання ВФС.
Це включало встановлення необхідних бі-
бліотек, створення FIFO-файлу для між-
процесної комунікації та встановлення
зв'язку з основною файловою системою.
Документовано командні аргументи для
легкості розгортання та налаштування.
Майбутній розвиток ВФС може
включати розширення функціональності
для підтримки нових операцій, покра-
щення ефективності та роботи з великим
обсягом даних. Інтеграція з іншими систе-
мами та підтримка нових типів файлів мо-
жуть стати напрямками подальшого розви-
тку. Постійна оптимізація та удоскона-
лення можуть допомогти ВФС вдоскона-
люватися та відповідати зростаючим вимо-
гам.
Практична значущість розробленої
системи полягає в наступному:
– Розроблена файлова система може
бути застосована під час розробки ін-
ших видів програмного забезпечення
та у повсякденній взаємодії з фай-
лами.
– Цільова аудиторія для віртуальної
файлової системи на основі FUSE
включає розробників програмного за-
безпечення, системних адміністрато-
рів, та інших IT-професіоналів, які ви-
користовують та інтегрують файлові
системи у своїх проєктах.
– Систему вдало використовують сис-
темні адміністратори, які опікуються
серверами із значною кількістю фай-
лів. Їхні завдання пов'язані з необхід-
ністю швидкого пошуку файлів, і
саме це було вирішено завдяки впро-
вадженню розробленої файлової сис-
теми. Застосування файлової системи
великою мірою скоротило час пошуку
файлів, сприяючи оптимізації завдань
системних адміністраторів. Консоль-
ний інтерфейс системи виявився зру-
чним та легким у використанні, що
полегшує роботу користувачів.
– Розробники також здобули доступ до
відкритого вихідного коду системи,
що дозволяє їм налаштовувати опера-
ції з файлами згідно зі своїми потре-
бами.
У майбутньому можливе створення
NetFS – розподіленої файлової системи,
яка дозволить взаємодіяти з файлами та
директоріями через мережу.
Література
1. Shun Ishiguro, Jun Murakami, Yo-
shihiro Oyama, and Osamu Tatebe.
Optimizing local file accesses for
FUSE-based distributed storage. In
High Performance Computing, Net-
working, Storage and Analysis (SCC),
2012 SC Companion, pages 760765.
IEEE, 2012.
2. R. Card, T. Ts’o, and S. Tweedie. De-
sign and implementation of the second
extended filesystem. In Proceedings to
the First Dutch International Sympo-
sium on Linux, Seattle, WA, December
2004.
3. Michael Condict, Don Bolinger, Dave
Mitchell, and Eamonn McManus. Mi-
crokernel Modularity with Integrated
Kernel Performance. In Proceedings of
the First Symposium on Operating Sys-
tems Design and Implementation,
2014.
4. Opendedup, January 2012.
www.opendedup.org.
5. J. Bent, G. Gibson, G. Grider, B.
McClelland, P. Nowoczynski, J.
Nunez, M. Polte, and M. Wingate. Plfs:
A checkpoint filesystem for parallel
applications. Technical Report LA-UR
0902117, LANL, 2009. http://insti-
tute.lanl.gov/ plfs/.
6. C. Ungureanu, B. Atkin, A. Aranya, S.
Gokhale, S. Rago, G.Calkowski,
C.Dubnicki, and A.Bohra. HydraFS: a
High-Throughput File System for the
HYDRAstor Content-Addressable
Storage System. In Proceedings of the
FAST Conference, 2010.
342
Моделі та засоби систем баз даних і знань
7. ZFS for Linux, January 2016.
www.zfs-fuse.net.
8. NTFS-3G. USENIX Association 15th
USENIX Conference on File and Stor-
age Technologies
9. K. Vangoor, V. Tarasov, E. Zadok, To
FUSEorNotto FUSE: Performance of
User-Space File Systems Bharath, Pro-
ceedings of the 15th USENIX Confer-
ence on File and Storage Technologies
2017, p. 59-72.
10. FUSE - The Linux Kernel Documenta-
tion. (2023). Retrieved October 7,
2023, from https://www.kernel.org/doc
/html/ next/filesystems/fuse.html
Одержано: 10.04.2024
Внутрішня рецензія отримана: 17.04.2024
Зовнішня рецензія отримана: 23.04.2024
Про авторів:
1Поперешняк Світлана Володимирівна,
Кандидат фізико-математичних наук,
доцент
http://orcid.org/0000-0002-0531-9809.
2Панченко Сергій Віталійович,
бакалавр
http://orcid.org/0009-0000-8897-8182.
3 Федорченко Олексій Дмитрович,
аспірант
http://orcid.org/0009-0006-2556-7574.
4 Ільїн Сергій Анатолійович,
аспірант
http://orcid.org/0009-0004-3760-1464.
Місце роботи авторів:
1, 2 Національний технічний університет
України «Київський політехнічний
інститут імені Ігоря Сікорського»,
тел. +38-098-645-54-62
E-mail: spopereshnyak@gmail.com
E-mail: panchenko.serhii@lll.kpi.ua
3,4 Інститут програмних систем НАН
України
|