Мар 252016
 

Возникла задача подключить LUN'ы с массива EMC VNX (в девичестве - Clariion) к серверу на Oracle Linux Server release 6.7. Операция тривиальная за исключением нескольких мелочей.

Итак, сперва нам поднадобится пара пакетов. Названия говорят сами за себя.

yum install lsscsi device-mapper-multipath

Чтобы у нас сложился диалог с администраторами СХД (сети хранения данных), то нам понадобися узнать и сообщить им WWN портов адаптеров Fibre Cannel, установленных на сервере. WWN в СХД - это аналог MAC-адреса в Ethernet. Continue reading »

Янв 222016
 

Решил для себя поэкспериментировать с iSCSI. Не то, чтобы я являюсь большим фанатом подобных эрзац-решений (из SAN мне приходилось иметь дело только с Fibre Channel), но в свете недавних событий весьма вероятно, что многие покупатели оборудования Enterprise-уровня решат сэкономить, поэтому уметь пользоваться этой технологией весьма полезно.

iSCSI - это протокол, предназначенный для отдачи от сервера к клиенту блочных устройств по протоколу TCP/IP, в отличие от NFS и CIFS, отдающих готовую файловую систему. В iSCSI используется своя терминология, например, сервер называется target, а клиент - initiator. Я буду придерживаться этих терминов в статье. Для экономии ресурсов тестовый стенд сделал на двух виртуальных машинах под управлением VirtualBox 5.0.

Небольшое отступление: статья не претендует на всеобъемлющую инструкцию по администрированию SAN на iSCSI, это просто заметки для начинающих.

Итак, приступим. Continue reading »

Янв 132015
 

Никто не любит рекламу в Интернете, в том числе и я. На ПК проблема элементарно решается путём установки правильного браузера (например, Firefox) и расширения Adblock или подобного, но на различных embedded-устройствах это не всегда возможно. Хотя у Firefox для Android и есть возможность поставить Adblock, его производительность не всегда комфортна.
Хорошим решением будет прописать в файл /etc/hosts на домашнем маршрутизаторе адрес 0.0.0.0 для различных рекламных и баннерных сетей и т.д. Тогда любое устройство, подключённое к домашней сети при попытке разрешить DNS-имя хоста с рекламой, будет получать адрес 0.0.0.0 и соединение не произойдёт. Вот эти замечательные товарищи создали гигантский список нежелательных хостов (на момент написания статьи более 13000 имён!). Мы его и возьмём, а заодно напишем скрипт для еженедельного обновления (чаще не имеет смысла). Continue reading »

Мар 252014
 

О том, что делать в случае переполнения файловой системы и как определить, какой каталог занимает много места, я уже писал.
Но бывают и ситуации поинтереснее. Например, есть некий процесс, непрерывно пишущий огромный лог. Кто-то этот самый лог удаляет командой rm, и мы наблюдаем странные вещи: свободное место на разделе уменьшается, а файла, занимающего кучу места, нет! Дело в том, что даже после удаления файла из файловой системы, в структурах памяти ОС остаётся открытым т.н. дескриптор файла. А пока у файла остаётся хотя бы один дескриптор (и не важно, в памяти он или на файловой системе), место на диске не освобождается. Continue reading »

Янв 152014
 

С точки зрения usability незаменимая утилита SQL*Plus представляет собой насилие над пользователем, и к использованию человеком, хоть раз увидившим нормальный софт, написанный с использованием библиотеки readline, совершенно непригодна.
К счастью, существует великолепная утилита rlwrap. Она создаёт обёртку из readline для SQL*Plus, что позволяет нормально редактировать команды, искать по истории команд, и даже использовать автодополнение!
Просто установить rlwrap мало, его надо правильно приготовить. Об этом и будет статья.

Готовим rlwrap для SQL*Plus.

Continue reading »

Фев 282013
 

Возникла у меня такая задача: смигрировать базу c Linux x86-64 на AIX 7.1. Версия Oracle - 11.2.0.3. Можно было бы использовать expdp, но из-за приличного объёма базы (180Гб) процесс занял бы длительное время. Тут нам на помощь приходит технология Transportable Tablespaces. Суть её состоит в том, что файлы данных копируются целиком и все существующие сегменты данных "подключаются" напрямую, т.е. эта операция, в отличие от импорта, не генерирует redo информацию и не требует перестройки индексов. Технология эта годится только для относительно крупных баз, т.к. требует от администратора кучу действий, особенно при смене порядка бит (endianess), как в моём случае.
Заодно мы решили воспользоваться случаем и смигрировать данные сразу в ASM (раньше файлы просто лежали на большом дисковом разделе).

Итак, вот примерная последовательность действий. Continue reading »

Дек 272012
 

Досталась мне игрушка недавно - Raspberry Pi. И вот возникла необходимость поменять там MAC-адрес. Прошивка самая обыкновенная, Raspbian “wheezy”, являющаяся обычным Debian-производным линуксом.
Суровые пользователи Gentoo знают, что MAC-адреса всех сетевых устройств прописываются в конфигурационном файле /etc/conf.d/net, но в Debian всё немножко хитрее. Continue reading »

Ноя 082012
 

На Хабрахабре есть отличная статья по теме, но у меня немного другая ситуация. В моём случае Zabbix работает под CentOS 6.2, а модем, архаичный Siemens TC35iT с последовательным портом, на другом хосте под управлением Solaris 10, обслуживая ещё одну систему мониторинга. Задача - настроить отправку длинных (более 160 символов) SMS-сообщений с linux-машины через этот модем, не переставляя его. Continue reading »

Апр 272012
 

У меня есть скрипт для резервного копирования сайта, который работает по расписанию и создаёт бэкап в виде нескольких tar-архивов в каталоге, скажем, /home/cube/backups. Задача - так же по расписанию заливать эти файлы на Яндекс.Диск.

Почему именно Яндекс.диск?

Continue reading »

Апр 172012
 

При использовании связки zabbix+orabbix для мониторинга ретро-баз (9i), в логе orabbix можно увидеть вот такие ошибки:

2012-04-17 18:24:01,157 [pool-1-thread-14] WARN Orabbix - Error while executing ->dbversion- on database ->mydb- Exception received ORA-02003: invalid USERENV parameter

2012-04-17 18:24:01,157 [pool-1-thread-14] ERROR Orabbix - Error on DBEnquiry on query=dbversion on database=mydb Error returned is java.lang.IllegalArgumentException: null value for key 'dbversion'

Причина такого непотребства в том, что запрос, получающий информацию о версии БД и компонентов, написан для БД 10-й версии и выше. Избавимся от этой проблемы: Continue reading »