we are sorry, we are open

1.11.2011

Нетегированный VLAN в транковом порту свича Cisco

СисАдминство — Тэги: , — Админ @ 18:43:44.

В свич Cisco 3750 включен клиент, порт на свиче настроен в аксес-режиме, т.е. передаёт нетегированные пакеты. Возникла необходимость добавить клиенту ещё один VLAN, но при этом первый оставить нетегированным. Решается это при помощи «родных» VLAN-ов (native vlan), который и будет передаваться нетегированным при том, что порт будет в режиме транка. Вот простой пример, в котором VLAN 500 объявлен родным и передаётся нетегированным, а 100-й передаётся тегированным:
interface FastEthernet0/1
description Test
switchport trunk encapsulation dot1q
switchport trunk native vlan 500
switchport trunk allowed vlan 100,500
switchport mode trunk

Обратите внимание, что родной VLAN тоже надо указывать в списке разрешённых в транке.

При переключении порта в транк связь прерывается секунд на 5-10, но при этом клиенту для продолжения работы с нетегированными пакетами перенастраивать ничего не нужно (понятно, что для использования второго VLAN-а перенастройка необходима).

Посмотреть эти настройки можно командами «show int f0/1 switchport» и «show int f0/1 trunk». Кстати, в выводе первой команды можно увидеть строчку, в которой говорится, что на родном VLAN-е включено тегирование:
cs#sh int f0/1 switchport
...
Administrative Native VLAN tagging: enabled
...

Однако, работает всё нормально и в Интернете люди склонны считать, что это просто глюк и ссылаются на вывод другой команды:
cs#sh vlan dot1q tag native
dot1q native vlan tagging is disabled

Если на другой стороне тоже свич Cisco, то там также нужно указать родной влан, транк и т.п. Однако, если на той стороне будет стоять, например, компьютер с FreeBSD, то родной VLAN настраивается и работает как обычный, нетегированный линк, например:
ifconfig xl0 10.0.1.2 netmask 255.255.255.0
Ну и интерфейс для тегированного VLAN-а настраивается как обычно в таких случаях, например:
ifconfig vlan100 create vlan 100 vlandev xl0
ifconfig vlan100 192.168.1.2 netmask 255.255.255.0

Указание родного VLAN-а для создания подинтерфейса на роутере Cisco я не проверял, но вроде должно быть как-то так:
cs(config)# int f0/1.500
cs(config-subif)# encapsulation dot1q 500 native
cs(config-subif)# ip address 10.0.1.2 255.255.255.0

19.12.2010

И ещё один интересный замер MySQL-запроса — удаление строк

СисАдминство — Тэги: — Админ @ 12:35:09.

Таблица имеет почти 16 тысяч строк. Надо её почистить от старых записей:
mysql> delete from log where id < 188595088;
Query OK, 8798074 rows affected (33 min 35.91 sec)

При этом база была в работе и в таблицу данные поступали без видимых проблем.

9.12.2010

Ещё один замер работы с таблицами MySQL

СисАдминство — Тэги: — Админ @ 23:31:36.

Я уже как-то проводил оптимизацию нескольких MySQL-таблиц, для сведения замерял время и объёмы и размещал эти замеры здесь.

Похоже понадобилась оптимизация ещё одной таблицы — стал замечать медленный запрос,  которого раньше даже видно не было. Ничего особенно не менялось, чтобы вызвать какое-либо замедление выполнения запросов. Таблица на момент написания этой заметки содержала 1659783 записей, объём IBD-файла составлял почти 2 ГБ (2000683008 Б). Таблица содержит тексты личных сообщений пользователей форума, так что записи в ней часто удаляются и добавляются, так что оптимизация не помешает.

Команда «optimize table» выполнялась 5 минут 28 секунд и размер файла уменьшился до 1,4 ГБ (1488977920 Б).

Посмотрим, изменит ли это ситуацию с медленным запросом.

Попутно решил оттимизировать и несколько других таблиц.

2060421 строк, файл в 400МБ обработан за 1 минуту 54 секунда, размер файла стал 310 МБ.
434582 строк, файл в 330МБ обработан за 37 секунд, размер файла уменьшился мало — до 315 МБ.
Показателен файл таблицы с неким кэшем движка — 1588 строк, объём файла 1,9 ГБ — оптимизация длилась меньше 1 секунды и размер файла стал 10 МБ.



1.8.2010

Пара замеров работы с таблицами MySQL

СисАдминство — Тэги: — Админ @ 11:57:21.

Я не такой уж и большой специалист по MySQL, так что приведённые далее наблюдения прошу не считать показательными — это просто мои эксперименты на моём сервере и с моей БД )

Озаботился проблемой разрастания таблиц в БД. Надо их дефрагментировать. Таблицы в InnoDB. Провёл пару замеров с одной из самых больших таблицей под рукой — log:
— больше 3 миллионов записей;
— размер файла log.ibd — 3,5ГБ;

Для начала мне нужно было заменить значение одного из полей таблицы:
mysql> update log set tip='no data';
До замены в этом поле была довольно длинная строка с информацией user-agent, полученной от браузеров, посетителей, т.е. новая строка в несколько раз короче старой.
Результаты:
Query OK, 3033596 rows affected (57 min 56.91 sec)
Rows matched: 3239214 Changed: 3033596 Warnings: 0

Размер файла заметно увеличился — 4ГБ. Очевидно надо дефрагментировать таблицу (это был плавный переход к следующему тесту)))

Второй тест — оптимизация таблицы:
mysql> optimize table log;
Результаты:
mydb.log | optimize | note | Table does not support optimize, doing recreate + analyze instead
mydb.log | optimize | status | OK
2 rows in set (38 min 47.55 sec)

Размер файла существенно уменьшился — 2,7ГБ, а было ведь 4ГБ!
Напрашивается вывод о том, что оптимизацию надо проводить почаще, но тут надо учитывать, что во время оптимизации таблица будет заблокирована и недоступна для ваших скриптов.

Для полноты картины конечно не обойтись без информации о сервере — старенькая рабочая станция:
— софт — FreeBSD 7.2, apache 2, php, MySQL;
— Intel Pentium4 3.40GHz;
— RAM 3GB;
— система и БД лежат на двух разных винтах;
— сервер, фактически, выделенный;

Следующим будет оптимизация боевого, сильнонагруженного сервера, с кучей больших таблиц, общим размеров гигов под 10. Результаты сообщу дополнительно. Вот только надо выбрать время и заявить ТО на пару часов )

Дополнение от 03-08-2010

Добавление индекса к база размером более 4ГБ и с более 4 с половиной мульёна строк заняло 18 минут полного отказа СУБД от обслуживания:
mysql> alter table log add index (id_site);
Query OK, 4784444 rows affected (18 min 49.74 sec)
Records: 4784444 Duplicates: 0 Warnings: 0

27.10.2009

Постустановка Zend Optimizer

СисАдминство — Тэги: — Админ @ 20:47:52.

Каждый раз при установке Zend Optimizer почему-то возникает проблема с копированием нужных файлов инсталлятором из дистрибутива Zend Optimizer. Может я что-то не так делаю при установке, которая, к слову, заключается всего лишь в запуске инсталлятора и ответах на пару простых вопросов.
Вероятно проблема возникает из-за того, что я, чаще всего, ставлю PHP не как модуль Апача, а как CGI и, кроме того, зачастую ставлю несколько версий и вариантов PHP для нескольких версий MySQL )
(продолжение…)

13.5.2009

Простой пример с flowtools

СисАдминство — Тэги: , , — Админ @ 13:22:32.

Понадобилось собирать и обрабатывать netflow-статистику с циски на машине с FreeBSD. Задачи довольно простые — иметь возможность анализа сетевого трафика внутри корпоративной сети, например, с целью выявления адресов, генерирующих аномальный трафик, а также выявление других проблем, влияющих на пропускную способность каналов.
(продолжение…)

7.4.2009

Монтирование и работа с устройствами от имени пользователя

СисАдминство — Тэги: — Zed @ 13:54:18.

Как-то вдруг надоело монтировать флешку и работать с файлами на ней от имени рута.
Я использую sudo. Кроме того, я вхожу в группу wheel, на случай если надо сделать su.

Поменял переменную ядра:
~> sudo sysctl vfs.usermount=1

Прописал то же самое в /etc/sysctl.conf:
vfs.usermount=1

В файле /etc/rc.conf дописал:
devfs_system_ruleset="localrules"

Создал файл /etc/devfs.rules:
[localrules=10]
add path 'da*' mode 0660 group wheel

Таким образом поменял для всех устройств, начинающихся с «da», группу на wheel и дал права на чтение и запись для владельца и группы. По-умолчанию указана группа operator, в которую я не вхожу.

Посмотрел какие права на устройстве в данный момент:
~> ls -l /dev/da0*
crw-r----- 1 root operator 0, 138 Mar 31 16:15 /dev/da0
crw-r----- 1 root operator 0, 139 Mar 31 16:15 /dev/da0s1

Переконфигурировал устройства:
~> sudo /etc/rc.d/devfs restart

Убедился, что права и группа изменились в нужную сторону:
~> ls -l /dev/da0*
crw-rw---- 1 root wheel 0, 138 Mar 31 16:15 /dev/da0
crw-rw---- 1 root wheel 0, 139 Mar 31 16:15 /dev/da0s1

Теперь надо назначить себя владельцем точки монтирования:
~> sudo chown malik:wheel /mnt/flash
Ну или, если угодно, создать свою точку монтирования:
~> mkdir ~/flash

Кстати, для монтирования CD-ROM от имени пользователя достаточно чтобы точка монтирования принадлежала этому самому пользователю, т.к. писать на CD-ROM стандартным средствами системы мы не собираемся )

И, наконец, монтирую флешку:
~> mount_msdosfs /dev/da0s1 /mnt/flash

Всё нормально — флешка подмонтирована и можно нормально работать с файлам и папками от имени пользователя, не прибегаю к правам рута.

Замечание:
Монтирование флешки с указание локальной кодировки от имени обычного пользователя возможно только после хотя бы одного монтирования из-под суперпользователя:
~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
mount_msdosfs: cannot find or load "msdosfs_iconv" kernel module
mount_msdosfs: msdosfs_iconv: Operation not permitted
~> sudo mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
Password:
~> sudo umount /mnt/flash
~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash
~>

20.6.2008

Падения Squid-а под Линуксом

СисАдминство — Тэги: , — Zed @ 17:41:16.

Постоянно падал Squid на сервер под Линуксом, в логах только вот это:
Jun 20 17:18:18 mail squid[6690]: Squid Parent: child process 6711 exited due to signal 25

Как оказалось проблема была из-за какой-то ошибки файловой системы, fsck помог:
fsck /dev/sda4

За столько лет работы под ФриБСД ни разу с такой хренью не сталкивался )

5.12.2007

Смена забытого пароля пользователя root на Sun

СисАдминство — Тэги: — Zed @ 11:39:02.

Хотя с продукцией компании Sun периодически сталкивался восстанавливать забытый пароль пользователя root не доводилось, так же как и загружать систему в однопользовательском режиме.

Процедура простая, но требует наличия установочного диска.
(продолжение…)

19.8.2007

Опять флудят Дизель

СисАдминство — Тэги: — Админ @ 16:56:56.

Сегодня примерно в 18:00 опять начали флудить форум Дизель, вот график загрузки канала во внешний мир:
diesel_day_flood070819

Один раз измерил количество пакетов приходящих на адрес форума за минуту — получилось 29347.

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

← Назад в прошлое

Последние комментарии:

Powered by WordPress (36 queries. 1,009 seconds)