Summary: | Контейнеры на базе ALT Linux неработоспособны | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Вадим Илларионов <gbIMoBou> | ||||
Component: | pve-lxc | Assignee: | Alexey Shabalin <shaba> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | aen, andy, cavetroll, dans, dd, gbIMoBou, ildar, imz, mike, shaba, shrek, viy | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Вадим Илларионов
2016-09-01 09:42:31 MSK
начинать надо с memory.memsw.limit_in_bytes - #32314 Я прокомментировал #32314, но чтоб не прыгать между багами, дублирую сюда. http://cateee.net/lkddb/web-lkddb/MEMCG_SWAP_ENABLED.html Здесь сказано: General purpose distribution kernels which want to enable the feature but keep it disabled by default and let the user enable it by swapaccount=1 boot command line parameter should have this option unselected. То есть, pve можно грузить с опцией ядра swapaccount=1 без его пересборки. Проверил, работает - контейнеры (кроме альтовых) запускаются. Дело за малым: написать перловый модуль для альтов. А вот тут и первые грабли. Часть выпусков идёт с номерами, как, например: ALT Linux 7.0.5 Centaurus (Pholus) ALT Linux 8.0.0 KDesktop (Centaurea Montana) Часть - без: ALT Linux Sisyphus (unstable) ALT Linux starter kit (Hypericum) И как прикажете их сортировать, если даже на сайте альта толком нет информации по соответствию наименований/ников/номеров? Разве что руками в переносимом с OpenVZ контейнере править /etc/altlinux-release как-то так: ALT Linux 9.0.0 Sisyphus (unstable) ALT Linux 8.0.1 starter kit (Hypericum) А при создании шаблона как быть? Ведь номер потребен следующей проверке в перловом модуле: my distro = altlinux; my $release = PVE::Tools::file_read_firstline("$rootdir/etc/$distro-release"); die "unable to read version info\n" if !defined($release); my $version; if ($release =~ m/release\s+(\d+\.\d+)(\.\d+)?/){ if ($1 >= 5 && $1 < 10){ # и ещё вопрос: какой диапазон версий поддерживать? $version = $1; } } die "unsupported $distro release '$release'\n" if !$version; Или вовсе забить на проверку и сосредоточиться на функции формирования файлов настройки етснет? Жаль, нельзя редактировать собственные реплики, так что поправлюсь здесь. Проверка, полагаю, должна выглядеть примерно так (предыдущий вариант - бездумная калька с проверки на кентось): if ($release =~ m/Alt\s+Linux\s+(\d+\.\d+\.\d+)/){ if ($2 >= 5 && $2 < 10){ # какой диапазон версий поддерживать? $version = $2; } } # pct enter 100 Insecure $ENV{ENV} while running with -T switch at /usr/share/perl5/PVE/CLI/pct.pm line 162. И так с любым контейнером. Выручает лишь возможность входа через консоль из веб-интерфейса. Ещё поправка: my $distro = "altlinux"; Ещё поправка: my $distro = "altlinux"; Insecure $ENV{ENV} while running with -T switch устраняется отключением ENV=$HOME/.bashrc из ~/.bashrc После этого вход в контейнеры работает. Created attachment 6812 [details]
Поддержка контейнеров на базе альта.
Вот, состряпал в меру разумения из кусков других модулей. По крайней мере, под альтовым проксмоксом контейнеры работают, сетевые интерфейсы с маршрутом и шлюзом создаются, а под оригинальным в будни буду попробовать.
1. Не реализована поддержка ipv6 - просто доселе не пользовался и не знаю, куда что прописывать, а догадки отметаю: пусть знающие добавят.
2. Как ни крутил правку модулем /usr/share/perl5/PVE/LXC/Setup/Base.pm рутового пароля в контейнере по маршруту не /etc/shadow, а /etc/tcb/$user/shadow, буде таковой наличествует - без толку. Оставил без изменений - может, кто другой запилит.
На оригинальном проксмоксе со следующими версиями пакетов патч тоже отработал: # dpkg -l pve-* | awk '/^i/{print $2"\t"$3}' pve-cluster 4.0-44 pve-container 1.0-73 pve-docs 4.2-8 pve-firewall 2.0-29 pve-firmware 1.1-9 pve-ha-manager 1.0-33 pve-kernel-4.4.16-1-pve 4.4.16-64 pve-libspice-server1 0.12.8-1 pve-manager 4.2-18 pve-qemu-kvm 2.6.1-2 Альтовые контейнеры работают. Патч запускать из каталога с ним следующим образом: # patch=$(pwd)/pve-4.patch; cd /; patch -p1 <$patch Важно, чтоб в альтовском шаблоне или дампе были удалены симлинки /etc/{fedora,redhat}-release, иначе проксмокс воспримет их как шаблон/дамп федоры или кентоси неизвестной ему версии. (В ответ на комментарий №10) > Важно, чтоб в альтовском шаблоне или дампе были удалены симлинки > /etc/{fedora,redhat}-release, иначе проксмокс воспримет их как шаблон/дамп > федоры или кентоси неизвестной ему версии. Как вариант, можно их убрать из стартеркитного брендинга. поддержка altlinux контейнеров добавлена в pve-manager 4.2.23-alt3 шаблон ftp://ftp.altlinux.ru/pub/people/shrek/altlinux-p8-x86_64.tar.xz А в мейнстрим предложено? (В ответ на комментарий №12) > поддержка altlinux контейнеров добавлена в pve-manager 4.2.23-alt3 > шаблон ftp://ftp.altlinux.ru/pub/people/shrek/altlinux-p8-x86_64.tar.xz Валер, а из чего делал? Давай в стартеркиты добавим, если там не как для ovz: http://nightly.altlinux.org/p8/permalink/alt-p8-ovz-generic-latest-x86_64.tar.xz (In reply to Вадим Илларионов from comment #13) > А в мейнстрим предложено? присоединяюсь к вопросу, т.к. в свежем Proxmox поддержки Альта нет. + andy@ , как текущий мэйнтэйнер Подтверждаю по поводу мейнстрима - в Proxmox 8.3.0 создание контейнера заканчивается так:
>extracting archive '/var/lib/vz/template/cache/alt-p11-rootfs-systemd-x86_64.tar.xz'
>Total bytes read: 467056640 (446MiB, 37MiB/s)
>unknown ID 'altlinux' in /etc/os-release file, trying fallback detection
>TASK ERROR: unable to create CT 200 - unsupported Fedora release '11'
|