Aug. 18th, 2011

diskcheckd

Aug. 18th, 2011 08:59 am
netch80: (Default)
Во FreeBSD5 одно время в базе был diskcheckd, потом убрали в порты. Я недавно посмотрел - ставится и работает.


# ps ax | grep disk
67114  ??  Ss     0:07.07 diskcheckd: ad6 2.05%, ad4 5.14% (diskcheckd)


В фоне читает все локальные диски на заданной скорости (можно делать ооочень медленно, чтобы не мешать обычной работе), если где-то плохо читается - будет громко жаловаться в syslog.
Эта деятельность "ортогональна" всяким smartmon, или помогает им (проверять блоки раньше, чем они реально потребовались).
netch80: (Default)
Из того, что в принципе в документации есть, но так с ходу не заметишь.


handle_info(foo, State) ->
  NewState = #state{} = do_foo(State),
  {noreply, NewState};


если do_foo() случайно вернуло ерунду, а не нужный record, то без проверки = #state{} оно заметится только на следующем цикле, а это немного не то, что нужно:)

Аналогично можно сделать function clause на входе:


do_foo(#state{} = State) ->


(Альтернатива в виде dialyzer тяжеловата, мягко говоря, и не во всех случаях.)
netch80: (Default)
Я с ваших линуксов фигею.
Коллега создал бутерброд с несколькими KVM'ами. Внутрь каждого KVM идёт tap, который снаружи входит в bridge. Нормальная себе конфигурация, у нас в бою такие работают.
Дальше нужно рисовать бы, но облом. В общем, KVM1 выходит наружу через br0 хоста и имеет также внутренний интерфейс, который через xbm-br0 хоста подключается к KVM2.
К br0 подключен eth0 - единственный во всём этом зоопарке реальный физический, за ним мир. На br0 навешен маскарад 10-й сетки.
Пинги мира с KVM1 проходят без проблем, src IP меняется.
Пинги мира с KVM2 уходят без NAT (src IP остаётся 10.*)
Облизали правила iptables, прыгали между MASQUERADE и SNAT - ничего не нашли. NAT этот пакет тупо не видит.
Облизали таблицу раутинга - ничего не нашли.
Подключили Самого Опытного Коллегу. Тот сказал, что выход из бриджа может идти напрямую на L2 вместо L3 и тогда nat/POSTROUTING не работает, что это известные грабли бриджа. Но тогда бы и с KVM1 не работало. А в чём разница, спрашиваем? Афигегознаетъ.
Вечером коллега - автор конфигурации приходит офигевший. Перенёс, говорит, KVM2 домой, прокинул путь с местного бриджа туда туннелем - всё работает.
Получается, пакет, который пробежал только что через систему и ушёл наружу (через tap в KVM1), причём модулями NAT не замеченный, оставил какой-то след в ядре, который приводил к тому, что когда этот пакет снова входил в ядро уже через другой входной интерфейс, NAT его игнорировал несмотря на то, что не имел никакого отношения к первому проходу.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 3rd, 2026 07:41 am
Powered by Dreamwidth Studios