[Ubuntu] Disk mappen naar guest os met KVM

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Hoihoi

Ik heb een doosje staan met veel HDD space en daarop draait een VM die ik gebruik voor SABnzb en dergelijke.

Nu had ik eerst een virtuele disk van een TB of 2, maar dat is een enorme performance killer, daarom dus een filesystem-mapping. Een device-mapping gaat niet; die 2TB is deel van een veel groter raid volume.
Het host-OS is ubuntu (13.04) en de guest idem (12.10).

Nu heb ik met virt-manager een fs aangemaakt met de parameters die ik hieronder ook even uit virsh laat zien. Virsh is wat duidelijker...

code:
1
2
3
4
5
    <filesystem type='mount' accessmode='mapped'>
      <source dir='/raid/downloadbak'/>
      <target dir='home'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </filesystem>

En in de host:
root@host:/raid# ls -ald downloadbak/
drwxr-xr-x 5 libvirt-qemu root 4096 Apr 23 17:04 downloadbak/


domain gereboot en daarna in de guest:
root@downloadbak:~# mount -t 9p -o trans=virtio,version=9p2000.L /home /home

En daarna:
boudewijn@downloadbak:/home$ ls
ls: cannot open directory .: Permission denied


Hmm. Het blijft me alleen niet duidelijk hoe de rechten op de host moeten staan om de directory deelbaar te maken voor de guest. Iemand?

Het qemu proces draait wel als libvirt-qemu:
104       2713  0.7  4.2 3473160 340864 ?      Sl   May06  18:49 qemu-system-x86_64 -machine accel=kvm:tcg -name downloadbak-ubuntu -S -M pc-1.0 -m 1024 -smp 1,sockets=1,cores=1,threads=1 -uuid d248c346-54fb-598a-3155-5bbb244ecdc5 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/downloadbak-ubuntu.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot menu=off -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device ahci,id=ahci0,bus=pci.0,addr=0x7 -drive file=/home/boudewijn/isos/ubuntu64.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive file=/raid/VMs/downloadbak-os.img,if=none,id=drive-sata0-0-0,format=qcow -device ide-hd,bus=ahci0.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 -fsdev local,security_model=passthrough,id=fsdev-fs0,path=/raid/downloadbak -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=/home,bus=pci.0,addr=0x5 -netdev tap,fd=27,id=hostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:52:10:dd,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:0 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
root     25848  0.0  0.0   9440   944 pts/0    S+   19:52   0:00 grep downloadbak
root@host:/raid# grep 104 /etc/passwd
libvirt-qemu:x:104:110:Libvirt Qemu,,,:/var/lib/libvirt:/bin/false



Mijn leesvoer:
http://www.linux-kvm.org/page/9p_virtio
http://dustymabe.com/2012...tween-kvm-host-and-guest/
http://www.linux-kvm.org/page/9p_virtio
http://wiki.qemu.org/Documentation/9psetup

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 02-10 16:57
Die permission denied komt van AppArmor, kijk maar in de dmesg op je host.

Geen idee waarom maar 'service apparmor teardown' en 'service apparmor stop' werken bij mij niet, wat wel werkt:
code:
1
2
apt-get install apparmor-utils
aa-complain /etc/apparmor.d/libvirt/libvirt-<uuid van guest>


Als het dan nog niet werkt op de host a+w chmodden op /raid/download_bak.

Let op dat als je in je guest bij boot dit wilt mounten via /etc/fstab je in /etc/initramfs-tools/modules het volgende moet toevoegen:
9p
9pnet
9pnet_virtio

en daarna 'sudo update-initramfs -u'.

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
matthijsln schreef op woensdag 08 mei 2013 @ 22:30:
Die permission denied komt van AppArmor, kijk maar in de dmesg op je host.

Geen idee waarom maar 'service apparmor teardown' en 'service apparmor stop' werken bij mij niet, wat wel werkt:
code:
1
2
apt-get install apparmor-utils
aa-complain /etc/apparmor.d/libvirt/libvirt-<uuid van guest>
En dat werkt dus prima :). Cool, thx!

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Hmm te vroeg gejuicht, ondanks een chmod a+w (bah) blijf ik permission denieds krijgen in het guest os:

code:
1
2
3
4
5
6
7
root@downloadbak:/home# ll
total 20
drwxrwxrwx  5 landscape root    4096 May  8 22:58 ./
drwxr-xr-x 25 root      root    4096 May  2 07:11 ../
drwxrwxrwx  4 landscape nogroup 4096 Jul 13  2011 BT/
drwxrwxrwx 56 landscape root    4096 Sep 19  2012 muziek/
drwxrwxrwx  4 landscape root    4096 Feb  7 00:49 prive/

Nog ideeen? :)

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 02-10 16:57
In de guest met sudo recursive alle owners en groups van /home resetten, deze zijn mogelijk out of whack vanwege de mapping van uids die niet hetzelfde zijn in host en guest. Ik geloof dat met accessmode=mapped de uid/gid van files in de guest op de host in een extended attribute worden opgeslagen en gewoon owned door libvirt-qemu blijven, maar die zijn nu nog leeg denk ik. In de host zijn alle files recursief owned by libvirt-qemu:kvm?

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Ik kan als root in de guest geen directory maken, dat zou buiten de reguliere permissies om moeten gaan. De uid's zullen wel van de guest zijn, dus dat die niet meer goed naar users omgezet worden snap ik.


chownen in de guest als root geeft ook gewoon operation not permitted :(.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

Doe eens /downloadbak op de host chgrp'en naar een andere groep, bijvoorbeeld 1000, en maak 'm writeable. Test dan in de Guest hoe de rechten staan en wat je mag.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
root@host:/raid# chgrp 1000 downloadbak/ -R
root@host:/raid# ll -d downloadbak/
drwxrwxrwx 5 libvirt-qemu boudewijn 4096 May  8 22:58 downloadbak/
root@host:/raid# ll downloadbak/
total 12
drwxrwxrwx  4 libvirt-qemu boudewijn 4096 Jul 13  2011 BT
drwxrwxrwx 56 libvirt-qemu boudewijn 4096 Sep 19  2012 muziek
drwxrwxrwx  4 libvirt-qemu boudewijn 4096 Feb  7 00:49 prive
Vervolgens op de guest:
boudewijn@downloadbak:/home$ ll
total 20
drwxrwxrwx  5 landscape boudewijn 4096 May  8 22:58 ./
drwxr-xr-x 25 root      root      4096 May  2 07:11 ../
drwxrwxrwx  4 landscape boudewijn 4096 Jul 13  2011 BT/
drwxrwxrwx 56 landscape boudewijn 4096 Sep 19  2012 muziek/
drwxrwxrwx  4 landscape boudewijn 4096 Feb  7 00:49 prive/
boudewijn@downloadbak:/home$
Okay... het is idd mapped. Aan de andere kant zit er zowel op de host als de guest een rechtenset 777 op. Maar ik kan nog steeds niet schrijven @ guest.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

En je mount optie in de Guest? Staat die niet standaard op ro voor dat fs? Kan je er met een unprivileged gebruiker nu wel doorheen bladeren?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 02-10 16:57
Ik heb nog even gekeken naar mijn setup die goed werkt. Probeer eerst eens een lege directory die owned is door libvirt-qemu:kvm met 0777 permissies op de host te mounten en kijk of je daar kan schrijven. Met accessmode=mapped moeten op de host de bestanden dus geowned blijven door libvirt-qemu:kvm, met de owner en group in de guest opgeslagen in extended attributes.

Zie onder de output van mijn opzet waar ik met de guest kan schrijven:
matthijsln@talyn:~$ virsh dumpxml test-postgresql-server|grep -A 3 -B 1 virtfs
    <filesystem type='mount' accessmode='mapped'>
      <source dir='/mnt/raid5/virtfs'/>
      <target dir='virtfs'/>
      <alias name='fs0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </filesystem>
matthijsln@talyn:~$ ls -l /mnt/raid5 | grep virtfs
drwxrwxrwx  3 libvirt-qemu kvm                73 Apr 15 16:51 virtfs
matthijsln@talyn:~$ cat /var/lib/libvirt/dnsmasq/default.leases 
1368094592 52:54:00:8d:de:9b 192.168.122.191 test-postgresql-server *
matthijsln@talyn:~$ ssh 192.168.122.191
matthijsln@test-postgresql-server:~$ grep virtfs /etc/fstab
virtfs	/mnt/virtfs	9p	trans=virtio,version=9p2000.L	0	0
matthijsln@test-postgresql-server:~$ mount |grep virtfs
virtfs on /mnt/virtfs type 9p (rw,trans=virtio,version=9p2000.L)
matthijsln@test-postgresql-server:~$ cd /mnt/virtfs
matthijsln@test-postgresql-server:/mnt/virtfs$ echo tst > 1.txt
matthijsln@test-postgresql-server:/mnt/virtfs$ echo tst2 > 2.txt
matthijsln@test-postgresql-server:/mnt/virtfs$ sudo chown root:root 2.txt
matthijsln@test-postgresql-server:/mnt/virtfs$ ls -al
total 16
drwxrwxrwx  3 sshd       messagebus   57 May  9 11:27 .
drwxr-xr-x  3 root       root       4096 Apr 14 13:03 ..
-rw-rw-r--  1 matthijsln matthijsln    4 May  9 11:27 1.txt
-rw-rw-r--  1 root       root          4 May  9 11:27 2.txt
drwx------ 13 postgres   postgres   4096 May  9 11:24 main
matthijsln@test-postgresql-server:/mnt/virtfs$ logout
Connection to 192.168.122.191 closed.
matthijsln@talyn:~$ ls -al /mnt/raid5/virtfs
total 12
drwxrwxrwx  3 libvirt-qemu kvm    57 May  9 11:27 .
drwxr-xr-x  8 matthijsln   root  139 Apr 14 13:27 ..
-rw-------  1 libvirt-qemu kvm     4 May  9 11:27 1.txt
-rw-------  1 libvirt-qemu kvm     4 May  9 11:27 2.txt
drwx------ 13 libvirt-qemu kvm  4096 May  9 11:24 main
matthijsln@talyn:~$ sudo cat /mnt/raid5/virtfs/*.txt
tst
tst2

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Hero of Time schreef op donderdag 09 mei 2013 @ 09:32:
En je mount optie in de Guest? Staat die niet standaard op ro voor dat fs? Kan je er met een unprivileged gebruiker nu wel doorheen bladeren?
Ik mount nog even met het handje:
    mount -t 9p -o trans=virtio,version=9p2000.L /home /home

Als unpriv user kan ik er gewoon in op de guest.

Ik ga zo even kijken naar wat mathijs exact doet :).

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Ik heb nog even goed gekeken, en vraag me af nav deze post http://www.redhat.com/arc...010-October/msg00430.html : is squash niet een betere mapping methode? Lijkt me een stuk eenvoudiger...


root@host:/raid# mkdir test
root@host:/raid# chmod 0777 test/ -R
root@host:/raid# chown libvirt-qemu:kvm test/ -R
root@host:/raid# 


In de config:
   
<filesystem type='mount' accessmode='mapped'>
      <source dir='/raid/test'/>
      <target dir='test'/>
    </filesystem>
Daarna reboot van het domain.
En inderdaad ik kan mounten en in de mount schrijven.

i3 + moederbord + geheugen kopen?

Pagina: 1