Распределённая файловая система
Распределённая файловая система (clustered file system, CFS) — это файловая система, которая используется совместно и одновременно монтируется на нескольких серверах. Существует несколько подходов к кластеризации,большинство из которых не используют кластеризованную файловую систему (только локальное хранилище для каждого узла). Распределённые файловые системы могут предоставлять такие функции, как независимая от расположения адресация и избыточность, которые повышают надёжность или снижают сложность других частей кластера. Параллельные файловые системы являются разновидностью кластеризованных файловых систем, которые распределяют данные по нескольким узлам хранения, обычно для обеспечения избыточности или повышения производительности[1].
Файловая система с общим диском
Файловая система с общим диском использует сеть хранения данных (storage area network, SAN) , чтобы предоставить нескольким компьютерам прямой доступ к диску на уровне блоков. Управление доступом и преобразование операций файлового уровня, используемых приложениями, в операции блочного уровня, используемые SAN, должны происходить на клиентском узле. Наиболее распространённый тип кластерной файловой системы, файловая система с общим диском, которая получается путём добавления механизма управления одновременным доступом, обеспечивает согласованное и сериализуемое представление файловой системы, предотвращая повреждение и непреднамеренную потерю данных даже когда несколько клиентов пытаются получить доступ к одним и тем же файлам одновременно. Файловые системы с общим диском обычно используют какой-либо механизм ограждения для предотвращения повреждения данных в случае сбоев узлов, поскольку устройство без ограждения может вызвать повреждение данных, если оно теряет связь со своими соседними узлами и пытается получить доступ к той же информации, к которой обращаются другие узлы.
Область хранения данных может использовать различные протоколы блочного уровня, такие как SCSI, iSCSI, HyperSCSI, ATA over Ethernet (AoE), Fibre Channel, сетевое блочное устройство и InfiniBand.
Существуют различные архитектурные подходы к файловой системе с общим диском. Некоторые распределяют информацию о файлах по всем серверам в кластере (полностью распределённые)[2].
Примеры
- Кластеризованная файловая система Blue Whale (BWFS)
- Silicon Graphics (SGI) кластеризованная файловая система (CXFS)
- Кластеризованная файловая система Veritas
- Microsoft Cluster Shared Volumes (CSV)
- DataPlow файловая система Nasan
- IBM General Parallel File System (GPFS)
- Кластеризованная файловая система Oracle (OCFS)
- OpenVMS файловая система Files-11
- Системы хранения PolyServe
- Quantum файловая система StorNext (SNFS), бывшая ADIC, бывшая CentraVision File System (CVFS)
- Red Hat Global File System (GFS2)
- Sun QFS
- TerraScale Technologies TerraFS
- Veritas CFS (Cluster FS: Clustered VxFS)
- Versity VSM (SAM-QFS портирован на Linux), ScoutFS
- VMware VMFS
- WekaFS
- Apple Xsan
- DragonFly BSD HAMMER2
Распределённые файловые системы
Распределённые файловые системы не используют общий доступ на уровне блоков к одному и тому же хранилищу, а применяют протокол[3][4]. TОни обычно известны как сетевые файловые системы, хотя и не являются единственными, использующими сеть для передачи данных[5]. Распределённые файловые системы могут ограничивать доступ к файловой системе в зависимости jn списков управления или прав доступа как на серверах, так и на клиентах, в зависимости от реализации протокола.
Распределённая файловая система отличается от распределённого хранилища данных тем, что первая позволяет получать доступ к файлам с использованием тех же интерфейсов и семантики, что и к локальным файлам. Например, она поддерживает монтирование/размонтирование, перечисление содержимого каталогов, чтение/запись по байтовым границам и использует нативную модель разрешений системы. Распределённые хранилища данных, напротив, требуют применения другого API или библиотеки и имеют иную семантику, чаще всего — базу данных[6].
Цели проектирования
Распределённые файловые системы могут стремиться к «прозрачности» по ряду аспектов. Это означает, что они должны быть «невидимы» для клиентских программ, которые «видят» систему, похожую на локальную файловую систему. За кулисами распределённая файловая система занимается поиском файлов, передачей данных и, возможно, предоставлением других функций, перечисленных ниже.
- Прозрачность доступа: клиенты не осведомлены о том, что файлы распределены, и могут получать к ним доступ так же, как к локальным файлам.
- Прозрачность местоположения: существует единое пространство имён, охватывающее как локальные, так и удалённые файлы. Имя файла не указывает на его местоположение.
- Прозрачность параллелизма: все клиенты имеют одинаковое представление о состоянии файловой системы. Это означает, что если один процесс изменяет файл, любые другие процессы в той же или удаленной системе, обращающиеся к файлам, увидят эти изменения согласованно.
- Прозрачность отказов: клиент и клиентские программы должны корректно работать после сбоя сервера.
- Гетерогенность: служба файлов должна предоставляться на различных аппаратных платформах и операционных системах.
- Масштабируемость: файловая система должна хорошо работать в небольших средах (1 машина, десяток машин), а также плавно масштабироваться до более крупных (сотни или десятки тысяч систем).
- Прозрачность репликации: Клиенты не должны знать о репликации файлов, выполняемой на нескольких серверах для поддержки масштабируемости.
- Прозрачность миграции: файлы должны иметь возможность перемещаться между разными серверами без ведома клиента.
История
В 1960-х годах Несовместимая система с разделением времени[7] применяла виртуальные устройства для прозрачного доступа к файлам между машинами. В 1970-х годах было разработано больше файловых серверов. В 1976 году Digital Equipment Corporation создала File Access Listener (FAL), — реализацию протокола доступа к данным в рамках DECnet Phase II, которая стала первой широко используемой сетевой файловой системой. В 1984 году компания Sun Microsystems создала файловую систему под названием «Network File System» (NFS), которая стала первой широко используемой сетевой файловой системой на основе Internet Protocol[4]. К другим известным сетевым файловым системам относятся Andrew File System (AFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP) и Server Message Block (SMB) также известная как Common Internet File System (CIFS).
В 1986 году IBM представила поддержку клиентских и серверных компонентов для архитектуры распределенного управления данными (Distributed Data Management Architecture, DDM) для систем System/36, System/38 и мейнфреймов IBM, работающих под управлением CICS. Впоследствии была добавлена поддержка для IBM PC, AS/400, мейнфреймов IBM под управлением операционных систем MVS, VSE и FlexOS. DDM также стала основой для распределенных реляционных баз данных (Distributed Relational Database Architecture, DRDA).
Существует множество одноранговых сетевых протоколов с открытым исходным кодом для распределённых файловых систем для облачных сред или распределённых файловых систем с закрытым исходным кодом, например: 9P, AFS, Coda, CIFS/SMB, DCE/DFS, WekaFS[8], Lustre, PanFS[9], Google File System, Mnet, Chord Project.
Примеры
- Alluxio
- BeeGFS (Fraunhofer)
- CephFS (Inktank, Red Hat, SUSE)
- Windows Distributed File System (DFS) (Microsoft)
- Infinit (приобретено компанией Docker )
- GfarmFS
- GlusterFS (Red Hat)
- GFS (Google Inc.)
- GPFS (IBM)
- HDFS (Apache Software Foundation)
- IPFS (Inter Planetary File System)
- iRODS
- LizardFS (Skytechnology)
- Lustre
- MapR FS
- MooseFS (Core Technology / Gemius)
- ObjectiveFS
- OneFS (EMC Isilon
- OrangeFS (Clemson University, Omnibond Systems), бывшая Parallel Virtual File System
- PanFS (VDURA, бывшая Panasas)
- Parallel Virtual File System (Clemson University, Argonne National Laboratory, Ohio Supercomputer Center)
- RozoFS (Rozo Systems)
- SMB/CIFS
- Torus (CoreOS)
- VaultFS (Swiss Vault)
- WekaFS (WekaIO)
- XtreemFS
Сетевое хранилище
Сетевое хранилище (Network-attached storage, NAS) предоставляет как пространство для хранения данных, так и файловую систему, подобно общей файловой системе диска поверх сети хранения данных (storage area network, SAN). NAS обычно использует файловые протоколы (в отличие от блочных протоколов, которые использует SAN), такие как NFS (популярный на системах UNIX), SMB/CIFS (Server Message Block/Common Internet File System) (используется с системами MS Windows systems), AFP (используется с компьютерами Apple Macintosh) или NCP (используется с OES и Novell NetWare).
Принципы проектирования
Предотвращение единой точки отказа
Сбой дискового оборудования или узла хранения в кластере может привести к единой точке отказа, что чревато потерей данных или их недоступностью. Отказоустойчивость и высокая доступность достигаются за счёт репликации данных того или другого вида, которая гарантирует их сохранность и доступность даже при выходе из строя любого отдельного компонента.
Производительность
Одной из стандартных метрик производительности распределенной файловой системы является время, необходимое для выполнения запросов на обслуживание. В традиционных системах это время складывается из времени доступа к диску и незначительного времени обработки данных центральным процессором, Однако в распределённой файловой системе удаленный доступ сопряжен с дополнительными накладными расходами, обусловленными распределённой структурой. К ним относятся время доставки запроса серверу, время доставки ответа клиенту, а также, в обоих направлениях, процессорные затраты на выполнение программного обеспечения протокола связи.
Конкурентный доступ
Управление параллельным доступом становится проблемой, когда несколько пользователей или клиентов одновременно обращаются к одному и тому же файлу или блоку данных и хотят внести в них изменения. Поэтому изменения, вносимые одним клиентом, не должны мешать доступу и изменениям со стороны других клиентов. Эта проблема усложняется в файловых системах из-за одновременных перекрывающихся записей, когда разные пользователи записывают данные в перекрывающиеся области файла одновременно[10]. Обычно эта проблема решается с помощью управления параллельными заданиями или блокировки, которые могут быть встроены в файловую систему или предоставляться дополнительным протоколом.
История
В 1970-х годах мэйнфреймы IBM могли совместно использовать физические диски и файловые системы, если каждая машина имела собственное канальное подключение к блокам управления накопителями. В 1980-х годах кластеры Digital Equipment Corporation с операционными системами TOPS-20 и OpenVMS (VAX/ALPHA/IA64) включали в себя файловые системы с общим доступом к дискам[11].
См. Также
- Сеть хранения данных
- Общий ресурс
- непосредственно подключаемая система хранения
- Файлообменная сеть
- Общий ресурс
- Распределенное хранилище данных
- Распределённая файловая система для облака
- Глобальная файловая система
- Gopher
- CacheFS
- RAID
Примечания
- ↑ Hsieh, Jenwei; Kochhar, Garima; Celebioglu, Onur; Saify, Amina. Enhancing High-Performance Computing Clusters with Parallel File Systems. Dell Power Solutions. Dell Inc. (май 2005). Дата обращения: 6 марта 2019.
- ↑ Schwarz, Thomas; Mokadem, Riad; Litwin, Witold. Disk Backup Through Algebraic Signatures in Scalable Distributed Data Structures. DEXA 2006 Springer (2006). Дата обращения: 8 июня 2006.
- ↑ Galvin, Peter; Gagne, Greg; Silberschatz, Abraham. Operating System Concepts, 8th Edition. University of Babylon 705–725. John Wiley & Sons, Inc. (2009). Дата обращения: 4 марта 2019. Архивировано из оригинала 6 марта 2019 года.
- ↑ 1 2 Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau. Sun's Network File System. — Arpaci-Dusseau Books, 2014.
- ↑ Sandberg, Russel. The Sun Network Filesystem: Design, Implementation and Experience. Proceedings of the Summer 1986 USENIX Technical Conference and Exhibition. Sun Microsystems, Inc. (1986). — «NFS was designed to simplify the sharing of filesystem resources in a network of non-homogeneousmachines.» Дата обращения: 6 марта 2019.
- ↑ Tarek Sobh. Advances in Computer and Information Sciences and Engineering. — Springer Science & Business Media, 2008. — С. 423–440. — Bibcode:2008acis.book.....S.
- ↑ Система ITS признаётся одной из худших. Каждый файл находился в отдельном каталоге. Безопасность отсутствовала вообще. Пароли не требовались. Можно было войти в активный сеанс пользователя и делать с ним практически что угодно. Важна для истории, поскольку редактор Emacs и язык Lisp получили своё развитие в ней. Вытеснена Unix. Блог системного администратора. 7 худших операционных систем. Всё ли в них плохо? Дата обращения: 9 ноября 2025.
- ↑ Weka Distributed File Systems (DFS). weka.io (27 апреля 2021). Дата обращения: 12 октября 2023.
- ↑ PanFS Parallel File System. panasas.com. Дата обращения: 12 октября 2023.
- ↑ Yaniv Pessach. Distributed Storage: Concepts, Algorithms, and Implementations. — CreateSpace Independent Publishing Platform, 2013. — ISBN 978-1482561043..
- ↑ Murphy, Dan. Origins and Development of TOPS-20. Dan Murphy (1996). — «Ultimately, both VMS and TOPS-20 shipped this kind of capability.» Дата обращения: 6 марта 2019.