... Продолжаю тихо (громко?) ненавидеть CentOS / RHEL.
В 8-й версии любые сетевые настройки теперь делаются только через NetworkManager / nmcli (какой упырь это придумал?). Уже успел походить по ряду мелких граблей и наступить на одни большие.
По умолчанию параметр "connection.autoconnect" созданного вручную или на этапе инсталляции соединения выставлен в false. А потом ты такой бодрый вытаскиваешь ethernet-шланг из разъёма (другой вариант — перезагружаешь коммутатор) и безвозвратно теряешь удалённый доступ к своей машине. Потому что линк после этого автоматически уже не поднимется. Красота, чо. Мораль: его (autoconnect) надо всегда проверять.
Имя профиля соединения (connection id) и имя собственно сетевого интерфейса (ip link) — две совершенно разные сущности. Больше путаницы, нам нужно больше путаницы!
После внесения каких-нибудь изменений в "ipv4.addresses" или "ipv4.dns" они не применятся автоматически. Придется сделать "nmcli connection down eno1 && nmcli connection up eno1". ОК, я понимаю, если бы я правки в файлы вносил. Но тут-то я "родной" клиент использую, который, на минуточку, через D-Bus работает. Почему нельзя применить изменения сразу?
IDшники интерфейсов — это какая-то эталонная норкомания. Не "bond0", а "bond-bond0". Не "vlan10", а "vlan-vlan10". Наверное, я совсем отстал от этого мира.
Самые жирные грабли. Хочу сделать такую схему: "eno1+eno2 → bond0 (802.3ad) → vlan_trunk → vlan10 → IP_on_vlan10". Собираю bond. Пытаюсь навешивать сверху VLAN. Мне говорят, "не найдено подходящего интерфейса". Ничего не понимаю. Ухожу в отладку. Выясняю, что этот bond работает ровно 45 секунд, потом разваливается. Делаешь ему "nmcli connection up bond-bond0", он снова работает 45 секунд и снова уходит в suspended. Я в полных непонятках. Убил полдня чтобы разобраться.
Оказывается, эта скотина пытается получить / навесить ipv4 и ipv6 адреса на обозначенный несчастный bond. И когда у неё это не удаётся, система тупо его выключает. [Дальше идёт много мата.] Решение: обязательно явно выставлять "ipv6.method=disabled" и "ipv4.method=disabled" для любых nmcli-соединений, на которые не предполагается навешивать Layer 3. Иначе они будут сами просто молча "падать". Логика, блин, на грани фантастики.
При этом, если ты добавляешь ethernet-интерфейсы в качестве slave для того же bond или bridge, то данное правило на них не распространяется. То есть всё нормально, от них типа никто изначально и не ждёт наличия IP-адресов. А вот до того, что bond или bridge сами могут выступать в роли slave для кого-нибудь ещё, разработчики NetworkManager-а явно не догадались.
И это я ещё пока не пробовал Open vSwitch поверх всей этой радости вкорячить...
... Чё-то я не заметил, как MegaCli плавно мутировал в storcli64. А вот нате. Ничего принципиально нового, но синтаксис таки немного другой. Конфиги для zabbix-агентов придется малость подрихтовать.
... И LSI, оказывается, шалунишка ещё тот. То, что все нормальные люди называют "Raid10", в его терминологии обзывается "просто Raid1". А то, что у LSI значится как "Raid10", на самом деле является "RAID-1E", он же "RAID 1+0+0", он же "PRL=11, RLQ=00" в терминологии SNIA. Хорошо, что я узнал об этом раньше, чем начал ходить по очередным граблям.
... И вообще, эта путаница в терминологиях уже достала. Одни словом "stripe" называют то, что другие понимают как "Raid chunk". А если закопаться в расширенные опции файловой системы ext4, то там будут "stride" и "stripe-width", которые арифметически завязаны на stripe и chunk, но не являются ни тем, ни другим. Материться не буду: слова уже закончились, остались одни эмоции.
... Благо, как выяснилось, эти параметры файловой системы всё равно по сути очень мало на что влияют. Тов. kvazimoda24 любезно поделился ссылкой. А мужики-то и не знали.
... И вообще, все эти технологии хранения данных — ещё те джунгли. Оптимизируй, не оптимизируй... всё равно плохо будет. Не в меру умный жётский диск запишет не так, как ты ему сказал, а так, как ему захочется.
А-а-а-а, блин, голова уже пухнет. И зачем, спрашивается, я выбрал эту профессию?