пятница, 3 февраля 2012 г.

LACP (агрегирование каналов) между cisco ios and cisco catos

Агрегирование каналов (агрегация каналов, англ. link aggregation) — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено между двумя коммутаторами, коммутатором и маршрутизатором, между коммутатором и хостом.


Cisco ios (конфигурация)



interface GigabitEthernet2/0/1
 description EC #1
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface GigabitEthernet2/0/2
 description EC #2
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
 channel-group 1 mode active
end
interface Port-channel1
 description EC
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1,201,256,649,650,2501
 switchport mode trunk
end

Cisco ios (диагностика)



show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi2/0/1(P)  Gi2/0/2(P)

show etherchannel port (можно посмотреть приоритет порта)
show etherchannel port-channel 
show etherchannel detail (информация аналогична предыдущей)


show etherchannel protocol 
                Channel-group listing: 
                ----------------------


Group: 1 
----------
Protocol:  LACP


sh lacp counters 
             LACPDUs         Marker      Marker Response    LACPDUs
Port       Sent   Recv     Sent   Recv     Sent   Recv      Pkts Err
---------------------------------------------------------------------
Channel group: 1
Gi2/0/1     2621   2383     0      0        0      0         0     
Gi2/0/2     2501   2273     0      0        0      0         0     


sh lacp internal 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1
                            LACP port     Admin     Oper    Port     Port
Port      Flags   State     Priority      Key       Key     Number   State
Gi2/0/1   SA      bndl      32768         0x1       0x1     0x35     0x3D  
Gi2/0/2   SA      bndl      32768         0x1       0x1     0x36     0x3D  


sh lacp neighbor 
Flags:  S - Device is requesting Slow LACPDUs 
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode     


Channel group 1 neighbors


Partner's information:


                  LACP port                        Oper    Port     Port
Port      Flags   Priority  Dev ID         Age     Key     Number   State
Gi2/0/1   SA      50        000a.b83c.ebc0   1s    0x642   0x71     0x3D  
Gi2/0/2   SA      50        000a.b83c.ebc0   5s    0x642   0x72     0x3D  


sh lacp sys-id 
32768,0012.d97e.8280

Cisco catos (конфигурация)



set channelprotocol lacp 2
set port lacp-channel 2/49-50 100
set trunk 2/49 on dot1q 1-1005,1025-4094
set trunk 2/50 on dot1q 1-1005,1025-4094
set port lacp-channel 2/49-50 mode active
set port lacp-channel 2/49 port-priority 50
set port lacp-channel 2/50 port-priority 50


Cisco catos (диагностика)



show lacp-channel sys-id 
System Mac: 00-0a-b8-3c-eb-c0
System priority: 32768

show lacp-channel statistics 
Port  Channel LACP Pkts   LACP Pkts Marker Pkts Marker Pkts LACP Pkts
      id      Transmitted Received  Transmitted Rewceived   InError
----- ------- ----------- --------- ----------- ----------- ---------
 2/49     441        2402      2636           0           0         0
 2/50     441        2292      2518           0           0         0


show lacp-channel traffic    
ChanId Port  Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
------ ----- ------- ------- ------- ------- ------- -------
   441  2/49  99.99%   4.35%  65.04%  96.46%  65.89% 100.00%
   441  2/50   0.01%  95.65%  34.96%   3.54%  34.11%   0.00%

и даже такое (на обоих портах картина одинакова)

show spantree 2/49
Edge Port:          No, (Configured) Default
Link Type:         P2P, (Configured) Auto
Port Guard:    Default
Port                     Vlan State         Role Cost      Prio Type
------------------------ ---- ------------- ---- --------- ---- -----------------
2/49-50                  1    forwarding    ROOT         3   32 P2P, PEER(STP)
2/49-50                  201  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  256  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  649  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  650  forwarding    DESG         3   32 P2P, PEER(STP)
2/49-50                  2501 forwarding    DESG         3   32 P2P


(источник http://xgu.ru/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2)


Особенности



sh mac-address-table interface Gi2/0/1
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

как видим маков на порту нет, зато они есть на Port-channel1 интерфейсе

sh mac-address-table interface Po1    
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000a.b83c.ebce    DYNAMIC     Po1
   1    000a.b83c.ebff    DYNAMIC     Po1
 201    000a.b83c.ebce    DYNAMIC     Po1
 201    649e.f335.465a    DYNAMIC     Po1
 649    000a.b83c.ebce    DYNAMIC     Po1
 650    000a.b83c.ebce    DYNAMIC     Po1
 650    649e.f354.8901    DYNAMIC     Po1
2501    000a.b83c.ebce    DYNAMIC     Po1
2501    649e.f354.8901    DYNAMIC     Po1
 206    000a.b83c.ebce    DYNAMIC     Po1
 209    000a.b83c.ebce    DYNAMIC     Po1
 209    3085.a96b.5690    DYNAMIC     Po1
Total Mac Addresses for this criterion: 12 

четверг, 26 января 2012 г.

Как прочитать код ошибки в windows

Во время настройки одного из заданий для планировщика, в момент сохранения, появилась ошибка. Ошибка имела следующий код 2147944309. Абсолютно не информативно.
Предлагаю хинт – после трех манипуляций без всякого гугла ошибка станет чуть более понятной. Потребуется два инструмента: калькулятор в режиме «Программист» и утилита командной строки. Скармливаем калькулятору номер ошибки и переводим его в шестнадцатеричную систему (настоящие гуру могут не запускать калькулятор, а проделать операцию в уме  ). Получили 80070775. Первый четыре цифры указывают на тип ошибки. Вторые четыре на номер ошибки. Нас интересует номер 0775. Не забываем, что это шестнадцатеричная система. При помощи калькулятора переводим в десятичную:

0775(HEX)=1909(DEC)

Теперь нам понадобится командная строка.

Ввожу:

net helpmsg 1909.
Получаю ответ:

Учётная запись пользователя заблокирована и не может быть использована для входа в сеть

Безликий код стал более читаемой ошибкой.

источник http://it-blojek.ru/?p=464

Linux оценка производительности и загрузки

1). sar | less

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

00:00:03          CPU     %user     %nice   %system   %iowait    %steal     %idle
11:10:01          all      5,07      0,00      2,52      0,32      0,00     92,09
11:20:01          all     13,05      0,00      2,91      0,60      0,00     83,44
11:30:01          all      7,39      0,00      2,81      0,49      0,00     89,31
11:40:01          all      8,81      0,00      2,86      0,83      0,00     87,50

2). iostat -m 

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3,84    0,04    2,23    1,09    0,00   92,80

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
cciss/c0d0       26,81         0,04         0,26     275736    1926453
cciss/c0d0p1     26,79         0,04         0,26     273628    1924436
cciss/c0d0p2      0,02         0,00         0,00       2107       2016

-m - показывает информацию в мегабайтах

3). mpstat -P ALL 2 5

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

12:03:04     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
12:03:06     all    1,75    0,00    2,25    0,25    0,00    0,00    0,00   95,76   1279,00
12:03:06       0    1,50    0,00    2,00    0,00    0,00    0,00    0,00   96,50   1000,50
12:03:06       1    2,50    0,00    4,00    0,00    0,00    0,00    0,00   93,50      0,00
12:03:06       2    1,01    0,00    1,52    0,00    0,00    0,00    0,00   97,47    244,50
12:03:06       3    1,49    0,00    1,49    1,00    0,00    0,00    0,00   96,02     34,00

-------------------------------(еще 4 отчета)---------------------------------------

Среднее:  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
Среднее:  all    6,72    0,00    2,85    0,27    0,02    0,05    0,00   90,08   1308,10
Среднее:    0    4,70    0,00    2,60    0,00    0,00    0,00    0,00   92,70   1000,70
Среднее:    1    6,99    0,00    4,10    0,00    0,00    0,00    0,00   88,91      0,00
Среднее:    2    3,20    0,00    1,90    0,80    0,00    0,20    0,00   93,89    263,30
Среднее:    3   11,98    0,00    2,79    0,30    0,10    0,00    0,00   84,83     44,10

 mpstat -P ALL 2 5 - показывает 5 отчетов статистики для всех процессоров с 2 секундным интервалов

4). dstat

смотрим только винчестер
dstat -d
-dsk/total-
 read  writ
  77k  540k
   0    24k

Смотрим кто лучше грузит процессор, веник, латенцию
dstat -c --top-cpu -d --top-bio --top-latency
----total-cpu-usage---- -most-expensive- -dsk/total- ----most-expensive---- --highest-total--
usr sys idl wai hiq siq|  cpu process   | read  writ|  block i/o process   | latency process 
  4   2  93   1   0   0|qrunner      0.5|  77k  540k|crond       287k  180k|khelper       153
  3   3  94   0   0   0|asterrc      0.2|   0     0 |havp          0   224k|ksoftirqd/3    14
 11   4  85   0   0   0|imapd        7.2|   0     0 |rmngr         0    32k|ksoftirqd/3    58
 10   5  84   0   0   1|rphost       6.2|   0  3224k|kjournald     0  1236k|ksoftirqd/1    51
 12   4  82   0   0   1|rphost       8.5|   0     0 |rmngr         0    96k|ksoftirqd/1    29
  6   3  91   0   0   0|rphost       1.8|   0     0 |postgres: l   0    16k|ksoftirqd/1    39

также можно и так
dstat --top-cpu-adv --top-latency --top-mem


Смотрим какой процесс лучше нагружает винчестер
dstat --top-bio
----most-expensive----
  block i/o process
crond       287k  180k
postgres: w   0    80k
kjournald     0  1128k
MailScanner   0    84k
MailScanner  28k 1552k
(squid)       0    12k
clamd         0  8192B


Проверка скорости винчестеров можно сделать используя команду
#sar -d 5 0
если у в поле %util значение > 70% хотя бы для одного винчестера, то он тормозит операции ввода-вывода и является причиной большой загрузки. Хотя система пока может и работать нормально

также полезна утилита htop которая показывает загрузку каждого ядра и какие процессы грузят ядра больше всего, как и утилита ntop, в которой можно посмотреть в реальном времени загрузку процессора, сети, дисков и другие вещи.

http://dag.wieers.com/home-made/dstat/ - здесь можно почитать

P.S. есть также неплохие утилиты htop, iotop

среда, 28 декабря 2011 г.

Systemd

просмотр статуса старта служб#systemctlтам же можно посмотреть какие неудачно стартанули и пофикстить проблемы, например из неудачно стартанувших
systemd-...-setup.service loaded ESC[1;31mfailed failed   ESC[0m     Recreate Volatile Files and Directories
Юниты, завершенные с ошибкой:
systemctl --failed
статус юнита
systemctl status fail2ban
статус всех юнитов (просмотр всех служб (стартуют автоматом или нет) )
systemctl list-unit-files 

если конкретную
systemctl list-unit-files | grep iptables
iptables.service                        enabled

Для сервисов можна использовать
systemstl start {stop,restart,enable,disable,kill(убить)} fail2ban
Например для включения и выключения службы
systemctl disable iptables
rm '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        disabled
systemctl enable iptables
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        enabled
Переход между уровнями
systemstl isolate renlevel3.target
systemstl isolate renlevel5.target
просмотр процессов
ps xawf -eo pid,user,cgroup,args
PID USER     CGROUP                              COMMAND
 9611 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |               \_ su -
 9615 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |                   \_ -bash
 9239 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 9377 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |   \_ ssh ns
 9308 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 6962 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ thunar
 6964 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ conky
 6965 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ /opt/google/chrome/chrome
колоночка CGROUP как видим показывает имя контрольной группы , которое systemd присваивает каждому процессу
можно упростить себе работу назначив алиас на данну команду
alias psc='ps xawf -eo pid,user,cgroup,args' 
ту же инфу можно получить командой
#systemd-cgls
как видно например
 ├ auditd.service
  │ └ 1526 auditd
служба auditd.service порождает процесс 1526 auditd
Service-файлы для служб находятся в
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
(аналог /etc/rc.d/init.d)
systemctl daemon-reload - при изменении конфигурации systemd нужно выполнить
systemctl is-enabled foo.service; echo $?
0 - включен, 1 - выключен
ls -la /lib/systemd/system/*.wants/systemd-update-utmp-runlevel.service
по уровнях (аналог chkconfig foobar –list)
Изменение уровня запуска (3 без Х, 5 - с Х)
rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
(3 runlevel по умолчанию)
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(5 runlevel по умолчанию)
inittab не используется !
просмотреть текущий уровень запуска
systemctl list-units --type=target
как правильно убить службу
systemctl kill crond.service
systemctl kill -s SIGKILL crond.service (если дела плохи)
После ввода этой команды, служба cron будет жестоко убита вместе со всеми ее дочерними процессами, вне зависимости от того, сколько раз она форкалась, и как бы она ни пыталась сбежать из-под нашего контроля при помощи двойного форка или форкбомбардировки. В некоторый случах возникает необходимость отправить сигнал именно основному процессу службы. Например, используя SIGHUP, мы можем заставить демона перечитать файлы конфигурации. Разумеется, передавать HUP вспомогательным процессам в этом случае совершенно необязательно. Для решения подобной задачи неплохо подойдет и классический метод с pid-файлом, однако у systemd и на этот случай есть простое решение, избавляющее вас от необходимости искать нужный файл:
systemctl kill -s HUP --kill-who=main crond.service
После прочтения сказанного выше у вас может возникнуть вопрос: в чем разница между systemctl kill и systemctl stop? Отличие состоит в том, что kill просто
отправляет сигнал заданному процессу, в то время как stop действует по «официально» определенному методу, вызывая команду, определенную в параметре ExecStop
конфигурации службы. Обычно команды stop бывает вполне достаточно для остановки
службы, и к kill приходится прибегать только в крайних случаях, например, когда
служба «зависла» и не реагирует на команды.
Теперь systemd отвечает и за имя хоста, локаль, настройками клавиатуры и т.д.
Имя хоста:
hostnamestl set-hostname my_hostname
Локаль:
localectl set-locale LANG="ru_UA.UTF-8"
Клавиатура (как в иксах так и в локали)
localectl set-keymap ru
Часовой пояс:
timedatectl set-timezone Europe/Kiev
Автомонтирование любого несистемного раздела (в fstab) опцией:
/dev/sda7 /home ext4 noauto,x-systemd.automount 0 1
то есть раздел будет монтирован когда он понадобится (поскольку работает отложенное монтирование)
для LVM разделов есть сервис
systemctl enable lvm 
systemctl enable lvm-on-crypt 
Настройка питания (демон logind) можно сделать без acpid, pm-utils.
Пример - спящий режим после нажатия кнопки "Power"
HandlePowerKey=suspend (/etc/systemd/logind.conf)
параметры ignore,poweroff,reboot,halt(выключить),suspend(спящий режим),hibernate(глубокий сон),kexec(загрузка другого ядра). События HandleSuspendKey (кнопка спящего режима, по умолчанию suspend), HandleHibernateKey (кнопка "Глубокий сон", по умолчанию hibernate), HandleLidSwitch (закрытие крышки ноутбука, по умолчанию suspend).
Для запуска команд ухода в сон / пробуждения (закрытие видео проигрывателя, выгрузка несовместимых с режим сна прог и т.д.) используются скрипты из каталога /usr/lib/systemd/system-sleep/ - название неважно, но должны иметь 2 агрумента pre или post (сигнализирют засыпаем или пробуждаемся) и suspend или hibernate (режим сна). Пример шаблона
#!/bin/bash
case $1/$2 in
    pre/*)
        #commands
    ;;
    post/*)
        #commands
    ;;
esac
Если скриптов несколько их запуск будет одноименным.. Завершать работу системы и перевод ее в разные режимы
systemctl reboot {poweroff,halt,suspend,hibernate}
Набор команд при загрузке.2 способами. 1 - нужна запись, чтение, удаление файлов. Используется юнит tmpfiles (выполняется при старте системы и действует на основе конфигов /etc/tmpfiles.d/).
Пример - выполнить при загрузке команду "echo USBE > /proc/acpi/wakeup" отключающую пробуждение пк при подключение usb устройства, создаем файл /etc/tmpfiles.d/disable-usb-wake.conf
w /proc/acpi/wakeup - - - - USBE
если требуется запуск команд - создаем новый юнит типа сервис
vim /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local compatibility
[Service]
Type=oneshot
ExecStart=команда или путь к скрипту
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
последняя строка говорит что он должен запускаться на уровне запуска 3 (multi-user.target), поэтому включать сервис на автозапуск не нужно.
Чтение журналов
journalctl
вывод логов команды
journalctl /usr/lib/systemd/systemd
устройства
journalctl /dev/sda
юнита
journalctl -u fail2ban
удобно для дебага скриптов сна/пробуждения
journalctl -u systemd-suspend
аналог tail -f /var/log/messages
journalctl -f

(источник http://wiki.rosalab.ru/index.php/Systemd, Исполин, каких немного (Краткий экскурс в теорию и практику systemd) (Хакер, 01/168/2013 — 108))

воскресенье, 18 декабря 2011 г.

Ремонт ПК (ИБП) особенности

1). Паять электролиты на метиринке паяльником паяльной станции наргертым до ~220-240 C. Конденсаторы лучше использовать с рабочей температурой 105 С, в крайнем случае 85 С, но не ниже.
2). ИБП
а). блок не запускается, транзисторы целые, микросхемы работают нормально.
- обрыв резистора 100 кОм в цепи базы одного из транзисторов
б). блок не запускается после замены транзисторов (высоковольтных)
- необходимо уменьшить сопротивление резистора в цепи базы с 100 до 75 кОм
в). БП на UC3842 не запускается, напряжение и сигналы норма. Генерация на задающем генераторе норма, обратные связи по току и напряжению заблокированы, на выводе питания нормальные скачки 17-9 В. Нет импульсов на выходе, замена микросхемы ничего не дала, резисторы в норме. Пила на выходе задающего генератора ниже на 0,2 В.
- неисправные кандер на 2700 пФ в задающей RC цепи
г). не запускает АТХ БП при нажатии на питание слышен кратковременный свист, на выходе 5В напряжение поднимается до 0,4 В и БП отключается. Stand By около 5 В.
- неисправные выпрямитель на выходе 12 В FEP16CT (пробой), можно заменить диодами КД213А или аналогичным.
д). JNC 400W
- высыхает кондер 22х50 возле радиатора силовых транзисторов и дежурного режима, по причине нагрева радиатора в дежурном режиме.
- вследствии высыхания предыдущего товарища может взорватся кандер 47х25 возле 5 В стабилизатора, также могут сгореть резисторы в обвьязке TL494.
э). SUNTEK PW-400ATXE постоянно влючен - не отключается (PS-ON имеет низки уровень)
- неисправные керамический кандер С29 (0,01 мкФ, желтый около IC7) - заменяем любым керамисечким 0,01-0,068 мкФ.
3). Западает кнопка питания
- протирка 10% раствором уксуса
источник (Практика ремонт, Маленькие хитрости (Андрей Кашкаров) - Железо 12/2011)

cisco storm контроль

Если вдруг на порте проблемы, для примера
5 minute input rate 103964000 bits/sec, 170339 packets/sec
5 minute output rate 13149000 bits/sec, 2626 packets/sec
  0 watchdog, 230622429 multicast, 2 pause input
то нужно порт зашейпить по мультикастам, броадкастам и юникастам
storm-control broadcast level bps 2m
storm-control multicast level bps 2m
storm-control unicast level bps 5m

суббота, 3 декабря 2011 г.

vps, vds - разница + и -

1). OPENVZ + WEBVZ (веб интерфейс для управления виртуальными машинами). Шаблоны операционок на официальном сайте.
2). HyperVM (lxcenter.org) веб интерфейс управления поддерживает OpenVZ и Xen.
3). linux-vserver + webpanel http://www.openvcp.org/
Краткая справка
Для создания VDS используются XEN, VirtualBox, VMWare и т.д..
Для создания  VPS для linux используется linux-vserver и openvz (также для других операционок).
+ VDS: не имеет значения ос внутри виртуалки, линук может использовать разные версии ядер для виртуальных систем.
- VDS: Большие потери проиводительности на операции IO (INPUT/OUTPUT), большее испльзование процессора и памяти сервисами, которые дублируют запущенные на серверной ос.
+ VPS: очень маленькая потеря приозводительности, только на изоляцию, запускаются только сервисы которые нужны.
- VPS: может использован только линукс и ядро только одной версии для всех систем в т.ч. серверной (серверной означает - той, на которой реализована виртуализация).