International conference of developers
and users of free / open source software

Средства интеграции облачного хранилища в ИТ-инфраструктуру

Алексей Отвагин, Минск, Belarus

LVEE Winter 2012

The problem of integration of cloud storage, implemented as an network appliance with object-oriented database, into enterprise IT infrastructure is described. Approach that implements access to storage, based on network file system protocol servers, is considered. The proposed solution uses open-source protocol servers, in particular, Ganesha-NFS and Likewise CIFS, for access to storage content from network. Issues of interoperability between the NFS and CIFS protocols are also considered. The proposed solution ensures effective and transparent user interaction with cloud storage for different operating systems in network environment.

Сетевые облачные хранилища (cloud storages) представляют собой новый способ организации части информационной инфраструктуры, отвечающей за хранение и резервное копирование данных.

Крупными провайдерами, предоставляющими услуги по хранению данных, являются сервисы Amazon Simple Storage Service (Amazon S3)1, Dropbox.com2, Google Docs3. Однако, многие компании не намерены использовать открытые сервисы для хранения конфиденциальной информации, опасаясь ее утечки. В этом случае возможным вариантом сокращения затрат на хранение данных является приобретение собственного облачного хранилища, реализованного в виде физического устройства. Среди крупнейших поставщиков устройств облачного хранения данных необходимо упомянуть Hitachi Data Systems 4, IBM XIV Storage System 5, Isilon NAS 6 и многие другие. Одним из заметных представителей рынка поставщиков облачных решений для хранения данных является компания Data Direct Networks 7.

Компания DDN представляет на рынке свое новое устройство — Web Object Scaler (WOS) Storage. Это объектно-ориентированная облачная система хранения, созданная для поддержания масштабной глобальной распределенной инфраструктуры хранилища. WOS обеспечивает высокоскоростной доступ к данным в облаке из любой точки мира, что позволяет глобально распределенным пользователям эффективно сотрудничать в ходе рабочего процесса. С помощью единого, простого в использовании, интерфейса управления, вы можете построить глобальное облако хранения с возможностью практически неограниченного масштабирования.

Основной задачей при использовании подобных систем является их интеграция в существующую инфраструктуру и бизнес-процесс. Для этого система должна поддерживать интерфейсы взаимодействия, привычные для пользователя. Когда речь идет о файловом хранилище, традиционным инструментом является представление хранилища в виде разделяемого ресурса (диска или папки) с возможностью подключения к нему с любого узла. В рамках партнерства с DDN компания EPAM Systems в настоящее время разрабатывает средства интеграции для облачных хранилищ типа WOS.

Наиболее известными протоколами организации доступа к сетевым файловым серверам являются NFS8 и SMB/CIFS9. Оба они предоставляют доступ к разделяемым дискам, однако традиционно NFS более популярен в Linux-средах, в то время как CIFS является стандартом для Windows-пользователей. Таким образом, облачное хранилище должно обладать средствами организации доступа по двум указанным протоколам, а также обеспечивать прозрачную интероперабельность между ними. Для реализации средств доступа успешно использовано программное обеспечение с открытым кодом.

Предлагаемое решение основано на использовании пакетов Ganesha NFS10 (распространяется под лицензией LGPL) и Likewise CIFS11 (GPL и LGPL). Пакет Ganesha NFS предлагает реализацию NFS-сервера в пространстве пользователя, и основан на использовании концепции уровня абстракции локальной файловой системы. Модули, разрабатываемые для реализации уровня абстракции, служат связующим звеном между собственно сервером протокола и локальной файловой системой. В настоящее время проект поддерживает экспорт следующих файловых систем: XFS, ZFS, LUSTRE, FUSELIKE, SNMP, POSIX. Для работы с файловым хранилищем был разработан отдельный модуль, обеспечивающий представление и экспорт пространства имен файловой системы хранилища через NFS.

Пакет Likewise CIFS является реализацией сервера протокола CIFS, ориентированного на применение в среде Linux в качестве альтернативы известному решению Samba12. К достоинствам Likewise относятся лучшая интеграция сервисов со службами Active Directory, поддержка версий протокола SMB1 и SMB2 для обслуживания клиентов разных версий Windows, поддержка атрибутов и модели безопасности Windows. Платформа Likewise CIFS реализована в виде набора сервисов, в общих чертах повторяющих сервисы Windows. Для интеграции собственной функциональности для работы со специализированными файловыми системами она имеет интерфейс драйверов, подключаемых к сервису ввода-вывода. Доступ к хранилищу в предложенном решении реализован именно в виде драйвера без существенного вмешательства в код самой платформы.

Для обеспечения интероперабельности решений при работе с единым хранилищем предложена следующая архитектура (рис.1).

Рис. 1. Архитектура взаимодействия серверов протокола с хранилищем.

Сервера протоколов — Ganesha NFS и Likewise CIFS — совместно используют библиотеку, предоставляющую уровень абстракции файловой системы над хранилищем (WOS Storage). Библиотека имеет внешний интерфейс, совместимый со стандартом POSIX13, поэтому может использоваться как самостоятельная часть при построении приложений, выполняющих файловые операции. Библиотека хранит состояние дерева каталогов в виде базы данных (WOS DB), отражая изменение содержимого хранилища и устанавливая иерархию и модель принадлежности объектов, аналогичную POSIX-совместимой файловой системе. Отдельной частью библиотеки является реализация потокового чтения-записи в хранилище.

В случае отсутствия соединения с хранилищем файлы могут быть сохранены на локальной файловой системе шлюза хранилища и переданы в него при восстановлении соединения. Поскольку протокол NFS является протоколом без состояния, такая модель взаимодействия присуща ему изначально. Протокол CIFS, напротив, является протоколом с состоянием и поэтому способен работать с хранилищем напрямую. Контроль за состоянием соединения выполняет демон WOS, сообщающий библиотеке режим, в котором она должна осуществлять ввод-вывод данных.

Достоинствами предложенного решения являются:

  • Поддержка двух основных протоколов сетевых файловых систем
  • Интероперабельность между протоколами через единый уровень абстракции
  • Прозрачность взаимодействия пользователя с облачным хранилищем
  • Возможность работы при отсутствии соединения с хранилищем через локальный диск
  • Возможность использования библиотеки реализации уровня абстракции как самостоятельного модуля

Основной проблемой в ходе реализации прототипа решения для совместного доступа к хранилищу по протоколам NFS и CIFS являются различия в природе протоколов CIFS и NFS. Протокол NFS в принципе не работает с хранилищем без наличия промежуточного раздела на жестком диске для обмена файлами между клиентами и хранилищем. В отличие от него, протокол CIFS способен обойтись без хранения промежуточных файлов на диске. Тем не менее, для некоторых операций, например усечения файла, приходится использовать локальный диск. Это обусловлено особенностями самого хранилища, допускающего только операции записи, чтения и удаления объектов.

На производительность серверов протокола также существенно влияет необходимость хранить дерево каталогов «виртуальной» файловой системы хранилища в виде совокупности таблиц в PostgreSQL. Само по себе хранилище не имеет файловой системы как таковой, поэтому необходимо было создать представление дерева каталогов и файлов в виде иерархической структуры. Эта структура отображается серверами NFS и CIFS в виде привычного нам вывода команды ls.

Отдельной проблемой является настройка отображения пользователей между серверами NFS и CIFS. Поддерживая привычную модель Unix permissions, Likewise CIFS расширяет ее средствами контроля безопасности, присущими Active Directory. Поэтому с точки зрения CIFS безопасность доступа к объектам файловой системы проверяется строже, чем с точки зрения NFS. Однако, это вопрос скорее администрирования, чем реализации.

В настоящее время разработка проходит апробацию в DDN в качестве экспериментальной реализации доступа к облачному хранилищу по протоколу CIFS.

Литература:
1. Amazon Simple Storage Service (Amazon S3). http://aws.amazon.com/s3/
2. Dropbox — Simplify Your Life. http://www.dropbox.com/
3. Google Docs. https://docs.google.com/
4. Hitachi Cloud Solutions. http://www.hds.com/solutions/it-strategies/cloud/
5. IBM XIV Storage System series. http://www-03.ibm.com/systems/storage/disk/xiv/overview.html
6. Network Attached Storage for Scalable Big Data Storage. http://www.isilon.com/
7. DDN Web Object Scaler. http://www.ddn.com/products/web-object-scaler-wos
8. Network File System. http://en.wikipedia.org/wiki/Network_File_System
9. Server Message Block. http://en.wikipedia.org/wiki/Server_Message_Block
10. NFS-Ganesha. http://nfs-ganesha.sourceforge.net/
11. Likewise CIFS File Server. http://www.likewiseopen.org/oem-cifs-smb-in-nas.php
12. SAMBA – Opening Windows to a Wider World. http://www.samba.org/
13. POSIX. http://en.wikipedia.org/wiki/POSIX

Лицензия Creative Commons
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.

Presentation