View previous topic :: View next topic |
Author |
Message |
LinuxTom l33t
Joined: 26 Mar 2006 Posts: 798
|
Posted: Tue Sep 24, 2013 5:05 pm Post subject: Ramdisk Verständnisfrage für KVM Gäste und Host |
|
|
Hi Leute,
bevor ich mein System jetzt zig Mal abschieße vorher eine Frage, da Google mir die nicht wirklich beantworten kann.
Ich habe in meinem Server 24GB Ram. Von denen habe ich eine 12GB /tmp/ Partition gebildet (tmpfs). Alles gut. Bisher habe ich auf dieser meine vielen Gentoo-Clients vorkompilieren lassen (PORTAGE_TMPDIR). In seperaten CHROOT's. Alles gut. Nun haben sich jedoch so langsam (in den letzten 13 Jahren) die ganzen CPU's so unterschiedlich entwickelt, dass ich immer einen gemeinsamen Nenner zwischen Server (der alles bildet) und Client finden musste. Also wurden die Clients ausgebremst. Also Schwenk auf KVM und QEMU. Alles fein. Nun will ich jedoch den Gast-KVM's auch eine RAMDISK als /tmp/ zur Verfügung stellen. Hat jemand von Euch eine Idee, wie ich das machen kann? So dass ggf eine zu klein definierte RAMDISK auf SWAP ausgelagert wird innerhalb der VM? Und dass sich alle Gäste und der Server vielleicht insgesamt eine maximal festgelegte Größe teilen und dann auf SWAP auslagern?
Auf Festplatte dauert bspw. ein GCC 40 Minuten. Auf RAMDISK nur noch 10 Minuten. |
|
Back to top |
|
|
bell Guru
Joined: 27 Nov 2007 Posts: 509
|
Posted: Tue Sep 24, 2013 5:40 pm Post subject: |
|
|
Also ich setze bei ramfs immer den Parameter "size=100%" Dadurch kann die ramfs den kompletten RAM belegen. Da eine ramfs nur soviel RAM tatsächlich belegt wie sie voll ist, machen auch 3x ramfs je 100% RAM nichts aus. Wenn der Platz knapp wird, wird natürlich geswappt, auch Teile aus der ramfs.
Hm, wie würde ich es in eine KVM einbinden: Ich würde eine (oder mehrere) ramfs auf dem Host anlegen und diese dann über 9p_virtio den VM's zur Verfügung stellen http://www.linux-kvm.org/page/9p_virtio
(ungetestet) |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1668
|
Posted: Tue Sep 24, 2013 6:35 pm Post subject: |
|
|
nicht direkt zur frage über ramdiks und virtuellen maschinen, aber hast du schon mal was von ROOT und PORTAGE_CONFIGROOT gehört?
damit kannst du zb mit dem kompiler auf deinem system für andere systeme optimiert bauen. Schau dir mal am besten https://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=3 an. ich glaube damit kannst du dir die virtuellen maschinen sparen. |
|
Back to top |
|
|
LinuxTom l33t
Joined: 26 Mar 2006 Posts: 798
|
Posted: Tue Sep 24, 2013 6:46 pm Post subject: |
|
|
@bell:
Danke, genau das habe ich gesucht. Da ich jedoch in meinen Kernels das nicht aktiviert habe, bieten mir das weder qemu noch der virt-manager an. Ich werde es anschalten und aktivieren. Dann sehe ich weiter und berichte. |
|
Back to top |
|
|
LinuxTom l33t
Joined: 26 Mar 2006 Posts: 798
|
Posted: Tue Sep 24, 2013 7:13 pm Post subject: |
|
|
Christian99 wrote: | damit kannst du zb mit dem kompiler auf deinem system für andere systeme optimiert bauen. |
Ja. Distcc, chroot, cross-compile usw. Alles schon durch. Nicht sicher genug, wenn der Client 300km weit weg steht und dann doch ein Programm fehl schlägt. Man kann wirklich nur mit qemu den Prozessor des Zielsystem nachbilden und die Programme auch richtig testen. Unterm Strich erspart mir QEMU/KVM viel Fummelei und Unsicherheit, wenn das Host-System ein Update braucht. Erst recht, weil mein Host gleichzeitig mein VDR-Server ist. Wehe, die Lieblingsserie kann nicht geschaut werden, dann ist der Frieden zu hause aus. Darum wandert jetzt alles in entsprechende KVM-VM's. Als erstes mein VDR. |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1668
|
Posted: Tue Sep 24, 2013 7:29 pm Post subject: |
|
|
ok, wenn du testen willst wirds natürlich schwierig |
|
Back to top |
|
|
LinuxTom l33t
Joined: 26 Mar 2006 Posts: 798
|
Posted: Wed Sep 25, 2013 12:41 pm Post subject: |
|
|
Vielleicht kann mir jemand helfen, da der virt-manager mir den Punkt, ein Filesystem als Gerät hinzuzufügen, nicht anbietet.
Die 9P-Sachen habe ich den Kernel des Hosts und des Gastes fest einkompiliert. Leider funktioniert es nicht. Auch wenn ich die Einträge manuell in die XML der Domain eintrage, werden die nicht als Parameter für qemu übergeben. Siehe hier.
Vielleicht hat jemand eine Idee, wieso, wenn ich die Konfiguration hier schreibe. *hoff*
Code: | [I] app-emulation/qemu-kvm
Installed versions: 0.15.1-r1!t(12:39:15 25.09.2013)(aio alsa bluetooth jpeg ncurses png qemu_softmmu_targets_i386 qemu_softmmu_targets_x86_64 qemu_user_targets_i386 qemu_user_targets_x86_64 sasl sdl spice ssl threads vhost-net xattr -brltty -curl -debug -esd -fdt -hardened -nss -pulseaudio -qemu-ifup -qemu_softmmu_targets_arm -qemu_softmmu_targets_cris -qemu_softmmu_targets_m68k -qemu_softmmu_targets_microblaze -qemu_softmmu_targets_mips -qemu_softmmu_targets_mips64 -qemu_softmmu_targets_mips64el -qemu_softmmu_targets_mipsel -qemu_softmmu_targets_ppc -qemu_softmmu_targets_ppc64 -qemu_softmmu_targets_ppcemb -qemu_softmmu_targets_sh4 -qemu_softmmu_targets_sh4eb -qemu_softmmu_targets_sparc -qemu_softmmu_targets_sparc64 -qemu_user_targets_alpha -qemu_user_targets_arm -qemu_user_targets_armeb -qemu_user_targets_cris -qemu_user_targets_m68k -qemu_user_targets_microblaze -qemu_user_targets_mips -qemu_user_targets_mipsel -qemu_user_targets_ppc -qemu_user_targets_ppc64 -qemu_user_targets_ppc64abi32 -qemu_user_targets_sh4 -qemu_user_targets_sh4eb -qemu_user_targets_sparc -qemu_user_targets_sparc32plus -qemu_user_targets_sparc64 -rbd -vde -xen) |
Code: | Install prefix /usr
BIOS directory /usr/share/qemu
binary directory /usr/bin
library directory /usr/lib
config directory /etc
Manual directory /usr/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/portage/app-emulation/qemu-kvm-0.15.1-r1/work/qemu-kvm-0.15.1
C compiler x86_64-pc-linux-gnu-gcc
Host C compiler x86_64-pc-linux-gnu-gcc
CFLAGS -O2 -g -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=core2 -O2 -pipe
QEMU_CFLAGS -m64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -I/usr/include/libpng15 -I/usr/include/spice-server -I/usr/include/pixman-1 -I/usr/kerberos/include -I/usr/include/spice-1
LDFLAGS -Wl,--warn-common -m64 -g -Wl,-z,execheap -Wl,-O1 -Wl,--as-needed
make make
install install
python python
smbd /usr/sbin/smbd
host CPU x86_64
host big endian no
target list i386-softmmu x86_64-softmmu i386-linux-user x86_64-linux-user
tcg debug enabled no
Mon debug enabled no
gprof enabled no
sparse enabled no
strip binaries no
profiler no
static build no
-Werror enabled no
SDL support yes
curses support yes
curl support no
check support no
mingw32 support no
Audio drivers sdl alsa oss
Extra audio cards ac97 es1370 sb16 hda
Block whitelist
Mixer emulation no
VNC support yes
VNC TLS support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
VNC thread yes
xen support no
CPU emulation yes
brlapi support no
bluez support yes
Documentation yes
NPTL support yes
GUEST_BASE yes
PIE user targets no
vde support no
IO thread yes
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
KVM PIT support yes
KVM device assig. yes
fdt support no
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
uuid support yes
vhost-net support yes
Trace backend nop
Trace output file trace-<pid>
spice support yes
rbd support no
xfsctl support yes
nss used no
usb net redir no
OpenGL support yes
build guest agent yes |
Code: | [I] app-emulation/libvirt
Installed versions: 0.9.8(12:41:19 25.09.2013)(avahi caps elibc_glibc json libvirtd lvm lxc nfs nls numa parted pcap policykit python qemu sasl udev uml virt-network -debug -iscsi -macvtap -openvz -phyp -selinux -virtualbox -xen) |
Code: | configure: Configuration summary
configure: =====================
configure:
configure: Drivers
configure:
configure: Xen: no
configure: QEMU: yes
configure: UML: yes
configure: OpenVZ: no
configure: VMware: yes
configure: VBox: no
configure: XenAPI: no
configure: xenlight: no
configure: LXC: yes
configure: PHYP: no
configure: ESX: yes
configure: Hyper-V: no
configure: Test: yes
configure: Remote: yes
configure: Network: yes
configure: Libvirtd: yes
configure: netcf: no
configure: macvtap: no
configure: virtport: no
configure:
configure: Storage Drivers
configure:
configure: Dir: yes
configure: FS: yes
configure: NetFS: yes
configure: LVM: yes
configure: iSCSI: no
configure: SCSI: yes
configure: mpath: yes
configure: Disk: yes
configure:
configure: Security Drivers
configure:
configure: SELinux: no
configure: AppArmor: no
configure:
configure: Driver Loadable Modules
configure:
configure: dlopen: no
configure:
configure: Libraries
configure:
configure: libxml: -I/usr/include/libxml2 -lxml2
configure: dlopen: -ldl
configure: libcurl: -DCURL_DISABLE_TYPECHECK -lcurl
configure: openwsman: no
configure: libssh2:
configure: gnutls: -lgnutls -lgcrypt
configure: sasl: -lsasl2
configure: yajl: -lyajl
configure: sanlock: no
configure: avahi: -D_REENTRANT -lavahi-common -lavahi-client
configure: polkit: /usr/bin/pkcheck (version 1)
configure: audit: no
configure: selinux: no
configure: apparmor: no
configure: numactl: -lnuma
configure: capng: -lcap-ng
configure: xen: no
configure: xenapi: no
configure: xenlight: no
configure: hal: no
configure: udev: -ludev -lrt -lpciaccess
configure: netcf: no
configure: pcap: -I/usr/include -L/usr/lib64 -Wl,-rpath,/usr/lib64 -lpcap
configure: nl: -lnl
configure: mscom: no
configure: xdr:
configure:
configure: Test suite
configure:
configure: Coverage: no
configure: Alloc OOM: no |
|
|
Back to top |
|
|
LinuxTom l33t
Joined: 26 Mar 2006 Posts: 798
|
Posted: Wed Sep 25, 2013 2:13 pm Post subject: |
|
|
Der normale Satz, wer lesen kann ist klar im Vorteil, funktioniert hier leider nicht:
Im QEMU-Wiki steht als Beispiel:
Quote: | <filesystem type='mount' accessmode='$security_model'>
<source dir='$hostpath'/>
<target dir='$mount_tag'/>
</filesystem> |
Auch in LibVirt steht, dass der Parameter driver Optional ist:
Quote: | driver
The optional driver element allows specifying further details related to the hypervisor driver used to provide the filesystem. Since 1.0.6
If the hypervisor supports multiple backend drivers, then the type attribute selects the primary backend driver name, while the format attribute provides the format type. For example, LXC supports a type of "loop", with a format of "raw" or "nbd" with any format. QEMU supports a type of "path" or "handle", but no formats. |
Wenn ich jedoch den Parameter setze, funktioniert es:
Quote: | <filesystem type='mount' accessmode='mapped'>
<driver type='path'/>
<source dir='/tmp/kvm'/>
<target dir='tmpkvm'/>
</filesystem> |
Da meine qemu-kvm und libvirt - Versionen vielleicht doch etwas alt sind, kommt in meinem Gast der Fehler, egal was ich für Kompinationen der Einstellungen nehme. So funktioniert auch der driver=handle nicht:
Quote: | fsdev: fstype handle not found |
Ich werde wohl erst einmal das gesamte System aktualisieren und so lange die längeren Kompilierzeiten in kauf nehmen.
Quote: | >>> Emerging (1 of 3) sys-devel/binutils-2.22-r1
[Errno 1] Operation not permitted: '/tmp/kvm/portage/.sys-devel.portage_lockfile': chown('/tmp/kvm/portage/.sys-devel.portage_lockfile', -1, 250)
Cannot chown a lockfile: '/tmp/kvm/portage/.sys-devel.portage_lockfile'
Group IDs of current user: 0 1 2 3 4 6 10 11 20 26 27
[Errno 1] Operation not permitted: '/tmp/kvm/portage/sys-devel/.binutils-2.22-r1.portage_lockfile': chown('/tmp/kvm/portage/sys-devel/.binutils-2.22-r1.portage_lockfile', -1, 250)
Cannot chown a lockfile: '/tmp/kvm/portage/sys-devel/.binutils-2.22-r1.portage_lockfile'
Group IDs of current user: 0 1 2 3 4 6 10 11 20 26 27
Operation Not Permitted: chown('/tmp/kvm/portage/sys-devel/binutils-2.22-r1', 250, 250)
* binutils-2.22.tar.bz2 SHA256 SHA512 WHIRLPOOL size ... [ ok ]
* binutils-2.22-patches-1.5.tar.bz2 SHA256 SHA512 WHIRLPOOL size ... [ ok ] |
Zumal auch der virt-manager diese manuelle Konfiguration nicht auslesen kann. Fehleranfällig! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|