Как стать автором
Обновить

Знакомство с NexentaStor CE 3.05. Пример интеграции с Windows AD

В любой компании большой imageили маленькой рано или поздно приходится столкнуться с проблемами хранилищ данных: постоянное разрастание, своевременный бэкап, оперативное восстановление удаленных файлов, избыточность и оптимизация хранения данных. В этой статье я расскажу об использовании NexentaStor CE 3.05 в качестве хранилища данных для небольшой компании (количество win-пользователей ~60) и интеграции в Windows AD.
Плюсы данного решения:
  • Пользователи сами могут восстанавливать удаленные файлы из «Предыдущих версий», что уменьшило трафик халявных шоколадок\пива головных болей админу.
  • Отпала проблема постоянного расширения хранилища.
  • На удаленный сервер бэкапов можно копировать данные из снапшотов, что уменьшает объем хранимых данных.
  • Сторадж отправляет письма о своем состоянии (знаю что можно было настроить syslog, но руки не доходили).
  • И конечно же вся ZFS специфика, большую часть которой я не использовал и вряд ли буду, но осознавать приятно.
  • Более простое и понятное управление хранилищем (дисками, папками, пулами).

Минусы:
  • Пришлось использовать Windows 2003 Server, но он был куплен достаточно давно и «валялся» без дела.
  • Нужно дублировать пользователей, создавать idmap'ы. Надеюсь в скором времени можно будет использовать Windows AD как LDAP сервер для NexentaStor и проблема отпадет.

И поскольку плюсов куда больше, я могу предположить что это решение можно отнести к удачным.

Немного «теории»

Мы будем использовать NexentaStor CE 3.0.5 т.к. Это достаточно стабильный продукт, базирующийся на 134-f ядре opensolaris. Что само по себе уже звучит неплохо. Далее я приведу краткое описание продуктов, форков и дистрибутивов имеющих отношение к Nexenta:
  • NexentaStor – коммерческий продукт, имеет кучу плагинов, на сайте есть описания, базируется тут, есть триал на 45 дней, нам не интересен.
  • NexentaStor CE — то же что и выше но Community Edition, полнофункциональный, бесплатный, ограничение в 18 Тб базируется тут.
  • Nexenta Core Platform — сама операционная система, без web-GUI, и прочих наворотов, для серьезных мужиков. По факту opensolaris ядро (build 134+ backports/fixes from later releases) с Ubuntu 8.04 LTS (Hardy Heron) репозиторием и GNU окружением (есть дистрибутив StormOS на этой платформе). Есть ещё illumos – форк opensolaris и openindiana дистрибутив на нем.

Основные компоненты NexentaStor CE:
  • NMS — Nexenta Management Server – сервер предоставляющий доступ к SA -API (Storage Appliance API) работает как демон.
  • NMC — Nexenta Management Console — универсальная консоль для настройки каждого аспекта NexentaStor (волумов, папок, пользователей и проч.). Доступ локально через консоль или удаленно, посредством SSH.
  • NMV — Nexenta Management View — Веб-клиент использующий SA-API для доступа к NMS (удаленно через клиентский браузер).

Использование NexentaStor CE на примере интеграции с Windows AD


Было: CentOS 5.6 с samba PDC openldap (как хранилище учеток) ~ 60 Windows пользователей, несколько основных папок общим размером около 1,5 Тб. Все пользователи хранят файлы именно на сетевом хранилище.
Стало: NexentaStor CE 3.0.5 + Windows 2003 Std R2 с Active Directory. Windows 2003 Std R2 – как хранилище пользователей, групп, разграничение прав, DNS и проч. Папки были перенесены без изменений в своей структуре.
Всё внедрение\установку разбил на нижеописанные шаги (со скриншотами, если что-то неинтересно можно пролистать):
  1. Установка и первоначальная настройка
  2. Ввод в Windows домен
  3. Настройка пользователей
  4. Настройки idmap
  5. Настройка прав пользователей
  6. Интересности
  7. Заключение

Установка и первоначальная настройка

Граб (ничего нового).
image
EULA (Agree и Disagree), если нажать Disagree, то вывалится в консоль, где можно вводить некоторые команды (reboot например).
image
Выбор дисков (можно выбрать не более 3х, на которые установится syspool) а также выбрать hotspare диски. После этого подождать некоторое время и перезагрузиться.
image
Согласиться с EULA 2ой раз. После этих шагов попадаешь в Wizard0. В Wizard0 (в консоли) необходимо ввести ip адрес, порта и протокола (http\https) для последующей настройки\управления из браузера. В Wizard0 также нужно ввести Registration Key (получить его можно на сайте, введя Machine Signature, ответив на несколько вопросов и получив ключ на почту).
image
После Wizard0 нужно открыть браузер (подойдет любой кроме IE 6.0 и ранее, официально поддерживаются Firefox, IE, Chrome) вводим 192.168.42.167:2000 (у вас соответственно тот ip и порт который вы указали) — попадаем в Wizard1. В нем выполняем нижеописанные шаги.
Выбираем имя хоста, домен, временные зоны.
image
Указываем пароль для root и admin (две default учётные записи) пароль по умолчанию nexenta.
image
Указываем параметры для mailer (как показала практика E-Mail Addresses for statistics и E-Mail Addresses for faults не должны совпадать с E-Mail Addresses и друг с другом), т. е. нельзя указать 3 одинаковых email-адреса.
image
Жмем ”Next Step”, сохраняем конфигурацию и попадаем в Wizard2.
В Wizard2 указываем основные настройки сети, iSCSI, дисков, волумов и папок. Все вроде бы просто, остановлюсь на интересных моментах.
— Step #1: Network. Обычные сетевые параметры: можно создать агрегированный интерфейс (но для этого 2 и более интерфейса должны быть в статусе unconfigured, т. е. по факту из браузера можно это сделать при наличии 3х и более интерфейсов. Если их всего 2, то агрегированный интерфейс можно создать из консоли).
image
— Step #2: iSCSI Initiator. NexentaStor может выступать как iSCSI initiator. В общем, можно подцепить её к iscsi target прямо из мастера.
image
— Step #3: Disks. Список дисков. Можно во время этого шага добавлять\удалять винты, а потом жать кнопку Refresh чтоб обновить список дисков.
image
— Step #4: Volumes. Пожалуй, самый интересный пункт, на нем остановимся подробнее. На этом шаге мастера можно создавать\удалять, экспортировать\импортировать волумы любых конфигураций.
Важно отметить, разницу в терминологии NexentaStor и Solaris:
NexentaStor — Solaris/ZFS
Volume = Storage pool
ZVol = Volume
Folder = File system

Вернемся, к волумам. По факту избыточность может быть 4х типов (нет, зеркало,1-2-3 четности), а так же есть log, cashe, spare устройства (cache — устройство кэширования действует в качестве дополнительного уровня кэша между оперативной памятью и диском, log — устройства протоколирования для протокола намерений ZFS, spare – устройство (замены мертвых или умирающих дисков) горячего резерва). Если на дисках уже располагался волум то его достаточно импортировать нажав на «Import Volume».
image
— Step #5: Folders and Shares.
На этом шаге производится создание папок и «расшаривание» их по CIFS, NFS, FTP, RSYNC, WebDAV. Имеет кучу zfs – опций (в консоли еще больше).
image
— Step #6: Review Changes and Exit.
На 6-м шаге можно просмотреть получившуюся конфигурацию и сохранить её. Здесь есть 3 checkbox'a:
Create a system checkpoint now? — важная галочка, создает снапшот syspool'а сразу после установки, если что-то сломается можно загрузиться\откатиться с\на него.
Optimize I/O performance for CIFS/NFS/iSCSI UPS-backed deployments? — отключает ZFS cache flushing, что повышает производительность, но не безопасна, рекомендуется при наличии защиты NVRAM и UPS.
Create periodic scrubbing service (auto-scrub) for system volume weekly, every Sunday at 3am? — создает автоскраб сервис (по факту сервис запускающий zpool scrub команду для syspool раз в неделю). Я оставил по умолчанию.
image

Ввод в Windows домен

Собственно на эту тему есть отдельный мануал. Опишу шаги которые делал:
  1. Указал имя хоста и домена.
  2. «Синхронизировал» время. Для этого можно либо указать в качестве ntp сервера Windows AD сервер или использовать команду ntpdate ip_win_ad_or_ntp_server (предварительно отключив ntp-сервис команда — svcadm disable ntp).
  3. Указал в качестве DNS сервера ip моего Windows 2003 Std R2 с Active Directory, т. к. DNS-сервер находился именно на нем.
  4. Пропустил заморочку с lm_auth_level. Для Win2003 можно оставить по умолчанию, для Windows 2008 нужно указать значение 2.

    image

Чтобы ввести NexentaStor CE 3.0.5 в домен нужно перейти к Data Management->Shares->Cifs Server->Join AD/DNS Server и указать требуемое:
  • DNS Server – сервер используемый для определения Windows имен
  • AD Domain — название моего домена вроде test.local
  • AD Join User — пользователь с правами Domain Admin, от имени которого. NexentaStor будет вводиться в домен (в мануале сказано что можно предварительно создать объект типа Computer с названием NexentaStor-хоста, и назначить любому другому пользователю на него права и тогда этот пользователь может ввести в домен не будучи участником группы Domain Admin, но я не пробовал)
  • AD Join Password — пароль этого пользователя

image

Настройка пользователей

Вся настройка пользователей заключается в том чтобы создать их и распихать по группам для удобства администрирования. Пользователи создаются как в Windows AD, так и в NexentaStor.

Бочка дегтя

  1. Приходится дублировать пользователей как в Windows AD, так и в NexentaStor. Это необходимо для настройки idmap.
  2. Нужно настраивать idmap'ы.

Вроде немного, но этого хватает. При добавлении нового пользователя в AD приходится лезть в NMV\NMC и создавать пользователя там, добавлять его в UNIX группу и создавать idmap. Это можно обойти, т. е. чтобы не создавать «нексентовских системных» пользователей — использовать Windows NIS сервер или дополнительный LDAP сервер на который бы дублировались Windows AD-пользователи. Сразу скажу что использовать Windows AD как LDAP сервер в 3.0.5 нельзя (эта фича дорабатывается).
Можно написать «скриптик», который добавляет пользователей из списка list в систему. Что-то вроде нижеследующего. Для входа в bash нужно в NMC (консоль) ввести:
nmc@test-for-habr:/$ option expert_mode = 1
nmc@test-for-habr:/$ !bash

Далее попадаем в полноценную консоль bash. Собственно листинг простейшего скрипта:
#!/bin.bash
Listofusers=`cat /volumes/user.lst`
echo $Listofusers
count=6
for NAME in $Listofusers
do
useradd -g "10" -u "100$count" $NAME
echo $NAME
let count=count+1
echo $count
done

count – количество пользователей, user.lst — список имен пользователей вида:
user1
user2
usera

userz

Про то как получить пользователей из AD, обработать и запихнуть в NexenStor ну или другую систему это материал для отдельной статьи.

Настройки idmap

idmap — настраивает и управляет Native Identity Mapping service. Native Identity Mapping service cоздает соответствие между идентичностями (пользователями\группами) Solaris и Windows систем.
Для создания idmap (в веб-интерфейсе) — Data Management->Shares->Cifs Server->Identity Mapping
image
Мапинги хорошо описаны в man. Единственное что добавлю, это то что можно использовать символ подстановки «*» и создавать мапинги вида:
windows-name@domain to ""
windows-name@domain to unix-name
windows-name@* to ""
windows-name@* to unix-name
*@domain to *
*@domain to ""
*@domain to unix-name
*@* to *
unix-name to ""

Настройка прав пользователей

Собственно настройка прав заключается в том чтобы залогиниться в windows машину под пользователем, который «замапен» как root, в моем случае это gadmin нажать правой кнопкой на нужной папке и выставить все необходимые права. Хотя наверное можно использовать солярисный chmod для настройки CIFS shares, но я не пробовал (думаю что это не просто, при большом кол-ве груп и пользователей). Кстати солярисные утилиты лежат тут — /usr/sun/bin.
image

Интересности

Снапшоты делаются быстро, без каких либо нагрузок, работать с ними куда быстрее чем с обычными бэкапами. Снапшотить можно пулы, папки и зиволы (zvol). Снапшоты могут быть склонированы и смонтированы, чтоб считать с них данные. CIFS делает это «автоматически» т. е. если зайти на вкладку «Предыдущие версии» — то можно увидеть список снапшотов, любой из них может быть открыт.
image

Автосервисы. Для NexentaStor CE доступны Auto-Scrub, Auto-Snap, Auto-Tier. Первые два думаю понятны. Auto-Tier — сервис репликации данных (пулов, волумов, зиволов) с\на другой хост или локально между папками\волумами\зиволами. Т.е по факту для организаций переодических backup\restore данных. На принимающей стороне может быть любой хост с запущенным демоном Rsync, например Linux-based хост или другой NxentsStor.
Ну и все остальные фишки ZFS, такие как: целостность, прозрачное сжатие данных, дедубликация и проч.

Заключение

В заключении, хочу сказать, что на данный момент сама инсталляция и настройка не занимает много времени, все заняло около 2х дней, 80% времени из которых заняло копирование данных со старого хранилища. Во время настройки натолкнулся на грабли с правами для CIFS шар, когда пытался настроить права для пользователей без интеграции в домен, но из-за проблем с наследованием пришлось отказаться от идеи использовать NexentaStor CE без ввода в домен. Зато интеграция NexentaStor в AD позволила проще настраивать права. Спасибо за внимание, надеюсь статья была интересной.

Список использованной литературы:
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.