Лучшая сетевая файловая система

Обновлено: 06.07.2024

Динамические Кластера CommuniGate Pro требуют наличия Общей Файловой Системы, что бы Backend члены Кластера могли работать с одними и теми же данными одновременно.

Наиболее популярной и хорошо известной реализацией Общей Файловой Системы является файловый сервер, также называемый NAS (network attached storage, сетевое хранилище).

В этом разделе коротко описываются технологии, используемые в Общих Файловых Системах, объясняется, почему SAN (storage area network, сеть хранения данных) не является Общей Файловой Системой, а также содержится краткое введение в Кластерные Файловые Системы, которые могут использоваться для построения Общей Файловой Системы с использованием SAN.

Системы Хранения и Файловые Системы

Используемые сегодня Системы Хранения (такие как дисковые устройства) являются довольно "тупыми" устройствами с точки зрения пользователя и приложений. Каждая система или устройство имеет некоторое количество блоков - сегментов данных фиксированного размера, например, размером 1К (1024 байт). При соединении дискового устройства с компьютером оно может обрабатывать только очень простые запросы, такие как:

Диски могут соединяться с компьютерами при помощи интерфейсов IDE, SCSI или FDDI. Эти интерфейсы используются для отправки дискам команд и данных и для получения от диска данных и кодов выполнения команд.

Сами по себе Системы Хранения не создают никакие другие структуры, что означает что дисковое устройство не может создавать "файлы" или "файловые директории". Эти системы работают только с блоками и всё, что они могут делать - это читать и записывать эти блоки.

Файловые Системы в Одиночной ОС

В каждой современной Операционной Системе (ОС) есть компонент, называемый Файловая Система. Этот компонент является частью ядра ОС и в нём реализованы такие вещи, как "файлы" и "файловые директории".

  • Файловая Система ведёт в том или ином виде Таблицу Размещения Файлов (FAT) - информацию, которая связывает логические файлы с номерами блоков в устройстве хранения. Например, в FAT может быть задано, что "File1" хранится в 5 блоках диска с номерами 123400, 123405, 123401, 177777, 123456, а "File2" хранится в 6 блоках диска с номерами 323400, 323405, 323401, 377777, 323456, 893456.
  • Файловая Система ведёт список всех неиспользуемых блоков хранения и автоматически размещает новые блоки, когда файл увеличивается в размере и возвращает блоки в список неиспользованных блоков, когда файл уменьшает свой размер или удаляется.
  • Файловая Система обрабатывает запросы приложений, которым необходимо прочитать данные из логических файлов или записать данные в них. Файловая Система преобразовывает эти запросы в одну или несколько операций чтения/записи блоков, используя информацию из Таблицы Размещения Файлов.
  • Файловая Система ведёт специальные файлы, называемые "файловыми директориями" и сохраняет в них информацию о других файлах, "находящихся" в этих директориях.
  • Файловая Система ведёт также "кэш файлов"" При записи информации в файл она сохраняется на Устройстве Хранения (на дисках) и одновременно копируется в "кэш-буфер" Файловой Системы.
    При чтении информации из хранилища, она передаётся в приложение и одновременно копируется в "кэш-буфер""
    Когда этому (или другому) приложению необходимо прочитать эту же порцию информации из файла, находящегося в кэше, Файловая Система просто возвращает эту информацию из своего кэш-буфера вместо того, что бы прочитывать её повторно из Системы Хранения.
В этом примере Файловая Система обслуживает запросы от двух приложений. Приложение 1 просит Файловую Систему прочитать блок номер 5 из File1. Файловая Система находит информацию о File1 в Таблице Размещения Файлов и определяет, что для этого файла размещено 5 блоков, и блок файла номер 5 хранится на диске в блоке номер 123456.

Файловая Система через интерфейс диска (IDE, SCSI или любой другой) отправляет диску команду READBLOCK(123456).

Дисковое устройство отправляет информацию из указанного блока в компьютер.

Файловая Система помещает прочитанную информацию в кэш-буфер и отправляет её приложению.

Приложение 2 просит Файловую Систему записать блок номер 7 в File2. Файловая Система находит информацию о File2 в Таблице Размещения Файлов и определяет, что для этого файла размещено 6 блоков. Она проверяет список неиспользуемых блоков диска и находит неиспользуемый блок номер 13477.

Она удаляет номер блока из списка неиспользуемых блоков и добавляет его блоком номер 7 в информацию о File2 в Таблице Размещения Файлов, так что теперь File2 имеет размер 7 блоков.

Файловая Система через интерфейс диска (IDE, SCSI или любой другой) отправляет диску команду WRITEBLOCK(13477) и отправляет данные блока, которые были сгенерированны приложением.

Дисковое устройство записывает данные блока в указанной блок диска и подтверждает выполнение операции.

Файловая Система копирует данные блока в кэш-буфер.

Если любое приложение попытается прочитать блок 5 из File1 или блок 7 из File2 то Файловая Система получит информацию из кэш-буфера и не будет выполнять операцию на диске.

Все приложения, работающие в этой Операционной системе, используют единую Файловую Систему. Файловая Система гарантирует целостность данных. Если блок диска 13477 размещён для File2, то он не будет размещаться ни для какого-либо другого файла - до тех пор, пока File2 не будет удалён или не уменьшит свой размер до размера менее, чем 7 блоков.

Сетевая Файловая Система (NAS)

Если компьютерам сервера необходимо использовать одни и те же данные, то может использоваться Сетевая Файловая Система (также называемая Network Attached Storage, NAS).

Сетевая Файловая Система реализуется с использованием Файлового Сервера и сети. Файловый Сервер - это обычный компьютер или специальная ОС с обычной Файловой Системой и обычными дисковыми устройствами, управляемыми этой Файловой Системой.

Сетевая Файловая Система "встраивает" часть себя внутрь ядра ОС на "клиентских" компьютерах как "подставную" Файловую Систему, ретранслирующую запросы приложения к файлам на Файловый Сервер через сеть:

В этом примере Файловая Система на Файловом Сервере обслуживает запросы нескольких приложений, запущенных на "клиентских" компьютерах сервера.

Единственная разница с одиночной ОС заключается в доставке запросов; вместо нескольких внутренних операций между приложением и Файловой Системой, работающей в составе ядра ОС, встроенная "заглушка" отправляет запросы через сеть, получает ответы и передаёт их приложению. Вся "реальная работа" (обслуживание Таблицы Размещения Файлов и кэша) выполняется на компьютере Файлового Сервера.

Так как только компьютер Файлового Сервера имеет прямой доступ к физическому диску, то все приложения, запущенные на сервере, используют одну и ту же Файловую Систему - Файловую Систему, работающую на Файловом Сервере. Эта Файловая Система гарантирует целостность данных. Если блок диска 13477 размещён для File2, то он не будет размещаться ни для какого-либо другого файла - до тех пор, пока File2 не будет удалён или не уменьшит свой размер до размера менее, чем 7 блоков.

Сеть Хранения Данных (SAN)

Сеть Хранения Данных является сетью специального типа, соединяющей компьютеры и дисковые устройства, подобно тому, как SCSI кабеля соединяют дисковые устройства с компьютером.

Любой компьютер, соединённый с SAN, может отправлять дисковые команды на любое дисковое устройство, подсоединённое к SAN. На физическом уровне, SAN может быть реализован через FDDI, Ethernet или любой другой тип интерфейса.

Некоторые диски или массивы имеют "двухканальные" контроллеры SCSI и могут быть соединены с двумя компьютерами через обычные кабеля SCSI. Так как оба компьютера могут отправлять дисковые команды чтения/записи на такой общий диск, то такая конфигурация имеет такую же функциональность, как и однодисковый SAN.

SAN обеспечивает реализацию Общих Дисков, но сам по себе SAN не является Общей Файловой Системой. Если у вас есть несколько компьютеров, имеющих доступ к Общему Диску (через SAN или двухканальный SCSI) и вы попытаетесь использовать такой диск с обычной Файловой Системой, то очень быстро логическая структура диска будет нарушена.

С Общими Дисками и обычными Файловыми Системами возникают две основные проблемы:

Отсутствие целостности при размещение свободного пространства Диска Если компьютер X и компьютер Y оба соединены с общим диском ("смонтировали его"), то их Файловые Системы загрузили в память каждого компьютера Таблицы Размещения Файлов. Теперь, если некоторая программа, запущенная на компьютере X, попытается записать новые блоки в какой-нибудь файл, то Файловая Система, работающая на этом компьютере сначала проверит Таблицу Размещения Файлов и разместит блок номер 13477 для этого файла.

Затем Файловая Система, работающая на этом компьютере, изменит свою Таблицу Размещения Файлов, но эти изменения не окажут никакого эффекта на Таблицы Размещения Файлов, загруженные в память других компьютеров. Если приложению, запущенному на каком-либо другом компьютере Y, потребуется увеличить размер файла, то Файловая Система, работающая на этом компьютере Y, может разместить тот же самый блок 13477 для другого файла, так как она понятия не имела о том, что этот блок уже был размещён компьютером X.

Отсутствие целостности Данных Файла Если программа, запущенная на компьютере X, прочитала блок 5 из какого-нибудь файла File1, то это блок копируется в кэш Файловой Системы. Если эта же или другая программа, запущенная на компьютере X попытается прочитать тот же самый блок 5 из этого же файла, то Файловая Система компьютера X просто скопирует данные из своего кэша.

Но программа, запущенная на каком-либо другом компьютере Y, может изменить информацию в блоке 5 файла File1. Так как Файловая Система, запущенная на компьютере X, не будет знать об этом, то она продолжит использовать свой кэш, отправляя приложениям на компьютере X данные, потерявшие актуальность.

Эти проблемы делают невозможным использование Общих Дисков с обычными Файловыми Системами в качестве Общей Файловой Системы. Они могут использоваться для систем восстановления после сбоев или в других конфигурациях, где в любой момент времени диск фактически используется только одним из компьютеров. Файловая Система на компьютере Y начинает использовать Общий Диск только когда компьютер X выключен или прекратил использование Общего Диска.

Кластерная Файловая Система

Кластерные Файловые Системы - это программные продукты, предназначенные для решения проблем, упомянутых выше. Они позволяют вам строить многокомпьютерные системы с Общими Дисками, решая проблемы целостности данных.

Кластерные Файловые Системы обычно реализуются как "надстройки" на обычными Файловыми Системами. Кластерные Файловые Системы используют некое подобие межсерверной сети для передачи информации друг-другу и синхронизации своей деятельности. Межсерверные "взаимодействия" могут реализовываться как по обычным сетям Ethernet, используя тот же самый SAN, соединяющий компьютеры и диски, так и используя для "взаимодействий кластеров" специальные устройства с низкими задержками.

В этом примере Кластерная Файловая Система устанавливается на нескольких компьютерах и обслуживает запросы от приложений, запущенных на этих компьютерах.

Приложение 1, запущенное на первом компьютере, просит Кластерную Файловую Систему прочитать блок номер 5 из File1. Кластерная Файловая Система передаёт запрос обычной Файловой Системе, обслуживающей Общий Диск и далее блок данных читается точно таким же образом, как он читается на одиночном сервере. Приложение 2, запущенное на другой системе, просит Кластерную Файловую Систему записать блок номер 7 в File2. Кластерная Файловая Система через межсерверную сеть уведомляет Кластерные Файловые Системы на других компьютерах об изменении этого блока. Кластерные Файловые Системы удаляют старую, устаревшую копию данных блока из своего кэша.

Кластерная Файловая Система передаёт запрос обычной Файловой Системе. Она находит информацию о File2 в Таблице Размещения Файлов и определяет, что для этого файла размещено 6 блоков. Она проверяет список неиспользуемых блоков диска и находит неиспользуемый блок номер 13477. Она удаляет номер блока из списка неиспользуемых блоков и добавляет его 7-м блоком в информацию о File2 в Таблице Размещения Файлов, так что теперь File2 имеет размер 7 блоков.

Кластерная Файловая Система через межсерверную сеть уведомляет Кластерные Файловые Системы на других компьютерах об изменении Таблицы Размещения Файлов. Кластерные Файловые Системы на этих компьютерах синхронизируются и изменяют свои копии Таблиц Размещения Файлов.

Файловая Система использует интерфейс диска для отправки команды WRITEBLOCK(13477) на Общий Диск и отправляет данные блока, сгенерированные в приложении.

Дисковое устройство записывает данные блока в указанной блок диска и подтверждает выполнение операции.

Кластерная Файловая Система решает проблему целостности и в качестве Общей Файловой Системы позволяет нескольким компьютерам использовать Общие Диски.

Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.

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


Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.

Как такая задача решалась мной раньше? Раньше я использовал только винду с линуксом, поэтому задачи обмена с apple os не возникало. Конечно, хотелось использовать открытую и родную фс для линукса — ext4. Но на винде её смонтировать непросто. Нужно устанавливать бесплатный (но проприетарный) Paragon ExtFS for Windows. И ладно, если бы это работало, но к сожалению данное ПО повреждает вам раздел с линуксом. Напоролся пару раз, и всякое желание пользоваться этим по пропало.

А вот виндовая фс под линуксом читается и пишется без проблем. Нужно всего лишь установить ntfs-3g драйвер. Он работает в юзерспейсе. Файловая система проприетарная, но решение работает.

Теперь же я хочу использовать ещё и хакинтош, и хочется разобраться какие ещё есть варианты для решения этой задачи, кроме ntfs.

На самом деле вариантов немного. Давайте разберёмся, какие есть файловые системы, и какие из них являются более или менее универсальными.

Fat32 — всем известная древняя фс, является самой универсальной в плане переносимости, но и самой убогой в плане ограничений. Была разработана давно, не поддерживает файлы размером более 4 Гб. Проприетарная. Для моих задач не подходит.

Ntfs — родная фс для винды, проприетарщина. Линукс, как я уже писал выше, её поддерживает с помощью стороннего драйвера (ntfs-3g). Мак нативно её не понимает, хотя можно доустановить соответствующее по. Есть несколько вариантов, как платных, так и бесплатных. Ни один из них мне не нравится. ntfs-3g работает в userspace (с медленной скоростью), а платные решения — платные.

Hfs+ — одна из худших фс, когда либо созданных. Родная для мак ос, но нисколько не универсальная. Можно примонтировать на линуксе, а для винды опять же есть платные решения — в пролёте.

Ext4 — одна из правильных фс, родная для линукс. Но в плане монтирования в неродных ос — опять проблемы. За платные решения для хакинтоша и для винды опять просят денег. Есть и бесплатные решения, к примеру ext2fsd, но этот драйвер не умеет писать в ext4. В пролёте.

Udf — одна из правильных фс, поддерживается нативно всеми ос. Эта фс была бы лучшим вариантом, если бы не компания apple. Изначально udf создавалась для оптических носителей, но она может быть спокойно использована на обычном жёстком магнитном диске. НО! Из-за того, что яблочники не реализовали поддержку этой фс с раздела, вся задумка отменяется. Даже последняя мак ос Х поддерживает данную фс только если всё блочное устройство не имеет таблицы разделов. На гитхабе есть скрипт format-udf, который может подготовить носитель специальным образом: в начальном блоке данных прописывается mbr, говорящий что раздел начинается прямо там же где и сам mbr. Т.е. накопитель как бы одновременно и с таблицей разделов (то что понимает винда), и вроде как и без таблицы разделов. Этот способ предполагает что носитель будет внешний, а мне нужно сделать exchange раздел именно на внутреннем накопителе. Так что данный вариант тоже в пролёте.

exFat — проприетарщина, но нативно работает как в винде, так и в маке. Это очень хорошо. А что в линуксе?

Эта фс использовалась для sd карт на андроидах, а там у нас линукс ядро. Производители реализовали драйвер exfat для linux ядра и никому его не показывали. Но некто в интернете слил на гитхаб их код. Было понятно, что это воровство, и в таком виде код в ядро попасть не мог. Однако, в этом коде сообщество нашло куски gpl кода, что разумеется, требовало раскрытия всех исходников, т.е. это было уже воровство у сообщества со стороны компании samsung. Через некоторое время самсунг выпустили этот код под gpl лицензией.

Спрашивается, а почему тогда данный драйвер не поддерживается из коробки? Потому что его нет в ядре. Мердж этого кода (пусть и gpl-ного) в mainline — это по сути троян от мелких (из-за патентов). Торвальдс это понимает, и, понятное дело, ядро не отравит.

В линуксе монтировать exfat можно либо с помощью exfat-fuse драйвера, либо с помощью exfat-nofuse. Конечно, лучше nofuse, так как он будет работать быстрее. Но его придётся собирать каждый раз при обновлении ядра. Благо, для автоматизации этой задачи есть механизм dkms.

Подведём итог

Я останавливаюсь на exfat. Да, проприетарщина, но ничего не поделаешь. Зато всё нативно работает, и “танцы с бубном” отсутствуют: во всех трех операционных системах есть нативная поддержка и возможность поставить эту фс именно на раздел. Ограничения в 4 Гб нет. И в целом, это решение достаточно простое.

Надеюсь, вы узнали что-то новое для себя и выберите подходящий вариант исходя из ваших нужд.

Апдейт 4 февраля 2020:
Оказывается раздел с exfat невозможно ни растянуть, ни сжать. Причём даже на самой винде. Не учёл этот момент при выборе решения. Если нужно изменить размер раздела — придётся только бекапить данные в другое место и пересоздавать раздел уже с нужным размером.
С UDF в этом плане дела не лучше. Вот здесь лежит табличка, описывающая возможности по работе с разделами в gparted.

В 2016 году сетевые файловые системы Linux очень сильно развились, появилось новые распределенные сетевые хранилища, которые могут использоваться для увеличения надежности хранения данных. Они могут размещаться на нескольких физических устройствах, а организация файлов настраивается с помощью различных политик и не зависит от оборудования.

Многие пользователи уже знакомы с такими решениями, как Ceph, которое используется для развертывания OpenStack. Аналитики прогнозируют, что к 2019 году 70 распределенных систем хранения данных будут выполнены в качестве сетевых программных массивов. Такие программные продукты называются Software-Defined Storage или SDS. Сейчас к разработке таких файловых систем для хранения данных подключаются такие известные компании, как Dell, Fujitsu, Hitachi Data Systems, Huawei и Vodafone.

2017 год станет еще более важным в развитии открытых сетевых систем хранения данных. Уже во втором квартале 2017 планируется выпустить открытое решение OpenSDS, в котором будет улучшена безопасность, а также будет использовать технологии Cinder и Manila из OpenStack. В то же время уже сейчас существует множество сетевых файловых систем linux для хранения данных, начиная от Apache Cassandra и заканчивая Ceph.

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

Лучшие сетевые файловые системы

1. Apache Cassandra

Apache Cassandra - это не совсем файловая система, а масштабируемая и высоко доступная база данных для критически важных приложений. Она способна разворачиваться в нескольких центрах обработки данных или на нескольких серверах для увеличения надежности хранения данных, уменьшения нагрузки и увеличения отказоустойчивости.

2. Ceph


Ceph - это расширяемая, масштабируемая сетевая файловая система и платформа для хранения данных от Red Hat. Она может использоваться на частных или государственных предприятиях, которые внедряют свои облака. Обычно применяется вместе с OpenStack. Файловая система может легко масштабироваться до размера в несколько пентабайт путем добавления новых устройств. Узлы поддерживают репликацию для увеличения надежности хранения данных.

Если один из узлов выйдет из строя, то все данные будут восстановлены и эта потеря не скажется на всей системе.

3. CouchDB


4. Плагины Docker Volume


Расширения Docker Volume позволяют интегрировать Docker с внешними системами хранения данных и сохранять необходимые данные на нескольких сетевых устройствах. Здесь поддерживается множество сетевых хранилищ, среди которых Azure Files, NetApp, Vmware, VSphere и многие другие. Можно загрузить отдельные расширения на GitHub.

5. GlusterFS

GlusterFS - это масштабируемая сетевая файловая система и платформа для управления данными от компании Red Hat. Она относится к категории распределенные файловые системы и может быть развернута на нескольких узлах сети, создавая частные, общедоступные или гибридные облака. Ее можно использовать для потоковой передачи файлов, медиа, видео, работы контейнеров, анализа данных и многого другого. Файловая система может иметь очень большую пропускную способность, в зависимости от количества используемых узлов. Здесь вы можете реализовать даже сетевой raid массив.

6. MongoDB


MongoDB - это документно ориентированная база данных, специально разработана для высокой производительности, упрощения разработки и масштабирования до больших объемов. Здесь, также как и в CouchDB, данные хранятся в формате JSON, также поддерживается репликация между несколькими узлами.

7. Nexenta


Nexenta - это масштабируемое, унифицированное программное сетевое хранилище linux, которое имеет возможности управления размещением данных. Платформа способна интегрироваться с VMWare, Docker и OpenStack.

8. Redis


9. Riak CS


Riak CS - это программное облачное хранилище для хранения объектов в распределенной базе данных Riak KV. Она позволяет масштабировать облако между необходимым количеством машин и может использоваться для создания государственных или частных облачных архитектур для поддержания работы тяжелых приложений и услуг.

10. Swift


Swift - это система хранения объектов для OpenStack специально спроектированная для хранения и быстрого получения неструктурированных объектов. Он оптимизирован для масштабирования и многопоточной работы с большим количеством данных.

Выводы

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

Проблема с растущими стартапами или малым бизнесом заключается в масштабируемости, когда они достигают пути, на котором они не являются ни маленькими, ни большими, слишком большими для использования общедоступных облачных хранилищ и слишком маленькими, чтобы позволить себе корпоративные хранилища, такие как Amazon Web Services.

Услуги публичного облачного хранилища начинаются дешево, но могут стать непомерно дорогими по мере того, как будет храниться больше данных.

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

Здесь в игру вступает Prosumer, он попадает в точку между потребителями и профессионалами. Операционная система хранилища позволяет вам создать собственное «облако» в вашей сети за ваши собственные средства. Поскольку эта ОС использует настольный компьютер в качестве системы хранения, домашним пользователям не имеет смысла запускать ее круглосуточно и без выходных, если вы хотите создать центральную сетевую систему хранения для своего дома, приобретите потребительское хранилище NAS от WD Red, D-Link, Asus или Seagate IronWolf. Без лишних слов, вот некоторые бесплатные ОС с открытым исходным кодом для сетевых хранилищ (NAS) для малого бизнеса.

Хранилище ОС FreeNAS

NAS4Free

Популярная статья: 4 программы для исправления и восстановления поврежденных видеофайлов MP4 AVI для 32-битных 64-битных Windows 10 и Mac

NAS4Free поддерживает совместное использование в Windows, Apple и UNIX-подобных системах. Он включает ZFS v5000, программный RAID (0,1,5), шифрование диска, отчеты SMART / электронной почты и т. Д. Со следующими протоколами: CIFS / SMB (Samba), контроллер домена Active Directory (Samba), FTP, NFS, TFTP, AFP, RSYNC, Unison, iSCSI (инициатор и цель), HAST, CARP, Bridge, UPnP и Bittorent, которые легко настраиваются через веб-интерфейс. NAS4Free можно установить на Compact Flash / USB / SSD ключ, жесткий диск или загрузить с LiveCD / LiveUSB с небольшим usbkey для хранения конфигурации.

openmediavault

openmediavault в первую очередь предназначен для использования в небольших офисах или домашних офисах, но не ограничивается этими сценариями. Это простое и легкое в использовании готовое решение, которое позволит каждому устанавливать и администрировать сетевое хранилище без более глубоких знаний.

  • ОС Debian Linux с веб-администрированием
  • Управление томом и SMART
  • Агрегация ссылок
  • Wake On LAN
  • Поддержка IPv6
  • Уведомления по электронной почте
  • Обмен файлами

Openfiler

Openfiler превращает стандартную систему архитектуры x86_64 в полноценное устройство NAS / SAN или шлюз IP-хранилища и предоставляет администраторам хранилища мощный инструмент для удовлетворения растущих потребностей в хранилищах. Openfiler гарантирует, что администраторы хранилища могут наилучшим образом использовать производительность системы и ресурсы емкости хранилища при распределении хранилища и управлении хранилищем в многоплатформенной сети.

Openfiler предоставляет ключевые функции, такие как цель iSCSI для виртуализации, поддержка цели Fibre Channel, репликация на уровне блоков и высокая доступность, которые являются основой любой критически важной для бизнеса среды хранения. Openfiler решает все ключевые проблемы хранения данных:

↓ 05- Rockstor

Rockstor

  • Создайте свое частное облачное хранилище и расширьте возможности своей организации с помощью гибридного рабочего процесса, используя лучшее из общедоступного и частного облачного хранилища.
  • Полная интеграция с общедоступным облачным хранилищем для повышения эффективности и снижения эксплуатационных расходов
  • Масштабируйте свои потребности в хранилище с низкими дополнительными затратами
  • Управляйте своим хранилищем практически без опыта работы с ИТ

ПетаСАН

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

ESOS - ОС корпоративного хранилища

Популярная статья: БЕСПЛАТНО RescuePRO Deluxe с флешкой SanDisk и SD-картой

Типичные варианты использования «сервера хранения» ESOS® включают хранилища данных VMFS на VMware ESX / ESXi, тома Windows NTFS, диски Linux и т. Д. Высокопроизводительная, специализированная (наподобие устройства) база Linux, созданная с нуля, не имеющая отношения к другим Дистрибутивы Linux.

CryptoNAS

Проект CryptoNAS приносит шифрование данных в массы. Live-CD CryptoNAS создан для людей, которые хотят зашифровать свои данные, не беспокоясь о сложных технических проблемах. Компьютер, на котором установлен Live-CD CryptoNAS, работает как файловый сервер (NAS), который шифрует ваши личные данные. Пакет CryptoNAS-Server добавляет удобный веб-интерфейс для шифрования жесткого диска на существующий файловый сервер.

Типы файловых систем

Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.

Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.

Что такое файловая система

Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.

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

Запись файлов большого объема приводит к необходимости фрагментации, когда файлы не сохраняются как целые единицы, а делятся на фрагменты. Каждый фрагмент записывается в отдельные кластеры, состоящие из ячеек (размер ячейки составляет один байт). Информация о всех фрагментах, как части одного файла, хранится в файловой системе.

Файловая система связывает носитель информации (хранилище) с прикладным программным обеспечением, организуя доступ к конкретным файлам при помощи функционала взаимодействия программ A PI. Программа, при обращении к файлу, располагает данными только о его имени, размере и атрибутах. Всю остальную информацию, касающуюся типа носителя, на котором записан файл, и структуры хранения данных, она получает от драйвера файловой системы.

На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.

Основные функции файловых систем

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

Основными функциями файловой системы являются:

  • размещение и упорядочивание на носителе данных в виде файлов;
  • определение максимально поддерживаемого объема данных на носителе информации;
  • создание, чтение и удаление файлов;
  • назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т.п.);
  • определение структуры файла;
  • поиск файлов;
  • организация каталогов для логической организации файлов;
  • защита файлов при системном сбое;
  • защита файлов от несанкционированного доступа и изменения их содержимого.

VDS Timeweb арендовать

Задачи файловой системы

Функционал файловой системы нацелен на решение следующих задач:

  • присвоение имен файлам;
  • программный интерфейс работы с файлами для приложений;
  • отображение логической модели файловой системы на физическую организацию хранилища данных;
  • поддержка устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
  • содержание параметров файла, необходимых для правильного взаимодействия с другими объектами системы (ядро, приложения и пр.).

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

Вся информация о файлах хранится в особых областях раздела (томах). Структура справочников зависит от типа файловой системы. Справочник файлов позволяет ассоциировать числовые идентификаторы уникальных файлов и дополнительную информацию о них с непосредственным содержимым файла, хранящимся в другой области раздела.

Операционные системы и типы файловых систем

Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.

В случае с Windows все выглядит достаточно просто: NTFS на всех дисковых разделах и FAT32 (или NTFS) на флешках. Если установлен NAS (сервер для хранения данных на файловом уровне), и в нем используется какая-то другая файловая система, то практически никто не обращает на это внимания. К нему просто подключаются по сети и качают файлы.

На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.

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

Рассмотрим более подробно виды файловых систем в зависимости от их предпочтительного использования с определенной операционной системой.

Файловые системы Windows

Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.

FAT (таблица распределения файлов)

Числа в FAT12, FAT16 и FAT32 обозначают количество бит, используемых для перечисления блока файловой системы. FAT32 является фактическим стандартом и устанавливается на большинстве видов сменных носителей по умолчанию. Одной из особенностей этой версии ФС является возможность применения не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом USB.

Пространство FAT32 логически разделено на три сопредельные области:

  • зарезервированный сектор для служебных структур;
  • табличная форма указателей;
  • непосредственная зона записи содержимого файлов.

К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.

С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

NTFS (файловая система новой технологии)

Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 10 18 байт ). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.

ReFS (Resilient File System)

Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:

  • Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
  • данные записываются на новое дисковое пространство, а не поверх существующих файлов;
  • при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.

Все это позволяет повысить надежность хранения файлов, обеспечивает быстрое и легкое восстановление данных.

Файловые системы macOS

Для операционной системы macOS компания Apple использует собственные разработки файловых систем:

Файловые системы macOS

  1. HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
  2. Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.

Файловые системы Linux

В отличие от ОС Windows и macOS, ограничивающих выбор файловой системы предустановленными вариантами, Linux предоставляет возможность использования нескольких ФС, каждая из которых оптимизирована для решения определенных задач. Файловые системы в Linux используются не только для работы с файлами на диске, но и для хранения данных в оперативной памяти или доступа к конфигурации ядра во время работы системы. Все они включены в ядро и могут использоваться в качестве корневой файловой системы.

Файловая система Линукс

Основные файловые системы, используемые в дистрибутивах Linux:

Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.

JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.

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

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

Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.

Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.

Дополнительные файловые системы

В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.

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

  • ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
  • Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
  • VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
  • GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
  • JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.

Практический пример использования файловых систем

Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.

Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант - использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.

Файловая система для microSD

Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

Надеюсь, краткий обзор основных ФС поможет решить практические задачи в части правильного выбора и настройки ваших компьютерных устройств в повседневной практике.

Читайте также: