1
Server / Re:QEMU nad LVM se zasekává
« Poslední příspěvek od RDa kdy Dnes v 09:22:27 »Zdravim,
mel bych jednu otazku a nemyslim to nijak zle, opravdu by me zajimal duvod. Proc Gentoo? Chapu Gentoo na desktopu, jsem hracicka a bavi me si s tim hrat. Nebo na serveru s nejakym exotickym SW ktery se stejne musi kompilovat, ale tady nic takoveho neni. Kernel, DM, LVM a QEMU, vse naprosto standardni veci u kterych ani neni mozne ocekavat nejaky narust vykonu. CPU se bude flakat a kdyz uz neco bude brzdit tak IO disku.
Pro me je tohle jasny priklad na stabilni Debian nebo nejaky z klonu Redhatu. Nainstaluji, nastavim, jednou za mesic udelam update a nekolik let nemusim nic resit.
Uplne v pohode otazka - davno to neni o vykonu (ackoliv ano - mam AVX a moje instalace uz nebootuji na necem starsim nez 4th gen / Haswell) ale o moznostech pohodlne konfigurace, ktera je ve dvou rovinach
- po temer 20 letech v nem vim kde co nastavit, je tu i jeden stroj s ubuntu a systemd, ale to je pro me peklo
- a pak v instalaci mam hlavne to, co chci ja a nic navic
Treba zde u qemu na serveru viz volby:
Citace
$ emerge qemu -pv
[ebuild R ~] app-emulation/qemu-9.0.2-r2::gentoo USE="aio bzip2 curl fdt filecaps gnutls jpeg ncurses nls oss pam pin-upstream-blobs png seccomp slirp spice vhost-net vnc xattr -accessibility -alsa -bpf -capstone -debug -doc -fuse -glusterfs -gtk -infiniband -io-uring -iscsi -jack -jemalloc -keyutils -lzo -multipath -nfs -numa -opengl -pipewire -plugins -pulseaudio -python -rbd -sasl -sdl -sdl-image (-selinux) -smartcard -snappy -ssh -static-user -systemtap -test -udev -usb -usbredir -vde -virgl -virtfs -vte -xdp -xen -zstd" PYTHON_TARGETS="python3_12 -python3_10 -python3_11" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -avr -cris -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -xtensa -xtensaeb" QEMU_USER_TARGETS="-aarch64 -aarch64_be -alpha -arm -armeb -cris -hexagon -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -x86_64 -xtensa -xtensaeb" 0 KiB
zatimco na desktopu kde sedim jsem si hral s emulaci ARMu, takze je to tam jinak:
Citace
$ emerge qemu -pv
[ebuild U ] app-emulation/qemu-9.0.2-r2::gentoo [9.0.2-r1::gentoo] USE="accessibility aio alsa bzip2 curl fdt filecaps gnutls gtk jpeg ncurses nfs nls opengl oss pam pin-upstream-blobs png sasl sdl seccomp slirp udev usb vhost-net vnc xattr -bpf -capstone -debug -doc -fuse -glusterfs -infiniband -io-uring -iscsi -jack -jemalloc -keyutils -lzo -multipath -numa -pipewire -plugins -pulseaudio -python -rbd -sdl-image (-selinux) -smartcard -snappy -spice -ssh -static-user -systemtap -test -usbredir -vde -virgl -virtfs -vte -xdp% -xen -zstd" PYTHON_TARGETS="python3_11 python3_12 -python3_10" QEMU_SOFTMMU_TARGETS="arm i386 x86_64 -aarch64 -alpha -avr -cris -hppa -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -xtensa -xtensaeb" QEMU_USER_TARGETS="arm i386 x86_64 -aarch64 -aarch64_be -alpha -armeb -cris -hexagon -hppa -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -xtensa -xtensaeb" 0 KiB
A podobne podrobny to je napr. u PHP - pro rozsireni ktere muze ale nemusi interne obsahovat.
Zatimco ja mam 1 balicek, ktery je ohebny a vznikne z nej to co potrebuji, tak u vetsiny binarnich distribuci je tam bud vsechno zakompilovany (tj. vetsi bezpecnostni riziko - attack surface), anebo je balicek resen salamovou metodou a tvori vlastne hromadu bordelu v balickovacim systemu (zkusenost s php).
Ta pohodlnost je, ze napr. reknu jak chci ohnout nejakou vec skrze ty USE flags (a dalsi ruzne konfiguracni dimenze - napr. skrze keywords lze resit stabilni/experimental - per balicek a nerozsype se to) - a nemusim resit jak se jmenuje nejaky frikulinsky balicek ktery by resil featuru X mezi Y a Z.
A pak v neposledni rade - muzu si cokoliv systemove dodelat/opravit primo na urovni zdrojaku, kdyz dam na spravne misto patch, bude se pro dane balicky vzdy aplikovat. Prakticky nekolikrat vyuzito jako hotfix od jinych tak jako vlastni vyvoj reseni problemu.
Se source based vecma nemam potiz - jsem sam vyvojar a ne bezny uzivatel, takze nejake binarni uzavrene / sevrene veci me spis vadi a komplikuji zivot, nez aby meli pro me jakykoliv prakticky prinos.