Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.

  • свадебная фотокнига см. тут
  • papara.ru

Книги по Linux (с отзывами читателей)

Библиотека сайта или "Мой Linux Documentation Project"

На главную -> MyLDP -> Тематический каталог -> Дистрибутивы

OpenFiler - сетевое хранилище на свободном ПО

Оригинал: OpenFiler: an Open-Source Network Storage Appliance
Автор: Bill Childers
Дата: 1 мая 2009
Перевод: Александр Тарасов aka oioki
Дата перевода: 7 октября 2009

Мной было установлено немало Linux-серверов. Хотя это не очень сложная задача, однако часто мне в голову приходила мысль о том, что должен быть более правильный способ. Ребята из проекта OpenFiler, определенно, нащупали это самое лучшее решение. Команда OpenFiler, видимо, вдохновленная семейством устройств хранения данных от компании NetApp, реализовали открытый клон, который может превратить любой x86-совместимый компьютер в устройство, по функциональности похожее на систему NetApp.

О проекте OpenFiler

Дистрибутив OpenFiler легок в установке, прост в использовании, практически мгновенное решение. На момент написания статьи последняя версия имела номер 2.3, и была основана на дистрибутиве rPath, так что он компактный и легкий, каким и должен быть. Таким образом, у разработчиков есть простор в наполнении дистрибутива теми функциями, которые были бы нужны для его основной цели. Дистрибутив настолько легок, что его можно даже использовать на встраиваемых системах. Список функций довольно велик, и его можно сравнить даже с коммерческими устройствами, вроде тех, которые предлагают фирмы Snap и другие. Вот основные функции OpenFiler:

  • Полная поддержка iSCSI сервера (target) и клиента (initiator).
  • Поддержка устройств Fiber Channel (в зависимости от аппаратуры).
  • Поддержка программного (md) и аппаратного RAID.
  • Расширение разделов/файловых систем "на лету".
  • Мгновенные снимки состояния (snapshots).
  • Синхронная/асинхронная репликация данных.
  • Доступ к данным по протоколам NFS, SMB/CIFS, HTTP/WebDAV и FTP.
  • Поддержка теневого копирования по SMB/CIFS при мгновенных снимках.
  • Поддерживается аутентификация в NIS, LDAP и Windows NT/Active Directory.
  • Гибкое управление квотами.
  • Простая веб-админка.

Единственным недостатком OpenFiler является то, что за Руководство администратора придется заплатить. Руководство по установке и устаревшую версию руководства администратора можно скачать с сайта бесплатно, однако новейшая версия руководства доступна лишь "денежным" клиентам, ведь только из этого источника проект OpenFiler и финансируется. К счастью, обладая удобным и понятным графическим интерфейсом, OpenFiler легко настраивается и без этого.

Установка OpenFiler

Если вы знакомы с установкой дистрибутива Linux на основе Red Hat, тогда и установка OpenFiler не будет для вас особой проблемой. Системные требования крайне малы. Я установил OpenFiler на встраиваемый ПК с процессором 500 МГц, 512 Мб оперативной памяти и 2 Гб памяти типа CompactFlash. Однако дистрибутив можно установить и на обычный компьютер или сервер. Загрузившись с компакт-диска, вы попадете в графический установщик (если нужен текстовый режим, нужно при установке добавить аргумент text). Обратите внимание, что при установке вам нужно будет выбрать ручную (manual) разбивку диска, в противном случае позже вы не сможете настраивать диски-хранилища в админке OpenFiler. В принципе, больше ничего не отличает OpenFiler от другого Red Hat-подобного дистрибутива. По завершении установки нужно будет настроить ваш свежий OpenFiler, открыв в веб-браузере страницу https://имя_или_адрес_машины:446.


Рисунок 1. Вход в OpenFiler

Настройка OpenFiler

Теперь вы можете войти в графический интерфейс администратора OpenFiler, как показано на рисунке 1. Как сказано в руководстве по установке, войдите с именем "openfiler" и паролем "password". Вы увидите админский интерфейс, будет открыт основной экран Status. Из этой веб-админки можно настроить OpenFiler до мелочей.


Рисунок 2. Консоль админа: Экран Status

Экран Status отображает жизненно важную для системы информацию. Особенно удобно то, что вверху экрана отображается время работы системы (uptime) и средняя загрузка процессора. На рисунке не показаны графики использования оперативной памяти и хранилища - они аналогичны графической версии top.


Рисунок 3. Консоль админа: Экран системы

На экране System можно настроить и отрегулировать общие системные параметры, такие как свой IP-адрес или IP-адрес партнера по репликации и отказоустойчивости. Здесь есть встроенный SSH-клиент, написанный на Java, поэтому при необходимости можно даже зайти в консоль машины. Хотя обычный SSH-клиент также подойдет. Обратите внимание, что важно ограничить доступ к серверу лишь для некоторых сетей или отдельных машин. Если вы этого не сделаете, то ваш OpenFiler не станет отдавать файлы по NFS или SMB/CIFS. Еще нужно отметить, что OpenFiler поддерживает создание агрегированных Ethernet-интерфейсов, поэтому если вы настраиваете критический файловый сервер, можете вставить в сервер две сетевые карты, соединить их с разными свитчами, и вы получите сервер, отказоустойчивый на уровне сети.


Рисунок 4. Консоль админа: Менеджер разделов

В менеджере разделов можно добавлять диски в OpenFiler, создавать файловые системы и управлять программным RAID. В качестве менеджера разделов в OpenFiler используется Linux Logical Volume Manager (LVM), в качестве хранилищ поддерживаются локальные диски с файловыми системами ext3 и XFS. В этом случае, так как у меня был встраиваемый ПК, я подключил диск 320Гб через USB. Это не привело ни к каким проблемам - OpenFiler позволил мне создать группу разделов на этом USB-диске, затем я создал раздел внутри этой группы и начал формировать файловую структуру.

Следующей вкладкой админки является Quota. Этот экран позволяет устанавливать квоты на группы, пользователей или на гостя, и на каждый раздел можно указывать свою квоту. К примеру, если ваш OpenFiler будет работать в корпоративном окружении, можно установить всем пользователям из группы Маркетинг квоту по 2 Гб, каждому из группы Инженеры по 10 Гб, а всем из группы IT квоту не ограничивать. Конечно, также не стоит ограничивать квоту генеральному директору. Таким образом, с помощью гибких квот можно настраивать OpenFiler под свои нужды.


Рисунок 5. Консоль админа: Менеджер общих ресурсов

В менеджере общих ресурсов (Shares) можно создать каталоги в разделах, и потом открывать доступ к этим каталогам. Именно здесь вы будете проводить большую часть своего времени с OpenFiler, настраивая каталоги, общие ресурсы и права доступа. Приятной особенностью OpenFiler является то, что можно указать, с помощью какого сетевого протокола осуществлять доступ к этому каталогу. К примеру, общий ресурс Marketing можно раздавать лишь по SMB/CIFS (потому что у всех этих людей стоит Windows), ресурс Engineering раздавать лишь по NFS (все инженеры пользуются Linux), а Sandbox можно раздавать как по SMB/CIFS, так и по NFS. Позже можно на этом экране ограничить права доступа определенных групп к определенным ресурсам - на чтение и на запись. А общий ресурс Sandbox ("песочница") пускай остается открытой для всех.

При написании этой статьи я обнаружил интересный факт. Если вы хотите отдавать каталоги по NFS на машины Apple Mac, так чтобы каталог можно было смонтировать в Finder, нужно указать порт источника этого ресурса >1024 (в NFS эта опция называется insecure). Mac-компьютеры не хотят общаться с NFS-серверами, работающими на привилегированных портах. (Да, у меня есть Mac. Я смотрю на него как на более красивого, но менее умненького брата моих Ubuntu-машинок).

Следующая вкладка - менеджер служб (Services), в котором можно включить/выключить сетевые службы OpenFiler. Если будете использовать OpenFiler лишь как NFS-сервер, можно полностью отключить все службы SMB/CIFS, тем самым освободив немного памяти сервера. На этой вкладке также можно сделать другие настройки, например, членами какой группы будет являться SMB/CIFS-сервер; или подключен ли к OpenFiler источник бесперебойного питания, чтобы можно было бы выключать его в случае сбоя по питанию. OpenFiler может выступать в роли LDAP-сервера, и на этой вкладке можно сохранять и восстанавливать каталоги LDAP.


Рисунок 6. Консоль админа: Менеджер учетных записей

На последней вкладке консоли админа находится менеджер учетных записей (Accounts), с помощью которого можно определить методы аутентификации. Можно использовать внутренний LDAP-сервер на самом OpenFiler, и создавать пользователей и группы локально. Можно направлять OpenFiler на ваш корпоративный LDAP-сервер. Если вы работаете в Windows-окружении, тогда для аутентификации можно воспользоваться корпоративной Active Directory или даже старым каталогом NT4.

А что внутри?

Если заглянуть под покрывало графического интерфейса OpenFiler, вы обнаружите множество известных программ с открытым исходным кодом. В качестве основы используется дистрибутив rPath с ядром ветки 2.6, а rPath очень похож на Red Hat Linux. По умолчанию в OpenFiler запущен SSH-сервер, поэтому можно просто зайти на свой новый сервер с помощью SSH-клиента и посмотреть, что там. Веб-админка работает на Python и веб-сервере lighttpd. Также на OpenFiler работает демон snmpd, поэтому можно делать к нему запросу по SNMP. Движок HTTP/WebDAV реализуется за счет Apache. Для реализации других протоколов обмена используются стандартный Linux NFS-сервер, Samba-сервер для SMB/CIFS, и proftpd для FTP.

OpenFiler поддерживает множество физических блочных устройств, таких как диски SATA, SAS, SCSI, IDE и FC. Также поддерживаются сетевые блочные устройства, доступные по протоколам iSCSI, AoE (ATA over Ethernet) и FCoE (Fiber Channel over Ethernet). Также поддерживается стандартный для Linux программный RAID.

Интереснейшие функции OpenFiler - это наличие движка DRBD (Distributed Replicated Block Device, Распределенное реплицированное блочное устройство) и программное обеспечение для отказоустойчивых кластеров - Heartbeat. DRBD позволяет реплицировать свои блочные устройства на другие сервера OpenFiler в синхронном, либо асинхронном режимах. Таким образом, резервную копию OpenFiler можно расположить в соседней стойке. При использовании вместе со средством Heartbeat можно сделать так, чтобы два сервера OpenFiler в одной и той же сети использовали один виртуальный IP-адрес, и вы получите мощный, надежный, отказоустойчивый кластер для хранения данных. В случае отказа основного OpenFiler, замещающий обнаружит это по разрыву выделенного соединения, включится и задействует свой виртуальный IP-адрес и продолжит отвечать на запросы.

OpenFiler использует Linux LVM, поэтому можно с легкостью объединять устройства хранения в единый пул, а затем разбивать его на необходимые вам части. Другим преимуществом использования Linux LVM является мгновенные снимки состояния (т.н. snapshots), которые можно создавать легко и быстро, а значит резервные копии можно делать часто.

Заключение

OpenFiler - легкий в установке и простой в использовании дистрибутив, который решает одну задачу и решает ее хорошо, а именно отдает файлы сетевым клиентам. Если у вас есть ненужный старенький компьютер или ноутбук, можно превратить его в сетевое хранилище, просто установив OpenFiler и подключив вместительный USB-диск. С другой стороны, OpenFiler хорошо подходит для установки на сервер уровня предприятия, где он может стать частью вашей Сети хранения данных (SAN). К сожалению, разработчики решили отдавать руководство администратора лишь "денежным" клиентам, ведь проект должен же как-то финансироваться. Если у вас возникла потребность в файловом сервере или сетевом хранилище данных, то OpenFiler определенно хорошее решение.

Установка OpenFiler через PXE

На моем маленьком встраиваемом ПК, на который я устанавливал OpenFiler, не было оптического привода, поэтому мне пришлось устанавливать дистрибутив по PXE. Я скопировал образ дистрибутива на NFS-сервер и открыл к нему доступ по NFS. Затем я скопировал файл ядра vmlinuz и initrd-архив initrd.img из каталога на компакт-диске /isolinux, в каталог tftp моего PXE-сервера. Последний шаг, нужно было добавить следующие строки в конфигурационный файл pxelinux моего PXE-сервера:

LABEL openfiler
KERNEL vmlinuz
APPEND initrd=initrd.img text askmethod ramdisk_size=8192 console=tty0

После этого для начала установки OpenFiler нужно было загрузить систему через PXE, выбрать openfiler в приглашении загрузки, выбрать "NFS" и указать на открытый ранее каталог. Установщик OpenFiler, основанный на Red Hat, делает установку простой, и дистрибутив установился довольно быстро, даже по сети.

Источники информации

Домашняя страница OpenFiler: www.openfiler.com

Архитектура OpenFiler: openfiler.com/products/openfiler-architecture

Документация по установке OpenFiler (графическая): www.openfiler.com/learn/how-to/graphical-installation

Документация по установке OpenFiler (текстовая): www.openfiler.com/learn/how-to/text-based-installation

Урезанное руководство администратора OpenFiler 1.1: wwwold.openfiler.com/docs/manual

DRBD (Distributed Replicated Block Device): www.drbd.org

Установка и настройка OpenFiler с поддержкой DRBD и Heartbeat: www.howtoforge.com/installing-and-configuring-openfiler-with-drbd-and-heartbeat

Неофициальный вики по высокодоступному кластеру OpenFiler: wiki.hyber.dk/doku.php/openfiler_2.2_ha-cluster_guide

Билл Чайлдерс (Bill Childers) - IT-менеджер из Силиконовой долины, где он живет со своей женой и двумя детьми. Ему слишком нравится Linux, возможно, ему нужно почаще выходить на солнышко. В свое свободное время посещает фестиваль чеснока в Гилрое, но он вовсе не пахнет чесноком.


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии

Давид Кантемиров пишет: 24.08.2011
Уважаемые разработчики Openfiler и Xen. Открылись интересные вакансии для Openfiler и Xen разработчиков. ЗП от 80 000. Информация о вакансиях по ссылкам http://hh.ru/vacancy/4717877 http://hh.ru/vacancy/4739529 Пишите на мыло ragingblizzard@gmail.com Спасибо за внимание. Уважаемые администраторы сайта не удаляйте данное сообщение, пожалуйста, это не спам, большое спасибо.