среда, 18 ноября 2009 г.

Настройка VNC в Solaris 10 - запуск с помощью SMF inetd

В последних выпусках Solaris 10 (начиная с 5/08 - U5) поставляется VNC сервер, а именно RealVNC. Есть даже для него SMF сервис:
# svcs -l svc:/application/x11/xvnc-inetd:default
fmri         svc:/application/x11/xvnc-inetd:default
name         X server that displays to VNC viewers
enabled      false
state        disabled
next_state   none
state_time   Tue Nov 17 15:27:39 2009
restarter    svc:/network/inetd:default

Попытаемся его включить:
# svcadm enable svc:/application/x11/xvnc-inetd:default

И не получается:
# svcs -l svc:/application/x11/xvnc-inetd:default
fmri         svc:/application/x11/xvnc-inetd:default
name         X server that displays to VNC viewers
enabled      true
state        maintenance
next_state   none
state_time   Wed Nov 18 16:39:38 2009
restarter    svc:/network/inetd:default

Сервис описан как запускаемый с помощью супердемона inetd:
# svcprop svc:/application/x11/xvnc-inetd:default
inetd/name astring vnc-server
inetd_start/exec astring /usr/X11/bin/Xvnc\ -inetd\ -query\ localhost\ -once\ securitytypes=none

Беда собственно в том что сервис по имени vnc-server не определён в сервисах:
/etc/services

Добавим:
# printf "vnc-server\t5900/tcp\n" >> /etc/services

Можно перезапустить сервис:
# svcadm clear svc:/application/x11/xvnc-inetd:default

И чудо:
# svcs -l svc:/application/x11/xvnc-inetd:default
fmri         svc:/application/x11/xvnc-inetd:default
name         X server that displays to VNC viewers
enabled      true
state        online
next_state   none
state_time   Wed Nov 18 18:06:29 2009
restarter    svc:/network/inetd:default

понедельник, 16 ноября 2009 г.

Разводка разьёма последовательного порта Sun StorageTek SL500

На контроллере ленточной библиотеки Sun StorageTek SL500 для последовательного порта используется разъём RJ-45 (гнездо).
На множестве оборудования использутся такой разъём для последовательного порта. В том числе и оборудовании Sun. Во всех серверах Sun (включая японские M-series) используется стандартная разводка предложенная Дэйвом Йостом ещё в 1987 году. Такой же раскладкой пользуется и Cisco.
Строго говоря есть различия в этих разводках: в варианте Йоста используется сигнал DCD для DCE устройств. Sun в своих документах описывает этот сигнал двойственно - DSR/DCD. Различия можно считать несущественными, а в случае DTE устройств их и вовсе нет.
Существует ещё разводка кабеля EIA/TIA 561. Sun StorageTek SL500 не использует и ёё.
Разводка кабеля для подключения к стандартному 9-контактному последовательному интерфейсу PC следующая:

DB-9 Female
Line Name
Direction
RJ-45 Male
1
DCD
In
Not connected
2
RxD
In
4
3
TxD
Out
6
4
DTR
Out
3,8
5
SG
-
5
6
DSR
In
2
7
RTS
Out
7
8
CTS
In
1
9
RI
In
Not connected

Разводка кабеля для подключения к гнезду RJ45 (консоль Cisco, серверы Sun, терминальные концентраторы APC и другие...):

RJ-45 Male
Line Name
Direction
RJ-45 Male
1
CTS
In
1
2
DSR
In
2
3
RxD
In
4
4
SG
-
5
5
SG
-
5
6
TxD
Out
6
7
DTR
Out
3,8
8
RTS
Out
7

Нумерация контактов разъёма DB9 на кабеле (гнездо):


Нумерация контактов разъёма RJ45 на кабеле (вилка):

Установка пароля управления и IP адреса массивов Sun StorageTek 6xxx

Собственно зачем нужен последовательный кабель для Sun StorageTek 6xxx?
С помощью такого кабеля можно установить (собственно сбросить) пароль для управления массивом через CAM (SYMbol password).
Описание процедуры и пароль для доступа есть на docs.sun.com в документе Sun StorageTek 6140 Array Hardware Installation Guide в 6 главе.
Краткое изложение:
  • Подключить кабель
  • Установить параметры терминальной программы: 38400, 8 bit, no parity, 1 stop bit, flow control - none, эмуляция терминала VT100. Как показывает опыт скорость можно установить и 9600, на следующем этапе происходит выбор скорости порта массивом.
  • В терминальной программе (или терминальном концентраторе) послать Break. В putty это можно сделать через контекстное меню, выбрав Special Command -> Break.
  • В ответ на приглашение:
    Set baud rate: press  within 5 seconds
    Нажать кнопочку ПРОБЕЛ
  • В ответ на приглашение:
    Press within 5 seconds: <B> for Service Interface, <BREAK> for baud rate 
    Нажать кнопочку S
  • В ответ на приглашение:
    Enter Password to access Service Interface (60 sec timeout):
    Ввести пароль kra16wen
  • Далее следовать в соответствии задачами (установить IP, сменить пароль):
    Service Interface Main Menu
    ==============================
    1) Display IP Configuration
    2) Change IP Configuration
    3) Reset Storage Array (SYMbol) Password
    Q) Quit Menu
    Enter Selection: 

    Следует учесть, что возможна установка различных IP для двух портов на каждом из контроллеров (всего 4 IP адреса). Это может быть полезно при использовании двух управляющих сетей с разными IP подсетями.

    Select Ethernet Port
    ==============================
    1) Ethernet Port: 1
    2) Ethernet Port: 2
    Q) Quit
    Enter Selection: 1 

    Но обычно назначаются адреса только для первого Ethernet порта каждого контроллера, обычно, в одной подсети.
    Для управления дисковым массивом достаточно подключить лишь один кабель к первому порту одного из контроллеров, но в этом случае будет невозможно производить обновление firmware.

пятница, 13 ноября 2009 г.

Разводка разьёма последовательного порта Sun StorageTek 6140

На контроллере дискового массива Sun StorageTek 6140 используется разъём MiniDIN 6, такой же, как для подключения PS/2 мыши и клавиатуры.
Разводка кабеля для подключения к стандартному 9-контактному последовательному интерфейсу PC следующая:

DB-9 Female
Line Name
Direction
MiniDIN 6 Male
1
DCD
In
Not connected
2
RxD
In
2
3
TxD
Out
1
4
DTR
Out
Not connected
5
SG
-
3,5
6
DSR
In
3,5
7
RTS
Out
6
8
CTS
In
4
9
RI
In
Not connected

Разводка кабеля для подключения к гнезду RJ45 (консоль Cisco, серверы Sun, терминальные концентраторы APC и другие...):

RJ-45 Male
Line Name
Direction
MiniDIN 6 Male
1
CTS
In
4
2
DSR
In
3,5
3
RxD
In
2
4
SG
-
3,5
5
SG
-
3,5
6
TxD
Out
1
7
DTR
Out
Not connected
8
RTS
Out
6


Нумерация контактов разъёма MiniDIN6 на кабеле (вилка):


Нумерация контактов разъёма DB9 на кабеле (гнездо):


Нумерация контактов разъёма RJ45 на кабеле (вилка):

Перезапуск сервиса в состоянии maintenance или degraded

Бывает так что при проблемах с питанием одновременно выключается и сервер и массив.
И если этим массивом является Sun-овский T3, то сервер успевает загрузиться быстрее, а файловые системы с массива не успевают смонтироваться.
В Solaris 10 с его Solaris Service Management Facility от
svc:/system/filesystem/local
зависят более четырёх десятков сервисов в том числе: sshd, samba, nfs, smtp и многие другие.
Очевидны два варианта решения этой проблемы: отключение зависимостей или перезапуск сервиса filesystem/local и, конечно, простейший - перезагрузка сервера.
Зависимостей много и отключать их в целом не очень разумно, особенно samb-у и nfs.
Для ручного перезапуска сервиса необходимо подключиться к консоли сервера (sshd так-же не работает).
Решением проблемы может служить следующий скрипт:
#!/usr/bin/sh

# STA The abbreviated state of the service instance

PATH=/usr/sbin:/usr/bin

COLUMN=STA

# MNT maintenance
# DGD degraded

FRMI=svc:/system/filesystem/local:default



STATUS=`svcs -H -o ${COLUMN} ${FRMI}`

if [ ${STATUS} = MNT ]
then
{
echo "Clearing ${FMRI} maintenance status"
svcadm clear ${FMRI}
}
elif [ ${STATUS} = DGD ]
then
{
echo "Clearing ${FMRI} degraded status"
svcadm clear ${FMRI}
}
fi


Выполнять его можно через cron, например, раз в минуту:
* * * * * /root/clear_local_fs


Аналогичная проблема при монтировании файловых систем nfs
svc:/network/nfs/client:default
В этом случае скрипт так же подходит. Необходимо лишь поменять значение FMRI.

четверг, 12 ноября 2009 г.

Удаление файлов возврата патчей Solaris

Согласно man странице patchadd при установке обновлений старые версии файлов сохраняются в папке:
/var/sadm/pkg/PKG/save
. Как результат при недостатке места в файловой системе /var можно получить сообщение Insufficient space in /var/sadm/pkg/PKG/save to save old files.
Для освобождения пространства можно воспользоваться следующим скриптом. Несомненно, это следует делать, если есть полная уверенность что откатывать ранее установленные патчи больше не понадобится. Например, такую уверенность даёт стабильная работа системы последние полгода.

#!/usr/bin/sh

BACKOUT_DIR="/var/sadm/pkg"
PKG_LIST=`ls $BACKOUT_DIR`


for PKG in $PKG_LIST
do
PATCH_LIST=`ls $BACKOUT_DIR/$PKG/save`
for PATCH in $PATCH_LIST
do
if [ $PATCH != pspool ]
then
du -hs $BACKOUT_DIR/$PKG/save/$PATCH
rm -r $BACKOUT_DIR/$PKG/save/$PATCH
fi
done
done

пятница, 16 октября 2009 г.

Удаление застрявшей ленты HP LTO Ultrium

Как удалить ленту из привода HP LTO. Оригинальная инструкция доступна на сайте HP и относится к лентам HP StorageWorks LTO Ultrium 215/232/448/920, но подходит для любых приводов (и ленточных библиотек), где установлен привод HP LTO.
Сначала необходимо попробовать удалить ленту "электронным способом" следуя диаграмме:


Важно: если вы установили LTO4 картридж в привод LTO1, 2 или 3 не делайте ничего. Процесс может затянуться на долгое время (до 6 минут), но лента будет выброшена. Попытки освободить ленту могут привести только к повреждению и лента застрянет окончательно. Для предотвращения данной ситуации обновите firmware привода.
  • Попробуйте извлечь ленту используя команду unload/eject ПО резервного копирования. Часто для исключения случайного извлечения ПО выдает команду Prevent Media Removal (PMR) роботу и/или ленточному накопителю. В этом случае для извлечения ленты необходимо пользоваться этим ПО резервного копирования для разгрузки ленты.
  • Остановите ПО резервного копирования и, для Windows, сервис Removable storage. На автономном ленточном накопителе нажмите кнопку Eject. На ленточной библиотеке или автозагрузчике (autoloader) попробуйте выгрузить (unload) ленту или переместить из драйва в слот (move) через интерфейс управления библиотекой (автозагрузчиком). Иногда необходимо пользоваться интерфейсом библиотеки вместо ПО резервного копирования (например, при потере связи с библиотекой).
  • Важно: Процедура может занять несколько минут. Убедитесь в отсутствии активности привода прежде чем продолжать. В случае библиотеки (атозагрузчика) дождитесь появления сообщения об ошибке.
  • Важно: Если картридж удалось извлечь с помощью шагов описанных выше, очевидно нет проблем связанных с лентой или приводом; если не удалось - вероятно существуют проблемы с лентой или приводом.
    На автономном ленточном накопителе выключите устройство. На библиотеке выключите только привод, если это возможно. Отключите кабели данных, если это невозможно остановите ПО резервного копирования и сервис Removable storage (Windows). Через, как минимум 15 секунд, включите привод и дождитесь состояния Idle/Ready
  • На автономном приводе нажмите кнопку Eject. На ленточной библиотеке или автозагрузчике (autoloader) попробуйте выгрузить (unload) ленту или переместить из драйва в слот (move) через интерфейс управления библиотекой (автозагрузчиком). Это позволит решить проблему перехода привода в ненормальное состояние или результат получения неправильного PMR от ПО резервного копирования.
  • Если и после этого лента осталась в приводе переходите к процедуре ручного извлечения картриджа.

Ручное удаление


Важно: описанные ниже шаги позволят извлечь картридж и вернуть ленточный накопитель в рабочее состояние. Переходить к процедуре следует только если описанные ранее шаги не принесли результата. Полностью перемотайте ленту прежде чем пытаться извлечь картридж. LTO использует картридж с одной катушкой. Лента должна находиться в картридже прежде попыток её извлечения. При выполнении процедуры описанной в диаграмме шаг помеченный красным должен выполняться особенно внимательно чтобы избежать повреждения ленты или драйва.


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

  • Теперь ленту можно перемотать обратно в картридж. Для этого потребуется отвёртка T6 TORX. Вращать необходимо мотор передней катушки (той что в картридже) по часовой стрелке. Это может занять весьма продолжительное время (если вам не повезло то придется перемотать более 600 метров ленты, это потребует около 3000 оборотов отвертки, вероятно есть смысл использовать шуруповёрт, действуйте осторожно - не оборвите ленту). Крутить следует до остановки, возможно будет слышен щелчок когда штифт запаркуется.

  • И последний этап выгрузка картриджа. Необходимо вращать мотор загрузки, только теперь против часовой стрелки. На приводах LTO1 можно вращать колесо на боковой поверхности.

Что мне интересно - общие элементы Google Reader