?

Log in

No account? Create an account

Entries by category: it

Active Direcity нужна ли эта система сейчас?
rubuntu
AD - служба каталогов позволяющая: управлять пользователями и группами пользователей; распределять доступы к файлам, устройствам и т.д.; централизованно устанавливать обновления и сторонее ПО; хранить информацию о пользователях и их настройках. Это чуть ли не стандарт во многих компаниях нашей необъятной страны.
Зачем это нужно? Хочу спросить не зачем нужно, например, управлять доступом пользователей, а зачем это нужно с точки зрения организации рабочего процесса на современном предприятии? Именно под эти углом хочу рассмотреть AD, т.к.компании нужены компьютеры, ПО, сотрудники для организации работы, которая направленна на получение прибыли компании.
1. Распределение доступа к файлам.
Распределять доступ к файлам и папкам это удобно. Например, бухгалтерия хранит файлы на в папке Fin на неком сетевом диске. Туда имеет доступ только группа из бухгатеров и несколько директоров, а остальные не должны иметь доступа.
Отличное решение, именно так и был организован процесс 10 лет назад. Сейчас появились системы документооборота. Они точно хранят документы, распределяют права доступа к ним, но кроме этого делают систему маршрутизации документооборота и управление заданиями.
Пример.
Решаем некому сотруднику повысить з.п., начальник отдела, где работает сотрудник, создает прошение по повышении своему директору и нажимает кнопку отправить на согласование своему директору, тот отправляет в бухгалтерию, а она уже отправляет гендиректору на утверждение. В системах документооборота это занимает несколько минут, у каждого из этой цепочки появляются соответствующие задания, чтобы не забыть. А сколько бы это заняло в путем обмена файлами? Еще нужно каждому из этой цепочки написать письмо или напомнить, чтобы напомнить.

Именно системы документооборота вытеснили обмен документов через общие файлы и папки. Зачем еще нужны файлы и папки? Хранить фотографии с последнего корпаратива, интересную киношку которую хочется показать коллегам или тонны музыки? Все это не относится к работе, но если так нужно, то системы документооборота позволяют хранить разную информацию, так что можно это засунуть туда. Так что удаленные файлы и папки особо не нужны современному бизнесу, т.к. есть другие более совеременные инструменты.
2. Установка ПО и обновлений.
Что обычно устанавливают Office и антивирус. Они прекрасно ставятся удаленно, но установка спецефического ПО часто проще делается напрямую. Мне один админ жаловался, что при установке Zlock (ничего не хочу сказать, хорошая программа) из сотни компьютеров встала только на половину, на остальных с разными ошибками отказалась, а на трех привело к краху винды и пришлось полностью переустанавливать их.
Можно ведь ПО не устанавливать, а удаленно доставлять или те же системы документаоборота, которые имеют обычно все, что нужно для работы. В крупные компании обычно поставляются компьютеры у уже предустановленным ПО. AD для обновлений вообще не нужен.
3. Информация о пользователях и настройках.
А что хранить, если все что нужно лежит в системе документооборота для каждого пользователя. Есть секретные данные? Для этого существуют системы шифрования дисков, флешек, папок, в качестве ключа использовать etoken.
4. Управления пользователями и группами.
Управлять то особо получается нечем. Но если все-таки нужно централизованно это делать, то есть LDAP.
Обращаясь к прошлому посту, в общем и целом инфраструктура компании на основе Windows и Active Directory не нужна. Системы документооборота попросту уничтожили AD. А есть и более мощные решения например системы управления предприятие.
Стоит заметить, что сущестувуют компании которые уже не смогут отказаться от Microsoft, например, те, что внедрили Axapta.
P.S. Этот пост всего лишь мнение автора и попытка взглянуть на Active Directory с другой точки зрения.

Винды
rubuntu
Почему бизнес выбирает Windows?
Под бизнесом я буду говорить об обычном бизнесе, малый или средний - не важно.
Десять лет назад, или даже пять, такой вопрос был бы странным. Решил разобраться, почему до сих пор выбирают Windows, а не другие решения. Кроме альтернативы в виде Linux существует и другие системы, например Mac и набирает популярность Android. Опросил своих знакомых бизнесменов. Получил несколько причин, чем с Вами и делюсь.
1. Привычка.
Да, привычка - дело сильное. Из-за этого, решения по замене любимого Windows и Office на что-то другое, терпят неудачу. Начинают ныть все сотрудники вместе взятые. Но при сильной поддержке этого перехода со стороны руководства нытье прекращается. На сэкономленные деньги можно премию какую дать, или наоборот, у особо плаксивых отобрать. Способов много, было бы желание. А желание должно исходить от руководства. 5-10 лет назад это желание исходило только снизу - от системных администраторов, сейчас многие руководители осознают и хотят перейти на что-то другое. А многим руководителям компаний нравится Mac, Ipad, Iphone, подумывают об Android и даже присматриваются к Linux. В итоге получается, что привычка это не причина.
2. Office.
Во многих компаниях привыкли к ворду и екселю, за уши не оттащишь. Десять лет назад альтернативы - не было. Пять лет назад OpenOffice был откровенно говоря не очень, а текстовый редактор на Mac`ах был еще не популярен, в силу отсутствия популярности самих Mac`ов. Сейчас OpenOffice достойно работает, Excel и Word без проблем может заменить. Огромное количество систем документооборота, вообще, не требуют использования Office. Все что нужно для создания документов уже есть внутри в виде различных встроенных редакторов на основе веб интерфейсов. Есть компании, которые жестко завязаны на Excel, различными формами отчетности, тогда переход для них не возможен. Так что Office в целом не причина.
3. Бухгалтерское ПО.
Здесь правит 1С, но оно прекрасно работает под wine Linux, можно взять не чистый wine, а например, Ethersoft wine, стоит он копейки. Так что вопрос с главной бухгалтерской программой тоже решен.
4. Специализированное ПО.
Этому есть много аналогов под другие ОС. Под Mac Вы точно найдете нечто аналогичное. Часто тыкают Autocad`ом. Но Autocad есть под Mac. Вообще под Mac, что касается графики есть все, что нужно.
5. Банк-клиент.
Специально оставил этот пункт последним. Банк-клиент - это контроль за финансовой составляющей компании, которая является одной из самых главных частей бизнеса и руководитель компании обязан этот контроль иметь. Большинство банк-клиентов в нашей стране не работает с другими ОС, кроме Windows. Собственно и в Windows они работают достаточно тяжело. Нужно убрать огромное количество настроек безопасности, чтобы требуемый объект ActiveX стал правильно работать под Explorer`ом. Банк-клиент работает не только у бухгалтеров, но и директор компаний, которые подписывают созданные бухгалтерами платежки. Поэтому руководитель обязан иметь компьютер на базе windows. Бухгалтерия тоже обязана его иметь. Ну а раз у руководителя предприятия Windows, до желания со стороны руководства перейти на что-то иное резко убавляется. Именно этот пункт, со слов руководителей компаний и владельцев бизнеса является самым пугающим для них. А так, многие из них готовы перейти.
Вывод.
Компании готовы перейти на что-то отличное от Windows. Есть мотивация, особенно у представителей малого бизнеса (число сотрудников - до 50 человек). Но основная причина, которая отталкивает это банк-клиент.
Мне интересно, почему нельзя сделать банк-клиент под несколько систем? Ведь в последнее время подавляющее число банк-клиентов работают в браузерах. Не так уж и сложно адаптировать его под другой браузер или я ошибаюсь?

Настройка HAST
rubuntu
Введение.
HAST (Highly Avalible Storage) технология позволяющая создавать отказоустойчивые хранилища (Primary-Secondary) используя несколько машин. Эта технология может помочь при создании кластера высокой доступности (HA). HAST появился в FreeBSD начиная с 8.1. В текущей версии HAST можно использовать только две машины. HAST работает на уровне блоков и не зависит от файловой системы, т.е. можно использовать ZFS или UFS.

Эта технология работает по TCP. Для работы используется демон hastd и утилита для управления hastctl.

Использование.
Имеем две машины (ноды)
host1 192.168.1.2
host2 192.168.1.9
на обоих машинах стоит дополнительный диск ad3.
HAST готов к использованию сразу, без дополнительных установок. Для конфигурирования создадим файл /etc/hast.conf
resource my {
        on host1 {
                local /dev/ad3
                remote 192.168.1.9
        }
        on host2 {
                local /dev/ad3
                remote 192.168.1.2
        }
}
т.е. host1 имеет диск ad3 и синхронизируется с 192.168.1.9 (host2), а для host2 соответственно наоборот.
Сделайте такой же файл на другой машине.
host1# hastctl create my
host1# hastd
После этого демон должен запустится, проверим, что все работает
host1# hastctl status
должно выдать вроде этого
my:
  role: init
  provname: my
  localpath: /dev/ad3
  extentsize: 0
  keepdirty: 0
  remoteaddr: 192.168.1.2
  replication: memsync
  dirty: 0 bytes
Сделаем такие же действия на другой машине
host2# hastctl create my
host2# hastd
Теперь раздадим роли машинам. Например, host1 будет главным, а host2 - резервным.
host1# hastctl role primary my
host2# hastctl role secondary my
После того, как host2 стал secondary, должна начаться синхронизация. В первый раз она не должна занять много времени.
Проверим, что все работает.
host1# hastctl status
my:
  role: primary
  provname: my
  localpath: /dev/ad3
  extentsize: 2097152
  keepdirty: 0
  remoteaddr: 192.168.1.9
  replication: memsync
  status: complete

  dirty: 0 bytes
Для нас важно, чтобы был статус complete. Если статус другой, проверяем, что не так.
Теперь создадим файловую систему. Не смотря на то что можно использовать UFS лучше использовать ZFS, чтобы не приходилось запускать fsck.
Создадим пул используя появившееся устройство /dev/hast/my
host1# zpool create mydisk /dev/hast/my
host1# zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
mydisk    95G  84.5K    95G     0%  ONLINE  -
На второй машине этого делать не надо.
HAST настроен.

Тестирование.
Создадим несколько файлов в mydisk и протестируем нашу систему. Для тестирования перезагрузим ноду с primary, т.е. host1.
После перезагрузки посмотрим состяние пула
host1# zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
mydisk    -               -             -         -      FAULTED          -
Это случилось потому что пропало устройство /dev/hast/my Экспортируем пул и поменяем роль host1 на secondary
host1# zpool export -f my
host1# hastctl role secondary my
А host2 сделаем основным и импортируем пул.
host2# hastctl role primary my
host2# zpool import -f mydisk
host2# zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
mydisk    95G    84.5K    95G     0%    ONLINE          -
Проверим наши файлы, они должны остаться.

Ошибки.
По умолчанию логи можно посмотреть в /var/log/message.
В результате некоторых действий можно добиться ситуации, когда вы обнаружите в логах запись Split brain - разделение сознания.
Это означает, что каждая из нод думает, что она главная и живет собственной жизнью. Такое может произойти если вы умудритесь
записать разную информацию на нодах или поставить обои машины в роль primary. Исправить эту ситуацию можно выбрав ту машину которая будет у вас secondary, и нужно сделать на ней:
 hastctl role init my
 hastctl create my
 hastctl role secondary my
После этого должен запуститься процесс синхронизации. Он может занять продолжительное время.
 

Автоматизация.
Эта система сделана для кластеризации, а именно для кластера высокой доступности. Например можно воспользоваться CARP 
чтобы сделать постоянным. Можно написать собственные скрипты,
 а можно воспользоваться стандартными. Автором HAST уже написаны готовые скрипты которые умеют определять на какой ноде сейчас primary.
Для работы следует установить ucarp:
cd /usr/ports/net/ucarp
make && make install clean && rehash
Скрипты находятся в /usr/share/expamles/hast/
Скопируйте их в /домашний каталог/sbin/hastd/ так предлагается по умолчанию и отредактируйте переменные в начале скриптов
ucarp.sh, ucarp_down.sh, ucarp_up.sh
Сделейте это на обоих нодах и запустите ucarp.sh на обоих нодах.

Дополнительные возможности.
У HAST существует три типа репликаций. Они различаются тем когда данные считаются записанными.
  • memsync - Данные операции записи считаются завершенными когда запись локальна завершена и когда удаленный узел принял данные, но до того как записать данные. Данные на удаленной ноде начинают писаться, как только отправлен ответ.
  • fullsync - Данные операции записи считаются завершенными когда запись завершена локально и на удаленной ноде запись тоже завершена.
  • async - Данные записи считаются завершенными когда запись завершена локально. Это наиболее быстрый способ записи.
На момент написания статьи работает только memsync.
Дополнительную информацию можно прочитать на http://wiki.freebsd.org/HAST

Заключение.

HAST только появился, у него богатые возможности для организации хранилища высокой доступности. В данный момент еще не все работает, но это хорошее начало для кластеризации на FreeBSD.
Перед тем как работать с HAST в боевых условиях рекомендую потренироваться. У меня были ситуации, когда secondary не хотел брать данные с primary, было что неаккуратные движения приводили к "Split Brain". Данные, правда, потеряны не были, но много времени было потеряно на синхронизации.

 
 



Статья написана при поддержке компании Uniadmins.

Тюнинг ZFS
rubuntu
Вообще говоря для ZFS рекомендуется более 8Гб оперативной памяти, чтобы она смогла себя раскрыть.
Но приходится настраивать ZFS на машинах с маленьким объемом оперативной памяти например с 1Гб и даже меньше. Минимальный объем который необходим для работы ZFS это 512Мб. Здесь я хочу привести несколько советов по тюнингу ZFS.
Что может быть если этого не сделать? Предположим Вы настроили ZFS на сервере с 1Гб оперативной памяти. Все загрузилось, но когда вы начинаете интенсивно работать с диском, система вдруг падает в kernel panic.
Чтобы этого не случилось необходимо дописать ряд параметров в /boot/loader.conf

vm.kmem_size_max="384M"
vm.kmem_size="384M"
vfs.zfs.arc_max="40M"
vfs.zfs.prefetch_disable=1

vm.kmem_size, vm.kmem_size_max - участок памяти используемый ядром для выделения памяти, например, при использовании malloc. Размер этой памяти виртуальный, но постарайтесь сделать его меньшим вашей оперативной памяти.
vfs.zfs.arc_max. Вообще ARC это то где  хранятся кешированные данные пулов (pool). Работа с этим параметров сказывается на производительности, но в случае если у нас памяти мало, то этот параметр можно уменьшить.
vfs.zfs.prefetch_disable=1 - отключение режима prefetch.  Режим prefetch - режим, когда система "угадывает" что будет прочитано и заранее читает, что может значительно ускорить работу файловой системы. На amd64 при памяти менее 4Гб он отключается автоматически.
Некоторые советуют отключить ZIL добавлением vfs.zfs.zil_disable="1". Не делайте этого! Отключение ZIL может помочь только в редких случаях, в большинстве случаев он приведет к резкой потере производительности.

Так же добавлю, что лучше для работы с ZFS иметь не менее 1Гб оперативной памяти и использовать amd64.
Для более глубокого тюнинга рекомендую ZFS Evil Tuning Guide