Меню Рубрики

Сетевое хранилище на linux

/4te.me

Из-за очередного приступа параноии, я решил сменить Google Drive на собственное решение и хранить свои файлики поближе к телу. Выбор был между: поднимать в каком-нибудь DigitalOcean виртуалку и хранить там, или собрать дома свое хардварное решение. Подсчитав сколько будет стоить виртуалка с нужным объемом диска, выбор был сделан в пользу домашнего NAS-сервера.

Выбор

У меня было примерно 100 ГБ данных на момент съезда из Google Drive. Виртуалка в DigitalOcean на 160ГБ стоит 40$ в месяц, то есть в год будет выходить

500$. Дорого. За эти деньги можно дома собрать NAS на терабайт с SSD дисками. Есть ещё вариант брать маленькую виртуалку, и к нему подключить S3 хранилище, но софт, который я планировал использовать, не умеет работать с S3.

Итак, вариант с виртуалкой в облаке я отмёл и пошел смотреть, что нынче есть на рынке домашних NAS серверов. Так как я живу в маленькой квартире, NAS я планировал ставить в жилой комнате, и, если он будет шуметь вентиляторами и вибрировать HDD-дисками, то житья в комнате не будет. Поэтому я хотел найти NAS с пассивным охлаждением и вставить туда SSD диски. Не самое дешевое решение, но за тишину приходится платить.

Как выяснилось, на рынке практически нет NAS с пассивным охлаждением. Почему так я не понимаю, по опыту использования — максимальная температура дисков за год использования у меня была 47.0 C (наверно когда я переносил все данные), в покое — 36.0 C, крышка NAS-а чуть теплая. 90% времени диски простаивают и зачем им вентилятор я не понимаю.

Вот модели с пассивным охлаждением которые я смог найти — QNAP HS-210 , QNAP HS-251 , QNAP HS-251+ (он же QNAP S2 ), QNAP HS-453 . У всех моделей обычный x64-процессор, не ARM. Получается маленькая такая desktop-тачка с местом для двух HDD.

  • HS-210 — 512 МБ ОЗУ мало.
  • HS-251 — 1ГБ ОЗУ мало
  • HS-251+ — 2ГБ ОЗУ норм
  • HS-453 — 4 или 8 ГБ ОЗУ. Ultimate решение, но не продается в России и стоит космос.

У Synology бесшумных решений я не нашел. Собирать системник тоже не хотелось — он не получится таким же маленьким и бесшумным как QNAP. В общем выбрал золотую середину — QNAP HS-251+ (QNAP S2).

Из дисков я выбрал WD BLUE 3D NAND SATA SSD 1 TB (WDS100T2B0A). Взял две штуки. Они без проблем заходят в NAS. Итого вышло:

Не самое дешевое решение для NAS, но самое дешевое из подходящих под требования. Кроме этого, чтобы создать свое облако потребуется статический “белый” IP-адрес дома. Чтобы подключаться из интернета к домашнему серверу. Обычно такая услуга есть у любого провайдера.

Программная часть

После покупки и установки самого NAS-а, решил попробовать использовать софт от самого QNAP. Стоит сказать, что он очень разнообразный — полностью заменяет публичные облака и даже умеет запускать виртуальные машины. Из себя он представляет некую ОС (на основе Debian, кажется), с веб-интерфейсом а-ля iPad и проприетарными приложениями.

К сожалению все работает довольно медленно, да и менять один проприетарный продукт на другой, внутренний параноик мне не позволил, поэтому я установил на NAS обыкновенный чистый Linux.

Так как это обычный x86_64 ПК, я записал на флешку свежий дистрибутив, зашел в BIOS и загрузился с нее:

В этом NAS-е есть постоянная память размером 512 МБ куда установлена дефолтная прошивка. Ее я не перезаписывал (при желании можно будет вернуться на нее), и поставил Ubuntu 18.04 на software RAID, собранный из двух установленных дисков. На каждом диске создается по партиции одинакового размера, и они объединяются в RAID1. На одном диске также раздел для загузчика и /boot:

Домашнее облако

Для замены Google Drive (Яндекс.Диск, Dropbox и тд.) я выбрал Seafile — https://www.seafile.com/en/home/

Выбор был между ним и Nextcloud/ownCloud, но после тестовых установок выбрал Seafile. До 3-х пользователей можно использовать Enterprise версию — её и взял. В ней есть поиск по файлам и еще несколько полезных функций, вот здесь есть сравнение бесплатной и enterprise версий. Разворачивал с помощью Docker — очень просто и быстро, на сайте есть подробный мануал

У Seafile есть веб-интерфейс, desktop-приложение для всех ОС и мобильный клиент.

Nextcloud/ownCloud гораздо богаче по функционалу и хранят файлы в открытом виде, то есть их можно интегрировать в другие серверные приложения, но жуткие тормоза при аплоаде файлов и на веб-интерфейсе делают их неработопригодными.

Seafile тоже не идеален, всё что он умеет — просто хранить файлы. Особенности использования:

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

есть приложение для Android/iOS. Довольно скромное, но заливать фотки с телефона и просматривать файлы умеет.

Домашний NAS и медиа-плеер

Так как в NAS-е есть HDMI выход, я его подключил к телевизору и сделал из него медиа-плеер. В комплекте также есть пульт ДУ:

С помощью очень классной программы Kodi (https://kodi.tv/) можно полностью заменить smartTV, онлайн-кинотеатр и приставку для проигрывания IPTV. Он устанавливается на linux и на экран выводит свой интерфейс. Навигация пультом ДУ или приложением Kore. С пультом были проблемы, не заводился из коробки, пришлось немного потанцевать с бубном.

Вот так выглядит интерфейс Kodi на телевизоре:

Как я использую Kodi:

  • плеер фильмов, которые лежат на NAS-диске
  • плеер IPTV вместо MAG-250. Умеет показывать multicast-потоки
  • проигрыватель YouTube (приложение не очень удобное, но юзабельное)
  • в поездках с помощью приложения Kodi для Android подключаюсь к своему NAS и смотрю с него фильмы. Получается такой self-hosted онлайн-кинотеатр
  • для скачивания новых фильмов на NAS установил Transmission + web-интерфейс

Также на NAS поставил FTP и Samba, чтобы подключаться с девайсов в локальной сети и NFS для монтирования сетевого диска.

Такой схемой я пользуюсь около года и вот какие выводы сделал:

  • приложения Яндекс.Диск/Google Photo удобнее и быстрее. Да, opensource-аналоги не дают такого удобства использования — то тут, то там встречаются мелкие косяки (например в android-приложении seafile фотки при просмотре скачиваются полностью, т.е. не превью сжатое, а фото если весит 5МБ — оно все полетит на телефон, это медленно и занимает место на телефоне; хотя в веб-морде есть превьюхи). Ну и поиск в Гугл.фото по содержанию фотографий (когда в поиске вводишь “горы”, и он показывает все фотографии гор из вашей библиотеки) — это вообще киллер фича, такого в бесплатные аналоги не знаю когда завезут.
  • скорость загрузки файлов в Seafile гораздо выше, чем в публичные облака
  • смотреть фильмы теперь супер удобно. Особенно в поездках. 4G есть практически везде в России, и теперь не надо закачивать кучу фильмов на телефон — смотрю онлайн, подключаясь с телефона к домашнему серверу. В случае отсутствия связи, например в поезде, подключаюсь по FTP и скачиваю перед отправлением.
  • Kodi — супер комбайн, но хотелось бы научиться стримить телевизионный сигнал на телефон, чтобы смотреть ТВ не из дома. Этого еще не понял как сделать.
  • чтобы все это настроить пришлось покурить мануалы и подзаморочиться с установкой и наладкой.

Хочу ли я вернуться в публичные облака (Google Drive, Яндекс.Диск)? Нет, не хочу. На мой взгляд, плюсов в такой схеме все же больше, чем минусов. А внутренний параноик теперь спит сладким сном.

Источник

Лучшие сетевые хранилища 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 и в целом сетевые хранилища для данных, которые с каждым годом набирают все большую и большую популярность из-за своей простоты и огромных функциональных возможностей.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Сетевое программирование c linux
  • Сертификация linux red hat
  • Сертификат соответствия astra linux
  • Серверный linux что выбрать
  • Сервер электронной почты linux