Nested virtualization masz włączone? Hyper -V i nie tylko raczej niechętnie pracuje na wirtualnej maszynie.
Co masz na myśli?
Nested virtualization masz włączone? Hyper -V i nie tylko raczej niechętnie pracuje na wirtualnej maszynie.
Co masz na myśli?
vmware workstation jest komercyjny i płatny, a ja nie mam na niego licencji. Generalnie wyniki swoich działań muszę póżniej przedstawić. Dlatego też używam Hyper-V servera oraz darmowego VirtualBox-a. Jedyną opcją jaka jest nie włączona to TPM o ile się nie mylę - zasadniczo mój sprzęt to Dell Latitude E6530… Rzekomo wybredne vSphere działa bez przeszkód na VB.
A da się jakoś oszukać Hyper-V?
Każdy się da, poprzez włączenie nested virtualization. Z tego co mi wiadomo, VBox nie wspiera nested. Postaw sobie na fizycznym kompie, np. obok Windowsa Ubuntu, zainstaluj qemu-kvm, qemu, libvirt-bin i virt-manager i zainstaluj na KVM Hyper-V Server.
Musisz tylko przeładować moduł. Jeśli masz procesor intela z VT-x.
sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1
Windows 10 pro/server 2016, czyli hyper-v na nowych os od MS wspiera nested virtualization. Zobacz tylko czy na Twoim procesorze to zadziała.
LINK
Jak wspomniano, 2016 Hyper-V już lepiej podchodzi do “matrioszki”. Worksation Player też powinien bez problemu obsłużyć po edycji (w tekście o Matrioszce jest błąd: zamiast code=hypervisor.cpuid.v0 = “FALSE” powinno być hypervisor.cpuid.v0 = “FALSE”; na zrzucie ekranu jest ok. Muszę poprawić).
hypervisor.cpuid.v0 = “FALSE”
hypervisor.cpuid.v0 = "FALSE"
@bachus domyśliłem się jak mi wyrzuciło dictionary error Jednak za cholerę na vmware workstation nie chce pójść. Mały off topic - czy da się za darmo używać produktów vmware? Zainstalowałem na VirtualBox-ie vSphere Hipervisor który jest niby darmowy, ale niestety już vSphere Client do zarządzania nim już jest płatny.
Co do pomysłu z Linuxem, to sprawdzę. Mam akurat LMDE jako drugi system.
Pokaż plik konfiguracyjny z VMWare.
VMWare to rodzina produktów - Worksation / Player (raczej do użytku domowego), oraz ESX/ESXi. ESXi (https://my.vmware.com/en/web/vmware/evalcenter?p=free-esxi6) jest darmowy. vSphere do podstawowych rzeczy nie będzie Ci potrzebny.
Jak by było zainteresowanie, mogę zacząć jakiś cykl wstępu do wirtualizacji właśnie na troszkę wyższym poziomie, niż zainstalowanie jednej maszyny (vSwitche, HA, DRS, failover, ISCSI i jak to “labować” w domowych warunkach).
.encoding = "windows-1250"
config.version = "8"
virtualHW.version = "12"
numvcpus = "4"
cpuid.coresPerSocket = "4"
vcpu.hotadd = "TRUE"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsisas1068"
sata0.present = "TRUE"
memsize = "8192"
mem.hotadd = "TRUE"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "HVtest.vmdk"
sata0:1.present = "TRUE"
sata0:1.fileName = "C:\Program Files (x86)\VMware\VMware Workstation\windows.iso"
sata0:1.deviceType = "cdrom-image"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
usb.present = "TRUE"
ehci.present = "TRUE"
ehci.pciSlotNumber = "34"
usb_xhci.present = "TRUE"
serial0.present = "TRUE"
serial0.fileType = "thinprint"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
displayName = "HVtest"
guestOS = "windows8srv-64"
nvram = "HVtest.nvram"
virtualHW.productCompatibility = "hosted"
vhv.enable = "TRUE"
powerType.powerOff = "soft"
powerType.powerOn = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
extendedConfigFile = "HVtest.vmxf"
uuid.bios = "56 4d 90 23 0a fc 4a 6e-34 ac 76 54 77 f3 15 ce"
uuid.location = "56 4d 90 23 0a fc 4a 6e-34 ac 76 54 77 f3 15 ce"
migrate.hostlog = ".\HVtest-699e3ea9.hlog"
scsi0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "160"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "33"
usb_xhci.pciSlotNumber = "192"
vmci0.pciSlotNumber = "35"
sata0.pciSlotNumber = "36"
scsi0.sasWWID = "50 05 05 63 0a fc 4a 60"
ethernet0.generatedAddress = "00:0c:29:f3:15:ce"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "2012419534"
monitor.phys_bits_used = "42"
vmotion.checkpointFBSize = "4194304"
vmotion.checkpointSVGAPrimarySize = "33554432"
cleanShutdown = "TRUE"
softPowerOff = "FALSE"
hypervisor.cpuid.v0 = "FALSE"
monitor.virtual_mmu = "automatic"
monitor.virtual_exec = "automatic"
tools.syncTime = "FALSE"
checkpoint.vmState = "HVtest-699e3ea9.vmss"
sound.virtualDev = "hdaudio"
toolsInstallManager.updateCounter = "2"
toolsInstallManager.lastInstallError = "21000"
sound.present = "TRUE"
sound.fileName = "-1"
sound.autodetect = "true"
sound.pciSlotNumber = "37"
svga.guestBackedPrimaryAware = "TRUE"
gui.exitOnCLIHLT = "TRUE"
mks.enable3d = "TRUE"
firmware = "bios"
workingDir = "."
vm.genid = "-5086953190646756563"
vm.genidX = "-322047885576607990"
floppy0.present = "FALSE"
usb_xhci:4.present = "TRUE"
usb_xhci:4.deviceType = "hid"
usb_xhci:4.port = "4"
usb_xhci:4.parent = "-1"
unity.wasCapable = "TRUE"
Co do tego korzystania z ESXi, czy vmware ma jakiś darmowy program do zarządzania tym ESXI? Kurde jakoś nie mogę sobie usystematyzować nazw tych produktów vmware, chociaż rozumiem jak są zbudowane i jak działają klastry obliczeniowe.
Instalujesz EXSi, ustawisz na nim siec, i laczysz sie z innego komputera przez przegladarke; od wersji 6.5 nie ma klienta w ogole.
Wyłącz maszynę wirtualną (VM), dopisz na końcu pliku konfiguracyjnego:
vhv.enable = “TRUE”
Jak OS (Hyper-V) używasz? Co do pytań:
Przykład? (można to odnieść do innych środowisk - np. Hyper-V)
Scenariusze (zakładam, że wszystko porawnie skonfigurowane):
1)
2)
Co do zarządzania: już drugi raz padło: obsługujesz przez przeglądarkę, nie potrzebujesz instalować klienta.
Próbowałem na Microsoft Hyper-V Server 2012 R2 i Microsoft Hyper-V Server 2016, a ta opcja którą mi podałeś już była w pliku konfiguracyjnym. Jeszcze spróbuję dzisiaj na Mincie jakoś to ruszyć ale czarno to widzę
Zacznij od 2012R2. Podaj wersję OS na którym masz hypervisora, procesor, czy włączyłeś wirtualizację… Za mało danych podajesz.
@roobal zainstalowałem to, ale korzystam z rożnych dysków i mam błąd odnośnie permission denied do obrazu i dysku wirtualnego mimo że zmieniłem plik qemu.conf
Jaki system plików? Kto jest właścicielem katalogu? Używasz qemu/kvm jako root czy user? Co zmienileś w qemu.conf?
To zewnętrzne dyski, format NTFS, Virt-manager uruchamiam z sudo
W tych plikach odkomentowałem user=root i group=root.
Próbowałem nadać uprawnienia dla wszystkich ale to nie działa
@roobal Dlaczego nic się nie zmienia przy użyciu chmod na katalog /media/Dodatkowy (mój drugi dysk)?
Teraz po zastosowaniu chmod -R 777 mam błąd że nie można zlalezć pliku, mimo że mogłem wprowadzić ścieżkę.
Źle, w libvirtd.conf odkomentowujesz user i group libvirt, dodajesz usera do grupy libvirt, restartujesz usługę libvirtd, przelogowujesz się i virt managerem stawiasz maszyny jako user, nie root.
Ntfs nie bierze pod uwagę linuksowych uprawnień, więc nie powinieneś miec access denied. Ja cześć maszyn mam na dysku z ntfs, część na dysku z ext4 i przy tych ustawieniach nie mam żadnych problemów z tworzeniem maszyn, vDysków itp. jako user.
@roobal
Wracam z tym tematem, mam nowy system (dalej LMDE2) i zacząłem wszystko od nowa. Mam użytkownika libvirt w grupie libvirt.
W virt-manager mam taki błąd:
[code] Nie można połączyć z biblioteką libvirt.
Proszę sprawdzić, czy demon “libvirtd” jest uruchomiony.
Libvirt URI is: qemu:///system
Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/connection.py”, line 1020, in _open_thread
self._backend.open(self._do_creds_password)
File “/usr/share/virt-manager/virtinst/connection.py”, line 158, in open
open_flags)
File “/usr/lib/python2.7/dist-packages/libvirt.py”, line 105, in openAuth
if ret is None:raise libvirtError(‘virConnectOpenAuth() failed’)
libvirtError: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Połączenie odrzucone[/code]
Jak chce ją włączyć w terminalu to:
[code] service libvirtd start
[…] Starting libvirt management daemon: libvirtd/usr/sbin/libvirtd: error: Unable to obtain pidfile. Check /var/log/messages or run without --daemon for more info.
failed!
libvirtd
2017-05-05 12:06:40.779+0000: 4574: info : libvirt version: 1.2.9, package: 9+deb8u3 (buildd 2016-07-01-18:17:10 x86-grnet-01)
2017-05-05 12:06:40.779+0000: 4574: error : virPidFileConstructPath:554 : Cannot create user runtime directory ‘/run/user/1000/libvirt’: Brak dostępu
2017-05-05 12:06:40.780+0000: 4574: error : main:1286 : Can’t determine pid file path.
[/code]
Od komentowałem linijki w libvirtd.conf
[code] # Master libvirt daemon configuration file
#################################################################
#listen_tls = 0
#listen_tcp = 1
#tls_port = “16514”
#tcp_port = “16509”
#listen_addr = “192.168.0.1”
#mdns_adv = 1
#mdns_name = “Virtualization Host Joe Demo”
#################################################################
unix_sock_group = “libvirt”
unix_sock_ro_perms = “0777”
unix_sock_rw_perms = “0770”
unix_sock_dir = “/var/run/libvirt”
#################################################################
#auth_unix_ro = “none”
#auth_unix_rw = “none”
#auth_tcp = “sasl”
#auth_tls = “none”
#access_drivers = [ “polkit” ]
#################################################################
#key_file = “/etc/pki/libvirt/private/serverkey.pem”
#cert_file = “/etc/pki/libvirt/servercert.pem”
#ca_file = “/etc/pki/CA/cacert.pem”
#crl_file = “/etc/pki/CA/crl.pem”
#################################################################
#tls_no_sanity_certificate = 1
#tls_no_verify_certificate = 1
#tls_allowed_dn_list = [“DN1”, “DN2”]
#sasl_allowed_username_list = [“joe@EXAMPLE.COM”, "fred@EXAMPLE.COM" ]
#################################################################
#max_clients = 5000
#max_queued_clients = 1000
#max_anonymous_clients = 20
#min_workers = 5
#max_workers = 20
#prio_workers = 5
#max_requests = 20
#max_client_requests = 5
#################################################################
#log_level = 3
#log_filters=“3:remote 4:event”
#log_outputs=“3:syslog:libvirtd”
#log_buffer_size = 64
##################################################################
#audit_level = 2
#audit_logging = 1
###################################################################
#host_uuid = “00000000-0000-0000-0000-000000000000”
###################################################################
#keepalive_interval = 5
#keepalive_count = 5
#keepalive_required = 1 [/code]
Dodatkowo musiałem stworzyć ten katalog którego dotyczy błąd ponieważ go nie było.
Możesz mi krok po kroku pomóc to skonfigurować?
Mały offtop, przy wylogowywaniu sie z użytkownika libvirt cinamon wisi na tepecie z zegarem i nic nie da się zrobić, prócz przełączenia na osobny terminal z którego mogę zrobić restart. Jak to naprawić?
Poradziłem sobie z libvirt w prostacki sposób, mianowicie odinstalowałem wszystko i wyrzuciłem configi. Zasadniczo prawie maszynę już da się stworzyć ale jest 2 ale…
[code] Błąd podczas tworzenia sieci wirtualnej: Unable to create bridge virbr0: File exists
Błąd podczas tworzenia sieci wirtualnej: Unable to create bridge virbr0: File exists
Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 91, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/createnet.py”, line 746, in _async_net_create
net.install()
File “/usr/share/virt-manager/virtinst/network.py”, line 199, in install
net.create()
File “/usr/lib/python2.7/dist-packages/libvirt.py”, line 2820, in create
if ret == -1: raise libvirtError (‘virNetworkCreate() failed’, net=self)
libvirtError: Unable to create bridge virbr0: File exists
[/code]
I fakt istnieje sporo katalogów i plik z tą nazwą
[code]Błąd podczas uruchamiania domeny: internal error: process exited while connecting to monitor: 2017-05-05T15:45:11.277048Z qemu-system-x86_64: -drive file=/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img,if=none,id=drive-sata0-0-1,format=raw: could not open disk image /media/kamil/Dodatkowy/VirtualMachines/HyperVWin/stor1.img: Could not open ‘/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img’: Permission denied
Błąd podczas uruchamiania domeny: internal error: process exited while connecting to monitor: 2017-05-05T15:45:11.277048Z qemu-system-x86_64: -drive file=/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img,if=none,id=drive-sata0-0-1,format=raw: could not open disk image /media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img: Could not open ‘/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img’: Permission denied
Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 91, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 127, in tmpcb
callback(*args, **kwargs)
File “/usr/share/virt-manager/virtManager/domain.py”, line 1355, in startup
self._backend.create()
File “/usr/lib/python2.7/dist-packages/libvirt.py”, line 999, in create
if ret == -1: raise libvirtError (‘virDomainCreate() failed’, dom=self)
libvirtError: internal error: process exited while connecting to monitor: 2017-05-05T15:45:11.277048Z qemu-system-x86_64: -drive file=/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img,if=none,id=drive-sata0-0-1,format=raw: could not open disk image /media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img: Could not open ‘/media/zaku/Dodatkowy/VirtualMachines/HyperVWin/stor1.img’: Permission denied
[/code]
Zakładam też że przez brak odpowiednio dużego dysku (tylko 10GB na partycji linuxa, gdyż nie mam więcej miejsca) oraz brak interfejsu sieciowego w dalszym ciągu mam niedostępne usługi HyperV
Nie wiem jaki init ma lmde. Jeśli SysVinit, to używasz polecenia service. Jeśli systemd, systemctl. Jeśli chodzi o sieć, to musisz wywalić network manager (wyłączyć usługę). Następnie konfigurujesz sieć, tak jak bez GUI. Doinstalowujesz bridge-utils i tworzysz bridge, który następnie podpinasz do VMek.