Лучшие сетевые хранилища Linux
В 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
CouchDB — это проект Apache Software Foundation. Он представляет из себя кластерную документно ориентированную систему управления базами данных. Для работы с базой данных используется HTTP Restful API. Она поддерживает репликацию между несколькими узлами. Каждый набор данных — это отдельный файл в формате JSON.
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
Redis — это программное обеспечение, реализующее структуру для хранения данных в оперативной памяти. Может использоваться в качестве базы данных, кэша или буфера сообщений. Поддерживается несколько структур данных и имеет внутреннюю реализацию Lua и различных операций над данными.
9. Riak CS
Riak CS — это программное облачное хранилище для хранения объектов в распределенной базе данных Riak KV. Она позволяет масштабировать облако между необходимым количеством машин и может использоваться для создания государственных или частных облачных архитектур для поддержания работы тяжелых приложений и услуг.
10. Swift
Swift — это система хранения объектов для OpenStack специально спроектированная для хранения и быстрого получения неструктурированных объектов. Он оптимизирован для масштабирования и многопоточной работы с большим количеством данных.
Выводы
В этой статье мы рассмотрели сетевые файловые системы Linux и в целом сетевые хранилища для данных, которые с каждым годом набирают все большую и большую популярность из-за своей простоты и огромных функциональных возможностей.
Установка и настройка файлового сервера в Linux
Чаще всего файловый сервер в Linux используется в рамках локальной или другой общей сети для взаимодействия с компьютерами на базе Windows. Он может быть установлен в дистрибутивах по умолчанию, но это происходит не всегда, к тому же конфигурация такого сервера будет стандартной. Сегодня предлагаем узнать все об инсталляции и основной настройке файлового сервера на примере самой популярной утилиты под названием Samba. Мы разделим это руководство на шаги, чтобы начинающим пользователям было проще ориентироваться во всех необходимых для выполнения действиях.
Устанавливаем и настраиваем файловый сервер в Linux
Хоть сегодняшний материал и будет сосредоточен на управлении дистрибутивами Linux, не обойдем стороной и Виндовс, поскольку для начала вам придется выполнить простейшие манипуляции в этой ОС, чтобы в будущем настройка прошла успешно и не возникло никаких проблем с подключением к группе. За пример мы взяли связку Windows 10 и Ubuntu. Если вы используете другие ОС, просто придерживайтесь особенностей их реализации, которые не должны значительно отличаться от того, что вы увидите далее.
Шаг 1: Предварительная настройка Windows
При подготовке файлового сервера Samba понажобится указать некоторые данные, связанные с операционной системой Windows. Дополнительно в самом Виндовс требуется разрешить подключение для компьютера с Linux, поскольку изначально соединения будут блокироваться. Все эти процедуры выполняются буквально за несколько кликов и выглядят следующим образом:
- Откройте «Пуск» и запустите оттуда «Командную строку», найдя приложение через поиск.
Здесь вам потребуется ввести простую команду net config workstation и нажать на клавишу Enter.
В отобразившемся списке отыщите строку «Домен рабочей станции» и запомните ее значение.
Здесь в конце вставьте строку 192.168.0.1 srvr1.domain.com srvr1 , заменив IP на адрес компьютера с Samba, и сохраните все изменения.
На этом работа с Windows заканчивается. После вы сможете вернуться в эту ОС для настройки общего доступа и управления открывшимися папками, но пока это недоступно, поскольку конфигурация файлового сервера в Линукс еще не произведена. Этим мы и предлагаем заняться в следующих шагах.
Шаг 2: Установка Samba в Linux
Начнем с непосредственной установки Samba в Линукс. Использовать для этого мы будем официальные репозитории, поэтому перед началом убедитесь, что подключение к интернету находится в активном состоянии. После этого следуйте расписанной ниже инструкции.
Здесь потребуется ввести команду sudo apt-get install -y samba samba-common python-glade2 system-config-samba . Она отвечает за инсталляцию дополнительных компонентов вместе с файловым сервером.
Подтвердите подлинность учетной записи суперпользователя, написав пароль. Символы, вводимые в эту строку, на экране не отображаются, поэтому не стоит переживать из-за того, что букв или цифр не видно.
Затем начнется процедура получения и распаковки архивов. Она может занять несколько минут, во время этой операции лучше не выполнять других действий и не закрывать консоль. Если появилась новая строка ввода, значит, инсталляция успешно завершена.
Больше ничего устанавливать не придется, а сервер будет запущен автоматически, поэтому можно смело переходить к его настройке, чему и посвящены наши следующие шаги.
Шаг 3: Создание глобальных настроек
Сразу же после инсталляции Samba в ней не будет никаких параметров, отвечающих за поведение, поэтому придется добавлять их собственноручно, вводя строки в конфигурационный файл. Неопытным юзерам может показаться, что выполнить эту задачу будет очень сложно. Мы же предлагаем взять наш шаблон, заменив лишь пользовательские значения.
- Иногда какие-то важные параметры в конфигурационном файле все же присутствуют по умолчанию, из-за чего возникает надобность создать его резервную копию, чтобы восстановить ее при возникновении случайных сбоев. Осуществляется это путем ввода всего одной команды sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak .
Все остальные действия будут производиться через текстовый редактор. Оптимальным вариантом в этом случае является nano. Если данное приложение отсутствует в вашем дистрибутиве, добавьте его через sudo apt install nano .
После переходите к конфигурационному файлу, используя sudo nano /etc/samba/smb.conf .
В открывшемся окне вставьте приведенные ниже строки.
[global]workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
Используйте комбинацию Ctrl + O, чтобы сохранить изменения.
Название файла менять не нужно, достаточно будет просто нажать на клавишу Enter.
По завершении выйдите из текстового редактора, зажав Ctrl + X.
Теперь давайте более детально остановимся на каждой из введенных строк, чтобы вы в будущем смогли настроить их под себя:
- workgroup — отвечает за имя рабочей группы. Ее мы уже узнавали в Windows, и здесь требуется задать точно такое же название, поскольку оно должно быть одинаковым абсолютно на всех соединенных устройствах.
- netbios name — используется для отображения имени текущего компьютера на устройстве под управлением Windows. Задайте оптимальное для себя значение.
- log file — указывается путь к файлу, куда будут сохраняться отчеты. Создать подобную запись нужно обязательно, чтобы всегда быть в курсе возможных ошибок и других сведений.
- passdb backend — определяет способ хранения паролей учетных записей. Без надобности лучше не изменять и оставить в состоянии по умолчанию.
- unix password sync — при активации выполняет синхронизацию паролей.
- map to guest — отвечает за предоставление гостевого уровня доступа определенным профилям. Если значение установлено в состояние bad user , то такая настройка применяется для несуществующих пользователей, bad password — при неправильном вводе паролей, а never — никогда.
На самом деле в Samba присутствует еще множество глобальных параметров, а также реализован графический интерфейс. Если вы заинтересовались всеми этими настройками, советуем обратиться к официальной документации, чтобы узнать о них более детально, поскольку все сведения не уместятся в рамках данной статьи, а также не все они имеют отношение к сегодняшней теме.
Шаг 4: Создание общедоступной папки
Практически для каждой группы юзеров, использующих файловый сервер, важно иметь общедоступную папку, к которой можно получить доступ без предварительной авторизации. По умолчанию такая директория отсутствует, поэтому мы предлагаем ее создать самостоятельно, что осуществляется буквально за несколько минут.
- Запустите «Терминал» и введите там sudo mkdir -p /samba/allaccess для создания новой папки. Ее имя вы можете поменять на любое удобное.
Данное действие выполняется вместе с аргументом sudo, а это значит, что придется ввести пароль для подтверждения учетной записи.
После переходите к настройке общего доступа для созданной директории. Для начала переместимся в корень Samba через cd /samba .
Теперь вставьте команду sudo chmod -R 0755 allaccess и нажмите на Enter.
Потребуется указать еще одну опцию sudo chown -R nobody:nogroup allaccess/ , которая отвечает за предоставление доступа абсолютно всем учетным записям.
Осталось внести все изменения в конфигурационный файл. Запустите его через текстовый редактор, используя уже знакомую команду sudo nano /etc/samba/smb.conf .
Здесь вставьте указанный ниже блок, отвечающий за определение правил поведения сервера. О значении каждой строки мы также поговорим немного позже.
[allaccess]path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no
Сохраните изменения и закройте текстовый редактор, используя специально отведенные горячие клавиши.
Перезапустите сервер через sudo systemctl restart samba , чтобы текущие настройки вступили в силу.
Проверка доступа к созданной директории в Windows осуществляется путем перехода по \\srvr1\allaccess . Сейчас по тому же примеру, который мы привели в предыдущем этапе, разберем значение каждого устанавливаемого параметра:
- path. Как вы видите из значения, здесь указывается путь к созданной общедоступной директории.
- browsable. Этот параметр отвечает за отображение директории в списке разрешенных.
- writable. Отметьте значение yes , если вы хотите разрешить создание записей в этой папке.
- guest ok. Данная строка отвечает за гостевой доступ.
- read only. Если вы знаете перевод этой фразы, то уже догадываетесь, что произойдет, если активировать параметр. Он отвечает за атрибут «Только чтение» для указанной директории.
Шаг 5: Создание защищенной общедоступной папки
В качестве последнего этапа нашей сегодняшней статьи мы решили взять пример создание защищенной директории для общего доступа. В предыдущем шаге уже рассказано о том, как создаются полностью анонимные папки, однако их недостаток заключается в отсутствии защиты, поэтому в большинстве случаев юзеры предпочитают работать с безопасными каталогами, а их создание осуществляется так:
- Создайте директорию по тому же принципу через sudo mkdir -p /samba/allaccess/secured .
Как вы могли догадаться, это действие тоже следует подтвердить, введя пароль суперпользователя.
После этого создайте группу, куда будут входить разрешенные пользователи, написав sudo addgroup securedgroup .
Перейдите к расположению защищенной директории, указав cd /samba/allaccess .
Здесь укажите права для пользователей, написав sudo chown -R richard:securedgroup secured . Замените richard на требуемое имя учетной записи.
Вторая команда для обеспечения безопасности выглядит так: sudo chmod -R 0770 secured/ .
Переместитесь к текстовому редактору, открыв там конфигурационный файл и написав уже знакомую команду sudo nano /etc/samba/smb.conf .
Вставьте указанный ниже блок и сохраните изменения.
[secured]path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes
Добавьте пользователя в защищенную группу sudo usermod -a -G securedgroup richard . Если указанной учетной записи не существует, вы получите соответствующее уведомление.
Создайте пароль, который будет отвечать за открытие доступа через sudo smbpasswd -a richard .
Введите ключ безопасности в новую строку, а затем подтвердите его.
После внесения всех изменений не забывайте перезагружать сервер, чтобы все они вступали в действие. Точно таким же образом вы можете создавать неограниченное количество защищенных общедоступных папок, настраивая для них определенные параметры.
Сегодня мы разобрались в теме файлового сервера для Linux на примере пошагового руководства конфигурации соединения через Samba. Теперь вы можете решить, подходит ли вам такая схема предоставления общего доступа или есть смысл найти другой инструмент, способный предоставить более подходящие настройки.