{"id":3193,"date":"2016-10-19T13:55:49","date_gmt":"2016-10-19T11:55:49","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=3193"},"modified":"2019-01-03T10:30:32","modified_gmt":"2019-01-03T09:30:32","slug":"serwer-kvm-wewnatrz-serwera-vmware-esxi","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=3193","title":{"rendered":"Serwer KVM wewn\u0105trz serwera VMware ESXi."},"content":{"rendered":"<p align=\"justify\">W ramach mojego \u015brodowiska testowego bardzo intensywnie sprawdzam ostatnio wszystkie rozwi\u0105zania typu Cloud dost\u0119pne na licencji Open Source (takie jak Proxmox, oVirt i CloudStack). Wszystkie one korzystaj\u0105 g\u0142\u00f3wnie z darmowego hipernadzorcy jakim jest KVM. Oczywi\u015bcie nie ma mowy o tym, aby co chwil\u0119 stawia\u0107 fizyczne maszyny z KVM, skoro wszystko mam zwirtualizowane za pomoc\u0105 VMware vSphere. W tym artykule poka\u017c\u0119 jak przygotowa\u0107 zagnie\u017cd\u017cony serwer KVM (bazuj\u0105cy na CentOS 7) i pracuj\u0105cy pod kontrol\u0105 VMware ESXi (zbli\u017cona konfiguracja zadzia\u0142a z VMware Workstation).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm0.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm0\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm0_thumb.png\" alt=\"kvm0\" width=\"271\" height=\"191\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Zagnie\u017cd\u017canie wirtualizacji w wersji dla ESXi om\u00f3wi\u0142em dok\u0142adnie <a href=\"https:\/\/vm.piszki.pl\/vmware-lab-cze%c5%9b%c4%87-1-przygotowanie-zagnie%c5%bcd%c5%bconego-esxi\/\">tutaj<\/a> i <a href=\"https:\/\/vm.piszki.pl\/konfiguracja-sieci-dla-zagnie%c5%bcd%c5%bconego-esxi-5-5-w-vsphere-5-5\/\">tutaj<\/a> i <a href=\"https:\/\/vm.piszki.pl\/vmware-lab-czesc-2-przyspieszamy-komunikacje-z-zagniezdzonymi-esxi\/\">tutaj<\/a>. W przypadku KVM mamy dok\u0142adnie takie same wymagania, czyli serwer fizyczny musi wspiera\u0107 zagnie\u017cd\u017canie wirtualizacji (jak to sprawdzi\u0107 opisa\u0142em <a href=\"https:\/\/vm.piszki.pl\/vmware-lab-cze%c5%9b%c4%87-1-przygotowanie-zagnie%c5%bcd%c5%bconego-esxi\/\">tutaj<\/a>). Ten warunek w przypadku ka\u017cdego, standardowego serwera jest spe\u0142niony, w przypadku maszyn na komponentach \u201cdomowych\u201d trzeba to dok\u0142adnie sprawdzi\u0107 (dotyczy to g\u0142\u00f3wnie procesor\u00f3w Intel). Dodatkowo, w ustawieniach wirtualnej maszyny z KVM musimy w\u0142\u0105czy\u0107 opcj\u0119 \u201cHardware wirtualization\u201d. Jak wida\u0107 w\u0142\u0105czone s\u0105 te\u017c performance counters i I\/O MMU, zwi\u0119ksza to wydajno\u015b\u0107 dzia\u0142ania KVM.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3554\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx1.png\" alt=\"\" width=\"735\" height=\"582\" srcset=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx1.png 735w, https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx1-300x238.png 300w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/p>\n<p align=\"justify\">Dodatkowo sie\u0107 w jakiej funkcjonuje zagnie\u017cd\u017cony KVM powinna mie\u0107 w\u0142\u0105czony Promiscuous-Mode i kilka innych opcji.<\/p>\n<p align=\"justify\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3553\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx2.png\" alt=\"\" width=\"439\" height=\"154\" srcset=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx2.png 439w, https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx2-300x105.png 300w\" sizes=\"(max-width: 439px) 100vw, 439px\" \/><\/p>\n<p align=\"justify\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3552\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx3.png\" alt=\"\" width=\"463\" height=\"83\" srcset=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx3.png 463w, https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx3-300x54.png 300w\" sizes=\"(max-width: 463px) 100vw, 463px\" \/><\/p>\n<p align=\"justify\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3551\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx4.png\" alt=\"\" width=\"447\" height=\"115\" srcset=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx4.png 447w, https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx4-300x77.png 300w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/p>\n<p align=\"justify\">I teraz najwa\u017cniejsze, je\u015bli chcemy (a chcemy) u\u017cywa\u0107 wewn\u0105trz zagnie\u017cd\u017conego KVM zaawansowanych sieci i us\u0142ug (np. keepalived) to sie\u0107 typu Trunk nie mo\u017ce wychodzi\u0107 wi\u0119cej ni\u017c jedn\u0105 kart\u0105 sieciow\u0105<\/p>\n<p align=\"justify\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3550\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx5.png\" alt=\"\" width=\"527\" height=\"385\" srcset=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx5.png 527w, https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/01\/esx5-300x219.png 300w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/p>\n<p align=\"justify\">Jak ju\u017c wspomnia\u0142em, serwer KVM to standardowy CentOS 7 zainstalowany jako minimal install. W tak spreparowanym systemie musimy wykona\u0107 kilka krok\u00f3w aby uruchomi\u0107 w pe\u0142ni funkcjonalny serwer QEMU\/KVM. Zaczniemy oczywi\u015bcie od zainstalowania odpowiednich pakiet\u00f3w.<\/p>\n<p>yum install kvm libvirt virt-install virt-manager qemu-kvm libvirt-client virt-viewer bridge-utils qemu-img libvirt-python xauth<\/p>\n<p align=\"justify\">Oczywi\u015bcie virt-manager nie jest niezb\u0119dnym pakietem, pozwoli nam on jednak na ko\u0144cu w prosty spos\u00f3b sprawdzi\u0107 czy wszystko jest ok. Po zainstalowaniu pakiet\u00f3w musimy skonfigurowa\u0107 pakiet QEMU i libvirt. Zaczynamy od pliku \/etc\/libvirt\/qemu.conf w kt\u00f3rym us\u00f3wamy znak # z lini: vnc_listen=0.0.0.0<\/p>\n<p>Nast\u0119pnie w pliku \/etc\/libvirt\/libvirtd.conf dodajemy nast\u0119puj\u0105ce parametry (lub usuwamy # z odpowiednich linii):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm3\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm3_thumb.png\" alt=\"kvm3\" width=\"193\" height=\"132\" border=\"0\" \/><\/a><\/p>\n<p>W kolejnym pliku, w \/etc\/sysconfig\/libvirtd us\u00f3wamy znak # z linii: LIBVIRT_ARGS=\u201d\u2014listen\u201d<\/p>\n<p align=\"justify\">Nast\u0119pnie przyst\u0119pujemy do konfiguracji sieci wewn\u0105trz maszyny. KVM funkcjonuje jako router, maszyny wirtualne z wewn\u0105trz KVM komunikuj\u0105 si\u0119 ze \u015bwiatem zewn\u0119trznym za pomoc\u0105 standardowej, mostkowanej (bridge) sieci z wykorzystaniem translacji adres\u00f3w NAT (w tym przyk\u0142adzie nie u\u017cyjemy OpenVswitch). Aby Linuks funkcjonowa\u0142 jako router, musimy mu zezwoli\u0107 na przesy\u0142anie dalej pakiet\u00f3w (ip forwarding). Tworzymy plik \/etc\/sysctl.d\/99-ipforward.conf z zawarto\u015bci\u0105 net.ipv4.ip_forward = 1.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm4\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm4_thumb.png\" alt=\"kvm4\" width=\"548\" height=\"96\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Ustawienie to mo\u017cemy w\u0142\u0105czy\u0107 poleceniem sysctl \u2013p lub zrestartowa\u0107 maszyn\u0119 (ustawienie jest trwa\u0142e). W kolejnym kroku rekonfigurujemy ca\u0142kowicie sie\u0107, robimy to z konsoli maszyny (w pewnym momencie odetniemy si\u0119 na chwil\u0119) za pomoc\u0105 nast\u0119puj\u0105cych polece\u0144:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm1_thumb.png\" alt=\"kvm1\" width=\"741\" height=\"167\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Jak wida\u0107, stworzyli\u015bmy mostek na kt\u00f3ry przenie\u015bli\u015bmy adres IP maszyny, od tej pory ca\u0142a komunikacja przejdzie przez po\u0142\u0105czenie cloudbr0. Powy\u017csze polecenia to oczywi\u015bcie Natwork Manager CLI, mo\u017cemy to samo zrobi\u0107 za pomoc\u0105 plik\u00f3w opisuj\u0105cych interfejsy w \/etc\/sysconfig. Tak przygotowany serwer mo\u017cemy zrestartowa\u0107 aby mie\u0107 pewno\u015b\u0107 \u017ce wszystkie zmiany s\u0105 aktywne. Test mo\u017cna przeprowadzi\u0107 za pomoc\u0105 virt-manager, jest to polecenie okienkowe co oznacza, \u017ce na stacji roboczej z Windows musimy zainstalowa\u0107 i uruchomi\u0107 serwer X (Xming) a z konsoli przekierowa\u0107 ekran poleceniem export DISPLAY=IP_STACJI_Z_WINDOWS:0.0. Uruchamiamy virt-manager i sprawdzamy czy wszystko jest ok.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm5\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm5_thumb.png\" alt=\"kvm5\" width=\"403\" height=\"52\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">W okienku g\u0142\u00f3wnym klikamy \u201cDetails\u201d na pozycji QEMU\/KVM.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"kvm6\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/10\/kvm6_thumb.png\" alt=\"kvm6\" width=\"476\" height=\"407\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">KVM dzia\u0142a poprawnie, mostek jest widoczny i pod\u0142\u0105czony. Od tego momentu mo\u017cna tworzy\u0107 wirtualne maszyny (r\u0119cznie) lub pod\u0142\u0105czy\u0107 taki serwer pod CloudStack i przej\u015b\u0107 na wy\u017cszy poziom wirtualizacji. Uzupe\u0142nienie informacji z tego artyku\u0142u znajdziecie <a href=\"https:\/\/vm.piszki.pl\/cloudstack-instalacja-i-konfiguracja-czesc-2-przygotowanie-sieci\/\">tu<\/a>\u00a0i <a href=\"https:\/\/vm.piszki.pl\/cloudstack-instalacja-i-konfiguracja-czesc-3-przygotowanie-wezla\/\">tu<\/a> (szczeg\u00f3lnie druga cz\u0119\u015b\u0107 omawia przygotowanie w\u0119z\u0142a CentOS 7 do pe\u0142nienia roli Hyperwizora, cz\u0119\u015b\u0107 pierwsza omawia u\u017cycie sieci zaawansowanej OpenvSwitch).<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>W ramach mojego \u015brodowiska testowego bardzo intensywnie sprawdzam ostatnio wszystkie rozwi\u0105zania typu Cloud dost\u0119pne na licencji Open Source (takie jak Proxmox, oVirt i CloudStack). Wszystkie one korzystaj\u0105 g\u0142\u00f3wnie z darmowego hipernadzorcy jakim jest KVM. Oczywi\u015bcie nie ma mowy o tym, &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=3193\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3199,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[45],"tags":[108,39],"class_list":["post-3193","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-poradniki","tag-kvm","tag-nested-esxi"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":2,"sum_votes":5},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3193"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3193"}],"version-history":[{"count":8,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3193\/revisions"}],"predecessor-version":[{"id":3556,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3193\/revisions\/3556"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/3199"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}