LINUX.ORG.RU

Сообщения nstorm

 

Asterisk

Есть asterisk 11.25 (freepbx) сервер, подключенный ко внешнему транку. В опциях транка стояло type=friend. Когда от внешнего транка приходит звонок, где номер звонящего совпадает с чем-то уже заведенным в кач-ве экстеншена на asterisk'е, он его не принимает:

WARNING[3712][C-0000000c] chan_sip.c: username mismatch, have <120>, digest has <sipgw>
NOTICE[3712][C-0000000c] chan_sip.c: Failed to authenticate device "120" <sip:120@IP>;tag=

Что как бы понятно и логично. Но «прикол» в том, что раньше всё работало. И настройки на asterisk'е не менялись, как были, так и есть, но приходили раньше звонки с «совпадающими» номерами! Доподлинно известно, что со стороны удаленного транка поменяли железку, но конфиг вроде остался тот же, но другая версия софта (прошивки) всё-таки там стала. При это раньше, когда работало, точно приходил нормальный CID как минимум это же номер 120 работал и определялся как 120. Т.е. подмены CID/From тоже не было.

Просто любопытно, а какая настройка со стороны удаленного транка могла такое позволить, если учесть, что со стороны звёздочки ничего не менялось?

 , ,

nstorm
()

Что использовать для представления данных веб

Есть сборщик данных от датчиков на node.js. Он крутится на сервере в локалке и пишет их в простую текстовую БД.

Теперь захотелось смотреть эти данные с веба, с любого места.

Данные по сути представляют собой табличку вида построчных записей: «ID датчика; параметр1; параметр2; параметр3; параметр4»

Сделал сначала отправку на thingspeak и прикрутил вот это: https://github.com/nothans/iot-debugger Работает, но датчиков много и данные идут быстрее чем лимит бесплатной учетки thingspeak в 15с. Посему хочу своё сделать.

Плюс еще хотелось бы помимо последних N значений в таблице, сделать представление таблицы, где сделана группировка по ID датчика (Т.е. вроде GROUP BY в SQL), чтобы просто последние значения каждого датчика видеть + желательно чтобы это обновлялось всё а-ля ajax.

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

Раньше я бы такое сделал с LAMP. Данные бы с nodejs слал в виде какого-нибудь JSON или XML одному PHP скрипту на веб-сервере, который бы добавлял эти записи в БД. А показ в виде какого-нибудь другого PHP скрипта, который с БД делает SQL запрос плюс какой-нибудь jQuery для обновления данных.

Но может нынче это не кошерно и есть более изящные решения?

 ,

nstorm
()

CLVM когда не всем нодам кластера доступен том СХД

Всем доброго дня!

Есть кластер на corosync/cman с 3 и более узлами. И есть некая СХД, подключенная через FC HBA только к некоторым узлам кластера. Т.е. плата FC есть ну к примеру на 2 из 3 узлов кластера.

Надо на этих самых 2х узлах поднять CLVM том на разделе СХД. Раздел с СХД прекрасно видится, multipath настроен и т.д. PV создается, VG с опцией -c (clustered) создается. А при попытке создать LV ругается, что 3я нода не видит физический том (ес-но, т.к. там HBA карточки нет):

  Error locking on node XXX: Volume group for uuid not found: [тут длинный uuid]
  Failed to activate new LV.

Как объяснить LVM, что я не хочу, чтобы этот том видели и использовали все ноды? Мне нужно использовать его только на 2х узлах кластера.

 , , ,

nstorm
()

Белая подсеть за серым IP PPPoE

Добрый день!

Пров (РТК) дает подсетку реальных IP, которую роутит через PPPoE интерфейс. Со моей стороны PPP получает IP из частной подсети, 172.16.1.33, с удаленной стороны PPP некий белый IP шлюза прова, пусть будет 1.1.1.1. У меня сеть скажем 2.2.2.1/29, которая я знаю что роутится через этот интерфейс.

ppp0 поднят, работает. Что-то не соображу как мне на этом же хосте поднять IP 2.2.2.1 и заставить его пакеты выдавать в ppp0.

Когда с моей стороны интерфейс типа eth, это делается параметром onlink в роуте. Типа default via 1.1.1.1 src 2.2.2.1 onlink dev ppp0. Только такое не работает с ppp. Также policy based routing пытался прикрутить. Типа ip rule add from 2.2.2.1 lookup 500; ip route add default dev ppp0 src 2.2.2.1 table 500 - не работает тоже...

 , ,

nstorm
()

Роутер/модем LTE с возможностью подключения внешней антенны

Посоветуйте роутер нормальный со встроенным LTE и возможностью подключения внешней антенны, у кого есть опыт. Ес-но чтобы диапазоны РФ умел (B7,B20 вроде?).

Присмотрел вроде Huawei B593, кто-нибудь использует?

 , , ,

nstorm
()

AS и несколько префиксов из разных мест

Не совсем про Linux вопрос, но может кто подскажет.

Есть 2 провайдера, каждый дает свою PA подсеть IP-адресов. Есть желание имеют одну подсеть, маршрутизирующуюся через обоих провайдеров. Покупаем псевдо-PI подсеть (есть компании, которые занимаются реселлингом своих подсетей, они остаются как бы PA, но фактически вам разрешают их анонсировать в своих AS) и AS и соб-но анонсируем префикс на обоих провайдеров. Провайдеры не против, готовы подключить так и анонсировать наш префикс. Т.е. фактически получаем одну подсеть адресов с 2 каналами связи.

Теперь соб-но вопрос - а если у нас 2 офиса, у каждого по 2 провайдера, все разные). Можем анонсировать один префекс через 2 провайдеров в 1ом офисе, а в другом офисе свой префикс, в рамках одной AS? Или для каждой локации придется делать свою AS?

 , ,

nstorm
()

Policy based routing (source MAC)

В сети есть 2 роутера и сервер. Роутеры имеют свои аплинки в «мир». На обоих роутерах сконфигурен NAT для «выпуска» сервера в мир. Также на обоих роутерах сделан DNAT определенных портов на сервер. На самом сервере шлюз по умолчанию роутер1 и ес-но связь «из вне» работает только через роутер1.

Нужен PBR для «решения проблемы». Усложнение в том, что сервере только 1 интерфейс 1 IP и добавлять алиас чтобы сделать ip rule from ... не хотелось бы. Ведь у нас когда пакеты приходят с роутера2, можно по Source MAC их классифицировать и т.о. сделать нужную нам маршрутизацию.

В iptables делаю "-m mac --mac-source [MAC] -j CONNMARK --set-mark 2", также делаю ip rule fwmark 2 lookup router2. Соб-но в табличке router2 прописан default gw через роутер2. В -t mangle -A PREROUTING делаю --restore-mark.

Пакеты пришедшие через роутер2 маркируются (ну во всяком случае правило iptables пополняется попаданиями), но ответы уходят по прежнему через роутер1 с основной таблицы маршрутизации.

Можно ли так делать и что я делаю не так? Может где-то надо еще восстанавливать метку?

EDIT: Я наверное сам себе правильные вопросы задаю... видимо надо еще в -t mangle -A OUTPUT восстанавливать метку? Попозже попробую.

EDIT2: Ну конечно же после добавления правила -t mangle -A OUTPUT -j CONNMARK --restore-mark всё заработало. Поспешил с вопросом, но может кому-то полезно будет. :)

 , , , ,

nstorm
()

Transparent routing или как называется и где почитать?

Добрый день.

Как называется ситуация, когда мы добавляем маршрут к подсети или IP адресу без шлюза, просто через интерфейс?

Т.е. кода у нас подсеть A.A.A.0/24 допустим «живет» за подсетью B.B.B.0/24 без «промежуточных роутеров», а просто за бриджом как бы:

$ ip -4 route
default via B.B.B.1 dev eth0 
B.B.B.0/24 dev eth0  scope link 
A.A.A.0/24 dev eth0  proto kernel  scope link  src A.A.A.2

$ ip -4 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet A.A.A.2/24 brd A.A.A.255 scope global eth0
       valid_lft forever preferred_lft forever

При этом на роутере B.B.B.1 у нас добавлен аналогичный обратный маршрут в сеть A.A.A.0/24 просто через интерфейс. Ну и соб-но Linux хост на котором добавлен такой маршрут начинает общаться с хостами в заданной подсети так, как будто одни подключены к сети напрямик. Т.е. спрашивает ARP и при разрешении просто отправляет пакет на MAC назначения, а не роутера. К примеру если мы сделаем 'ip route add 8.8.8.8 dev eth0' при попытке установить соединение с 8.8.8.8 наш хост будет считать что он с 8.8.8.8 в одной подсети, даже если у нас сеть/маска 192.168.0.1/24.

 ,

nstorm
()

OpenVZ и VLANы

Доброго дня!

Есть нода с контейнерами OpenVZ (на Proxmox). Стандартно сеть eth1 подключена через бридж vmbr1 и устройство veth в контейнер.

Т.е. (Host Node) eth1 -> vmbr1 <- veth101.1 <- eth1 (CT101)

На самом хосте eth1 не используется, т.е. IP не назначен. Бриджу vmbr1 тоже не назначено ничего. Т.е. по сути физ. порт eth1 «проброшен» в виртуальку, только через бридж.

Надо теперь внутри контейнера по данному интерфейсу работать с тегированными VLANами. Как это лучше сделать?

Я знаю, что однозначно будет работать, если я на физической ноде отрублю eth1 из бриджа, создам на нём нужные vlan (eth1.25, eth1.26), и для каждого из них сделаю свой бридж и их подключу в CT101. При таком решении внутри CT101 я увижу 2 отдельных псевдо-физических интерфейса, из которых мне уже будет приходить нетегированный VLAN, на каждом свой.

С другой стороны, я могу попробовать создать vlan уже сразу внутри контейнера. Но будет ли это работать? Что происходит с метками VLAN при прохождении бриджа Linux?

Ну и еще вариант - убрать бридж и подключать veth непосредственно к eth1 физики, но тогда теряем гибкость решения.

 , , , ,

nstorm
()

Quagga ospf->rip

Добрый день.

На квагге пытаюсь настроить передачу маршрутов из OSPF в RIP (для сервера оффтопика).

                    192.168.9.234/24
192.168.50.0/24, 
192.168.9.1/24  R2 <----> R1 <----> R3 192.168.9.0/24
                    OSPF       RIP

Есть R1, у которого 2 интерфейса: eth0 в сети 192.168.9.234/24 и eth1 в другой подсети, не важно в какой.

У маршрутизатора R2 есть 2 интерфейса. Один смотрит в ту же сеть 192.168.9.0/24, другой в другие подсети, одна из них допустим 192.168.50.0/24.

В сети 192.168.9.0/24 работает OSPF и R1 получает от другого маршрутизатора R2 192.168.9.1 скажем маршрут в сеть 192.168.50.0/24 через оный (192.168.9.1).

Т.е. на R1 есть маршрут - 192.168.50.0/24 via 192.168.9.1.

С R1 хочу по RIP рассказать оффтопику (R3) про данный маршрут. Сам оффтопик тоже подключен к сети 192.168.9.0/24.

Делаю конфиг:

router rip
 version 2
 redistribute ospf
 redistribute static
 redistribute connected
 network 192.168.9.0/24
 network eth0
 neighbor 192.168.9.15
 neighbor 192.168.9.17
 neighbor 192.168.9.99
 neighbor 192.168.9.100
 passive-interface default
 default-metric 10
 distribute-list routes-in in 
 distribute-list routes-out out eth0
!
access-list routes-in deny any
access-list routes-out deny 169.254.0.0/16
access-list routes-out permit any
!

На R3 появляются маршруты в сети, которые были объявлены в OSPF. Только маршрут через R1 192.186.9.234.

Т.е. 192.168.50.0/24 via 192.168.9.234.

Хотя мне лучше «более прямой» маршрут сразу на R2 (192.168.50.0/24 via 192.168.9.1) т.к. он тоже в сети 192.168.9.0/24 находится. Куда копать?

 , , ,

nstorm
()

Gmail с другим доменом

Раньше, без всяких там Google Apps можно было в настройках обычного почтового акка привязать email с другого домена. При этом ранее привязанный адрес таким образом не спрашивал SMTP отправителя и почта отправлялась через серваки Google.

Сейчас при попытке добавить адрес таким образом, гмаил спрашивает адрес SMTP сервера другого домена и логин/пароль от учетки там, т.е. хочет отправлять через SMTP сервер домена. В общем-то это правильно в какой-то степени. Но у меня зависон - это они что-то поменяли или как-то можно добавить без этого?

 , , ,

nstorm
()

Веб-интерфейс для FreeRADIUS

Добрый день.

Посоветуете какой-нибудь интерфейс для радиуса?

Цель радиуса - авторизовать устройства в проводной сети по 802.1x, для начала только используя информацию порт+MAC. Никакого биллинга и шибких наворотов не надо, надо лишь наглядно видеть/редактировать эту базу устройств. Ну и желательно уметь по этим правилам VLAN определять.

Вообще смысл всего этого - защита от «дурака». А точнее шибко умных пользователей, подключающих свои ус-ва к сети.

 , , eapol,

nstorm
()

Выбор сети для SAN. Infiniband?

Под новый офис планируем серверы для отказоустойчивых сервисов. Пара микро-кластеров на Proxmox и оффтопике отдельно. Серверы будут от Supermicro однозначно.

HA виртуалки лучше и красивше разворачиваются когда есть SAN. Поэтому еще будет отказоустойчивый SAN. Тут будет либо 2 сервера просто с репликацией, либо есть решения у Supermicro на двойной сервер, где общая полка с винтами, но остальное железо дублируется.

У Supermicro есть решения серверов с предустановленными 56 Гбит/с FDR Infiniband контроллерами (Mellanox ConnectX 3).

Почитал про них, но дела с Infiniband до этого не имел, поэтому спросить у сообщества. Может какие советы будут.

У меня в планах брать сервера с контроллерами Infiniband + сетевуху с 2 портами SFP+ для связи с остальной сетью. Ну и плюс коммутаторы Infiniband, навроде Mellanox SX6012. Т.е. межсерверное взаимодействие и связь с SAN через Infiniband сеть, а связь с клиентской сетью через SFP+ порты на коммутаторы ядра сети от каждого сервера отдельно.

Еще есть желание иметь возможность обходного маршрута (на случай например выхода из строя Infiniband сетевухи) доступа к SAN не через Infiniband, а через коммутаторы клиентской сети (те, которые через SFP+). Вроде как можно Infiniband коммутаторы подключить к SFP+ портам через специальный кабель-трансивер?

 , , , ,

nstorm
()

Intel X540-T1 (10 Гбит) линкуется только на 1 Гбит

Добрый день.

Приобрели пару сетевух 10Г Intel X540-T1. Планируется их использовать для высокоскоростной связи пары нод кластера для HA. Сетевухи воткнули и «увиделись» дистрибутивом (Proxmox, на базе Debian). Соединили их напрямик готовым («заводским») патч-кордом Cat. 6 (пр-ва Molex, написано что соотв. ANSI/TIA-568-C.2, т.е. для 10G подходит).

Только соединили - линк загорелся зеленым, т.е. сеть установилась на скорости 10 Gbps. Однако буквально сразу один из серверов выключили и после включения линк стал загораться оранжевым, т.е. обычные 1 Gbps.

Смотрю ethtool:

# ethtool eth2
Settings for eth2:
        Supported ports: [ TP ]
        Supported link modes:   100baseT/Full 
                                1000baseT/Full 
                                10000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  100baseT/Full 
                                1000baseT/Full 
                                10000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

# ethtool -i eth2
driver: ixgbe
version: 3.19.1
firmware-version: 0x8000037c

Уже и серверы перезагружал и патч-корд менял (правда на такой же, и пробовал еще для эксперимента Cat 5E) - заводится на 1 Гбите. При этом долго думает при подключении кабеля, около 15 секунд проходит до появления линка.

Кто-нибудь сталкивался? Что может быть и что попробовать еще (кроме другого патч-корда - нет его под рукой пока).

nstorm
()

И снова шрифты Chrome

Добрый день.

Дурацкий Chrome почему-то font-family Helvetica и Times показывает уродскими 8-битными битмапами ( http://i60.fastpic.ru/big/2014/0404/8b/679538c618e1a8ec18fc5fae7a1cd38b.png ). Прописал в Custom.css:

@font-face { font-family: 'helvetica'; src: local('Nimbus Sans L'); }
@font-face { font-family: 'times'; src: local('DejaVu Sans'); }

Никак не помогло. В local.conf тоже пробовал прописывать алиас замены гельветики.

Дистр Gentoo. Как побороть? Где-то вообще в хроме задается общий шрифт замены для отсутствующих шрифтов?

При этом times new roman у меня из corefonts стоит. И когда у сайта в стиле font-family=«Times New Roman» - нормально кажет, а когда просто times - криво.

 ,

nstorm
()

OSPF в Quagga на несколько сетей

Дорбый день всем. Будет большое описание сети, чтобы было понятно, что к чему. Но суть вопроса в конце поста.

Есть примерно такая схема сети (упрощенно): http://i61.tinypic.com/21kkyfa.png

С левой стороны схемы как-бы основная часть сети. Назовем основную сеть MainNET, где в основном маршрутизаторы/свитчи с OSPF. На схемке показан для простоты один такой OSPF Router.

В центре «OpenVPN Server», на нём также работает quagga с ospfd. eth0 подключен к MainNET, eth1 = выход в Инет и соотв. через инет к нему подключаются клиенты.

Сеть OpenVPN настроена режиме tls-server с опцией client-to-client, т.е. все клиенты видят друг друга и сети за ними разрешены через статические маршруты (клиенты OpenVPN в т.ч. маршрутизируют трафик из/в VPN). Сеть 192.168.254.X/24 является соб-но «виртуальной» сетью для OpenVPN интерфейсов tap0.

Чтобы трафик роутился на сервере статически (через хелперы скриптов OpenVPN) прописываются маршруты вида 10.1.1.X/24 via 192.168.254.101. В свою очередь на клиенте прописаны статически (на деле передается от сервера через OpenVPN push, но это не меняет сути) маршруты в MainNET и прочие сети (за OSPF Router) через 192.168.254.1 (т.е. сервер OpenVPN).

Всё это вполне работает, смысл такого гибрида OSPF/статические маршруты исторический.

Столкнулись с 2мя неудобствами в данной схеме - для изменения маршрутов у клиента нужно перезапускать клиента после изменения конфига. Ну и главное - у OpenVPN ограничение на размер PUSH сообщений жестко хардкоден, и нам стало не хватать этого места.

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

В «левой» части схемы поднял и настроил ospfd без проблем, а вот добавить новые зоны «за VPN» - почему-то проблема. Когда в конфиг ospfd.conf на OpenVPN сервере добавляю сеть 192.168.254.X/24 для анонса, то он перестает анонсировать сети за VPN (redistribute static):

interface eth0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 КЛЮЧИК
!
interface eth1
!
interface tap0
 ip ospf authentication message-digest
 ip ospf message-digest-key 2 md5 КЛЮЧИК
!
router ospf
 ospf router-id 192.168.0.1
 redistribute kernel
 redistribute connected
 redistribute static
 network 192.168.0.0/24 area 0.0.0.0
! network 192.168.254.0/24 area 0.0.0.254
 distribute-list filter out kernel
 distribute-list filter out connected
 distribute-list filter out static
!
access-list 1 deny 192.168.253.0 0.0.0.255
access-list 1 deny 192.168.252.0 0.0.0.255
access-list 1 permit any
access-list filter deny 192.168.252.0/24
access-list filter deny 192.168.253.0/24
access-list filter deny 169.254.0.0/16
access-list filter permit any
!

Сети 192.168.252-253 просто специально фильтруются. Стоит раскомментировать строчку "! network 192.168.254.0/24 area 0.0.0.254" и он перестает распространять свои статические маршруты на OSPF Router. Соб-но вида «10.1.1.0/24 via 192.168.254.101», из ядра, которые туда записаны хелпером OpenVPN (через ip route add ...).

Т.е. пока этой строки нет, на OSPF Router я вижу маршруты, которые передает OpenVPN Server из своего ядра. Как только эта строка добавляется, почему-то он перестает их распространять. Видимо из-за того, что они соб-но и находятся за сетью 192.168.254.0/24. Но как быть, когда мне надо раздавать маршруты в «обе стороны»?

PS: Блин как же много написал... так всегда, когда проблему хочешь подробно описать...

 , , , ,

nstorm
()

Объединение бриджей в Proxmox на 2х нодах в кластере.

Доброго дня!

Есть сервер с виртуалками на базе Proxmox (KVM + OpenVZ). Допустим есть 2 бриджа (их больше, но суть не в этом) - vmbr0, который связан с физ. интерфейсом eth0 и связан с «внешним миром». Есть vmbr99 - который не связан с физическими интерфейсами и служит аналогом свитчка, в который «воткнуты» все виртуалки, с интерфейсами в подсети 192.168.99.0/24.

И есть виртуалка router, которая имеет 2 сетевых интерфейса, один подключен к vmbr0, другой к vmbr99. Соотв. она шлюз по умолчанию для связи всех виртуалок с «внешним» миром. Маршруты у неё динамические, через OSPF.

Т.е. задумка в том, что весь траф до виртулок (на которых крутятся сервисы), ходят через router, где этот трафик контролируется и фаерволлится. Т.к. пакеты крутятся только внутри ядра физической ноды, то задержек тут практически нет.

Соб-но вопрос в том, что теперь добавилась вторая нода Proxmox в кластер и есть желание организовать HA-кластер на этом деле, точнее хотя бы Failover с DRDB. С кластером вроде всё понятно, доки есть.

А вот как быть с сетью 192.168.99.0/24? Ведь бридж vmbr99 существует только в пределах одной физической ноды. Надо сделать так, чтобы виртуалки можно было мигрировать с одной ноды на другую, без изменения IP адреса.

Как это наиболее корректно сделать в данном случае? У меня навскидку мысль: на 2ой ноде поднимается такой же бридж vmbr99. Бриджи vmbr99 соединяются на обоих нодах через отдельный физический интерфейс, ну или через VLAN. Получаем как бы 2 виртуальных свитча, в каскаде друг с другом.

Но получается, что трафик с обоих нод ходит через виртуалку router на одной ноде, хотя вторая нода тоже подключена к «внешнему» миру.

Можно ли как-то на данном этапе сделать 2 виртуалки с роутерами на обоих нодах и каким-то образом «определять», какие из виртуалок находятся на какой физической ноде и соотв. трафик гнать через свой маршрутизатор? Пока вижу это в виде костыльного скрипта, который будет «точечные маршруты» (с маской /32) прописывать в OSPF, в зависимости от запущенной локально виртуалки. Но может есть более изящные решения?

 , , , ,

nstorm
()

Soft RAID1 выкидывает рабочие диски

Всем мне нравится mdadm - простота и гибкость настройки и переноса и т.п.

Кроме одного - нет обратной связи и логики выкидывании диска из массива при ошибке.

Т.е. во всяком случае у меня переодически как один из винтов (в простейшей конфе зеркала из 2х) начинает «сыпаться», выкинуть может и рабочий диск.

Т.е. возникает рассинхронизация массива в результате ошибок I/O, и mdadm выкидывает, как он говорит, «старый» (non-fresh) диск из массива.

Правда порой «старым» оказывается вполне рабочий диск, а в массиве остается помирающий.

Всё еще просто, когда можно вновь добавить рабочий диск, дождаться ресинхронизации и выкинуть уже дохлый.

Но иногда из-за дохлости диска не проходит ресинхронизация и соотв. рабочий диск опять помечается «дохлым».

Я конечно могу легко создать новый массив, перенести данные туда «ручками» и т.п. Но тут возникает простой или даже ребут, если раздел был корневым. В любом случае неудобно. Когда выкидывается «правильный, битый» диск - можно online с hotswap'ом всё сделать без простоя.

Есть какие-либо не костыльные варианты решения данной проблемы? Ядро то ведь знает какой из дисков битый (ошибки в dmesg видны явно), smartd знает. Как-то их подружить можно?

 ,

nstorm
()

Proxmox 2.2: SoftRaid+LVM2+GRUB2

Поставил proxmox 2.2, ранее пользовался 1.9 веткой и там был еще старый mdadm и grub1.

Раньше всегда легко конвертировал (1.9 версию) в SoftRaid по такому же алгоритму. А тут возникла проблема. После поднятия рейда «наживую» система работала нормально, но после ребута сыпятся ошибки rootfs и оная монтируется в read only и не работает нормально.

Делаю fsck - что-то фиксит и больше не ругается (если повторно проверять). Но перемонтировать наживую в remount,rw не дает. А после ребута появляются новые ошибки!

На железо грешить не могу - оно новое, серверное. Работало без проблем в сетапе без рэйда.

У меня есть подозрение что что-то запарывает ФС при загрузке. Возможно метаданные рэйда. Т.к. в старом Proxmox были метаданные 0.90, а тут 1.2. Оно еще при создании массива ругалось. Ну и GRUB2 еще не знаком был, но вроде он автоматом всё настроил.

Что делал - были обычные разделы sda1, sda2. На первом /boot, на втором LVM VG, внутри которого 4 LV. Первый LV как раз-таки root, поэтому думаю что его что-то запарывает. Остальные разделы работают нормально.

Как сделал raid1 - создал на 2ом винте sdb1, sdb2 разделы Raid autodetect (0xFD), сделал массивы md1, md2 из них соотв. Как обычно создавал разбитый массив, где вторые девайсы писались missing. На md1 создал ext3 и rsync'нул туда содержимое /boot. md2 инитнул как LVM PV, сделал pvmove данных туда и после этого исключил старый sda2 из LVM (vgreduce, pvremove).

Поправил fstab,mtab, перемонтировал /boot из md1. Сделал update-grub, обновил initramfs. Сделал grub-install на оба диска повторно (тоже момент). Ну и после этого зачистил sda, скопировал туда таблицу разделов, добавил разделы из sda в массив. Синхронизации дождался, всё ок.

Но вот после перезагрузки беда с рассыпанием rootfs.

Из-за чего может быть проблема? Где-то уже после услышал, что для обычных MBR для GRUB2 надо вначале диска место оставлять. Но вроде у меня не boot сыпется, а уже на втором разделе данные. Может из-за метаданных 1.2?

Подскажите куда копать.

 , , ,

nstorm
()

Мониторинг нагрузки

Всем привет.

Ищу средство для мониторинга истории загрузки CPU по процессам. Суть такова, есть VPS. Основная задача хостинг сайтов. На нём стоит шаблон CentOS 6 + Apache/PHP + MPM-ITK (так что каждый vhost запускается от своего пользователя) + некоторый другой софт, в т.ч. панелька ISPManager Lite. Хостер рисует график общей нагрузки (load) по времени. Иногда наблюдаются пики. А мне бы посмотреть что в это время происходит и какие процессы создают эту назгрузку.

Есть ли какой простой софт для этих задач? Уже заманался искать, кучу всего перерыл.

Что-то тяжелое, типа zabbix'а ставить туда не хочется, да и не нужно столько данных отслеживать. Всякие sysstat показывают общую нагрузку. Вроде как Atop можно писать, но больно замороченным он мне показался. Можно включить mod_status у apache и у него собирать данные, но это только по httpd, а мне бы всё-таки лучше все процессы. Тем более есть MPM-ITK, так что сайт я смогу отделить. В идеале мне бы что-то с веб-интерфейсом (ну или генерящее HTML'ки) и графиками по процессам. Ну или по пользователям хотя бы.

 

nstorm
()

RSS подписка на новые темы