Исследование возможности импортозамещения файлового сервера: Часть первая

В этой части хочется рассказать про то что требуется и что предлагает наш «вендор».
Часть вторая: Реализуем сервис файлового сервера на Astra Linux.

Дисклеймер

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

И вот пришла задача заменить Windows Server на что-то «Российского» производства

Берясь за задачу казалось что всё будет довольно «просто» т.к. файловые сервера на базе GNU/Linux существуют давно и в целом всем всё давно реализовано, и должно пройти по классической для импортозамещённых продуктов схеме затраты на лицензирование 2–4 раза больше Winodws, затраты на последующее администрирование в 3–10 раз выше. Но даже тут отечественный производитель смогу удивить…
В моём случае был взят стек Astra Linux 1.7.5 + ALDPro 2.3.0.

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

Что требуется

Наличие

примечание

Доступ по протоколам

NFSv4

+/-

Можно поднять, но ALDPro им управлять не может. А это условно нативный протокол для стека на Linux.

SMB (CIFS)

+

WebDAV

+/-

Реализуемо за рамками ALDPro

Администрирование

Предоставление доступа к шаре на базе прав из каталога LDAP (Active Directory, FreeIPA, Samba)

+

Почти не подвели, могут, но только свой домен т.е. ALDPro, пользователей из доверенных не добавить.

Разграничение доступа к файлам и папкам в рамках шары для пользователей из каталога пользователей т.е. настройка файловых прав по модели NFSv4:
Полный доступ,
Траверс папок/выполнение файлов,
Содержание папки/ чтение данных,
Чтение атрибутов,
Чтение дополнительных атрибутов,
Создание файлов/ запись данных,
Создание папок/ дозапись данных,
Запись атрибутов,
Запись дополнительных атрибутов,
Удаление подпапок и файлов,
Удаление,
Чтение разрешений,
Смена разрешений,
Смена владельца.

-

Хоть шаром покати функционал отсутствует полностью (мандатный контроль простите, но это не то)

Разграничение доступа в сложной доменной структуре (когда к одному серверу ходят с нескольких доменов)

-

Вообще технически всё есть, но в GUI Astra и ALDPro Функционал отсутствует права можно добавить только через консоль

Создание и управление снапшотами данных (Теневые копии)

-

Функционал отсутствует

Создания квот и управление квотами

+/-

Частично функционал есть только в Astra Linux управление в рамках ALDPro отсутствует.

Настройка времени хранения в папках с сроками хранения

-

Функционал отсутствует

«Базовый» функционал

Шифрование данных

+/-

Можно реализовать в ОС, но не в рамках ALDPro

Дедупликация данных

-

Функционал отсутствует

Сжатие данных

-

Функционал отсутствует

Отказоустойчивая конфигурация

-

Функционал отсутствует

Создание единой точки входа для нескольких серверов (DFS)

-

Функционал отсутствует

Удобный GUI для администрирования
(Хотя бы сравнимый с тем что есть в коммерческих продуктах)

+/-

GUI есть, но функционал даже не базовый для 2024.

Анализатор использования пространства

-

Функционал отсутствует

Анализатор прав доступа на файлы и папки

-

Функционал отсутствует

В подтверждение своих слов приведу пару скриншотов из имеющейся под рукой ALDPro 2.3.0

91afdcbc4947395654f0b2130f5c1296.png0546cab7d2c905c86128d24fd4bdc955.png0accf1dbe8ce25cadaa27509d9cba1e7.pngcf6988ebf23d12e0d93231934c2987d1.png

Собственно можно ещё было бы забить скриншотами самой ОС Астра Linux, но функциональных элементов управления файловым сервером, что нас могут интересовать там нет. Более элементов управления файловым сервером в ALDPro 2.3.0 нет (в дорожной карте разработки, доработки функционала тоже нет)

Почему всё так?

Каждый раз смотря на подобное в продукте от российского вендора хочется плакать или всё бросить, можно долго гадать, но за последние два года общения с различными представителями вендора у меня сложилось впечатление, что наверное основное — это не понимание менеджмента какие функции и как выполняет сервис (не только описываемый). Возможно нехватка разработчиков, настоящих, а не тех которыми пытаются наводнить рынок. Возможно эта уверенность »…Дело не во владении кодом…». Ну и конечно существует ряд подводных камней во всех OpenSource решениях т.к. они всегда писались энтузиастами у которых чуть иной круг задач. И чтобы сделать сервис надлежащим образом нужно хотеть и уметь программировать, а не только комуниздить «компилировать» OpenSource решения для получения нечто похожего на решение.

Про подводные камни в GNU/Linux

(эти вопросы я задавал представителям вендора и они считают что это не проблемы)

Длина имени файлов: она ограничена условно 128 символами кириллицы т.к. в наших «отечественных» операционных системах используются компоненты которые писались для англоязычного пользователя.

Максимальная длинна имени файла ограничена 255 байтами кажется что это стандартная длинна имени файла к которой мы привыкли 255 символов, один символ=один байт? Но нет это не так, в Linux используется кодировка UTF8, а это значит что буквы латинского алфавита равны одному байту, а вот буквы кириллицы равны двум байтам отсюда длина имени файла и становится ограниченной. Тут без вмешательства в файловую систему никак…

Или наши производители соберутся и соберут свою файловую систему, объективно у столпов рынка это обычно занимает 5–10 лет, или смогут закоммитить в Linux такие правки в одну из файловых систем.
Про права доступа: В GNU/Linux базово есть права только RWX (Чтение, Запись, Исполнение) для хозяина, группы и для остальных, а требуется для нормального разграничения доступа чуть больше, если мы говорим про корпоративный сектор. Разработчики ядра Linux считают что RWX вполне достаточно. Также существует расширенные атрибуты xattr которые позволяют расширить функционал и добавлять права доступа RWX, но уже большему количеству пользователей и групп. Почему ALDPro при разворачивании сервиса отказываются их использовать для меня загадка.

В Астра Linux есть «киллер фича» мандатный контроль всего. Но он поддерживается только Астрой и никем больше, т.е. его не применить для общедоступного сервиса который работает на этапе развёртывания с инфраструктурой MS AD+ ALDPro c 90+% рабочих станций на Windows.

Как можно решить задачу?

Есть понимание, пусть и не полностью, но силами рядового админа задача частично/костыльное решаемая т.к. в целом Astra Linux это на 99% Debian Linux, а Astra Linux 1.8 это довольно актуальный Debian 12.
Если заменить файловую систему с ext4, что штатно использует Astra Linux, на ZFS многие задачи можно закрыть. (Так сказать начать процесс импортозамещения без существенных травм в психике рядового Админа.)

Это решит проблемы:

  • Чувствительность к регистру в файловой системе.

  • Наследование прав в файловой системе

  • Создание Snapshot`ов

  • Дедупликация

  • Сжатие данных

Останутся проблемы:

  • Длина имени файлов,

  • Права доступа,

  • Отсутствует необходимый функционал в графическом интерфейсе.

    Часть интерфейса, хотя бы в ОС можно «вернуть» установив недостающие библиотеки, что Astra при автоматическом развёртывании сервиса через ALDPro не делает.

Про проблемы ZFS

1 — ZFS очевидно медленнее ext4 при сравнении в лоб. Но в ZFS есть минимум 2 уровня кэша (ОЗУ и SSD), возможность построения RAID массивов в результате при желании система на ZFS даст больше чистой производительности и надёжности в пересчёте на деньги в неё вложенные.

2 — ZFS Умеет в полноценные права, но не в Linux, а в FreeBSD. Проблема на уровне ядра Linux и в результате ZFS не может работать с правами по модели NFSv4. Разработчики из iXsystems уже внедрили поддержку в модуль ядра по модели NFSv4 в ZFS, которую собирают для своего продукта TrueNAS Scale, построенного поверх Debian 12.

Также насколько я понял разработчики ZFS приняли правки от iXsystems в состав основной ветки ZFS и в релизе ZFS 2.3 можно ожидать работающие NFSv4 права поверх Linux благодаря xattr, а не только FreeBSD.

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

© Habrahabr.ru