28 марта 2012 г.

HP + Cisco в сети.

Блоги умирают. Но надо держаться!

Есть еще хорошие сетевые администраторы? Тогда пара ссылок для вас, спецы.
Сеть, построенная на 1 вендоре практически нереальна. Зато в ядре много часто есть Cisco. Прям как у нас на заводе: роутинг - Cisco, доступ и магистраль - HP, Edge-Core и немного совсем чуть-чуть Zyxel.
Так вот далее скину-ка я вам про интероперабельность между HP и Cisco: http://h17007.www1.hp.com/docs/interoperability/Cisco/HP-Networking-and-Cisco-CLI-Reference-Guide_June_10_WW_Eng_ltr.pdf
И 

Рекомендую ознакомиться, а лучше распечатать и сброшюровать.

Удачи.

О! А PS?

PS: Хинт как сделать HP более похожим на Cisco ;) http://www.freemynetworking.com/2010/12/implementing-the-alias-function-on-hp-comware-software-cisco-like/

19 марта 2012 г.

ZFS на BACKUP1 - сервере хранения резервных копий завода.

ZFS - вещь.
Сегодня немного о проверке целостности и "очистке" (Scrub).

Для начала читаем Handbook, раздел,посвященный ZFS: http://www.freebsd.org/doc/ru/books/handbook/filesystems-zfs.html
Находим там пример:

19.2.2.4. Проверка данных

Как уже было сказано ранее, ZFS использует контрольные суммы для проверки целостности сохраненных данных. Подсчет и сохранение контрольных сумм включается автоматически во время создания файловых систем и может быть отключен при помощи команды:
# zfs set checksum=off storage/home
Отключение подсчета контрольных сумм -- не очень хорошая идея; особенно ввиду того, что они занимают мало места, а также при их использовании нет существенных расходов ресурсов системы. Пока подсчет включен, возможно выполнять проверки целостности данных ZFS, используя контрольные суммы. Этот процесс известен как ''очистка (scrubbing)''. Чтобы проверить целостность данных пула storage, выполните следующую команду:
# zpool scrub storage
Этот процесс может занять значительное время в зависимости от количества сохранённых данных. Очистка (scrubbing) порождает интенсивный ввод/вывод, поэтому только один экземпляр этой операции может выполняться в один момент времени. После завершения очистки (scrubbing) статус обновится, его можно просмотреть выполнив следующий запрос:
# zpool status storage
 pool: storage
 state: ONLINE
 scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:

 NAME        STATE     READ WRITE CKSUM
 storage     ONLINE       0     0     0
   raidz1    ONLINE       0     0     0
     da0     ONLINE       0     0     0
     da1     ONLINE       0     0     0
     da2     ONLINE       0     0     0

errors: No known data errors
Время завершения отображается в простом виде в этом примере. Очистка помогает удостовериться в целостности данных на протяжении длительного времени.
В этом разделе была освещена лишь малая часть возможностей ZFS. За более подробной информацией обратитесь к страницам справочника zfs(8) и zpool(8).
И начинаем работу на сервере:
1. Смотрим,что у нас вообще за система, что накручено по zfs:

22:18 root@backup1 /usr/home/yakuzzza# uname -aFreeBSD backup1.frunze.local 8.2-RELEASE-p2 FreeBSD 8.2-RELEASE-p2 #1: Mon Sep  5 23:57:25 EEST 2011     
root@backup1.frunze.local:/usr/obj/usr/src/sys/HAMMER  amd64
22:18 root@backup1 /usr/home/yakuzzza# zpool listNAME      SIZE   USED  AVAIL    CAP  HEALTH  ALTROOTstorage  7.25T  4.45T  2.80T    61%  ONLINE  -
2.  Я, как будет видно из вывода команды zpool storage scrub запускал в воскресенье, но доработало оно все аж сегодня в 13:10 (простите бекапы за торможение выполнения, как будет показано дальше не зря я это делал и чуйка моя продолжает работать ;). Время выполнения 18 часов 11 минут на пуле RAIDZ из 4 дисков:
22:18 root@backup1 /usr/home/yakuzzza# zpool status  pool: storage state: ONLINE scrub: scrub completed after 18h11m with 0 errors on Mon Mar 19 13:10:02 2012config:
        NAME        STATE     READ WRITE CKSUM        storage     ONLINE       0     0     0          raidz1    ONLINE       0     0     0            aacd2   ONLINE       0     0     0            aacd3   ONLINE       0     0     0  85.5K repaired            aacd4   ONLINE       0     0     0            aacd5   ONLINE       0     0     0
errors: No known data errors
 Опля. Были проблемы. Ищем их. Находим по dmesg на проблемном диске aacd3. Попутно для поигрывания мышцами ищем что такое aacd - http://www.freebsd.org/doc/ru/books/handbook/disks-naming.html:

Диски RAID
aacd для Adaptec® AdvancedRAID, mlxd и mlyd для Mylex®, amrd для AMI MegaRAID®, idad для Compaq Smart RAID,twed для 3ware® RAID.
Ну и глянем на это чудо:
22:29 root@backup1 /usr/home/yakuzzza# grep Adaptec /var/run/dmesg.bootaac0: mem 0xdc200000-0xdc3fffff irq 16 at device 0.0 on pci1aac0: Adaptec 5805, aac driver 2.1.9-1
3. Так вот. Вернемся к нашему dmesg:
22:29 root@backup1 /usr/home/yakuzzza# dmesg | grep aacd3aacd3: on aac0aacd3: 1904630MB (3900682240 sectors)aacd3: hard error cmd=read 3536013824-3536013951aacd3: hard error cmd=read 3761425023-3761425085aacd3: hard error cmd=read 3536013851-3536014021
Ну то есть нашли проблемы, которые scrub исправил. Дальше будем следить за этим диском. 
Ну и еще момент. Идем по ссылке лучших практик по ZFS: http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Находим кусок:
Run zpool scrub on a regular basis to identify data integrity problems. If you have consumer-quality drives, consider a weekly scrubbing schedule. If you have datacenter-quality drives, consider a monthly scrubbing schedule. You should also run a scrub prior to replacing devices or temporarily reducing a pool's redundancy to ensure that all devices are currently operational. 
Ну не SAS и не RAID Edition и не Enterprise SATA диски. Поэтому необходимо еще оставить работу для головы и наблюдательности: Когда запускать scrub по крону. Ведь активно переливаются бекапы и на выходных. Особенно делаются Full-бекапы систем. Это оставим на закуску в сегодняшнем выпуске.
Воистину RTFM.


Закуска.
Типа такого бекапа самой системы:

22:37 root@backup1 /usr/home/yakuzzza# grep dump /etc/crontab40      3       *       *       6       root    /root/scripts/dump.sh
22:37 root@backup1 /usr/home/yakuzzza# cat /root/scripts/dump.sh#!/bin/sh
data=`date '+20%y-%m-%d %H:%M'`backup="/storage/fs0/BACKUP_UNIX/BACKUP1/dump"root="/dev/ad10s1a"usr="/dev/ad10s1f"var="/dev/ad10s1d"
echo "$data NO Dumping SRC,ports,jails,obj,squid" >> $backup/$1-$2-$3-backup1.logchflags -R nodump /usr/srcchflags -R nodump /usr/portschflags -R nodump /usr/objchflags -R nodump /usr/local/squid
echo "$data Dumping $root - ROOT to $backup" >> $backup/backup1.logdump -0Lauf - $root  > $backup/dump_ad10s1a_root.imgecho "$data Dumping $usr - USR to $backup" >> $backup/backup1.logdump -0Lauf - $usr > $backup/dump_ad10s1f_usr.imgecho "$data Dumping $var - VAR to $backup" >> $backup/backup1.logdump -0Lauf - $var > $backup/dump_ad10s1d_var.imgecho "$data End dumping BACKUP1 server."

Скрипту много лет, рисовали еще вместе с Николаем.

Удачи.
Плюсуем в G+ и жду вопросов как всегда по почте a.yakimenko@gmail.com.

PS: Научите в блоге правильно выделять листинги и команды. Заранее благодарен.

17 марта 2012 г.

Еще один проект NAS на ZFS.

Абердин хранилища и конфигураторы.

Сколько серверов у Гугла?

http://devstack.org/

Аж руки чешутся.
http://devstack.org/

Новые блейды от HP.

А пока локомотив под названием "Все серверы в Hyper-V" на заводе набирает ход, следует обратить внимание на новые серверы от HP. Тем более, что предварительные расчеты модернизации делались на предыдущей модели BL460c.
http://bladesmadesimple.com/2012/03/hp-announces-proliant-bl460c-gen-8-blade-server-2/

PS: Отличный блог по блейдам, виртуализации.

Модель хранения сообщений в Exchange и проблемы на заводе с рассылкой почты.

На заводе существует Информационный дайджест. Это "Ленинская правда" завода, который рассказывает о последних новостях и достижениях в заводе. С этим дайджестом существует одна проблема. Письмо написал Игорь Голик. Диана - работник информационного отдела завода, отвечающая за дайджест.
Диана, добрый день!
Есть предложение насчет рассылки дайджеста. Вопрос в том, что на данный момент в ПАО насчитывается более XXX почтовых ящикови их количество постоянно растет. Мы испытываем серьезные проблемы со свободнымместом на сервере электронной почты. Объем каждого письма с  дайджестом занимаетоколо 1Мб (учитывая размер прикрепляемого файла около 650 Кб), умножая на XXX электронных ящиков получаем серьезный объем.Предлагаю данный дайджест размещать на веб-сервере (www.frunze.com.ua или www.frunze.com.ua/social), а почтовой рассылкой отправлять только ссылку на свежий дайджест. Этим мы значительно уменьшим нагрузку на сервер электронной почты. Дополнительный плюс от такого решения – доступ к данным серверам есть у всех пользователей,а электронная почта далеко не у всех. Надеюсь на понимание и сотрудничество с Вашей стороны!
Захотелось разобраться с ситуацией, ведь с одной стороны ясно помню, что в Exchange 2003, который у нас был довольно длительное время, была технология хранения единственной копии.

И вот ответ из блога разработчиков Exchange, ответ, который раз и навсегда дает ответ на то, какой объем займет XXX одинаковых писем в Exchange 2010.


Респект Игорю и он был прав - новая схема хранения Exchange 2010 не умеет хранить единственную копию.

PS: Дискуссия на форуме по этому поводу. Тоже интересно: http://social.technet.microsoft.com/Forums/ru-RU/ocses2007ru/thread/95eb8fc1-114a-4b4a-819d-9046ce9debca/

Много тестов не бывает.

http://www.principledtechnologies.com/default.htm  - отличный ресурс как по мне.
Прошу обратить внимание на инструкции по установке ПО, которое тестируется в каждой инструкции. Образец краткости.

Deadmau5 FT. Kaskade - I Remember

Jungle Fiction - Transhuman (F.O.O.L. Remix)

12 марта 2012 г.

Abills и разные пулы IP-адресов для клиентов.

Задача.
Необходимо разделить пользователей PPTP VPN на тех, кто выходит в Интернет с использованием NAT и кто не пользуется NAT-ом. Очевидно их надо разбросать по разным подсетям и одну сеть натить, а другую - нет.
В Abills для этого можно использовать IP Pool. Для этого читаем внимательно http://abills.net.ua/wiki/doku.php/abills:docs:modules:dv:ru и находим параметр IP Pool.
Внимание! Для контроля IP-адресов необходимо создавать эти пулы и на сервере доступа (NAS). Так советует Abills. Но врет. Убиваю пулы на Cisco и адреса спокойно выдаются. Завожу пулы на Cisco, отслеживаю использование пула и ничего не показывает - статистики по использованию пула нет. Так что создание пулов на Cisco можно смело пропустить.
В качестве NAS у нас ;) используется Cisco 2821. Создаем пулы IP-адресов:
ena
conf t 
ip local pool NAT-VPN-Pool 192.168.250.1 192.168.250.251 
ip local pool NONAT-VPN-Pool 192.168.251.1 192.168.251.251
exit
wr mem
Далее в Abills идем в Система -> Сервер доступа -> IP POOLs и создаем пулы:


Переходим в Система -> Интернет -> Тарифные планы и привязываем наш пул к тарифному плану:

После применяем к пользователю тарифный план и все должно работать. Для этого переходим Клиенты -> Логины -> Информация -> Сервисы -> Internet -> Тарифные планы

Важная вещь. Например, у нас есть 3 тарифных плана 1Mbit, 3Mbit, 5Mbit. Названия говорят сами за себя. Я не придумал ничего, кроме того, чтобы пользователю применять тарифный план. Но если так, то необходимо привязать пул к тарифному плану. Для этого на 1 скорость я создаю 2 тарифных плана: 1Mbit-NAT и 1Mbit-NONAT. Названия говорят сами за себя и соответствуют нашим пулам. Несколько громоздко, но работает. И еще, Тарифные планы легко делят между собой один и тот же пул адресов.

UPD1: Все было бы хорошо, если бы не было так печально.
Вылезла одна проблема при переводе на пулы. Раньше пользователю VPN вбивался статический IP и это было нехорошо. Решили ж сразу если и приводить все в божеский вид то и адреса раздавать из пулов автоматически. Хочешь повесить разные ACL - делай пул и вешай ACL на него. И тут случилось горе. Интернет стал работать нестабильно. Причина как оказалась банальная.
Когда в Abills-е меняешь статику на динамику то по логике надо просто в свойствах пользователя затереть статический IP-адрес, что и было успешно сделано с несколькими пользователями. Проверив работоспособность такой схемы, настройки были завершены..., а с утра мы получили нестабильно работающий Интернет.
В чем была причина? Осмотр показал нормальную работу биллинга, настроек VPN-соединения, вроде маршрутизатор работал в штатном режиме. Далее причина оказалась простая: Если чистишь статический IP, как было написано выше, то ЭТОНЕПРАВИЛЬНО! После того как очищается IP и нажата кнопка "Изменить", Abills решает вбить в пустые поля значения 0.0.0.0 0.0.0.0 для адреса и маски. Выглядит это примерно так:
Это приводило к тому, что в таблице маршрутизации появлялись все новые маршруты в 0.0.0.0, указывающие на IP-адрес выданного VPN-клиенту. Маршруты были с кодом U (U - per-user static route) и появлялись при новом подключении каждого неправильно переведенного пользователя на динамический адрес.
Внимание! Если вы переводите на динамику со статики в Abills то делайте это правильно. Для динамики прописывайте адрес 0.0.0.0, а маску 255.255.255.255. И будет счастье.
Конечно, после это так и было сделано. И все начало нормально работать.
Век живи - век наступай на грабли.

Вописанном случае приходилось сбрасывать сессии, которые "подвисли" на маршрутизаторе и не были видны из интерфейса биллинга. Небольшой пример как с этим бороться.

Как сбросить сессию не с биллинга, а непосредственно с Cisco-роутера.
Смотрим идентификатор туннеля (TunID), который хотим сбросить:
И убиваем его, сразу же проверяя жив ли он:
Все, туннеля с TunID 130 больше нет на нашем маршрутизаторе.

PS: Есть предложения и замечания? Сообщайте.