среда, 31 августа 2011 г.

Solaris 11: Сук пилю

Когда я появляюсь в офисе мне становится грустно, все работают, а у меня нет рабочего мета. Может быть потому что я не сотрудник? Дома меня такие мысли не посещают, поэтому все наследие серваков, которое накопилось за годы беспорядочных товарно-денежных отношений, хорошо настраивать удаленно. Вот я и думаю как мне безболезненно поменять адрес сервака удаленно.
План такой:
0) Физически все подключено по одному проводу. На одном проводе может висеть несколько виртуальных интерфейсов. Всего один транк на интерфейсе e1000g0 и один виртуальный интерфейс vnic1
1) Создать виртуальный интерфейс vnic2 с новым IP адресом
# dladm create-vnic -v 2 -l e1000g0 vnic2
# ipadm create-addr -T static -a 192.168.0.3/24 vnic2/v4
2) Залогиниться нановый адрес.
# ssh 192.168.0.3 -l user
3) Выключить старый интерфейс
# ipadm delete-if vnic1
# dladm delete-vnic vnic1
Проверено, мин нет. 

Solaris 11: Новый сервак? Измерим скорость

В очередной раз устанавливаю сервак на ОС Solaris.

Сначала надо диски установить поставил два Western Digital 500G RE4. Диски выбирали по принципу "ну производитель же врать не будет". Выбирали быстрые и надежные из доступных дешевых. Установили две штуки. Система ставится на один диск. Потом надо подключить в зеркало второй диск.

В Solaris ужасные утилиты форматирования, не красивые, уродливые. Я ими боюсь пользоваться. Есть утилита format -> fdisk. Ее используем для первоначального форматирования носителя на 100%. Другого способа разбивать носитель я не знаю, иначе у меня начинают спрашивать геометрию носителя, откуда мне знать. А так утилита сама находит.

Второй шаг: сделать копию формата уже работающего носителя:
# prtvtoc /dev/rdsk/c8t0d0s0 | fmthard -s - /dev/rdsk/c8t1d0s0
Соединить носители в зеркало
# zpool attach rpool c8t0d0s0 c8t1d0s0
И дождаться пока они замирорятся
# zpool status
Потом скопировать загрузчик на второй диск чтобы они были равноправными по загрузке
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c8t1d0s0
Всего делов!
Измеряю скорость, интересно же (Oracle запрещает публиковать тесты). Для этого устанавливаю утилиту bonnie++
# pkg install bonnieplus
# bonnie++ -u user
Маюсь в ожидании результата: Первая попытка убила сервак :( Не могу на него залогиниться. Жаль, хороший был сервак, подавал надежды.

Вторая попытка:
Перезапустил тест.
Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
solun        15832M 121148 87 119278  9 69987  11 149201 97 189496 11 851.4   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++


Результат: 120 Мбайт/сек на запись и до 190Мбайт/сек на чтение. Всякие выкрутасы теста по случайному доступу и многократному доступу файловая система ZFS игнорирует и дисковыми операциями не злоупотребляет.

суббота, 27 августа 2011 г.

VoIP: Планы нумерации

Поизучал стандарты ITU-T Rec. E.164 и его приложения. Общая длина номера с кодом страны не должна превышать 15 цифр.
Составил план нумерации:
Россия:  +7
XXX XXXX - семизначные - городские номера
8 [3489]XX XXX XXXX - российские коды 10 цифр, префикс 8- используется для выхода на межгород. Префикс (4XX) - Европейский регион, (3XX) - Сибирский и дальневосточный регион, (8ХХ) - Северо-западный регион. (9XX) - коды негеоргафические, все коды кроме (954) закреплены за мобильными номерами.

Германия: +49
префиксы выхода на межгород 0-. префикс выхода на международные линии 00-. Длина номера может быть от 6 до 13 цифр
Мобильные номера начинаются с кодов (15) (16) (17)

Великобритания: +44
префиксы 0- и 00-, длина номера от 7 до 10 цифр
Мобильные номера начинаются с кодов: 71 – 75, 77 – 79

США: +1
префикс выхода на межгород 1-, префикс выхода на международные линии 011-. Длина номера 10 цифр. Мобильные номера не выделяются.

В аппаратах Cisco Small Business SPA50X от рождения прописан такой план нумерации:
(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
*xx - это управляющие коды
[3469]11 - это службы спасения
[2-9]xxxxxx - локальные гордские номера
1xxx[2-9]xxxxxxS0 - межгород
xxxxxxxxxxxx. - остальной мир

Для России план нумерации телефона Cisco будет выглядеть так:
(*xx|xxxx|0x|[0-79]xxxxxx|8[3489]xxxxxxxxx|810xxxx.)
управляющие коды| локальные номера (у нас в примере 4 цифры) | службы спасения| гордские номера | межгород | международные вызовы.


см. ITU-T Rec. E.164 : The international public telecommunication numbering plan
см. Приложения к E.164

четверг, 25 августа 2011 г.

Резюме

Ищу работу!
Чего умею?
  • Умею быть преподавателем. Лет 5 отработал преподавателем электроники. Создал свой собственный курс по микросхемотехнике в Политехническом университете.
  • Могу управлять небольшим коллективом разработчиков.
  • Умею проектировать электронику: измерительную, цифровую и силовую. 
  • Умею писать встроенное программное обеспечение для ARM, 8051.
  • Умею производить спроектированную электронику. Умею организовать контрактное производство электроники штучное, мелко серийное и серийное.
  • Умею создавать сети для организаций, на 100-1000 рыл. Вообще-то умею создавать виртуальные транс-национальные корпорации не слезая со стула, вернее проектировать и настраивать аппаратуру и ПО для них. Умею в одиночку обслуживать 40 Кисок (CISCO) и десяток серверов. Хорошо знаком с GNU/Linux, FreeBSD, Oracle Solaris. Могу дописывать и исправлять код каждой из них, если понадобится.
  • Знаю толк в информационной безопасности. Могу настроить инфраструктуру организации, включая сервисы e-mail, web, vpn, ip телефонию и многое другое. 
  • Программировать люблю, на С. Умею проектировать все, что касается ядра операционной системы. Могу написать свою операционную систему с нуля. Так и сделал. Файловую систему для SSD. Люблю описывать сетевые протоколы, люблю писать интерпретаторы разных языков. Умею проектировать алгоритмы управления роботами. Умею расчитывать траектории движения без использования вещественных чисел с компенсацие ошибок округления. Умею писать реализации криптографических алгоритмов. Умею все это реализовать в аппаратуре программируеых матриц. Могу процессор спроектировать, правда не за один месяц.
  • Могу писать пркиладное программное обеспечение, имею богатый опыт разработки ПО для систем реального времени.
  • Могу эксперименты ставить по физике полупроводников, знаю толк в террагерцовой оптоэлектронике, правда лет 10 этим не занимался.
Почему-то не умею извлечь прибыль из этого, странно.
Скучаю, ищу работу...

среда, 24 августа 2011 г.

VoIP: Переход на IP телефонию

Занимаюсь настройкой маршрутизации вызовов VoIP телефонии между пятью станциями на базе Asterisk. Хочется уже перейти на какой-нибудь модный способ динамической маршрутизации.

Динамическая маршрутизация VoIP возможна, например, если использовать сервис DNS для сопоставления адреса сервера по номеру телефона. Есть сервис e164.arpa, который разрешается для некоторых стран европы. Сервис e164.arpa - платный - это все портит. Есть еще похожий бесплатный сервис e164.org. Но работающего решения я пока не видел. В Asterisk существует поддержка ENUM (на базе DNS) и DUNDi.

Найти адрес сервера - это еще пол-беды. Тут есть целый комплекс связанных с регистрацией проблем. Чтобы динамическая маршрутизация работала без проблем связанных с несанкционированным доступом надо уметь обмениваться паролями и сертификатами шифрования каналов.

Пока что вынужден вбивать шаблоны для распознавания статических маршрутов.

см. The international public telecommunication numbering plan ITU-T Rec. E.164 (07/2011)
см. ASSIGNED COUNTRY CODES ITU-T Rec. E.164 (07/2011)
см. Access codes/numbers for mobile networks (11/2010)
см. DIALLING PROCEDURES ITU-T (03/2010)
см. ENUM и DUNDi
см. Выписка из реестра Российской системы и плана нумерации(08/2011) 

понедельник, 22 августа 2011 г.

Solaris 11: Русские буквы в редакторе NANO

Подобные сообщения ради того чтобы в следующий раз не подбирать ключики для компиляции программы, которая мне понадобилась. Редактор Nano работает нормально и я к нему привык, но я не могу писать сообщения или исправлять тексты на русском языке. Часто в моих проектах встречаются русские буквы, я их пишу в комментариях к программам или в текстах HTML страниц и как правило в кодировке UTF-8.

В кодировке UTF-8 символы могут иметь длину 1 2 и более байт, а отображаются они как один символ. Так что глюк когда строка скачет от редактирования вправо-влево я расценил как неправильную обработку кодировки UTF-8. Это диагноз.

Что делать если нет русских букв в редакторе, а всякий раз когда я пытаюсь вносить изменения в редакторе портятся строки содержащие русские буквы. В таких случаях можно воспользоваться редактором gedit через X терминал. А тут я попался у меня под рукой только Windows 2000 и терминал Xming отказался устанавливаться на W2k, и мне было некуда деваться. Я решил скомпилировать новую версию Nano с поддержкой UTF-8.

# wget http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz
# tar xf nano-2.2.6.tar.gz
# cd nano-2.2.6
# ./configure --prefix=/usr --enable-utf8 --enable-nls --with-slang
# gmake
# gmake install
Я использую путь /usr так что новая версия будет установлена вместо старой. Для компиляции понадобилась библиотечка slang, но она уже была установлена в системе к моменту сборки.

Проба пера

Это моя записная книжка.