Работа с разделом swap

Решил перенести раздел swap на другой диск, т.е. надо создать раздел на другом диске, подключить его и отключить старый.

Второй диск пустой. Создаю на нём новый раздел размером 6GB и меняю его тип:
fdisk -l /dev/sdc
Command (m for help): p
Select (default p): p
Partition number (1-4, default 1): [Enter]
First sector (2048-1953525167, default 2048): [Enter]
Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): +6G
Command (m for help): t
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w


Если fdisk выводит сообщение о необходимости перечитать таблицу разделов диска.

Можно попробовать вот эту команду:
partprobe /dev/sdc

Если она нормально не завершилась, то придётся перезагрузить компьютер. Иначе раздел нормально не создаётся, например, у меня получался раздел примерно в 500МБ, вместо 6ГБ.

Форматируем раздел:
mkswap /dev/sdc1
mkswap: /dev/sdc1: warning: wiping old ext4 signature.
Setting up swapspace version 1, size = 511996 KiB
no label, UUID=4c96302a-37bd-49d2-b352-7b6d09e60123


Подключаем раздел:
swapon -U 4c96302a-37bd-49d2-b352-7b6d09e60123


Проверяем:
swapon -s
Filename                                Type            Size    Used    Priority
/dev/md126                              partition       6153212 9200    -2
/dev/sdc1                               partition       6291452  0       -2


Отключаем старый swap (UID есть в /etc/fstab):
swapoff -U 7de94a8a-9fe1-4112-b09c-ee79f1eea123


Ну и понятно, что надо внести изменения в /etc/fstab — старый комментируем, новый добавляем:
#UUID=7de94a8a-9fe1-4112-b09c-ee79f1eea123 swap    swap    defaults                            0 0
# swap on sdc (sdc1):
UUID=4c96302a-37bd-49d2-b352-7b6d09e60123 swap    swap    defaults                            0 0

Policy-routing на CentOS

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

Тут нужен policy-routing — маршрутизация на основе определённых правил. Логика получается такая: ответы на запросы из подсети Б к моему адресу из подсети А отправлять с адреса из подсети А (т.е. на шлюз подсети А).

Маркируем соединения из сети Б к нашему адресу из сети А при помощи iptables и таблицу mangle (используется для изменения пакетов):
iptables -t mangle -I INPUT -i eth0 -s 10.1.100.0/24 -d 10.2.96.3 -j CONNMARK --set-mark 1
А на выходе копируем маркировку соединения в маркировку пакетов, насколько я понимаю, это означает, что мы маркируем пакеты промаркированных ранее соединений:
iptables -t mangle -I OUTPUT -s 10.2.96.3 -d 10.1.100.0/24 -j CONNMARK --restore-mark
Вероятно, в этом правиле можно обойтись и без указания адресов источника и адресата, но мне кажется так будет правильнее, более точно чтоли )

В таблицу маршрутизации 111 добавляем маршрут для сети Б, но на шлюз из подсети А:
ip route add to 10.1.100.0/24 via 10.2.96.1 dev eth0 table 111
И, наконец, добавляем правило для перенаправления пакетов с нашей маркировкой в отдельную таблицу маршрутизации:
ip rule add fwmark 1 lookup 111

Для удобства можно назначить название для таблицы в файле /etc/iproute2/rt_tables, которое можно будет использовать вместо номера.

Так же нужно проверить не включена ли проверка обратного пути (reverse path checking):
sysctl net.ipv4.conf.eth0.rp_filter
Если включена, то система будет проверять пакеты на соответствие источника интерфейсу, с которого пакет получен. Например, если пакет пришёл с адреса, который виден через другой интерфейс (а не тот, с которого пакет пришёл), то значит этот пакет надо отбросить.

Если всё заработало как надо, то сохраняем правила iptables в файл "/etc/sysconfig/iptables", а правила для маршрутизации в файл "/etc/sysconfig/network-scripts/route-eth0".

Далее несколько вспомогательных команд, которые могут пригодиться.

Посмотреть определённую таблицу маршрутизации:
ip route show table 111
Удалить маршрут из указанной таблицы
ip route del table 111 to 10.1.100.0/24
Посмотреть правила маршрутизации:
ip rule show
Удалить правило маршрутизации:
ip rule del fwmark 1

Как посмотреть правила iptables писать не буду )

Подключение репозитория 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

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

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

Читать дальше →

CentOS 7: MariaDB

Настраиваем репозиторий — в папке /etc/yum.repos.d создаём файл mariadb.repo со следующим содержимым:
# MariaDB 10.1 CentOS repository list — created 2015-09-11 06:33 UTC
# mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Это конфиг для моей версии. Можно сгенерировать этот конфиг прямо на сайте MariaDB — downloads.mariadb.org/mariadb/repositories/

Затем устанавливаем пакеты:
yum install MariaDB-server MariaDB-client

CentOS 7: Отключение FirewallD и возвращение iptables

Может я и тупой, но после получаса изучения документации на FirewallD не понял даже как посмотреть имеющиеся правила, а синтаксис команды firewall-cmd вызывает у меня безотчётное неприятие. Короче решил я, что будет лучше использовать то, что я знаю хоть немного, нежели мучаться с этим пусть гипотетически более современным и мощным инструментом.

Действия для включения iptables и отключения FirewallD:

yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service

Linux иштетүү системасынын версиясын кароо

Linux иштетүү системасынын версиясын кароо дистрибутивге (Red Hat Linux, Ubuntu, Debian, CentOS жана башка) карай өзгөрүшү мүмкүн, бирок, көбүнчө ылдыйда берилген командалар колдонулат.

Linux иштетүү системасынын дистрибутивинин атын жана версиясын кароо үчүн:

$ lsb_release -a

LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.11 (Tikanga)
Release: 5.11
Codename: Tikanga

Дистрибутивдин атын жана версиясын бул ыкма менен дагы караса болот:

$ cat /etc/issue

Red Hat Enterprise Linux Server release 5.11 (Tikanga)

Linux иштетүү системасынын өзөгүнүн версиясын кароо үчүн:

$ uname -a

Linux srvname 2.6.18-398.el5 #1 SMP Tue Aug 12 06:26:17 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

Бул жерде Linux иштетүү системасынын «бит»тиги тууралуу дагы маалымат бар: x86_64 — 64-биттик иштетүү системасына таандык экенин билдирет.