Сообщество - Лига Сисадминов

Лига Сисадминов

2 349 постов 18 850 подписчиков

Популярные теги в сообществе:

672

Вот она, настоящая смерть Windows XP, а не какое-то там окончание поддержки майкрософтом :)2

Из обновлений в 1С версии 8.3.27:

  • Мы отказались от поддержки операционных систем Windows XP, Windows Vista, Windows Server 2003 и Windows Server 2008;

  • Минимальную поддерживаемую версию браузера Firefox мы подняли до 68 (была 52).

На деле это выглядит как сообщение "хочу минимум семёрку" при попытке запустить setup.exe или "файл не является приложением win32" при попытке запустить уже установленную 1С (скопированную с другого компьютера).

Не то, чтобы у меня так уж много компьютеров под ХР оставалось - потихоньку обновляли их, но десятка полтора из двухсот ещё имеются.

23

Разбор видео Виртуализация Space ДАКОМ М - ОНИ РАЗРАБАТЫВАЮТ, А НЕ КОПИРУЮТ OPEN SOURCE! От Максима Горшенина

Для лиги лени: потерял три часа из жизни

Предисловие
Коллеги прислали видео со словами «ты такое любишь».
Видео называется "Виртуализация Space ДАКОМ М -  ОНИ РАЗРАБАТЫВАЮТ, А НЕ КОПИРУЮТ OPEN SOURCE!".
Ссылка на ютуб, что отдельно доставляет (на ВК и рутубе, наверное, тоже есть)
Максима Горшенина я больше знаю по делу Лайтком, и по тому факту, что он дает интервью всяким превратившимся в помойку ресурсам, но это его личное дело. Обычно его не читаю, и, тем более, видео не смотрю. Ну был человек в МЦСТ, ну были обзоры Эльбрусов, больше Эльбрусов нет. Тратить два часа на то, что можно текстом прочитать за 10 минут, это перебор.

Теперь к видео.
Само видео - 2 часа 15 минут. Шуйский, ты меня настолько не любишь, что прислал ЭТО?
Пошел смотреть, что там рассказывают.

Видео: 0:45 «В начале 2000х в мире начала широко использоваться технология базовой виртуализации».
Мнение. IBM announced its first official VM product, VM/370, on August 2, 1972 for the System/370.

Видео 0:55 (до эпохи виртуализации) Для каждого приложения была нужна своя виртуальная платформа
Мнение: Preemptive multitasking was implemented in the PDP-6 Monitor and Multics in 1964, in OS/360 MFT in 1967, and in Unix in 1969, and was available in some operating systems for computers as small as DEC's PDP-8;

Видео 1:25 технология .. позволила мигрировать приложение без потери сервиса.
Мнение: HA это не то же самое что VMware vSphere™ 4 Fault Tolerance . И это не миграция.
То есть, если мы говорим про «миграцию при выходе сервера из строя», то это FT, и это не миграция. Если говорим про HA, то это не миграция, а перезапуск нового экземпляра с общего хранилища, с, разумеется, перерывом в обслуживании и без гарантий, что перезапустится.

Видео 2:02 Объединение ЦОДов в единую вычислительную платформу.
Мнение: Не совсем. Никакого объединения именно вычислений между ЦОД не происходит, мешает скорость света и проклятая физика. Есть единое управление группами сервисов в ЦОД, и разные схемы репликации данных. Именно вычислительный кластер в пределах ЦОД, это отдельные развлечения в виде построения именно вычислительного кластера.

Видео 5:25 Примерно 11 лет назад .. на российском рынке виртуализации присутствовали VMware, Citrix, Microsoft.
Мнение: Забыты Red Hat, IBM, и все решения вокруг OpenStack – с 2010 года. Виртуализация на российском рынке присутствует с первых поставок IBM в СССР в 70е. Виртуализация на ESXi и потом Windows server в масс маркете - с выхода 2008R2, примерно. ESXi с его лицензированием и первичной сложностью был в сильно верхней части масс маркета, и стоил, с его лицензированием памяти, как-то очень дорого, а лицензировать поверх него Windows стоило еще дороже.

Видео 10:40 Рынок вендоров по виртуализации в России разделился на две группы.
Мнение: Это как считать. В основе у многих «вендоров» – Linux + KVM разных редакций. У кого-то был FreeBSD, и, вроде, даже Linux + Xen. "Российского" в Linux что-то около ноля, там и до всех приключений в команде «около ядра» было человек 10, и далеко не основные разработчики \ контрибьюторы. Этот финн всегда не любил РФ.
У того же SpaceVM – виртуализация из того же Linux, то есть qemu-kvm, и это не секрет, но официальная документация, цитата:

Управление ВМ обеспечивается модулем-гипервизором qemu-kvm, входящим в состав ТОС. Гипервизор qemu-kvm устанавливается непосредственно на физический сервер вместе с ТОС с дистрибутива SpaceVM и отдельной установки не требует. Документация | SpaceVM

У VMware by Broadcom и Microsoft в основе виртуализации целиком свои собственные ОС, если кто-то не знал. Как показывает дальнейшее видео, участники видео не в курсе.
В виртуализацию, то есть в данном случае в KVM (или Xen) вклад от российских вендоров .. не могу сказать что 100% отсутствует, но и в присутствии сильно сомневаюсь.

Видео 11:50 Opensource не является конечным продуктом, иначе бы любой человек мог его скачать, проинсталлировать.
Мнение: является. Любой человек может скачать хоть Debian \ Ubuntu \CentOS, хоть ванильный опенстек, и поставить его в инфраструктуру, и он будет работать. И да, идея была именно в этом – вы качаете бесплатный Linux и не занимаетесь его покупкой. Но цена поддержка RHEL или Oracle Linux, ой.

Видео 14:00 В рамках опенсорс проектов есть специально привнесенные уязвимости
Мнение: Пока такого не замечено. Утащенные документы (Ассанж плюс Шульте =  WikiLeaks) показывают, что уязвимости ищут, но не внедряют. Хотя с Cisco и внедрением в них троянского модуля, не все так просто.
И наоборот, у проприетарного Касперского была уязвимость, когда пароли генерировались исходя из простого алгоритма времени. И недавно ее одна, когда пароль писался в логи в открытом виде.
Если быть чуть точнее, то у ряда небольших проектов после 02.2022 появился код, который можно считать вредоносным «для РФ», но в РФ даже не стали поддерживать проект по поиску такого ПО.

Видео 15:05 VMware использует ядро Linux.
Мнение: для виртуализации не использует. Для системы управления, vCenter – использует.

Видео 15:45 Например .. возьмем Proxmox .. обернем его своим Web-интерфейсом.
Мнение: Но зачем? То есть, у Proxmox есть свой web, есть свое API, что там еще поверх нужно оборачивать? Нескучные обои?

Видео 16:00 потребуется (для Proxmox) написать свои прослойки в виде абстракций
Мнение: Но зачем? Для портала самообслуживания?

Видео 18:35 Само по себе ядро Linux не позволяет вам делать виртуализацию.
Мнение: KVM это Kernel-based Virtual Machine. Технически это: KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. The kernel component of KVM is included in mainline Linux, as of 2.6.20.
То есть с времен Linux_2_6_20 ,с февраля 2007, это модуль ядра.

Видео 18:55 Эти модули они пишут сами.
Что-то пишут, но под "что-то" зачастую qemu, apache, и так далее.

Видео 22:00 Red Hat
Мнение: IBM купила Red Hat в 2018 и в 9 июля 2019 закрыла сделку. Фирма Red Hat как фирма не существует, акций у нее (ISIN US7565771026) больше нет. Бренд существует, продукция под брендом выпускается, такая как Red Hat Enterprise Linux 10, но это уже 6 лет как подразделение IBM

Видео 25:00 Какие-то опенсорс модули, но не те, которые отвечают за предоставление конечной функции.
Мнение: за функцию «виртуализация на KVM» отвечают модули ядра Linux. Какая там еще может быть «конечная функция»? Предоставление web интерфейса?

Видео 25:51 первые собственные технологии вы как раз можете увидеть через 5-6 лет.
Мнение: по городской легенде, Xen был написан на спор за выходные.

Видео 26:10 Рекламная пауза с музыкой.

Видео 28:34 Proxmox .. сами его обслуживают, сами его дорабатывают.
Мнение: Коллеги в РФ активно используют Proxmox, репозитории Proxmox (и Debian) из РФ в июне еще были открыты (потом не спрашивал), и вряд ли что-то поменялось. Ничего «самим» обслуживать не надо, если не считать за «обслуживание» apt get update.

Видео 30:50 VMware взяли операционную систему на базе ядра Linux.
Мнение: На базе Linux была ветка ESX. Ее развитие закончилась в 2007 году, с выходом своего ядра, VMware ESXi 3.5 First Public Release, билд 67921.

Видео 31:25 Это их (VMware) ветка (Linux)
Мнение: это не «их ветка», это, если говорит про ESXi, свое ядро ОС с 2007 года. Более того, в 2020 году, с выходом версии 7, оттуда (из VMkernel) выкинули модуль VMKLinux, когда-то давно оставленный для возможности через 333 трансляции использовать Linux драйвера. Завываний в сообществах было очень много. Про то, что злые проприетарщики (по итогам суда за SCSI) выкинули поддержку копролитов, поддержкой которых лет за 10 не озаботился ни вендор, ни сообщество. Сообщество не сделало драйвера за 10 лет, а виноват в этом почему-то VMware.
Photon OS при этом используется для vCenter, и не только.

Видео 34:15
Мнение: Это  новая мода такая, показывать волосатые колени?

Видео 34:40 Web интерфейс это наша собственная разработка.
Мнение: интерфейс да, а под ним Apache. База данных, согласно руководству, Postgres Pro. Это нормально, vCenter Server Appliance (VCSA) использует PostgreSQL.

Видео 35:50 GFS2 (Red Hat) плюс Pacemaker плюс Corosync на слайде.
Мнение: Pacemaker временами вытворял такое, странное.

Видео 36:06 используется GlusterFS
Мнение: Proxmox VE has officially dropped support for GlusterFS as a storage option starting with Proxmox VE 9.0. This decision is based on the Proxmox developers' assessment that GlusterFS is no longer actively maintained upstream.

Видео 37:10 Слайд Space Agent VM содержит qemu агент и virtio.
Мнение: Нормальное явление, там же qemu-kvm, и сеть от virtio

Видео 37:45 Реализован автоматический перенос виртуальной машины на резервный сервер в случае выхода из строя основного.
Мнение: это не перенос, это перезапуск виртуальной машины на другом сервере. Именно перенос, FT и аналоги, реализован у VMware by Broadcom как FT, и как-то был у Stratus (но могу ошибаться), но фирма Stratus перекуплена, и что то там еще с ней было. Есть еще аппаратные реализации FT, но дорого.

Видео 39:00 В SpaceVM реализован функционал микросегментации.
Мнение: судя по документации, не совсем микросегментации. Документация:  Правила фильтрации политик виртуальной сети и виртуальной машины. Для меня выглядит фильтрация на уровне L2+L3, но как-то не понятно, это все же L2 фильтрация, и я могу сделать группы IP\MAC внутри L2 сети, или нет. Судя по запрету широковещательных, это ближе к private vlan.

Видео 40:50 все исходные коды принадлежат вам
Мнение: в контексте разговора да, но код kernel (в том числе KVM), СУБД, и прочих компонентов, им, конечно, не принадлежит.

Видео 43:20 Технология Free Grid может применяться там, где закончилась лицензия NVidia Grid.
Мнение: «обход» какой угодно лицензии в отсутствии в РФ официального правительственного указа о разрешении обхода лицензий еще недавно трактовался как УК РФ 146, УК РФ 273.2 (потому что могли добавить и нейтрализацию средств защиты компьютерной информации). Что-то, видимо, поменялось.

Видео 45:30 Музыкальная пауза. Кому-то, похоже, переставляют Linux.

Видео 46:25 (SpaceVM) Устанавливается на любое железо.
Мнение: то есть, про тестирование и списки совместимости ( Hardware compatibility list) речь не идет, работает и ладно.
Ранее в видео говорилось про enterprise class, ну что ж.

Видео 54:00 Соревнования в надежности с VMware by Broadcom
Мнение: если говорить про ОС, то есть ESXi by VMware by Broadcom, то надежность у нее была, и остается, на принципиально не достижимом уровне, для текущих версий «всего на Linux». Почему? Потому что ОС, точнее vmkernel, распаковывался в оперативную память, и после запуска не нуждался ни в дисках, ни в каком-то загрузчике. Да, при смерти диска, на который ESXi сгружало логи, и где хранился агент, самой ОС могло стать нехорошо. Хост отваливался от vCenter, управление тупило, но сами гостевые виртуальные машины работали как часы, позволяя штатно, в согласованное время, выключить виртуальные машины, и штатно их запустить на другом хосте в кластере. Про это целая статья есть, Падучая ESXi или возвращение блудного хоста. И Grigory Pryalukhin статьи писал - Перезапуск Management agents в ESXi и терпение.
У Hyper-V есть схожая особенность, при смерти управляющей виртуальной машины (minroot 0 или как его там), гостевые виртуальные машины живут до выключения, даже на любой форме локальных дисков.
Windows на выдернутых \ и особенно перешедших в RO дисков, это очень странный, но реальный сценарий. И оно даже работает.
У Linux ? Выдерните диск из-под Linux с KVM и посмотрите. Мне выдергивали как-то случайно. Эффект .. странный.

Если делать соревнования по надежности, то что ESXi , что Windows server с Hyper-V работают без перезагрузок и патчей, по 3-5 лет. Я всегда очень удивлялся, что есть такие люди, которые по 3-5 лет без единого патча или ребута обходятся (Кто тут громко подумал МТС \ СДЭК \ Аэрофлот ? ), но технически это возможно. Делать так, конечно, не надо. Наиболее вредоносное ПО, с постоянно текущей памятью, приносит (в основном) отдел имитационной безопасности. С этим ПО все очень плохо, оно течет.
Это (подтекание) касается не только российского ПО, все «типа антивирусы», кроме Palo Alto, Sophos и Microsoft, вот эти все из правого верхнего угла 2023 Gartner® Magic Quadrant™ for Endpoint Protection, вот они все кривые и косые. Про CrowdStrike теперь не слышал разве что совсем слепой и глухой.

55:20 Теперь давайте про Citrix
Мнение. Странно, что забыты Horizon и Workspace ONE, они теперь не VMware by Broadcom.
VMware Horizon теперь Omnissa Horizon
AirWatch стал Workspace ONE, точнее Omnissa Workspace ONE Unified Endpoint Management (UEM)
Странно, что забыт Microsoft Remote Desktop Service. Инсталляций полно.
Я с Citrix почему-то сталкивался крайне редко, последний раз в 2015 году. Citrix Systems куда-то продавали, кто-то с кем-то его скрещивал, но я не слежу.
В 2018 году доля Citrix уже была невелика (Hypervisor Market Share – ControlUp Perspective). То есть, он не умирает, но есть тред на реддите, что в ряде отраслей его сложно заменить (Question: Is Citrix dying?).

Видео 58:30 Уход VMware
Мнение. Уход VMware, это очень громко сказано, но надо понимать нюанс. Да, российским фирмам отключили учетные записи на портале, не вернули деньги за поддержку, и перестали оказывать саму поддержку. Это было бы пол-беды. Все, кто хотел, решили вопрос со скачиванием.
Нюанс в том, что 26 мая 2022 года Broadcom объявил про покупку VMware, сделка была закрыта 22 ноября 2023 года, и понеслось.То переактивация записей, то переделка портала, то смена модели лицензирования, отчисление всего малоденежной части покупателей, выделение и продажа наружу Horizon и Workspace ONE, удаление ESXi free, удаление еще кучи продуктов.
Дошло до того, что Microsoft пишет: Migrate VMware virtual machines to Hyper-V in Windows Admin Center (Preview).
Лично мне смешно, что вот эти граждане ходят по граблям, но на Hyper-V переходить не хотят.
Поэтому, если бы VMware осталась VMware, а не стала VMware by Broadcom, то российский центр экспертизы имел бы смысл. А так, даже вне РФ, приходится бежать от них, теряя тапки.

Видео 1:04:00 Деньги никто не вернул
Мнение. А мог? Санкции в первую очередь были финансовые, свифт отключили. Я напомню, как доллары из банков РФ, со своих счетов, запретили получать гражданам РФ. Так что про чистоплотность относительно долларов РФ в российской банковской системе, еще до указа о запрете вывода, это вопрос не к вендорам, а к системе переводов. Не говоря про лимиты вывоза из РФ своих же денег в долларах.

Видео 1:05:00 .. и работает только по их правилам.
Мнение. Я напоминаю, что это видео лежит на ютубе, и странно говорить про работу по правилам и чистоплотности говорить в системе, которая с 1991 года не может вернуть долги собственным гражданам. Но говорить, безусловно, можно. Да, правовая система США и Европы работает в своем правовом поле. Именно поэтому до 2022 года в значимой части контрактов стояло, что разбирательство должно быть в Лондоне.

Видео 1:07:40 Как только у них (МЦСТ) появилась аппаратная поддержка виртуализации, на 16С
Мнение. Мне кажется, или 16С в серию так и не пошел?

Видео 1:07:45 Скоро будет новости (про МЦСТ Эльбрус 16С)
Мнение. На Тайване их не делают, неужели заказали партию в Китае? Потому что на 180/350 нм технологиях в РФ, 16С будет размерами с пеноблок. И такой же производительности, как пеноблок, из-за длины дорожек.

Видео 1:08:00 Большую часть приложений (x86-64\win32) можно будет использовать на Эльбрусе
Мнение. Эльбрус 4\8 и инженерный 16С в 2021 чудовищно отставал по производительности от Intel. Выступал на уровне Core i7 2600 из 2011 года. Запускать на нем Word \ Excel для целей можно, но уже в 1с баба Маша вас проклянет, и повесит вашу шкуру у чайника в кабинете бухгалтерии, по примеру Кристобаля Хозевича Хунты (у него было целое чучело).

Видео 1:14:00 Обход лицензирования NVidia через FreeGRID .. засылать несоразмерные платежи.
Мнение. Интересная логика про "несоразмерность". У той же Microsoft лицензия Datacenter, или расширенная поддержка Windows Server 2012 стоит, по моему мнению, несоразмерных денег. Почему не продавать активаторы, в таком случае? Но с этим вопросом пусть юристы разбираются, еще недавно за активацию "несоразмерных" лицензий Windows, фотошопа, 1С, и так далее, выписывали штраф. И у 1С уже много раз уже таймбомбы.

Видео 1:15:00 VMware ввели новый вид лицензирования.
Мнение. Как я уже писал, уже не VMware, но уже Broadcom. Они всегда (последние лет 20), были адскими жмотами, жлобами, и как хотите, так и называйте. Но не прячьте ваши денежки.
Чрезвычайно уважаемые люди давно сказали – будет как в Computer Associates и UCC-7 - CA-7. Так и вышло.

Видео 1:20:00 Отучиться на Cisco
Мнение. Первые два курса Cisco, ICND 1 и ICND 2, это курсы не про продукцию CISCO, а про базовейшую из базовых теорий. Cisco Press активно выпускала книги на русском, Cisco академия работала повсеместно. Курс, если вам было жалко денег, валялся везде и бесплатно. Пройдя базовую Cisco и понимая теорию, можно было уже на базовом уровне понимать, как это реализовано у остальных вендоров.

Видео 1:21:10 У них аппаратка DELL –а стояла, все было хорошо.
Мнение. При монтаже пропал фрагмент видео.

Видео 1:24:30 Виртуализация должна иметь стык для работы с антивирусом
Мнение. Broadcom очень давно, если не всегда, писал что:

It is not recommended to install antivirus software directly on the VMware vCenter Server Appliance (VCSA) due to potential performance issues
Unfortunately for defenders, ESXi hosts themselves do not currently support natively run EDR (endpoint detection and response). Best security practices for ESXi environments


То есть для провайдеров были решения на уровне интеграции модулей, но это не привычный антивирус.
А уж сколько люди поели с vGate.

По поводу Microsoft процитирую:

You have just deployed Hyper-V and the (in)security officer has decided that the standard edict of “all files and processes must be scanned because Windows is insecure” must be applied. Here’s my advice: Get that in writing. No, better: Get that written in their own blood, with your boss, your boss’s boss, and the (in)security officer’s boss as witnesses. Antivirus on a Hyper-V Host: Do You Need It?

Видео 1:27:00 Совместимость с системами хранения данных
Мнение. НАКОНЕЦ ТО дошли до озвучивания проблем с HCL. Спустя полтора часа.

Итого.
Видео 1:30:00. С тремя перерывами и двумя перекурами я дотащился до отметки 1:30 из 2:15

На просмотр и пометки за полтора часа реального времени ушло три часа из жизни. При этом никакой особо полезной информации я не узнал.
Окей, в РФ есть еще одна платформа на KVM (из 50 похожих?), и обещают, что платформа не хуже Proxmox.
Окей, если бы у меня стояла задача импортозамещения, я бы и так в 2022 начал смотреть на рынок российского ПО. Но у меня такой задачи нет в принципе, а на Proxmox на текущей работе начали уходить еще в начале 2024, когда стало очевидно, что будут перемены с политикой Broadcom, и что давно пора снизить число лицензий на Microsoft.
Рассказ про Linux внутри ESXi (хотя ESXi никак не Linux) заставляет меня несколько скептически оценивать все остальные заявления.
Но, меня это все не касается никак, а с таким подходом к лицензированию nVidia пусть юристы разбираются.
Досматривать я это даже не буду.

Показать полностью

Нужна помощь с OpenMediaVault

Приветствую, друзья!
Обращаюсь к сообществу за советом и помощью в настройке OpenMediaVault.
Суть такова: есть домашняя файлопомойка на которой крутиться OMV 7. При ее постройке была задача собрать минисервер из старых комплектух (на данный момент это FX8350 + 8Гб DDR3 + россыпь из пары SSD по 120 Гб и пары HDD на 250 Гб и 1 Тб) и поднять NAS, который может подключаться к WI-FI из коробки. Это важно, т.к. розетки ethernet в комнате нет, как и кабель притащить в неё нет возможности.
Так вот NAS на OMV 7 работает, но хочется большего. Чего, спросите вы? Конечно же miniDLNA и облачного доступа к папкам с фото для неноглядной супруги. miniDLNA работает без проблем - все телевизоры дома его видят, фильмы/сериалы смотрятся без проблем.
И тут начинаются трудности конкретно у меня. А именно настройка Docker. После установки Compose при попытке задать настройки папок в Docker система выдаёт вот такую ошибку:

500 - internal server error
Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LC_ALL=C.UTF-8; export LANGUAGE=; omv-salt deploy run --no-color compose 2>&1' with exit code '1': debian:
----------
ID: configure_compose_global_env_file
Function: file.managed
Name: /srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/compose/global.env
Result: True
Comment: File /srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/compose/global.env is in the correct state
Started: 19:35:42.484912
Duration: 142.62 ms
Changes:
----------
ID: configure_etc_docker_dir
Function: file.directory
Name: /etc/docker
Result: True
Comment: The directory /etc/docker is in the correct state
Started: 19:35:42.627644
Duration: 0.894 ms
Changes:
----------
ID: /etc/docker/daemon.json
Function: file.serialize
Result: True
Comment: File /etc/docker/daemon.json updated
Started: 19:35:42.628628
Duration: 52.602 ms
Changes:
----------
diff:
---
+++
@@ -1,3 +1,3 @@
{
- "data-root": "/srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/docker"
+ "data-root": "/var/lib/docker"
}
----------
ID: docker_install_packages
Function: pkg.installed
Result: False
Comment: An error was encountered while installing package(s): E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
Started: 19:35:43.508231
Duration: 21668.952 ms
Changes:
----------
ID: docker_compose_install_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed and are at the desired version
Started: 19:36:05.177328
Duration: 172.653 ms
Changes:
----------
ID: docker_purged_packages
Function: pkg.purged
Result: True
Comment: None of the targeted packages are installed or partially installed
Started: 19:36:05.350077
Duration: 0.749 ms
Changes:
----------
ID: docker
Function: service.running
Result: False
Comment: Failed to start docker.service: Unit docker.service not found.
Started: 19:36:05.373095
Duration: 148.741 ms
Changes:
----------
ID: /etc/systemd/system/docker.service.d/waitAllMounts.conf
Function: file.managed
Result: True
Comment: File /etc/systemd/system/docker.service.d/waitAllMounts.conf is in the correct state
Started: 19:36:05.522219
Duration: 94.262 ms
Changes:
----------
ID: systemd_daemon_reload_docker
Function: cmd.run
Name: systemctl daemon-reload
Result: True
Comment: State was not run because none of the onchanges reqs changed
Started: 19:36:05.617431
Duration: 0.005 ms
Changes:
----------
ID: create_usr_local_bin_dir
Function: file.directory
Name: /usr/local/bin
Result: True
Comment: The directory /usr/local/bin is in the correct state
Started: 19:36:05.617491
Duration: 0.926 ms
Changes:
----------
ID: configure_compose_scheduled_backup
Function: file.managed
Name: /etc/cron.d/omv-compose-backup
Result: True
Comment: File /etc/cron.d/omv-compose-backup is in the correct state
Started: 19:36:05.618500
Duration: 188.316 ms
Changes:
----------
ID: configure_compose_scheduled_update
Function: file.managed
Name: /etc/cron.d/omv-compose-update
Result: True
Comment: File /etc/cron.d/omv-compose-update is in the correct state
Started: 19:36:05.806966
Duration: 141.555 ms
Changes:
----------
ID: configure_compose_scheduled_prune
Function: file.managed
Name: /etc/cron.d/omv-compose-prune
Result: True
Comment: File /etc/cron.d/omv-compose-prune is in the correct state
Started: 19:36:05.948628
Duration: 138.424 ms
Changes:
----------
ID: configure_compose_scheduled_start
Function: file.managed
Name: /etc/cron.d/omv-compose-start
Result: True
Comment: File /etc/cron.d/omv-compose-start is in the correct state
Started: 19:36:06.087150
Duration: 150.164 ms
Changes:
----------
ID: configure_compose_scheduled_stop
Function: file.managed
Name: /etc/cron.d/omv-compose-stop
Result: True
Comment: File /etc/cron.d/omv-compose-stop is in the correct state
Started: 19:36:06.237415
Duration: 138.497 ms
Changes:

Summary for debian
-------------
Succeeded: 13 (changed=1)
Failed: 2
-------------
Total states run: 15
Total run time: 23.039 s
[ERROR ] Command 'apt-get' failed with return code: 100
[ERROR ] stdout: Get:1 file:/var/cache/openmediavault/archives InRelease
Ign:1 file:/var/cache/openmediavault/archives InRelease
Get:2 file:/var/cache/openmediavault/archives Release
Ign:2 file:/var/cache/openmediavault/archives Release
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:6 http://security.debian.org/debian rep InRelease
Hit:7 http://security.debian.org/debian-security bookworm-security InRelease
Get:8 https://openmediavault-plugin-developers.github.io/packages/... sandworm InRelease [3945 B]
Err:9 http://security.debian.org/debian rep Release
404 Not Found [IP: 146.75.118.132 80]
Get:10 https://deb.debian.org/debian stable-backports InRelease [53.7 kB]
Err:10 https://deb.debian.org/debian stable-backports InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
Hit:11 https://openmediavault.github.io/packages sandworm InRelease
Hit:12 https://download.docker.com/linux/debian bookworm InRelease
Hit:13 http://packages.openmediavault.org/public sandworm InRelease
Hit:14 http://deb.debian.org/debian bookworm InRelease
Hit:15 http://deb.debian.org/debian bookworm-updates InRelease
Ign:16 http://deb.debian.org/debian-security security InRelease
Err:17 http://deb.debian.org/debian-security security Release
404 Not Found [IP: 146.75.118.132 80]
Ign:18 https://github.com/OpenMediaVault-Plugin-Developers/packages... deb InRelease
Ign:19 http://mirror.yandex.ru/debian deb InRelease
Err:20 http://mirror.yandex.ru/debian deb Release
404 Not Found [IP: 213.180.204.183 80]
Err:21 https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release
404 Not Found [IP: 140.82.121.3 443]
Reading package lists...
[ERROR ] stderr: E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
[ERROR ] retcode: 100
[ERROR ] An error was encountered while installing package(s): E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
[ERROR ] The named service docker is not available
[ERROR ] Command '/bin/systemd-run' failed with return code: 5
[ERROR ] stderr: Running scope as unit: run-rfbb4a7942d6b4404acea4defd80bf95f.scope
Failed to stop docker.service: Unit docker.service not loaded.
[ERROR ] retcode: 5
[ERROR ] Command '/bin/systemd-run' failed with return code: 5
[ERROR ] stderr: Running scope as unit: run-r29ebbf139bb9468e865b6b20d0ecbb37.scope
Failed to start docker.service: Unit docker.service not found.
[ERROR ] retcode: 5
[ERROR ] Failed to start docker.service: Unit docker.service not found.

OMV\ExecException: Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LC_ALL=C.UTF-8; export LANGUAGE=; omv-salt deploy run --no-color compose 2>&1' with exit code '1': debian:
----------
ID: configure_compose_global_env_file
Function: file.managed
Name: /srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/compose/global.env
Result: True
Comment: File /srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/compose/global.env is in the correct state
Started: 19:35:42.484912
Duration: 142.62 ms
Changes:
----------
ID: configure_etc_docker_dir
Function: file.directory
Name: /etc/docker
Result: True
Comment: The directory /etc/docker is in the correct state
Started: 19:35:42.627644
Duration: 0.894 ms
Changes:
----------
ID: /etc/docker/daemon.json
Function: file.serialize
Result: True
Comment: File /etc/docker/daemon.json updated
Started: 19:35:42.628628
Duration: 52.602 ms
Changes:
----------
diff:
---
+++
@@ -1,3 +1,3 @@
{
- "data-root": "/srv/dev-disk-by-uuid-d7ccf09a-0b64-4d3d-8e21-54b10bdd45d1/docker"
+ "data-root": "/var/lib/docker"
}
----------
ID: docker_install_packages
Function: pkg.installed
Result: False
Comment: An error was encountered while installing package(s): E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
Started: 19:35:43.508231
Duration: 21668.952 ms
Changes:
----------
ID: docker_compose_install_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed and are at the desired version
Started: 19:36:05.177328
Duration: 172.653 ms
Changes:
----------
ID: docker_purged_packages
Function: pkg.purged
Result: True
Comment: None of the targeted packages are installed or partially installed
Started: 19:36:05.350077
Duration: 0.749 ms
Changes:
----------
ID: docker
Function: service.running
Result: False
Comment: Failed to start docker.service: Unit docker.service not found.
Started: 19:36:05.373095
Duration: 148.741 ms
Changes:
----------
ID: /etc/systemd/system/docker.service.d/waitAllMounts.conf
Function: file.managed
Result: True
Comment: File /etc/systemd/system/docker.service.d/waitAllMounts.conf is in the correct state
Started: 19:36:05.522219
Duration: 94.262 ms
Changes:
----------
ID: systemd_daemon_reload_docker
Function: cmd.run
Name: systemctl daemon-reload
Result: True
Comment: State was not run because none of the onchanges reqs changed
Started: 19:36:05.617431
Duration: 0.005 ms
Changes:
----------
ID: create_usr_local_bin_dir
Function: file.directory
Name: /usr/local/bin
Result: True
Comment: The directory /usr/local/bin is in the correct state
Started: 19:36:05.617491
Duration: 0.926 ms
Changes:
----------
ID: configure_compose_scheduled_backup
Function: file.managed
Name: /etc/cron.d/omv-compose-backup
Result: True
Comment: File /etc/cron.d/omv-compose-backup is in the correct state
Started: 19:36:05.618500
Duration: 188.316 ms
Changes:
----------
ID: configure_compose_scheduled_update
Function: file.managed
Name: /etc/cron.d/omv-compose-update
Result: True
Comment: File /etc/cron.d/omv-compose-update is in the correct state
Started: 19:36:05.806966
Duration: 141.555 ms
Changes:
----------
ID: configure_compose_scheduled_prune
Function: file.managed
Name: /etc/cron.d/omv-compose-prune
Result: True
Comment: File /etc/cron.d/omv-compose-prune is in the correct state
Started: 19:36:05.948628
Duration: 138.424 ms
Changes:
----------
ID: configure_compose_scheduled_start
Function: file.managed
Name: /etc/cron.d/omv-compose-start
Result: True
Comment: File /etc/cron.d/omv-compose-start is in the correct state
Started: 19:36:06.087150
Duration: 150.164 ms
Changes:
----------
ID: configure_compose_scheduled_stop
Function: file.managed
Name: /etc/cron.d/omv-compose-stop
Result: True
Comment: File /etc/cron.d/omv-compose-stop is in the correct state
Started: 19:36:06.237415
Duration: 138.497 ms
Changes:

Summary for debian
-------------
Succeeded: 13 (changed=1)
Failed: 2
-------------
Total states run: 15
Total run time: 23.039 s
[ERROR ] Command 'apt-get' failed with return code: 100
[ERROR ] stdout: Get:1 file:/var/cache/openmediavault/archives InRelease
Ign:1 file:/var/cache/openmediavault/archives InRelease
Get:2 file:/var/cache/openmediavault/archives Release
Ign:2 file:/var/cache/openmediavault/archives Release
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Ign:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Get:3 file:/var/cache/openmediavault/archives Packages
Get:4 file:/var/cache/openmediavault/archives Translation-en
Ign:4 file:/var/cache/openmediavault/archives Translation-en
Get:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:5 file:/var/cache/openmediavault/archives Translation-ru
Ign:6 http://security.debian.org/debian rep InRelease
Hit:7 http://security.debian.org/debian-security bookworm-security InRelease
Get:8 https://openmediavault-plugin-developers.github.io/packages/... sandworm InRelease [3945 B]
Err:9 http://security.debian.org/debian rep Release
404 Not Found [IP: 146.75.118.132 80]
Get:10 https://deb.debian.org/debian stable-backports InRelease [53.7 kB]
Err:10 https://deb.debian.org/debian stable-backports InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
Hit:11 https://openmediavault.github.io/packages sandworm InRelease
Hit:12 https://download.docker.com/linux/debian bookworm InRelease
Hit:13 http://packages.openmediavault.org/public sandworm InRelease
Hit:14 http://deb.debian.org/debian bookworm InRelease
Hit:15 http://deb.debian.org/debian bookworm-updates InRelease
Ign:16 http://deb.debian.org/debian-security security InRelease
Err:17 http://deb.debian.org/debian-security security Release
404 Not Found [IP: 146.75.118.132 80]
Ign:18 https://github.com/OpenMediaVault-Plugin-Developers/packages... deb InRelease
Ign:19 http://mirror.yandex.ru/debian deb InRelease
Err:20 http://mirror.yandex.ru/debian deb Release
404 Not Found [IP: 213.180.204.183 80]
Err:21 https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release
404 Not Found [IP: 140.82.121.3 443]
Reading package lists...
[ERROR ] stderr: E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
[ERROR ] retcode: 100
[ERROR ] An error was encountered while installing package(s): E: The repository 'http://security.debian.org/debian rep Release' does not have a Release file.
W: GPG error: https://deb.debian.org/debian stable-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 78DBA3BC47EF2265
E: The repository 'https://deb.debian.org/debian stable-backports InRelease' is not signed.
E: The repository 'http://deb.debian.org/debian-security security Release' does not have a Release file.
E: The repository 'http://mirror.yandex.ru/debian deb Release' does not have a Release file.
E: The repository 'https://github.com/OpenMediaVault-Plugin-Developers/packages... deb Release' does not have a Release file.
[ERROR ] The named service docker is not available
[ERROR ] Command '/bin/systemd-run' failed with return code: 5
[ERROR ] stderr: Running scope as unit: run-rfbb4a7942d6b4404acea4defd80bf95f.scope
Failed to stop docker.service: Unit docker.service not loaded.
[ERROR ] retcode: 5
[ERROR ] Command '/bin/systemd-run' failed with return code: 5
[ERROR ] stderr: Running scope as unit: run-r29ebbf139bb9468e865b6b20d0ecbb37.scope
Failed to start docker.service: Unit docker.service not found.
[ERROR ] retcode: 5
[ERROR ] Failed to start docker.service: Unit docker.service not found. in /usr/share/php/openmediavault/system/process.inc:247
Stack trace:
#0 /usr/share/php/openmediavault/engine/module/serviceabstract.inc(62): OMV\System\Process->execute()
#1 /usr/share/openmediavault/engined/rpc/config.inc(187): OMV\Engine\Module\ServiceAbstract->deploy()
#2 [internal function]: Engined\Rpc\Config->applyChanges()
#3 /usr/share/php/openmediavault/rpc/serviceabstract.inc(124): call_user_func_array()
#4 /usr/share/php/openmediavault/rpc/serviceabstract.inc(155): OMV\Rpc\ServiceAbstract->callMethod()
#5 /usr/share/php/openmediavault/rpc/serviceabstract.inc(628): OMV\Rpc\ServiceAbstract->OMV\Rpc\{closure}()
#6 /usr/share/php/openmediavault/rpc/serviceabstract.inc(152): OMV\Rpc\ServiceAbstract->execBgProc()
#7 /usr/share/openmediavault/engined/rpc/config.inc(208): OMV\Rpc\ServiceAbstract->callMethodBg()
#8 [internal function]: Engined\Rpc\Config->applyChangesBg()
#9 /usr/share/php/openmediavault/rpc/serviceabstract.inc(124): call_user_func_array()
#10 /usr/share/php/openmediavault/rpc/rpc.inc(86): OMV\Rpc\ServiceAbstract->callMethod()
#11 /usr/sbin/omv-engined(546): OMV\Rpc\Rpc::call()
#12 {main}

Пр этом, конечно же сам Docker не установлен и не запущен. При попытке его перезапуска система выдаёт ошибку с указанием того, что Docker не установлен.
Попытка его переустановки заканчивается неудачей с ошибкой о потере соединения. Подобные сообщения в разных РУ-форумах или англоязычных пестрят сообщениями о том, что нужно все делать по инструкции с omv-extrass или дают ssl команды, которые в моем случае её помогают - принудительное переустановка либо заканчивается неудачей, либо реакция системы остаётся неизменной.

Все установки я делал как было указано на страничках соответствующих пакетов, в т.ч. omv-extras касательно последовательности установки Compose и настройки Docker.

Ребята, куда смотреть? Чего ему не хватает и откуда это взять?

PS. Я не программист и не сисадмин. Я простой инженер машиностроитель. Поэтому заранее прошу давать ответы и советы на обывательском языке


Показать полностью
20

Переход на Proxmox (Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть 11. Система прав

Для лиги лени: ничего нового, проходите мимо

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.
Часть 6. Возвращаемся к запуску Ansible
Часть 7. Разница концепций
Разница концепций. Часть 7.1 Обновления компонентов и система информирования.
Разница концепций. Часть 7.2 Сети
Разница концепций. Часть 7.3 предисловие к теме «Дисковое пространство».
Разница концепций. Часть 7.4 «Локальное дисковое пространство».
Часть 8. Разница концепций
Разница концепций. Часть 8.1 Расположение дисков VM
Разница концепций. Часть 8.2 Добавление дисков к хосту
Разница концепций. Часть 8.3 Настройка нескольких дисков
Разница концепций. Часть 8.4 Управление диском виртуальной машины.
Часть 9. Скорости дисков
Часть 10. Внешние СХД, iSCSI

Часть 11. Система прав

Сначала еще раз немного теории.
Про разницу аутентификации (ты чьих будешь, чей холоп ?) и авторизации (у вас есть право) много раз написано. Кроме них есть и единый источник истины (Single Source of Truth, SSOT). Истины для системы управления жизненным циклом пользователеля, User lifecycle management (ULM), то есть для плановых замен паролей и сертификатов, проверка того, что учетная запись еще включена и имеет те же самые права, что и ранее, и прочее.
Есть два подхода – локальное хранение учетных записей, и удаленное хранение учетных записей.
С локальным хранением все понятно, с удаленным хранением тоже - Identity and access management (IAM or IdAM) or Identity management (IdM), ISO/IEC 24760-1 a framework for identity management, и прочие слова.
Вокруг этого начинаются протоколы, фреймворки, методологии, ISO\ГОСТ, и конечные реализации, в том числе реализации системы прав через ролевую модель, RBAC \ ABAC \ PBAC, вот это все.
Отдельно существуют системы хранения секретов – покойный RatticDB, модные современные HashiCorp Vault, Bitwarden Vault, их клоны и так далее.

В чем проблема? Для малой организации на 2 сервера и 20 сотрудников никакой проблемы с раздачей прав нет. Альтернативно одаренные администраторы сразу дают всем права «на все», хотя бывает и хуже. Как вам, например, заведение на Linux серверах учетных записей root1, root2, root3 и передача паролей от них? Потому что менять руками сложно, а ssh \ bash \ Ansible слова слишком страшные.
Реализаций центральной служб каталогов несколько, многие (как  Novell Netware Directory Services (NDS) \ NetIQ eDirectory) уже ушли в небытие. Замена AD на SAMBA не является предметом данной статьи.

Предметом специальных BDSM практик является использование Realmd\ SSSD, или такое отвратительное явление, как хранение сертификатов в домене. Оба извращения не являются предметом данной статьи.

Что есть в Proxmox .
Конечно, в Proxmox есть встроенная авторизация, в web и SSH, и возможность использовать внешние сервисы.

По умолчанию в Proxmox (из коробки) включены:
Linux PAM standard authentication
Proxmox VE authentication server

Можно добавить Microsoft Active Directory (AD), LDAP и OpenID. Можно добавить 2FA.

В чем разница Linux PAM standard authentication и Proxmox VE authentication server?
Отвечает reddit:

long story short: PAM users are normal gnu/linux user, as in username/password that you can use to log in via ssh.

PVEAS otoh are Proxmox users, they cannot be used to log in via ssh, they are stored in the clustered/distributed storage along with proxmox configuration and they are the same on all the nodes of a proxmox clusters

Как это работает в GUI на уровне DC  
Завожу пользователя user_pam как Linux PAM на уровне DC, но в поле заведения пользователя нет пароля.
Есть выбор группы, но нет предопределенных групп.
При попытке смены пароля для пользователя user_pam получаю ошибку:
change password failed: user 'user_pam' does not exist (500)
В /etc/passwd – нет такого юзера.
В /etc/pve/user.cfg есть оба созданных
По команде «pveum user list» выводится таблица того, что насоздавал. В том числе user_pam@pam.
По команде pveum passwd user_pve@pve можно сменить пароль для юзера в PVE
По команде pveum passwd user_pam@pam сменить пароль тоже нельзя – получаю ошибку
change password failed: user 'user_pam' does not exist

Но в таблице (pveum user list) он есть.

Когда я заводил юзера user_pve в realm Proxmox VE, система сразу предложила не только создать юзера, но и назначить ему права из заранее созданных наборов ролей – от Administrator до No access. 
Но это окно почему-то возникает только один раз, и это магия.

В остальных случаях оказывается, что интерфейс писали люди со своими представлениями, и права выставляются на вкладке Permission, это не только именование раздела.
И изнутри свойств объекта user эти права можно только посмотреть. Как и из Permission, или add, или remove

Остальные права выставляются как права на объект в дереве обьектов

В сочетании с ролями «что с ними делать». Наличие двух ролей Administrator и PVEAdmin только делает жизнь веселее

Управление входом в GUI отличается тем же своеобразием.
В CLI я вижу пользователя как root@pam 
Но войти в GUI, как root@pam я не могу, вне зависимости от выбора realm.
То есть, система не может сама опознать, что я ввел @realm, и realm надо выбирать вручную в GUI, и входить без указания @realm.

Управление ролями в GUI тоже отличается неожиданным подходом. К роли можно выбрать привилегии, но в выпадающем списке нет чекбоксов, но работает OnClick и OnClickAgain , то есть выбор по клику. Это было очень неожиданно.

Чуть странная, с первого взгляда, но понятная ролевая модель. То что у Microsoft называется AGDLP, тут соответственно это User <> Group <> Role <> Permissions

Отредактировать права из GUI нельзя, можно только удалить и создать. УДОБНО!

Права на «просто логин» можно дать через роль No Access, ок, понятно.
Права на консоль можно дать через привилегию Sys.Console, только она не работает «из коробки». Привилегию я выдал, причем на /», причем наследование тоже какое-то не очевидное. Но это привилегия не на запуск консоли, а на право на запуск консоли, и консоль снова запрашивает логин-пароль, но user_pve прав на вход в консоль не имеет. Решение «делать через sudoerr» описано, но проблеме со всей системой прав уже семь лет.

Наблюдается расхождение. Пользователь может быть заведен в Linux, и иметь права на SSH, и на su, но не иметь прав на pveum.

Очень, очень странно.

Примечание. В Hyper-V , несмотря на развесистую систему прав, нет делегирования права на только Hyper-V или отдельную оснастку. Можно знатно поиграть в PowerShell Web Access (PSWA),  PswaAuthorizationRule  и security descriptor definition language (SDDL), но это надо знать, во что играть.

Заключение.

Система понятна, много описано, много описано на практических примерах и форуме. Жить можно, но root отключить нельзя.
По многим причинам, в том числе я еще не описывал все приключения с кластеризацией.

Литература
Difference between RBAC vs. ABAC vs. ACL vs. PBAC vs. DAC
Red Hat Chapter 2. Using Active Directory as an Identity Provider for SSSD
Red Hat Chapter 3. Using realmd to Connect to an Active Directory Domain
Realmd and SSSD Active Directory Authentication
Proxmox User Management
Proxmox Proxmox VE Administration Guide - 14. User Management
Proxmox forum group permissions
Proxmox forum "change password failed: user 'johnsmith' does not exist (500)"
Proxmox forum Add user/group account with ssh access and root privileges
Proxmox forum SSH Login with VE Authentication Server
Proxmox Bugzilla Bug 1856 - System Updates with non-root User using Web-GUI
Proxmox CLI pveum(1)
Reddit ELI5: PAM vs PVE Authentication Server
Microsoft PowerShell Web Access in action

Показать полностью 4
7

А давайте встроим ии в powershell. Часть вторая. Поисковик спецификаций

Интерфейс командной строки программы

Интерфейс командной строки программы

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

Что нам понадобится:
Gemini-CLI
OutConsoleGridView

Дисклеймер. В пикабу нет редактора кода - поэтому такое форматирование и картинки. В конце поста я дам ссылку на github. Почитайте, и если вам интересно, смотрите код на гитхабе.

Инженеры, разработчики и другие специалисты сталкиваются с тем, что нужно узнать точные параметры, например материнской платы, автомата в электрощитке или сетевого коммутатора. Наш справочник всегда будет под рукой и по запросу соберет информацию, уточнит параметры в интернете и вернет искомую таблицу. В таблице можно выбрать необходимый параметр/ы и по необходимости продолжить углубленный поиск. В дальнейшем мы научимся передавать результат по конвейеру для дальнейшей обработки: экспорта в таблицу Excel, Google таблицу, хранения в базе данных или передачи в другую программу В случае неудачи модель посоветует, какие параметры надо уточнить. Впрочем, смотрите сами:

Шаг 1: Настройка

Назначение строк:

  • $env:GEMINI_API_KEY = "..." — устанавливает API ключ для доступа к Gemini AI

  • if (-not $env:GEMINI_API_KEY) — проверяет наличие ключа, завершает работу если его нет

  • $scriptRoot = Get-Location — получает текущую рабочую директорию

  • $HistoryDir = Join-Path... — формирует путь к папке для хранения истории диалогов (.gemini/.chat_history)

  • $timestamp = Get-Date... — создает временную метку в формате 2025-08-26_14-30-15

  • $historyFileName = "ai_session_$timestamp.jsonl" — генерирует уникальное имя файла сессии

  • $historyFilePath = Join-Path... — создает полный путь к файлу истории текущей сессии

Проверка окружения — что должно быть установлено.

Что проверяется:

  • Наличие Gemini CLI в системе — без него скрипт не работает

  • Файл GEMINI.md — содержит системный промпт (инструкции для AI)

  • Файл ShowHelp.md — справка для пользователя (команда ?)

Основная функция взаимодействия с AI.

Задачи функции:

  • Вызывает Gemini CLI с указанной моделью и промптом

  • Захватывает все выводы (включая ошибки)

  • Очищает результат от служебных сообщений CLI

  • Возвращает чистый ответ AI или $null при ошибке

Функции управления историей.

Назначение:

  • Add-History — сохраняет пары «вопрос-ответ» в JSONL формате

  • Show-History — показывает содержимое файла истории

  • Clear-History — удаляет файл истории текущей сессии

Функция отображения выбранных данных

Show-SelectionTable

Show-SelectionTable

Задача функции: После выбора элементов в Out-ConsoleGridView показывает их в консоли в виде аккуратной таблицы, чтобы пользователь видел, что именно выбрал.

Основной рабочий цикл.

Основой цикл программы

Основой цикл программы

Ключевые особенности:

  • Индикатор [Выборка активна] показывает, что есть данные для анализа

  • Каждый запрос включает всю историю диалога для поддержания контекста

  • AI получает и историю, и выбранные пользователем данные

  • Результат пытается отобразиться как интерактивная таблица

  • При неудаче парсинга JSON показывается обычный текст

Структура рабочей директории.

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

Инициализация: подготовка к работе

При запуске скрипт первым делом настраивает рабочее окружение. Он устанавливает API ключ для доступа к Gemini AI, определяет текущую папку как базовую директорию и создает структуру для хранения файлов. Особое внимание уделяется истории диалогов - для каждой сессии создается уникальный файл с временной меткой, например ai_session_2025-08-26_14-30-15.jsonl.

Затем система проверяет, что все необходимые инструменты установлены. Она ищет Gemini CLI в системе, проверяет наличие файлов конфигурации (системный промпт и справка). Если что-то критично важное отсутствует, скрипт предупреждает пользователя или завершает работу.

Запуск интерактивного режима

После успешной инициализации скрипт переходит в интерактивный режим - показывает приветственное сообщение и ждет ввода от пользователя. Приглашение выглядит как 🤖AI :) > и меняется на 🤖AI [Выборка активна] :) > когда у системы есть данные для анализа.

Обработка пользовательского ввода

Каждый ввод пользователя сначала проверяется на служебные команды через функцию Command-Handler. Эта функция распознает команды ? (справка из файла ShowHelp.md), history (показать историю сессии), clear и clear-history (очистить файл истории), gemini help (справка по CLI), exit и quit (выход). Если это служебная команда, она выполняется немедленно без обращения к AI, и цикл продолжается.

Если это обычный запрос, система начинает формировать контекст для отправки в Gemini. Она читает всю историю текущей сессии из JSONL файла (если он существует), добавляет блок с данными из предыдущей выборки (если есть активная выборка), и объединяет все это с новым запросом пользователя в структурированный промпт с разделами "ИСТОРИЯ ДИАЛОГА", "ДАННЫЕ ИЗ ВЫБОРКИ" и "НОВАЯ ЗАДАЧА". После использования данные выборки обнуляются.

Взаимодействие с искусственным интеллектом

Сформированный промпт отправляется в Gemini через командную строку. Система вызывает gemini -m модель -p промпт, захватывает весь вывод и очищает его от служебных сообщений CLI. Если происходит ошибка на этом этапе, пользователь получает предупреждение, но скрипт продолжает работать.

Обработка ответа AI

Полученный от AI ответ система пытается интерпретировать как JSON. Сначала она ищет блок кода в формате json..., извлекает содержимое и пытается его распарсить. Если такого блока нет, парсит весь ответ целиком. При успешном парсинге данные отображаются в интерактивной таблице Out-ConsoleGridView с заголовком "Выберите строки для следующего запроса (OK) или закройте (Cancel)" и множественным выбором. Если JSON не распознается (ошибка парсинга), ответ показывается как обычный текст в голубом цвете.

Работа с выборкой данных

Когда пользователь выбирает строки в таблице и нажимает OK, система выполняет несколько действий. Сначала вызывается функция Show-SelectionTable, которая анализирует структуру выбранных данных: если это объекты с свойствами, она определяет все уникальные поля и показывает данные через Format-Table с автоподбором размера и переносом. Если это простые значения, отображает их как нумерованный список. Затем выводит счетчик выбранных элементов и сообщение "Выборка сохранена. Добавьте ваш следующий запрос (например, 'сравни их')".

Выбранные данные преобразуются в сжатый JSON с глубиной вложенности 10 уровней и сохраняются в переменной $selectionContextJson для использования в следующих запросах к AI.

Ведение истории

Каждая пара "запрос пользователя - ответ AI" сохраняется в файл истории в формате JSONL. Это обеспечивает непрерывность диалога - AI "помнит" весь предыдущий разговор и может ссылаться на ранее обсуждавшиеся темы.

Цикл продолжается

После обработки запроса система возвращается к ожиданию нового ввода. Если у пользователя есть активная выборка, это отражается в приглашении командной строки. Цикл продолжается до тех пор, пока пользователь не введет команду выхода.

Практический пример работы

Представим, что пользователь запускает скрипт и вводит "RTX 4070 Ti Super":

  1. Подготовка контекста: Система берет системный промпт из файла, добавляет историю (пока пустую) и новый запрос

  2. Обращение к AI: Полный промпт отправляется в Gemini с просьбой найти характеристики видеокарт

  3. Получение данных: AI возвращает JSON с массивом объектов, содержащих информацию о различных моделях RTX 4070 Ti Super

  4. Интерактивная таблица: Пользователь видит таблицу с производителями, характеристиками, ценами и выбирает 2-3 интересующие модели

  5. Отображение выборки: В консоли появляется таблица с выбранными моделями, приглашение меняется на [Выборка активна]

  6. Уточняющий запрос: Пользователь пишет "сравни производительность в играх"

  7. Контекстный анализ: AI получает и исходный запрос, и выбранные модели, и новый вопрос - дает детальное сравнение именно этих карт

Завершение работы

При вводе exit или quit скрипт корректно завершается, сохранив всю историю сессии в файл. Пользователь может в любой момент вернуться к этому диалогу, просмотрев содержимое соответствующего файла в папке .chat_history.

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

Серия «Философия PowerShell»
Серия «gemini-cli»

Полезно? Подпишись.
Понравилось — ставь «+»
Задавай вопросы в комментариях 👇👇👇
Удачи! 🚀

UPD:

А в этом посте я рассказываю о А давайте встроим ии в powershell. Начало работы с MS AI Shell в PowerShell

Показать полностью 7 1
2

Низкая скорость wifi, как поправить?

Схема: роутер1 подключён к сети интернет. работает DHCP.
Роутер 2 подключен через wan порт к lan порту роутера1 и получает от него адрес. На роутере1 адрес за роутером2 зарезервирован.
На роутере2 работает DHCP, он раздает wifi. Устройства корректно получают от роутера2 адреса, корректно ходят в интернет, но скорость очень низкая.
Если роутер2 подключить к роутеру 1 через lan порт - скорость приходит в норму.
Подскажите, куда смотреть?

11

Задачи имитационной безопасности в России часть 2

Для лиги лени: Ит-шники неправильно понимают бизнес задачи имитационной безопасности

Часть 1: Задачи отдела имитационной безопасности сводятся не к устранению проблем, а к поиску виноватых.

Часть 2.
Есть два прямо противоположных варианта работы имитационной безопасности.
Вариант первый. Назову, условно, «А». Задачи и процессы имитации безопасности строятся таким образом, чтобы менеджмент максимально от них дистанцировался, и максимально размыть ответственность. Методы размывания ответственности отлично и неоднократно описаны.
Глобальную бизнес-цель «в деньгах» при этом никто считать не будет. В некоторых случаях это, скорее, косвенный налог на уполномоченную (кто сказал аффилированную? Нет нет!) фирму.

Вариант второй. Назову, условно, «М». Задачи и процессы строятся таким образом, чтобы в системе управления образовалось двое (трое, много) властие. При этом ответственность не размывается, а перекладывается на конечного исполнителя. Это хороший (смотря для кого, конечно), метод экономии фондов оплаты труда, показываемый менеджменту в цифрах. Задачи и сроки (невыполнимые) со стороны отдела имитации безопасности поставлены, и на этом их задача выполнена, КПИ и бизнес цели отдела имитации достигнуты.

До какой степени маразма может дойти ситуация?
До любой, пока это не влияет на бизнес показатели. То есть, пока не падают продажи, точнее, пока не падают настолько, что это становится не только заметно, но и чувствительно для акционеров, и пока не начинает влиять на премию лиц, принимающих решения (ЛПР).
Даже падение качества сервиса, если это:
- не несет прямые и моментальные убытки, и
- не влияет на отсутствие обратной связи и
- не влияет на отсутствие регулировки контура управления.
Не повлияет на принятие (или не принятие – бездействие, не выдача ответа это тоже решение) управленческих решений, со стороны лиц, принимающих решения.

Наоборот, ИТ отделы (иногда справедливо) рассматриваются как куча бездельников, которые могут в 2-3 раза повысить производительность труда, но не хотят. Зажрались, одни расходы на них. Дармодеды!
Крайне редко (никогда) ситуация доходит до того, чтобы бизнес выступил арбитром, тем более, если проблема находится на уровне недовольства конечных исполнителей, тем более недовольства конечных исполнителей из центра расходов (Как вы знаете, ИТ относится к центру расходов по финансам).

Возникает ли ситуация «бизнес вдруг как поймет, что мы хорошие, а они плохие»?
Нет. Не возникает. Потому что «они» хорошие, только не в понимании ИТ.
Может возникнуть другая ситуация – аудит. Там, где появляется отдел имитации, зачастую причиной становится появление имитации аудита от регулятора. Почему имитации? Потому что есть финансовые соображения, что бизнес сразу совсем закрывать нельзя, нужно выписать рекомендации по устранению. Сначала посвистеть, потом пробить свободный удар (с ноги), потом выписать желтую карточку, еще одну желтую карточку, и только потом выписать красную. Заказчик аудита, точнее заинтересованная в аудите сторона, прекрасно понимает, что задачи аудита – не устранить «обиды и несправедливости», а намекнуть  бизнес-блоку, чтобы тот уделил чуть больше внимания .. Вы подумали центру расходов? Нет. Улучшению имитации «все хорошо». И даже это всегда очень долгий процесс, полтора-два года, за время которого все участники успеют получить по 2-3 годовые премии. Стоит ли волноваться про процессы такой длительности, если потом можно еще и сменить работу?

Заключение.

Квадрат Декарта помогает оценить ситуацию, ответив на четыре вопроса:
1) Что будет, если это произойдет?
2) Что будет, если этого не произойдет?
3) Чего не будет, если это произойдет?
4) Чего не будет, если этого не произойдет?

Исходя из него, и стоит оценивать ситуацию с задачами по имитации безопасности. Может оказаться так, что вся эта имитация как любовь в резинке: движение есть, прогресса нет.

Иногда бывает так, что компанию просто доедают. Цинично, без сожалений, просто дожигая все, что можно. Типа как киты планктон, ничего личного.
При этом на публику будут рассказы про жертвование собой, и прочие драмы.

Примеров полно, и ситуация с имитацией безопасности только один из вариантов.

Именно о таких случаях китайцы в древности говорили: "Когда носорог глядит на луну, он напрасно тратит цветы своей селезенки".

Показать полностью
12

Переход на Proxmox (Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть 10. Внешние системы хранения данных - iSCSI

Для лиги лени: ничего нового, проходите мимо.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.
Часть 6. Возвращаемся к запуску Ansible
Часть 7. Разница концепций
Разница концепций. Часть 7.1 Обновления компонентов и система информирования.
Разница концепций. Часть 7.2 Сети
Разница концепций. Часть 7.3 предисловие к теме «Дисковое пространство».
Разница концепций. Часть 7.4 «Локальное дисковое пространство».
Часть 8. Разница концепций
Разница концепций. Часть 8.1 Расположение дисков VM
Разница концепций. Часть 8.2 Добавление дисков к хосту
Разница концепций. Часть 8.3 Настройка нескольких дисков
Разница концепций. Часть 8.4 Управление диском виртуальной машины.
Часть 9. Скорости дисков

Часть 10. Внешние системы хранения данных

Что есть в 2025 году из протоколов подключения систем хранения?
FCP, Fibre Channel Protocol. Старый, постепенно отмирающий, но менять надежность и привычность FCP на DCB сложно. Не столько сложно технически, сколько организационно. Для внедрения нужно будет бить сетевиков палкой, чтобы не пытались рассказывать про LAG вне контекста Mellanox 6 (или 8, не помню).
iSCSI \  iSCSI Extensions for RDMA (iSER). C iSCSI работает вообще все, вопрос с какой скоростью и с какими настройками. iSER при этом под вопросом самого своего существования.
SMB Multichannel.  Живее всех живых.
NVMe over Fabrics в ее вариантах – over FC, over Ethernet, over IB.

Поскольку речь про Proxmox, то SMB Multichannel, крайне удобная и рабочая конструкция для S2D, Storage Spaces Direct, тут рассматриваться не будет.
Подключение по FC сейчас, ввиду политики Broadcom,  вещь неоднозначная.

Остается iSCSI.

Открываем OceanStor Dorado and OceanStor 6.x and V700R001 Host Connectivity Guide for Red Hat и читаем до просветления главу Establishing iSCSI Connections и Recommended Configurations for 6.x and V700R001 Series Storage Systems for Taking Over Data from Other Huawei Storage Systems When the Host Uses the OS Native Multipathing Software.

Или, если у вас другой вендор системы хранения, читаем его документацию. Вообще, конечно, очень странно устроен Linux в части device-mapper-multipath. Точнее, у Hyawei пишется, что настройки нужно делать в alua, и не содержит указаний на настройки rr_min_io, хотя path_selector и выставлен в "round-robin 0". В главе про ESXi для AFA (all flash array) указано про rr=1, а тут нет. Но это настройки больше про скорость, а так и 1000 IOPS сойдет (но может быть не так просто).

Теперь к практике. Сделаю iSCSI target на Windows server, эта функция там из коробки лет 20, и добавлю к Proxmox.

Сначала спланирую сеть, как обычно – с извращениями.
Vlan 11, Windows server 172.16.211.151/24; Proxmox 172.16.211.162/24
Vlan 12, Windows server 10.0.12.151/24; Proxmox 10.0.12.162/24
LACP для iSCSI не рекомендован много кем, в том числе из-за сложностей с Multiple Connections per Session.
Добавляю новый свитч:
New-VMSwitch -Name Privet01 -SwitchType Private
Добавляю по 2 сетевые в обе VM -
Add-VMNetworkAdapter -VMName Proxmox -SwitchName Privet01 -Name V11
Add-VMNetworkAdapter -VMName Proxmox -SwitchName Privet01 -Name V12
Set-VMNetworkAdapterVlan -VMName Proxmox -Access -VlanId 11 -VMNetworkAdapterName V11
Set-VMNetworkAdapterVlan -VMName Proxmox -Access -VlanId 12 -VMNetworkAdapterName V12
и аналогично для второй VM

В этой конфигурации есть проблема. По умолчанию для VMNetworkAdapter включен VMQ. В некоторых сценариях и с некоторыми сетевыми картами эта функция работает очень плохо, вызывая какие-то разрывы, там, где не было ни единого разрыва, причем влияя на весь сетевой стек.

Я бы рекомендовал всем, кто использует Hyper-V и VMQ, проводить тестирование работы до запуска в продуктив.

В этой конфигурации есть еще одна проблема. После создания нового виртуального коммутатора и добавления двух сетевых карт в VM Windows server, первая сетевая карта в VM перестала получать адрес по DHCP, и основной адаптер стал (может, и был, я не проверил)
Microsoft Hyper-V Network Adapter #2
Первый раз такое вижу. Ситуация усугубляется тем, что старый интерфейс управления сетями в Windows server 2025 спрятали, а новый убогий.
Удалил вновь созданный виртуальный коммутатор, хотя он был SwitchType Private, все пересоздал, перезагрузил, сделал статичный IP внутри VM – вроде, работает.
Вопрос «что это было» не раскрыт.

Настройка VM Windows Server
Самое неудобное – это найти по MAC адресу, какая сетевая карта куда включилась.
Get-NetAdapter
вы думали
Set-NetIPAddress -InterfaceIndex 10 -IPAddress 172.16.211.151 -PrefixLength 24 ?

Ничего подобного.
New-NetIPAddress -InterfaceIndex 10 -IPAddress 172.16.211.151 -PrefixLength 24
New-NetIPAddress -InterfaceIndex 12 -IPAddress 10.0.12.151 -PrefixLength 24

И, конечно,
Install-WindowsFeature -Name FS-iSCSITarget-Server –IncludeManagementTools

Настройка Proxmox
ip a, только для того чтобы увидеть MAC адреса интерфейсов
nano /etc/network/interfaces

auto vmbr1.11

iface vmbr1.11 inet static
address 172.16.211.162/24

auto vmbr1
iface vmbr1 inet manual
bridge-ports eth2
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 11

не забываем про ifreload -a
И даже пинг не работает на таком свиче.  Что-то прописать забыл. Очень неудобная история с системой интерфейсов в Proxmox. С одной стороны со схемой тут я переусложнил, с другой – в целом система настройки Linux bridge – vlan interface не самая удобная. Слишком много сущностей приходится прописывать.
Примечание. Не забыл. Прописал лишний раз – у меня же отдельный интерфейс отдан в VM, ему не надо настраивать vlan, как будто он в транк включен. Поэтому все проще, не забыть разрешить any any в windows firewall (в рабочих сетях так делать, конечно, не надо), и :

iface eth2 inet manual
auto vmbr2

iface vmbr2 inet manual
address 172.16.211.162/24
bridge-ports eth2
bridge-stp off
bridge-fd 0

аналогично настроить iface eth3, и заработало .
желательно сразу посмотреть ID инициатора -
cat /etc/iscsi/initiatorname.iscsi | grep InitiatorName=

Отдаем iSCSI target с Windows server

Тут ничего нового уже много лет. Server manager – files services – iSCSI – далее- далее – прописать (для стенда сойдет) IP адреса и готово. Конечно, с CHAP. Получаем iSCSI target с Windows server

Два НО.
Первое НО. Нужно заранее прочитать про  Set-IscsiTargetServerSetting и сделать
Set-IscsiTargetServerSetting -IP 192.168 (что там у меня)  -Enable $False
и проверить
netstat -an | findstr "3260"
Менять ли приоритеты для IPv6 или их отключать – ваше личное дело. Напоминаю, что чекбокс «отключить ipv6» не работает уже лет 10. Нужно делать как написано в Guidance for configuring IPv6 in Windows for advanced users
или сделать
Get-NetIPAddress | Select IPAddress
Set-IscsiTargetServerSetting для ipv6
и перепроверить по старой школе
netstat -an | findstr "3260"
Или по новой школе
Get-NetTCPConnection | where {$_.LocalPort -eq 3260}

Второе НО.
Для тестов не забыть сделать:
New-NetFirewallRule -DisplayName "001  permit any 172.16.211.162" -Direction Inbound -Action Allow -RemoteAddress 172.16.211.162
New-NetFirewallRule -DisplayName "001  permit any 10.0.12.162" -Direction Inbound -Action Allow -RemoteAddress 10.0.12.162

С IPv6 поступать опционально, внимательно прочитав Guidance for configuring IPv6 in Windows for advanced users

Подключаем iSCSI target с Windows server на Proxmox (Initiator) - отладка

В GUI подключение iSCSI находится в datacenter-storage, а не в  управлении хостом.
Редактируем /etc/iscsi/iscsid.conf согласно статье Proxmox Multipath и рекомендациям вендора СХД. Или не редактируем!
открываем GUI и .. и видим фигу, потому что полей для авторизации \ CHAP нет, а без них никакого target.
Отключаю CHAP, и все равно ничего не видно. Как обычно, в GUI никаких деталей нет, поэтому проверять придется руками.
Начнем по встроенной инструкции по кнопке HELP в GUI -
pvesm status
pvesm scan iscsi 172.16.211.151:3260:3260
и получу iscsiadm: No portals found

Пойду почитаю Подключение iSCSI диска в Proxmox,
iscsiadm --mode discovery --type sendtargets --portal 172.16.211.151

и получу тот же - iscsiadm: No portals found
nc -z 172.16.211.151 3260
выдает ничего. Пинг есть.

Поиграем в отладку!
nc -v 172.16.211.151 3260 со стороны инициатора (proxmox) работает с выводом результата
[172.16.211.151] 3260 (iscsi-target) open
netstat -an | findstr "211" со стороны target (Windows) работает с выводом результата
TCP  172.16.211.151:3260  172.16.211.162:37638  ESTABLISHED

Осталось протереть глаза, и оказалось, что я, вводя разрешенные IP в target, ввел не 172.16.211.162, а 172.16.11.162
ввел нужные данные, и
pvesm scan iscsi 172.16.211.151:3260 
выдал все что надо.
Иначе бы пришлось лезть в tcpdump с обеих сторон. Для Windows, после ухода на пенсию (deprecated) Microsoft Network Monitor и Microsoft Message Analyzer, пока что есть wireshark.

Верну обратно chap, user = user, password = password1234, добавлю через GUI, посмотрю что вышло в
/etc/pve/storage.cfg
Вышло как по руководству,

iscsi: mynas
portal 10.10.10.1
target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd
content none

И затем в GUI делаем Datacenter – Storage – add – LVM –

То, что это делается на уровне DC, а не на уровне хоста, раздражает конечно. Как и vmotion диска на уровне VM – hardware.

При этом, даже когда я включил CHAP, но или ранее был сделан логин, или еще по каким-то причинам сессия не переподключилась, то можно сделать LVM том , но при попытке перенести на него тестовую VM – получить:
iscsiadm: initiator reported error (8 - connection timed out)
iscsiadm: Could not login to [iface: default, target: iqn.1991-05.com.microsoft:win25-target01-target, portal: 192.168.2.150,3260].
iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)
iscsiadm: Could not log into all portals

После таких включений на стендах всегда надо перегружать initiator, да и target не повредит.

Подключаем iSCSI target с Windows server на Proxmox (Initiator) с CHAP

Для начала удалю все, что сделал до этого – пустой LVM и подключение iSCSI. Тоже неудобно, конечно – есть у тебя том, зачем на нем еще сущности типа LVM применять.
Удалить iSCSI подключение из управления DC нельзя, будет ошибка
delete storage failed: can't remove storage - storage is used as base of another storage (500)

При этом все сущности хранения лежат в одной куче – и iSCSI, и LVM, и все на уровне DC, а не ноды. Поэтому тут тоже надо сразу делать соглашение по именованию.

Удалю сначала LVM, тогда дает удалить и iSCSI.

Без ввода CHAP в GUI (его там нет) подключение к порталу проходит . Но при попытке создать LVM не возникает список томов для создания LVM.
Придется на ручном приводе (в норме, конечно, через Ansible)

nano (или vi) /etc/iscsi/iscsid.conf

Конфигурация содержит блоки:
1 # To enable CHAP authentication set node.session.auth.authmethod
2 # To set a CHAP username and password for initiator
3 # To set a CHAP username and password for target(s)
4 # To enable CHAP authentication for a discovery session to the target, set discovery.sendtargets.auth.authmethod to CHAP. The default is None.
5 # To set a discovery session CHAP username and password for the initiator
6 # To set a discovery session CHAP username and password for target(s)

Мне нужны
node.session.auth.authmethod = CHAP
node.session.auth.username = user
node.session.auth.password = password1234

и потом по вкусу
systemctl restart iscsid
iscsiadm -m node --portal "172.16.211.151" --login
после чего должны получить:

iscsiadm: default: 1 session requested, but 1 already present.
iscsiadm: Could not log into all portals

посмотрим, что там:
iscsiadm -m discovery -p 172.16.211.151 -t st
о, все работает, нужные порталы есть, не нужных порталов нет!

Если вы все сделали правильно, то в GUI появится возможность выбора base volume

И при попытке создать LVM вы получите ошибку –

create storage failed: command '/sbin/pvs --separator : --noheadings --units k --unbuffered --nosuffix --options pv_name,pv_size,vg_name,pv_uuid /dev/disk/by-id/scsi-360003ff44dc75adcbb96b955813029da' failed: exit code 5 (500)

Хотя должна была быть другая ошибка -
create storage failed: vgcreate vg01 /dev/disk/by-id/scsi-360003ff44dc75adc839073953a451b73 error: Cannot use device /dev/sdc with duplicates. (500)

Отключу один IP на windows target и проверю:

iscsiadm -m session

service open-iscsi status
systemctl restart iscsid.service
systemctl restart open-iscsi.service
/etc/init.d/open-iscsi restart
Ничего не помогает, сессия со стороны Linux до 10.0.12.151, была и осталась.  Со стороны Windows target TCP сессий при этом нет.
И так ничего не получается.
И ладно, да и пошло все, семь бед – один reboot.
после ребута все хорошо, один путь, но при создании группы получаю ошибку, что группа уже создана!
create storage failed: device '/dev/disk/by-id/scsi-360003ff44dc75adcbb96b955813029da' is already used by volume group 'VGiscsi01' (500)

Удалю ее (на уровне хоста в disks – LVM) и пересоздам.
ВЖУХ И ВСЕ СОЗДАЛОСЬ.

Снова удалю, верну обратно два пути на target, перезагружу proxmox (видимо, самый надежный метод),
посмотрим, что там:

iscsiadm -m discovery -p 172.16.211.151 -t st , отлично, два портала на месте.
Создам еще раз LVM через GUI, и отлично, ошибка создания воспроизвелась,  
create storage failed: command '/sbin/pvs --separator : --noheadings --units k --unbuffered --nosuffix --options pv_name,pv_size,vg_name,pv_uuid /dev/disk/by-id/scsi-360003ff44dc75adcbb96b955813029da' failed: exit code 5 (500)
И группа iscsiVG02 создалась! Хотя и не должна была!
Надо будет воспроизвести и баг репорт написать.

Подключаем iSCSI target с Windows server на Proxmox (Initiator) с CHAP и Multipath
Читаем ISCSI Multipath, видим что текст устарел, идем на Multipath. В втором окне не забываем открыть Подключение iSCSI диска в Proxmox – там как раз про multipath есть параграф.
В старом тексте есть абзац

# apt-get install multipath-tools

В новом тексте
apt install multipath-tools
Но почему-то в середине текста.

Окей, multipath-tools поставил,
nano /etc/iscsi/iscsid.conf поправил, lsblk посмотрел, wwid сравнил
/lib/udev/scsi_id -g -u -d /dev/sdc
/lib/udev/scsi_id -g -u -d /dev/sdd
остальные настройки прописал, только для 7.3-6. сервис был
systemctl restart multipath-tools.service
а в 9 стал
systemctl restart multipathd.service
или я опять что-то путаю.
Доделаю. multipath -r; multipath –ll; multipath -v3

Следующий раздел меня, конечно, удручает:
Multipath setup in a Proxmox VE cluster If you have a Proxmox VE cluster, you have to perform the setup steps above on each cluster node. Any changes to the multipath configuration must be performed on each cluster node. Multipath configuration is not replicated between cluster nodes.

Впрочем, на ESXi с прописыванием esxcli storage nmp satp list и esxcli storage nmp satp rule, на каждом хосте, все то же самое.

Далее далее, новая VG создалась. ВЖУХ и трансфер прошел.
На физическом сервере можно было померять скорость доступа и нагрузку на интерфейсы, но в nested среде особого смысла в этом нет.

Может быть, потом.

Литература

Microsoft Set-IscsiTargetServerSetting
Microsoft  Simplified SMB Multichannel and Multi-NIC Cluster Networks
Microsoft Guidance for configuring IPv6 in Windows for advanced users
Microsoft  New-NetFirewallRule
Huawei OceanStor Dorado and OceanStor 6.x and V700R001 Host Connectivity Guide for Windows
Huawei OceanStor Dorado and OceanStor 6.x and V700R001 Host Connectivity Guide for Red Hat
Huawei Recommended Configurations for 6.x and V700R001 Series Storage Systems for Taking Over Data from Other Huawei Storage Systems When the Host Huawei Uses the OS Native Multipathing Software.

NVMe over Fabrics: Fibre Channel vs. RDMA
Synology What is SMB3 Multichannel and how is it different from Link Aggregation?
Обзор NVMe over Fabric, NVMe-oF
Configuring Highly Available NVMe-oF Attached Storage in Proxmox VE
High Performance Shared Storage for Proxmox VE

RH 4.4. Multipaths Device Configuration Attributes
RH Chapter 5. Modifying the DM Multipath configuration file

ISCSI: LACP vs. MPIO
802.3ad LACP for ISCSI
Proxmox Network Configuration

Proxmox Storage: iSCSI
Proxmox Multipath
Proxmox forum iSCSI Huawei Oceanstore Dorado 3000 LVM and Multipath
Proxmox forum How to Configure and Manage iSCSI Storage in Proxmox for Your Virtual Machines?
Proxmox forum How to setup multipathing on Proxmox VE?
Proxmox forum iSCSI with CHAP
Proxmox forum Proxmox, iSCSI and CHAP
Proxmox forum Proxmox 7.1, iSCSI, chap, HPE MSA and problems
Proxmox forum How to move VM to another storage

Подключение iSCSI диска в Proxmox

Показать полностью 6
Отличная работа, все прочитано!