Search
Write a publication
Pull to refresh

Знакомство с 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 позволила проще настраивать права. Спасибо за внимание, надеюсь статья была интересной.

Список использованной литературы:
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.