+11.60
Рейтинг
25.08
Сила

Proudly made on Earth

Подключение репозитория HP с системными утилитами

Management Component Pack

hp-health HPE System Health Application and Command line Utilities
hponcfg HPE RILOE II/iLO online configuration utility
hp-ams HPE Agentless Management Service
hp-snmp-agents Insight Management SNMP Agents for HPE ProLiant Systems
hpsmh HPE System Management Homepage
hp-smh-templates HPE System Management Homepage Templates
hpssacli HPE Command Line Smart Storage Administration Utility
hpssaducli HPE Command Line Smart Storage Administration Diagnostics
hpssa HPE Array Smart Storage Administration Service

Создаём файл с описанием репозитория /etc/yum.repos.d/mcp.repo:
[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/dist/dist_ver/arch/project_ver
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

Где:
dist          centos, feodra, opensuse, oracle, asianux
   dist_ver      Browse repo to identify supported distribution versions
   arch          i386, x86_64,  amd64(debian/ubuntu)
   project_ver   current, 10.50, 10.40, 10.20, 10.00, 9.30, 9.25, 9.10 (Browse repo to identify supported project versions)

В моём случае (CentOS 6.8) получился вот такой файл:
[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/centos/6.8/x86_64/current
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp


Посмотреть список пакетов из этого репозитория:
# yum --disablerepo="*" --enablerepo="mcp" list available


Установить пакет:
# yum install packagename
Например:
# yum install hp-health

Cisco: DHCP для выдачи DNS-сервера IPv6-клиентам

Есть PPPoE-клиенты, которые получают IPv6-адреса через SLAAC, префикс сети передаётся Radius-сом, также из Radius-а передаётся маршрут на дополнительную подсеть. Но вот адрес DNS-сервера выдать клиенту можно пока только через DHCP. Команда «ipv6 nd ra-dns-server» не работает, avpair «ipv6-dns-servers-addr» тоже.

Впрочем настройка DHCP-сервера для этих задач совсем несложная, заодно передадим и домен по-умолчанию:
!
ipv6 dhcp server IPV6_DHCP
dns-server 2001:db8:1::1
domain-name elcat.kg
!
interface Virtual-Template1
ipv6 nd other-config-flag
ipv6 dhcp server IPV6_DHCP
!

Опция «ipv6 nd other-config-flag» указывает, кто хостам надо использовать DHCP для других настроек, кроме получения адреса:
Hosts should use DHCP for non-address config

CentOS: данные по сетевой карте

# ip -s -s link show eno1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether e0:07:1b:f8:21:64 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1762937170427 11152407427 0       9422    0       3579554
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    24857233171258 18559176680 0       0       0       0
    TX errors: aborted  fifo   window heartbeat
               0        0       0       0


# ethtool -g eno1
Ring parameters for eno1:
Pre-set maximums:
RX:             2047
RX Mini:        0
RX Jumbo:       0
TX:             511
Current hardware settings:
RX:             200
RX Mini:        0
RX Jumbo:       0
TX:             511


Поменять текущий параметр (до перезагрузки):
# ethtool -G eno1 rx 1024

Прописать параметр насовсем можно в /etc/sysconfig/network-scripts/ifcfg-eno1:
ETHTOOL_OPTS="-G eno1 rx 1024"

Cisco: IPv6 OSPF

Как настраивать IPv6 на циске писать не буду, да и вообще обойдусь минимумов слов )

Роутер R1
!
interface Vlan111
description R1
ipv6 address FE80::12 link-local
ipv6 address 2001:0db8:1::219/64
ipv6 ospf mtu-ignore
ipv6 ospf 1 area 0
!
router ospfv3 1
router-id 1.1.1.219
passive-interface default
no passive-interface Vlan111
!
address-family ipv6 unicast
area 0 range 2001:0db8::/32
default-information originate
redistribute connected
redistribute static
exit-address-family
!

Роутер R2
!
interface Vlan111
description R2
ipv6 address 2001:0db8:1::247/64
ipv6 ospf 1 area 0
ipv6 ospf mtu-ignore
!
router ospfv3 1
router-id 1.1.1.247
!
address-family ipv6 unicast
passive-interface default
no passive-interface Vlan222
redistribute connected
redistribute static
area 0 range 2001:0db8::/32
exit-address-family
!


Без команды «ipv6 ospf mtu-ignore», заданной на интерфейсах соседи постоянно падают с жалобой «Neighbor Down: Too many retransmissions» и никакие маршруты не передаются.

Команда «default-information originate» на роутере R1 даёт указание роутеру отправлять соседям ещё и default-route.

Несколько команд, чтобы посмотреть интересную информацию:
sh ipv6 route ospf
sh ipv6 ospf database

SSL-cертификат для postfix

Коротенько )

/etc/postfix/main.cf:
smtpd_use_tls = yes
smtpd_tls_auth_only = no

smtpd_tls_key_file = /etc/postfix/tls/mymail.key
smtpd_tls_cert_file = /etc/postfix/tls/mymail.crt
smtpd_tls_CAfile = /etc/postfix/tls/CA_bundle.pem

Создаём новый приватный ключ:
openssl genrsa -des3 -out mymail.key 2048

Создаём запрос для получения сертификата:
openssl req -new -key mymail.key -out mymail.csr

Заказываем сертификат на сайте регистратора. Я пользуюсь услугами Dynadot.com.

Создаём ключ без пароля:
openssl rsa -in mymail.key -out mymail-nopwd.key

Копируем ключ и сертификат в нужную папку:
cp mymail-nopwd.key /etc/postfix/tls/
cp mymail.crt /etc/postfix/tls/

Создаём промежуточный сертификат: берём отсюда корневой сертификат и сертификат нужного цетра сертификации (в данном случае AlphaSSL) и копируем в один файл CA_bundle.pem:
-----BEGIN CERTIFICATE-----
Корневой сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Промежуточный сертификат AlphaSSL
-----END CERTIFICATE-----


Ну и перезапускаем postfix.

Конечно, после обновления сертификата (если приватный ключ остался прежний) не нужно всё это делать заново, достаточно просто скопировать новый сертификат в файл mymail.crt. Ну и на всякий случай убедиться, что корневой и промежуточный сертификаты не изменились.

Копирование конфигурации Mikrotik-а на ФТП-сервер

Сначала экспортируем конфигурацию в файл на самом Mikrotik-е:
/export file=r1-config1701
Операция занимает несколько секунд.

Затем можно копировать его на ФТП-сервер:
/tool fetch address=10.0.1.3 user=ftp1 password=PWD123 mode=ftp src-path=r1-config1701.rsc dst-path="/tmp/r1-config1701.txt" upload=yes

rsc — расширение файла, которое Mikrotik добавляет сам, а я хочу, чтобы на ФТП-сервере получился файл с расширением txt.

Посмотреть список файлов на Mikrotik-е:
/file print

Для регулярного копирования можно прямо на Mikrotik-е написать скрипт и запускать его из шедулера. Этим я пока не занимался, т.к. конфигурация роутера меняется редко.

CentOS: статистика

В папке /proc можно найти много всякой полезной статистики, например:
/proc/meminfo — статистика по памяти;
/proc/diskstats — статистика по дискам;
/proc/net/dev — счётчики трафика на сетевых картах;

А ещё есть данные в папке /sys/class, например счётчики трафика на отдельных сетевых картах:
/sys/class/net/eth0/statistics/rx_bytes
/sys/class/net/eth0/statistics/tx_bytes
/sys/class/net/eth0/statistics/rx_packets
/sys/class/net/eth0/statistics/tx_packets

Там же есть данные по параметрам сетевой карты, например, скорость соединения, режим дуплекса.

CentOS: Запуск демона при помощи systemd

Установил net-snmp из исходников, т.к. пакет требует наличия библиотек mariadb, которые конфликтуют с установленным mysql.

Для нормального запуска демона посредством systemd создал файл /usr/lib/systemd/system/snmpd.service:
[Unit]
Description=Net-SNMP daemon
Documentation=man:snmpd(8) man:snmpd.conf(5)
After=network.target

[Service]
ExecStart=/usr/local/net-snmp/sbin/snmpd -f -c /etc/snmpd.conf -p /var/run/snmpd.pid
ExecReload=/bin/kill -HUP ${MAINPID}
ExecStop=/bin/kill -TERM ${MAINPID}

[Install]
WantedBy=multi-user.target

Обратите внимание на ключ "-f" — не уходить в фон. Так systemd может прочитать pid процесса. Иначе у меня не получилось, опция «PIDFile=» не помогла.

Теперь демон нормально обрабатывается командой systemctl:
systemctl enable snmpd.service
systemctl start snmpd.service
systemctl status snmpd.service
systemctl stop snmpd.service

Изменение параметров RAID-массива на контроллере HP Smart Array P440ar

Конечно, все возможности по изменению параметров RAID-массива я не рассматривал, у меня была конкретная задача. После добавления новых дисков я решил изменить тип массива с RAID5 на RAID1+0.
Управление контроллером осуществляется посредством утилиты hpssacli, операционная система — CentOS 7.2.

Вот первоначальное состояние:
=> ctrl slot=0 show config

logicaldrive 1 (838.3 GB, RAID 5, OK)

physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 450 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 450 GB, OK)
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 450 GB, OK)

unassigned

physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 450 GB, OK)
physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 450 GB, OK)
physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 450 GB, OK)
physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 450 GB, OK)

Как мы видим у нас четыре неиспользуемых диска и RAID5-массив, который состоит из 3 дисков. Понятно, что изменить его тип на 1+0 не получится, но я должен был попробовать, чтобы посмотреть что получится:
=> ctrl slot=0 ld 1 modify raid=1+0

Error: «raid=1+0» is not a valid option for logicaldrive 1

Available options are:
0
5 (current value) (default value)

Всё логично )

Далее, как я понял, у меня два варианта действий:
1. добавить в существующий массив все неиспользуемые диски, а потом поменять его тип с 5 на 1+0;
2. добавить в существующий массив один неиспользуемый диск, потом поменять его тип с 5 на 1+0, а уж потом добавить в массив оставшиеся диски;

Несмотря на то, что количество шагов в первом варианте меньше, я выбрал второй, т.к. субъективно посчитал, что добавление дисков в массив должно занять меньше времени, чем конвертация типа, т.е. иными словами я почему-то решил, что быстрее сконвертировать маленький массив и добавить новые диски, чем добавить новые диски и сконвертировать большой массив. Проверить это на практике я не могу, не до экспериментов.

Так что я добавил в массив ещё один, четвёртый, диск:
=> ctrl slot=0 ld 1 add drives=2I:1:5

Процесс пошёл:
=> ctrl slot=0 show config

logicaldrive 1 (838.3 GB, RAID 5, Transforming, 2% complete)


Замечу, что система в это время работает нормально, никаких заметных торможений нет, правда нагрузку я с неё снял, чтобы процесс конвертации занял меньше времени. Кстати, у меня был опыт замены вышедшего из строя диска в массиве прямо во время работы достаточно нагруженного сайта. Во-первых, я не сразу заметил проблему и массив какое-то время работал в деградированном режиме, во-вторых, замену диска и последовавшую за этим перестройку массива пришлось проводить на ходу. Результат меня приятно удивил: никто ничего не заметил )

В документации сказано, что расширение, добавление или миграция логических дисков занимает примерно 15 минут на гигабайт. Я добавляю диск 450ГБ в массив 838ГБ. Рассчётное время по наименьшему варианту — 450ГБ — пугает: 450*15/60 = 112.5 часов. Однако на деле пока всё идёт получше: примерно 20% за 40 минут, 30% за один час. Т.е. предположительно процесс займет более трёх часов, а не 112. И действительно, процесс занял примерно 3 часа 40 минут, по мне так вполне адекватное время.

Теперь я ещё раз запустил изменение типа массива:
=> ctrl slot=0 ld 1 modify raid=1+0

На этот раз процесс пошёл:

logicaldrive 1 (838.3 GB, RAID 1+0, Transforming, 1% complete)


Процесс изменения типа массива идёт заметно дольше: если при добавлении диска 30% прошло за один час, то тут — примерно за полтора часа. 50% получили через 2 часа 40 минут. Окончания этого процесса я не дождался, посчитаем так: 50% за 2 часа 40 минут, будем считать, что 100% получилось за 5 часов 20 минут, это существенно больше времени на добавление одного диска (3 часа 40 минут).

На данном этапе у меня получилась следующая конфигурация:
=> ctrl slot=0 show config

logicaldrive 1 (838.3 GB, RAID 1+0, OK)

physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 450 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 450 GB, OK)
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 450 GB, OK)
physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 450 GB, OK)

unassigned

physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 450 GB, OK)
physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 450 GB, OK)
physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 450 GB, OK)


Добавляю в массив ещё два диска:
=> ctrl slot=0 ld 1 add drives=2I:1:6,2I:1:7

Процесс пошёл достаточно быстро — 10% примерно за 15 минут, а 25% за 40 минут. Общее время составило примерно 3 часа 30 минут, т.е. примерно столько же, сколько ушло на добавление одного диска.

По окончанию процесса оказалось, что размер логического диска остался прежним, а в массиве появилось неиспользуемое пространство:
=> ctrl slot=0 show config

array A (SAS, Unused Space: 858429 MB)

logicaldrive 1 (838.3 GB, RAID 1+0, OK)

Чтобы расширить логический диск нужна ещё одна команда:
=> ctrl slot=0 ld 1 modify size=max
Вместо слова «max» в ключе «size» можно указать размер в МБ.
После ввода этой команды утилита выдёт предупреждение о том, что некоторые операционные системы не понимают такое расширение и данные могут стать недоступными:
Warning: Extension may not be supported on certain operating systems.
Performing extension on these operating systems can cause data to
become inaccessible. See HPSSA documentation for details. Continue?
(y/n)

Я сделал резервные копии, понадеялся на продвинутость CentOS 7 и согласился с предупреждением. Команда выполнилась быстро, система осталась в рабочем состоянии и размер логического диска увеличился:
=> ctrl slot=0 show config

array A (SAS, Unused Space: 0 MB)

logicaldrive 1 (1.2 TB, RAID 1+0, OK)


Оставшийся, нечётный, диск я решил настроить в качестве запасного (spare). Сделать это можно только после окончания процесса трансформации массива:
=> ctrl slot=0 ld 1 add spares=2I:1:8 sparetype=autoreplace
Эта процедура занимает немного времени — несколько секунд.

С типом запасного диска у меня остались некоторые сомнения, из документации я понял, что тип «Dedicated» означает, что после замены неисправного диска будет проведена перестройка массива с переносом данных с запасного диска на новый, а в случае типа «Auto-Replace» — запасной диск как бы насовсем заменит в массиве неисправный, а после замены новый диск станет запасным и перестройка массива не потребуется. Кроме того запасной диск типа «Dedicated» может быть использован для нескольких массивов, тогда как диск типа «Auto-Replace» нет. У меня массив один и перестройка массива мне не нужна, так что я выбрал тип «Auto-Replace».
Надеюсь я не ошибся в понимании документа, вот цитата:
— Dedicated — When the failed data drive is replaced, it must be rebuilt from the data on the spare drive. In Dedicated mode, one spare can be dedicated to multiple arrays.
— Auto-Replace Drives — The spare for the failed data drive automatically becomes the replacement data drive. When the spare is replaced, the data drive does not need to be rebuilt. In Auto-replace mode, spare drives cannot be shared between arrays.

Узнать тип запасного диска можно в выводе следующей команды (правда там много информации):
=> ctrl slot=0 show config detail

Array: A
Interface Type: SAS
Unused Space: 0 MB
Status: OK
MultiDomain Status: OK
Array Type: Data
Spare Type: autoreplace
HP SSD Smart Path: disable


Изменить тип запасного диска можно вот так:
=> ctrl slot=0 array A modify sparetype=dedicated


Всё это время я думал в каком виде дополнительное пространство будет доступно в системе. Наиболее логичным мне показался вариант, что просто появится свободное, нераспределённое, место на том же диске, которое я смогу использовать как обычно. И вот, сразу после окончания процесс трансформации, я вижу прежний размер диска:
parted --list
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sda: 900GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat16 EFI System Partition boot
2 525MB 32.7GB 32.2GB xfs
3 32.7GB 49.9GB 17.2GB linux-swap(v1)
4 49.9GB 900GB 850GB xfs

Пришлось перезагрузить сервер. После этого видим, что диск стал нужного размера:
dmesg | grep sda
[ 2.314187] sd 0:0:0:0: [sda] 2637097072 512-byte logical blocks: (1.35 TB/1.22 TiB)

Однако при попытке посмотреть разделы на диске утилитой «parted» получаю сообщение о том, что конец диска не там где должен быть и не всё место доступно с предложением исправить ошибки, я согласился на исправление (ввёл fix) и увидел новый размер диска:
parted --list
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.
Fix, by moving the backup to the end (and removing the old backup)?
Fix/Ignore/Cancel? fix
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 879032320
blocks) or continue with the current setting?
Fix/Ignore? fix
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sda: 1350GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat16 EFI System Partition boot
2 525MB 32.7GB 32.2GB xfs
3 32.7GB 49.9GB 17.2GB linux-swap(v1)
4 49.9GB 900GB 850GB xfs

При помощи той же утилиты parted смотрю неиспользованное место на диске:
parted /dev/sda print free
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sda: 1350GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 525MB 524MB fat16 EFI System Partition boot
2 525MB 32.7GB 32.2GB xfs
3 32.7GB 49.9GB 17.2GB linux-swap(v1)
4 49.9GB 900GB 850GB xfs
900GB 1350GB 450GB Free Space

Вижу свободное пространство. Теперь надо расширить нужный мне раздел номер 4. Поиск в Гугле привёл к двум вариантам: через утилиту «parted» командой «resize», но такой команды не оказалось, при помощи утилиты «xfs_growfs», но она менять размер отказалась без объяснения причин. Тогда я решил просто удалить раздел (он последний на диске) и создать его снова при помощи обычного «fdisk» — удалил, создал, сохранил изменения (сохраняем только в самом конце). После этого пришлось перезагрузиться снова.

После загрузки системы вижу, что размер раздела увеличился и свободного места на диске больше нет:
parted /dev/sda print free
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sda: 1350GB
Sector size (logical/physical): 512B/512B
Partition Table: gptDisk Flags:

Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat16 EFI System Partition boot
2 525MB 32.7GB 32.2GB xfs
3 32.7GB 49.9GB 17.2GB linux-swap(v1)
4 49.9GB 1350GB 1300GB xfs

Раздел в порядке, данные на месте. Наши победили почти без потерь (кроме времени), но, конечно, надо сначала сделать резервные копии )

Список литературы

Документация по управлению массивом: HPE Smart Storage Administrator. User Guide (Спасибо Максиму Брагину из компании «Logic» за ссылку).

Пока, Evernote, и здравствуй, Google Keep?

Достаточно давно пользуюсь Evernote для хранения разных заметок и доступа к ним с разных устройств и мест.
Давно напрягает слишком большое количество всяких, ненужных мне, фишек и, соответственно, огромное множество органов управления, куда не ткни — что-нибудь включишь или откроешь какую-нибудь менюшку. А самое главное моё недовольство — это тормоза, кривизна и неудобство работы с Evernote через браузеры, ну или может через некоторые из них.
Возможности Evernote для меня крайне чрезмерны, я использую его только для хранения текстовых заметок, коих у меня немного — штук 40, никаких картинок, документов, даже форматирования текста мне не надо. В Evernote скопированный текст вставляется со всем своим оформлением, что приводит к тому, что либо надо не обращать внимания на разношёрстные цвета, размеры и шрифты, либо менять оформление самому.

И вот на днях получаю уведомление от Evernote, что они меняют свою политику и теперь можно пользоваться их приложением только с двух устройств, а кому надо больше — платите. У меня получается вот такой список устройств, с которых я бы хотел пользоваться приложением:
1. Мобильный телефон (Android);
2. Домашний компьютер (MacOS);
3. Ноутбук основной (Windows);
4. Ноутбук старый, тестовый (Windows);
5. Планшет (Android);

Конечно, никто не запрещает пользоваться Evernote через браузер, но, как я уже говорил, у них это неудобно.

Это «письмо счастья», вкупе с моим недовольством, стало поводом озадачиться поиском замены Evernote. Почитал разные статьи и остановился на двух вариантах — Simplenote и Google Keep. Установил на мобильный телефон оба приложения и кратенько постетировал. Визуально и по возможностям оба приложения очень похожи и удовлетворяют моим требованиям:
— простота;
— синхронизация;
— работа офлайн;
— бесплатность;
— наличие ярлыков;
— удобная работа через браузер;

Выбор в пользу Google Keep был сделан только потому, что для синхронизации в Simplenote нужно было отдельно регистрироваться на их сайте. Зато у Simplenote есть приложения для разных платформ, включая даже Линукс, который я использую на работе. Кроме того, мне чисто субъективно кажется, что Google надёжнее. Он конечно может закрыть какой-то свой сервис если посчитает его ненужным, но зато если не закроет, то всё будет работать нормально и бесплатно. Опять же, волей-неволей, уже сформировалась своя среда сервисов Google.
Через браузер Google Keep работает хорошо — всё быстро, просто и удобно. И пока я считаю, что это вполне компенсирует отсутствие приложений под Windows и MacOS.
Как работает в браузере Simplenote я не проверил, т.к. не захотел регистрироваться у них.

На втором этапе тестирования (на первом было краткое ознакомление) я перенёс все заметки из Evernote в Google Keep. Переносил просто — копи-пастом, заодно избавился от нескольких ненужных заметок. Теперь буду пользоваться заметками в «реальном режиме времени» и через какое-то время решу оставаться ли на Google Keep или искать что-то другое. По мере появления новых мыслей о Google Keep буду отписываться )