Лучшая сетевая файловая система
Существует несколько десятков файловых систем, все из них предоставляют пользовательские интерфейсы для хранения данных. Каждая из систем хороша по-своему. Однако, в наш век высоких нагрузок и петабайтов данных для обработки, оказалось довольно непросто подыскать то, что нужно, стоит лишь задуматься о распределенных данных, распределенных нагрузках, множественном монтировании rw и о прочих кластерных прелестях.
Задача: организовать распределенное файловое хранилище
— без самосборных ядер, модулей, патчей,
— с возможностью множественного монтирования в режиме rw,
— POSIX совместимость,
— отказоустойчивость,
— совместимость с уже использующимися технологиями,
— разумный overhead по I/O операциям по сравнению с локальными файловыми системами,
— простота конфигурации, обслуживания и администрирования.
В работе мы используем Proxmox и контейнерную виртуализацию OpenVZ. Это удобно, это летает, у этого решения больше плюсов, чем у аналогичных продуктов. По крайней мере для наших проектов и в наших реалиях.
Сам storage везде монтируется по FC.
OCFS2
У нас был успешный опыт использования данной файловой системы, решили сначала попробовать ее. Proxmox с недавнего времени перешел на редхатовское ядро, в нем поддержка ocfs2 выключена. Модуль в ядре есть, но на форумах openvz и proxmox не рекомендуют его задействовать. Мы попробовали и пересобрали ядро. Модуль версии 1.5.0, кластер из 4 железных машин на базе debian squeeze, proxmox 2.0beta3, ядро 2.6.32-6-pve. Для тестов использовался stress. Проблемы за несколько лет остались те же самые. Все завелось, настройка данной связки занимает полчаса от силы. Однако, под нагрузкой кластер может самопроизвольно развалиться, что ведет к тотальному kernel panic на всех серверах сразу. За сутки тестов машины перезагружались в общей сложности пять раз. Это лечится, но доводить такую систему до работоспособного состояния довольно тяжело. Пришлось также пересобирать ядро и включать ocfs2. Минус.
Хоть ядро и редхатовское, модуль по умолчанию включен, завестись мы и здесь так и не смогли. Все дело в proxmox, которые со второй версии придумали свой кластер с шахматами и поэтессами для хранения своих конфигов. Там cman, corosync и прочие пакеты из gfs2-tools, только все пересобранные специально для pve. Оснастка для gfs2, таким образом, из пакетов просто так не ставится, так как предлагает сначала снести весь proxmox, что мы сделать не могли. За три часа зависимости удалось победить, но все опять закончилось kernel panic. Попытка приспособить пакеты для proxmox для решения наших проблем успехом не увенчалась, после двух часов было принято решение отказаться от этой идеи.
Остановились пока на ней.
POSIX совместимая, высокая скорость работы, отличная масштабируемость, несколько смелых и интересных подходов в реализации.
Файловая система состоит из следующих компонентов:
1. Клиенты. Пользователи данных.
2. Сервера метаданных. Кэшируют и синхронизируют распределенные метаданные. С помощью метаданных клиент в любой промежуток времени знает, где находятся нужные ему данные. Также сервера метаданных выполняют распределение новых данных.
3. Кластер хранения объектов. Здесь в виде объектов хранятся как данные, так и метаданные.
4. Кластерные мониторы. Осуществляют мониторинг здоровья всей системы в целом.
Фактический файловый ввод/вывод происходит между клиентом и кластером хранения объектов. Таким образом, управление высокоуровневыми функциями POSIX (открытие, закрытие и переименование) осуществляется с помощью серверов метаданных, а управление обычными функциями POSIX (чтение и запись) осуществляется непосредственно через кластер хранения объектов.
Любых компонентов может быть несколько, в зависимости от стоящих перед администратором задач.
Файловая система может быть подключена как напрямую, с помощью модуля ядра, так через FUSE. С точки зрения пользователя, файловая система Ceph является прозрачной. Они просто имеют доступ к огромной системе хранения данных и не осведомлены об используемых для этого серверах метаданных, мониторах и отдельных устройствах, составляющих массивный пул системы хранения данных. Пользователи просто видят точку монтирования, в которой могут быть выполнены стандартные операции файлового ввода / вывода. С точки зрения администратора имеется возможность прозрачно расширить кластер, добавив сколько угодно необходимых компонентов, мониторов, хранилищ, серверов метаданных.
Разработчики гордо называют Ceph экосистемой.
GPFS, Lustre и прочие файловые системы, а также надстройки, мы не рассматривали в этот раз, они либо очень сложны в настройке, либо не развиваются, либо не подходят по заданию.
Конфигурация и тестирование
Конфигурация стандартная, все взято из Ceph wiki. В целом файловая система оставила приятные впечатления. Собран массив 2Тб, пополам из SAS и SATA дисков (экспорт блочных устройств по FC), партиции в ext3.
Ceph storage примонтирован внутрь 12-и виртуальных машин на 4 hardware nodes, осуществляется чтение-запись со всех точек монтирования. Четвертые сутки стресс-тестов проходят нормально, I/O выдается в среднем 75 мб/с. на запись по пику.
Мы пока не рассматривали остальные функции Ceph (а их осталось еще довольно много), также есть проблемы с FUSE. Но хотя разработчики предупреждают, что система экспериментальная, что ее не стоит использовать в production, мы считаем, что если очень хочется, то можно -_-
Прошу всех заинтересованных, а также всех сочувствующих, в личку. Тема очень интересная, ищем единомышленников, чтобы обсудить возникшие проблемы и найти способы их решения.
Файловый сервер – это, как правило, центральный сервер в компьютерной сети, который обеспечивает подключение пользователей к сетевой системе хранения данных (СХД).
Этот термин может означать как оборудование, так и программное обеспечение, необходимое для выполнения функций файлового сервера.
Пользователи, получив необходимые права на доступ к определенным файлам в сетевой СХД, могут их открывать и редактировать, а также удалять файлы и папки точно так же, как если бы они работали на собственном компьютере.
На файловом сервере каждому авторизованному пользователю предоставляется определенное пространство для хранения рабочих файлов. Другие пользователи могут также их открывать, читать и редактировать, в соответствии с их правами доступа. Эти права устанавливаются администратором файлового сервера. Он определяет, кто какие файлы и в каких папках может открывать и просматривать, а также (если это разрешено) редактировать, удалять или добавлять новые файлы.
Расположение файлового сервера в компьютерной сети предприятия
Кроме того, файловый сервер может иметь подключение к интернету, и, при соответствующей конфигурации прав доступа, пользователи могут получать доступ к ресурсам интернет, если доступ к ним разрешен сетевым администратором. В некоторых организациях может административно устанавливаться запрет на доступ к определенным ресурсам по тем или иным критериям. Например, может быть закрыт доступ к видеохостингу Youtube, сайтам с развлекательным контентом и пр. Кроме того, подключение файлового сервера к интернету обеспечивает удаленный доступ пользователей к своим рабочим папкам на файловом сервере, если они находятся не на рабочем месте.
Для файлового сервера могут подойти любые современные операционные системы Windows, Linux или macOS, хотя надо иметь в виду, что сетевые устройства должны быть с ними совместимы.
Также надо принять во внимание, что файловые серверы часто используются не только для хранения и обработки файлов, но также и как репозиторий для программ, которые доступны пользователям корпоративной сети, а также в качестве сервера резервирования.
Основные преимущества файлового сервера:
- Легкая организация и инвентаризация корпоративных ресурсов.
- Прозрачность и легкость нахождения нужной информации.
- Удобство коллективной работы с документами.
- Отсутствие конфликтов версионности.
- Отсутствие ресурсных ограничений персональных машин пользователей.
- Возможность удаленного доступа к файлам и работы на выезде.
- Высокая степень защиты и безопасности данных.
Какую файловую систему выбрать для моего NAS?
После того, как мы увидели основные характеристики различных файловых систем, которые мы можем использовать в домашних и / или профессиональных NAS-серверах, мы увидим преимущества и недостатки каждой из них.
Файловая система EXT4 является самой старой из всех, и она более чем проверена, поэтому эта файловая система очень стабильна, фактически, она по-прежнему является файловой системой по умолчанию для подавляющего большинства дистрибутивов Linux, таких как Debian, Ubuntu или операционные системы QNAP, Synology и Asustor. Если вам нужно хранить большой объем данных, создать RAID и все, что влечет за собой, и получить наилучшую производительность чтения / записи с минимально возможным потреблением ресурсов, EXT4 наверняка удовлетворит все ваши потребности. Эта файловая система включает ведение журнала, поэтому у вас не должно быть потери данных в случае сбоя питания, однако Btrfs и ZFS в этом отношении явно лучше.
Btrfs улучшает многие отрицательные аспекты EXT4, такие как ограничения размера файла и многое другое, эта файловая система использует копирование при записи и была разработана для очень больших серверов, на которых мы собираемся хранить много информации, поэтому у нас есть много дополнительных функций. что EXT4 не включает, например прозрачное шифрование данных, сжатие и дедупликацию. Мы также должны учитывать, что он включает в себя интегрированные снимки состояния, чего нет в EXT4, он поддерживает RAID и гибкое распределение inodes. Однако было подтверждено, что эта файловая система Btrfs потребляет больше системных ресурсов, чем EXT4, кроме того, мы получим меньшую скорость чтения и записи при тех же условиях (такое же оборудование и тот же тип файлов для передачи).
Файловая система ZFS является одной из самых продвинутых из существующих в настоящее время, эта файловая система похожа на Btrfs, но включает в себя действительно интересные функции, такие как возможность добавления новых устройств в текущее хранилище и немедленное добавление нового пространства, что делает «RAID», который у нас были в других файловых системах. ZFS означает масштабируемость, большую емкость хранилища данных, защиту от повреждения (целостность) и эффективное сжатие данных, дедупликацию и возможности быстрого создания моментальных снимков. Другие особенности заключаются в том, что он позволяет вам постоянно проверять целостность и выполнять автоматический ремонт совершенно прозрачным способом. Отрицательной стороной ZFS является то, что она потребляет много ресурсов, особенно ОЗУ, кроме того, если вы активируете дедупликацию, у вас будет довольно значительное дополнительное потребление ОЗУ.
Если у вас есть NAS-сервер низкого и среднего уровня, ясно, что файловая система, которую вы должны использовать, - это EXT4, в случае использования NAS среднего или высокого уровня вы можете выбрать Btrfs или ZFS, в зависимости от того, какой у вас Операционная система поддерживает его. Если вы собираетесь использовать ZFS, вы должны иметь в виду, что дедупликация потребляет большой объем оперативной памяти, это недостаток, который мы должны заплатить, чтобы сэкономить большой объем дискового пространства.
Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.
Поскольку я создаю обучающие видео ролики о линуксе, мне удобнее работать именно на нём. Но монтировать хочется попробовать в «финальном вырезе». Уж очень мне приглянулась идея магнитной ленты времени.
Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.
Как такая задача решалась мной раньше? Раньше я использовал только винду с линуксом, поэтому задачи обмена с 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.
6. MongoDB
MongoDB - это документно ориентированная база данных, специально разработана для высокой производительности, упрощения разработки и масштабирования до больших объемов. Здесь, также как и в CouchDB, данные хранятся в формате JSON, также поддерживается репликация между несколькими узлами.
Что такое файловая система и для чего они нужны?
Все операционные системы включают файловую систему или несколько различных файловых систем для управления как информация хранится и извлекается с разных носителей , например жесткие диски, SSD диски, а также съемные накопители, такие как флэш-накопители или карты памяти. объем памяти. Если бы у нас не было файловой системы, операционная система не знала бы, где заканчиваются определенные записанные данные и где начинаются следующие, поэтому это один из наиболее важных аспектов, который мы должны учитывать.
Основные функции любой файловой системы - выделить пространство для различных файлов, управлять свободным пространством, структурировать сохраненную информацию так, чтобы она была легко и быстро доступна. Еще один очень важный аспект, который мы должны учитывать, - это секторы, а точнее их размер, в этих секторах хранится информация. Другие характеристики файловых систем заключаются в том, что они предоставляют методы для создания, копирования, перемещения, переименования и даже удаления файлов и каталогов, имеющихся на носителе. Файловые системы также включают в себя некоторые очень важные функции, такие как списки управления доступом (ACL) для управления разрешениями, механизмы предотвращения или смягчения фрагментации, возможность ведения журнала (улучшает целостность файловой системы) и возможность настройки дисковых квот среди прочего. функциональные возможности.
В настоящее время у нас есть в общей сложности три различных файловых системы, которые широко используются в серверах NAS от разных производителей, и, конечно же, в Linux и операционные системы на основе FreeBSD для хранения данных на серверах, эти файловые системы - EXT4, Btrfs и ZFS, три файловые системы имеют разные характеристики, а некоторые лучше работают в разных сценариях.
EXT4 - основная файловая система любой операционной системы на базе Linux, эта файловая система является транзакционной (с журналированием) и включает в себя очень важные улучшения по сравнению с ее предшественниками, такие как поддержка больших томов, меньшего размера. ЦП использование и улучшение скорости чтения и записи. Некоторые очень важные характеристики EXT4 заключаются в том, что он позволяет резервировать дисковое пространство без необходимости заполнять все нулями, что обычно делалось в других файловых системах, кроме того, это зарезервированное пространство обычно непрерывно, чтобы избежать или уменьшить фрагментация файловой системы, эта функция связана с «Allocate-on-flush» или известна как отложенное резервирование памяти, она заключается в резервировании блока памяти непосредственно перед его записью на диск, это повышает производительность и снижает фрагментацию.
В EXT4 есть методы, позволяющие избежать фрагментации, такие как та, которую мы объяснили, но он также имеет инструмент для дефрагментации отдельных файлов или всего тома без необходимости отключать диск, хотя логически, пока он находится в процессе дефрагментации, мы будем иметь более медленная файловая система.
Эта файловая система имеет следующие характеристики и ограничения:
- Максимальный размер файла: 16 ТиБ при использовании блоков 4K.
- Максимальное количество файлов: 4 миллиарда
- Максимальный размер имени файла: 255 байт.
- Максимальный размер тома: 1EiB
- Прозрачное шифрование данных: да
- Копировать при записи: нет
- Прозрачное сжатие: нет
- Прозрачная дедупликация: нет
После того, как мы познакомимся с основными функциями EXT4, мы поговорим о Btrfs, который известен как естественный преемник файловой системы EXT4.
3. CouchDB
Какие могут быть файловые серверы: способы организации
- Компьютер пользователя. В самом простом варианте, если в корпоративной сети немного пользователей (порядка 10-15), то в качестве файлового сервера может быть использован любой компьютер пользователя в сети компании. Это, конечно, далеко не лучший вариант, поскольку при перезагрузке или выключении этого компьютера сеть оказывается без файлового сервера. Кроме того, пользовательские операционные системы мало подходят для работы в качестве сервера.
- Выделенный серверс установленной ОС (Windows Server или Unix), на котором системный администратор настраивает роль файлового сервера. Это самый дорогой вариант, но и самый универсальный, поскольку все настройки можно сделать точно в соответствии с требованиями.
- Выделенный сервер без предустановленной ОС, например файловый сервер FreeNAS. Этот программный сервер предназначен только для системы файлового хранения. Такой метод дает возможность самостоятельно выбрать оборудование, но разворачивание займет больше времени.
- Решение под ключ. Представляет собой сервер, на котором производителем или поставщиком предустановлена система с настроенным сервисом хранения данных. Такой вариант удобен тем, что он требует не более 10 минут настройки для последующей работы. Это также недешевый вариант и имеющий некоторые ограничения, поскольку все настройки предусмотрены разработчиками.
Проблемы файловых серверов
Несмотря на явные преимущества, перечисленные выше, проблемы у файловых серверов тоже есть.
Компании часто недооценивают объем работы по установке, настройке и обслуживанию такого оборудования и ПО, как файловый сервер. Иногда к этой работе подходят без должного планирования. В результате не только аппаратные ресурсы быстро подходят к своим пределам использования, но также и многие потенциальные преимущества файлового сервера не могут проявиться в полной мере. Например, при отсутствии четких принципов распределения прав доступа пользователи часто не могут соответствующим образом выполнить свои обязанности, т. к. не могут получить необходимые данные. Проблемы могут возникнуть также из-за беспорядочного и бессистемного построения иерархии папок и каталогов, если вообще такой иерархии кто-то придерживается.
Эти аспекты необходимо продумать с самого начала, перед покупкой и установкой файлового сервера. Также предварительной проработки требуют вопросы защиты данных и информационной безопасности, особенно, если файловый сервер предназначен для удаленной работы через интернет. Установка и правильная конфигурация программ информационной безопасности так же критична, как и обучение сотрудников, которые получают доступ к серверу. Требуется четкое понимание персоналом того, где и как хранить свои рабочие файлы на сервере, чтобы исключить ситуации информационного хаоса.
7. Nexenta
Nexenta - это масштабируемое, унифицированное программное сетевое хранилище linux, которое имеет возможности управления размещением данных. Платформа способна интегрироваться с VMWare, Docker и OpenStack.
Преимущества файлового сервера
Для многих компаний решающим критерием при использовании файлового сервера в корпоративной сети является возможность централизованного управления и разграничения прав доступа между пользователями различных подразделений. Кроме того, легко можно обеспечить возможность коллективной работы над документами, исключив при этом проблему использования разных версий одного документа разными пользователями.
Другое преимущество файлового сервера — это устранение ресурсных ограничений для пользователей. За исключением личных файлов все рабочие документы и их резервные копии могут быть размещены на общем сервере. При правильной организации структуры папок и директорий пользователи получают единообразное представление всех доступных документов в организации в соответствии со своими правам доступа.
Если файловый сервер сконфигурирован для работы через интернет, то файлы так же доступны для удаленной работы, как и при работе в локальной сети. Но, в отличие от облачного решения, компания продолжает сохранять контроль над файлами и их безопасностью. Это явное преимущество перед сторонними решениями по хранению корпоративной информации.
2. Ceph
Ceph - это расширяемая, масштабируемая сетевая файловая система и платформа для хранения данных от Red Hat. Она может использоваться на частных или государственных предприятиях, которые внедряют свои облака. Обычно применяется вместе с OpenStack. Файловая система может легко масштабироваться до размера в несколько пентабайт путем добавления новых устройств. Узлы поддерживают репликацию для увеличения надежности хранения данных.
Если один из узлов выйдет из строя, то все данные будут восстановлены и эта потеря не скажется на всей системе.
9. Riak CS
Riak CS - это программное облачное хранилище для хранения объектов в распределенной базе данных Riak KV. Она позволяет масштабировать облако между необходимым количеством машин и может использоваться для создания государственных или частных облачных архитектур для поддержания работы тяжелых приложений и услуг.
Оборудование для организации файлового сервера
Для файлового сервера организаций небольших и средних размеров подойдут бюджетные решения крупнейших вендоров – HPE, Dell, Fujitsu.
В 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 и файловые системы, популярные на данный момент.
8. Redis
Выводы
В этой статье мы рассмотрели сетевые файловые системы Linux и в целом сетевые хранилища для данных, которые с каждым годом набирают все большую и большую популярность из-за своей простоты и огромных функциональных возможностей.
Выбор правильной файловой системы для использования на NAS-сервер - это очень важное решение, в зависимости от того, как мы собираемся его использовать, мы можем выбрать ту или иную файловую систему, поскольку она может обеспечить нам более высокую производительность, лучшую целостность данных и другие функции. Обычно операционные системы NAS-серверов, такие как QNAP, Asustor или Synology, поддерживают популярную файловую систему EXT4, но также Btrfs и даже ZFS. Какую файловую систему мне выбрать для домашнего или рабочего NAS-сервера?
5. GlusterFS
GlusterFS - это масштабируемая сетевая файловая система и платформа для управления данными от компании Red Hat. Она относится к категории распределенные файловые системы и может быть развернута на нескольких узлах сети, создавая частные, общедоступные или гибридные облака. Ее можно использовать для потоковой передачи файлов, медиа, видео, работы контейнеров, анализа данных и многого другого. Файловая система может иметь очень большую пропускную способность, в зависимости от количества используемых узлов. Здесь вы можете реализовать даже сетевой raid массив.
Btrfs
Файловая система Btrfs родилась как естественный преемник EXT4, ее цель - заменить ее, устранив как можно больше ограничений, особенно в отношении максимального размера файлов. Основными характеристиками этой файловой системы является то, что она ориентирована в основном на серверы, у нее есть динамическое размещение inodes, нет необходимости устанавливать максимальное количество при создании файловой системы, как это происходит с EXT4, она позволяет настраивать тома в очень продвинутый, с возможностью настройки моментальных снимков или снимков с возможностью записи, а также позволяет делать снимки моментальных снимков. Другие особенности заключаются в том, что он позволяет зеркалировать и чередовать на целевом уровне, если у нас есть несколько жестких дисков, он способен выполнять проверку данных и метаданных в реальном времени для максимальной целостности данных.
Эта файловая система использует реестр для копирования при записи всех данных и метаданных, а также позволяет выполнять встроенное сжатие для экономии места на диске. Btrfs может проверять файловую систему без необходимости ее размонтирования, и если мы размонтируем ее, проверка будет очень быстрой, конечно, она имеет оптимизированный режим для SSD-накопителей и позволяет дефрагментировать без размонтирования.
- Максимальный размер файла: 16EiB.
- Максимальное количество файлов: 18 триллионов.
- Максимальный размер имени файла: 255 байт.
- Максимальный размер тома: 16EiB.
- Прозрачное шифрование данных: нет
- Копировать при записи: да
- Прозрачное сжатие: да
- Дедупликация: да
Теперь, когда вы знаете основные функции Btrfs, давайте поговорим о ZFS, одной из самых продвинутых файловых систем, доступных для операционных систем Linux и Unix.
Файловая система ZFS - одна из самых передовых на сегодняшний день, она выделяется своей большой емкостью, высокой безопасностью в отношении целостности данных и высокой производительностью при чтении и записи. ZFS использует «пулы хранения» или также известные как vdevs, в отличие от традиционных файловых систем, которые размещаются поверх аппаратного устройства, такого как жесткий диск, и поэтому требуют отдельного диспетчера томов. Благодаря этим vdev мы можем настраивать различные «пулы» простого типа, зеркалировать или использовать популярный RAID-Z для обеспечения как избыточности данных, так и более высокой производительности. Кроме того, файловая система ZFS может быть оснащена SSD-дисками, которые будут действовать как кэш, или также известными как «ZFS Intent Log» или «ZIL» для дальнейшего повышения производительности.
Эта файловая система использует транзакционную модель копирования при записи, это означает, что активные данные никогда не перезаписываются, а копируются в другое место, и измененные данные записываются в него с целью значительного улучшения целостности файла в в случае отключения электроэнергии. Также надо учитывать, что для уменьшения накладных расходов ЗИЛ используется, когда требуется синхронная запись. Отрицательной стороной CoW является то, что у нас будет высокая фрагментация, и в настоящее время ZFS не имеет метода дефрагментации файловой системы, хотя в следующих версиях мы работаем над улучшением этого аспекта.
Другими характеристиками ZFS являются то, что файловая система называется набором данных, который находится внутри «пулов хранения», этот набор данных может иметь тип файловой системы, который похож на обычный и текущий том, или также как zvol, который будет устройством. блоков. В зависимости от наших потребностей нам придется создать тот или иной тип набора данных. Еще одна очень важная функция наборов данных - это моментальные снимки, также известные как моментальные снимки, файловая система ZFS способна делать в общей сложности 281 миллиард моментальных снимков, кроме того, они создаются в режиме реального времени из-за того, как эта файловая система создается внутри.
Эта файловая система позволяет нам настраивать сжатие онлайн, используя различные алгоритмы сжатия, чтобы улучшить скорость чтения и записи или улучшить сжатие и сэкономить больше места. Мы также можем настроить функцию дедупликации, функция, которая позволит нам сэкономить много места на диске, отрицательной стороной является то, что она потребляет большое количество Оперативная память, поэтому вы можете не слишком интересоваться активацией этой функции.
Эта файловая система имеет следующие характеристики и ограничения:
- Максимальный размер файла: 16EiB.
- Максимальное количество файлов: 281 миллиард.
- Максимальный размер имени файла: 255 байт.
- Максимальный размер тома: 16EiB.
- Шифрование данных: да
- Копировать при записи: да
- Прозрачное прозрачное сжатие: да
- Прозрачная дедупликация: да
В этой статье мы подробно объяснили эту файловую систему ZFS, как ее характеристики, так и ее конфигурацию в различных операционных системах, ориентированных на серверы NAS. Теперь, когда мы знаем, какие три файловые системы наиболее часто используются для серверов NAS, давайте посмотрим на их сильные и слабые стороны.
10. Swift
Swift - это система хранения объектов для OpenStack специально спроектированная для хранения и быстрого получения неструктурированных объектов. Он оптимизирован для масштабирования и многопоточной работы с большим количеством данных.
Как работает файловый сервер
Для надежной работы файлового сервера необходимо выбрать соответствующее оборудование. Это прежде всего процессор достаточной мощности для обслуживания заданного числа пользователей, а также дисковые накопители, которые обладают емкостью, достаточной для размещения необходимых программ и операционной системы и другого программного обеспечения для обслуживания пользователей корпоративной сети. Немаловажное значение для быстродействия системы имеет объем оперативной памяти (ОЗУ), в которой размещаются модули запущенных для работы программ. Если объем ОЗУ будет недостаточен, то работа системы сильно замедлится, и не поможет даже самый мощный и высокоскоростной процессор.
Определяющим фактором для выбора параметров файлового сервера является число пользователей корпоративной сети. Для связи пользователей с файловым сервером используются специальные протоколы, например, протокол SMB (Server Message Block) разработанный IBM. Он может использоваться в локальных сетях как на устройствах Windows, так и macOS. В качестве протокола сетевой операционной системы часто используется NFS (Network File System). Если файловый сервер работает под ОС Unix, то чтобы совместить оба типа протоколов в одной сети, как клиенты, так и файловые серверы, должны быть оснащены программами, которые позволяют выполнять протокол SMB в этих системах. Это может быть, например, программная платформа Samba.
1. Apache Cassandra
Apache Cassandra - это не совсем файловая система, а масштабируемая и высоко доступная база данных для критически важных приложений. Она способна разворачиваться в нескольких центрах обработки данных или на нескольких серверах для увеличения надежности хранения данных, уменьшения нагрузки и увеличения отказоустойчивости.
Лучшие сетевые файловые системы
4. Плагины Docker Volume
Расширения Docker Volume позволяют интегрировать Docker с внешними системами хранения данных и сохранять необходимые данные на нескольких сетевых устройствах. Здесь поддерживается множество сетевых хранилищ, среди которых Azure Files, NetApp, Vmware, VSphere и многие другие. Можно загрузить отдельные расширения на GitHub.
Читайте также: