{"id":3341,"date":"2017-04-26T09:49:42","date_gmt":"2017-04-26T07:49:42","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=3341"},"modified":"2018-09-10T08:52:53","modified_gmt":"2018-09-10T06:52:53","slug":"cloudstack-instalacja-i-konfiguracja-czesc-1-koncepcja-i-terminologia","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=3341","title":{"rendered":"CloudStack &ndash; Instalacja i konfiguracja, cz\u0119\u015b\u0107 1, koncepcja i terminologia."},"content":{"rendered":"<p align=\"justify\">Tym artyku\u0142em chcia\u0142bym otworzy\u0107 ca\u0142\u0105 seri\u0119 wpis\u00f3w na temat Apache CloudStack. Od d\u0142u\u017cszego czasu zajmuj\u0119 si\u0119 tym rozwi\u0105zaniem, zebra\u0142em ca\u0142kiem spory baga\u017c do\u015bwiadcze\u0144 kt\u00f3rymi ch\u0119tnie si\u0119 podziel\u0119. Zaczniemy od odpowiedzi na pytanie, czemu CloudStack (a nie OpenStack, oVirt, OpenNebula, Proxmox lub inny Stack)? Ka\u017cde z wymienionych rozwi\u0105za\u0144 testowa\u0142em, ka\u017cde jest ciekawe, ka\u017cde ma sw\u00f3j pomys\u0142 na chmur\u0119, ale jedynie CloudStack jest najbardziej zbli\u017cony do funkcjonalno\u015bci jak\u0105 oferuje VMware vCenter po\u0142\u0105czone z VMware NSX (to oczywi\u015bcie moje zdanie). CloudStack jest oprogramowaniem otwarto \u017ar\u00f3d\u0142owym, jest zwarty (nie ma stu modu\u0142\u00f3w instalowanych osobno), skaluje si\u0119 od jednego serwera do N, mo\u017ce funkcjonowa\u0107 na jednym ho\u015bcie razem z hyperwizorem (do test\u00f3w jak znalaz\u0142), dysponuje bardzo rozbudowanym API, ma komercyjne wsparcie i u\u017cywaj\u0105 go du\u017ce firmy. Nale\u017cy pami\u0119ta\u0107, \u017ce CloudStack jest profilowany jako us\u0142uga typu Public Cloud, oznacza to, \u017ce jest nastawiony na funkcjonowanie na styku z Internetem. Na szcz\u0119\u015bcie da si\u0119 go bez problemu u\u017cywa\u0107 wewn\u0105trz organizacji tak, jak to si\u0119 dzieje w przypadku VMware vCenter.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/clou1.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=\"clou1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/clou1_thumb.png\" alt=\"clou1\" width=\"643\" height=\"166\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Zaczniemy od wyja\u015bnienia koncepcji funkcjonowania CloudStack. Jak wspomnia\u0142em, jest to rozwi\u0105zanie pozwalaj\u0105ce zbudowa\u0107 publiczn\u0105 lub prywatn\u0105 chmur\u0119 typu infrastruktura jako us\u0142uga (IaaS). CloudStack potrafi zarz\u0105dza\u0107 wieloma hyperwizorami (KVM, ESXi, Xen, LXC, Hyper-V), wspiera proste (p\u0142askie) i zaawansowane sieci, dostarcza zaawansowane us\u0142ugi takie jak DNS, DHCP, routing, VPN. Opr\u00f3cz zaawansowanego API dostarcza bardzo rozbudowany interfejs graficzny dost\u0119pny poprzez WWW. Wspiera ca\u0142\u0105 gam\u0119 rozwi\u0105za\u0144 dyskowych, takich jak np. GlusterFS, Ceph i jako jedyne znane mi rozwi\u0105zanie, wpiera SharedMountPoint czyli lokalnie montowany, wsp\u00f3\u0142dzielony zas\u00f3b (dok\u0142adnie jak VMware VMFS). CloudStack pozwala si\u0119 masywnie skalowa\u0107 do rozmiar\u00f3w geograficznych (wiele datacenter) co odzwierciedla jego struktura logiczna.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud2.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=\"cloud2\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud2_thumb.png\" alt=\"cloud2\" width=\"609\" height=\"335\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Terminologi\u0119 nale\u017cy przyswoi\u0107, ma ona swoje odzwierciedlenie w interfejsie CloudStack. Region to nic innego jak jednostka grupuj\u0105ca lokalne Data Center (np. z danego obszaru), Zona to odpowiednik pojedynczego Data Center (w nim b\u0119dziemy pracowa\u0107), Pod odpowiada logice DC (mo\u017ce to by\u0107 pojedyncza szafa Rack lub ca\u0142a grupa wpi\u0119ta do jednego segmentu sieci, ka\u017cdy Pod ma osobn\u0105 sie\u0107 MGMT), Cluster to oczywi\u015bci klaster serwer\u00f3w zapewniaj\u0105cych us\u0142ugi (np. KVM). Kolejnym, typowym jedynie dla CloudStack, elementem jest podej\u015bcie do przestrzeni dyskowej.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud3.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=\"cloud3\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud3_thumb.png\" alt=\"cloud3\" width=\"413\" height=\"337\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Secondary Storage to us\u0142uga typu NFS zapewniaj\u0105ca przestrze\u0144 do przechowywania obraz\u00f3w \u017ar\u00f3d\u0142owych (Template VM), migawek dysk\u00f3w (snapshot), obraz\u00f3w ISO. Secondary Storage jest wsp\u00f3lne dla ca\u0142ego Data Center (Zona). Primary Storage to tradycyjna przestrze\u0144 dyskowa pod\u0142\u0105czana do klastra (CloudStack wspiera te\u017c dyski lokalne serwer\u00f3w). Wymogiem jest posiadanie przynajmniej jednego serwera NFS (mo\u017ce to by\u0107 np. NAS) i jednego dysku typu Primary (lokalny lub zdalny). Przejdziemy teraz do om\u00f3wienia sieci (oczywi\u015bcie skr\u00f3towego), rozr\u00f3\u017cniamy sie\u0107 typu Basic i Advanced. Wyboru sieci dokonujemy w trakcie zainicjowania danej Zony i nie mo\u017cemy jej zmieni\u0107 w trakcie funkcjonowania.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud4.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=\"cloud4\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud4_thumb.png\" alt=\"cloud4\" width=\"570\" height=\"271\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Powy\u017cszy rysunek przedstawia model typu Basic, separacja sieci poprzez VLAN, jeden fizyczny router i switch, sie\u0107 publiczna mo\u017ce by\u0107 lokaln\u0105 adresacj\u0105. Oczywi\u015bcie mo\u017cemy u\u017cywa\u0107 jednej sieci bez VLAN do wszystkiego lub miksowa\u0107 sieci z VLAN i bez VLAN (przez r\u00f3\u017cne interfejsy). Sie\u0107 typ podstawowego jest obs\u0142ugiwana przez mostki sieciowe (ca\u0142a opisywana przeze mnie konfiguracja dotyczy\u0107 b\u0119dzie KVM).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud5.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=\"cloud5\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud5_thumb.png\" alt=\"cloud5\" width=\"517\" height=\"332\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Powy\u017cszy rysunek przedstawia schemat zaawansowany, mo\u017cemy w nim tworzy\u0107 prywatne sieci VPC (Virtual Private Cloud) stoj\u0105ce za wirtualnym routerem (wymagane s\u0105 tagi VLAN), sieci izolowane, sieci wsp\u00f3\u0142dzielone. Separacja sieci poprzez GRE z zastosowaniem OpenvSwitch (jest wymagany). Tutaj mo\u017cemy tworzy\u0107 ju\u017c naprawd\u0119 ciekawe konfiguracje przypominaj\u0105ce to, co mamy w VMware NSX. Konfiguracj\u0119 zaawansowan\u0105 z powodzeniem mo\u017cemy uruchomi\u0107 na pojedynczym ho\u015bcie fizycznym.<\/p>\n<p>To oczywi\u015bcie bardzo skr\u00f3towy opis, ale wystarczaj\u0105cy do rozpocz\u0119cia zabawy z CloudStack, szczeg\u00f3\u0142y b\u0119d\u0105 wyja\u015bniane przy poszczeg\u00f3lnych aspektach opisywanej instalacji i konfiguracji. Pozosta\u0142 do om\u00f3wienia model wdro\u017cenia. W CloudStack wymagany jest fizyczny serwer typu MGMT i minimum jeden host z wirtualizatorem, wygl\u0105da to tak:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud6.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=\"cloud6\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/cloud6_thumb.png\" alt=\"cloud6\" width=\"290\" height=\"162\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Oczywi\u015bcie jest to marnotrawstwo, po pierwsze mo\u017ce to by\u0107 jeden serwer a po drugie modelem do kt\u00f3rego b\u0119dziemy d\u0105\u017cy\u0107 jest sytuacja w kt\u00f3rej CloudStack Management Server funkcjonuje jako maszyna wirtualna. Tutaj powstaje dodatkowa trudno\u015b\u0107, wszystkie VM w CloudStack stoj\u0105 za wirtualnymi routerami, nie da si\u0119 wykona\u0107 bootstrapa VM MGMT bez zainicjowania sieci (i ca\u0142ej konfiguracji) tak jak to ma miejsce w oVirt. Dlatego my instalacj\u0119 wykonamy wed\u0142ug tego modelu:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/OPM-MGMT.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=\"OPM-MGMT\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2017\/04\/OPM-MGMT_thumb.png\" alt=\"OPM-MGMT\" width=\"441\" height=\"540\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Konfiguracja ta obejmuje dwa fizyczne serwery, oczywi\u015bcie drugi serwer mo\u017ce by\u0107 wirtualn\u0105 maszyn\u0105 funkcjonuj\u0105c\u0105 wewn\u0105trz CloudStack. Us\u0142ugi typu GlusterFS mog\u0105 by\u0107 zast\u0105pione innymi (w przypadku jednego serwera mo\u017ce to by\u0107 dysk lokalny), zastosujemy jednak na pewno MariaDB Galera (klaster MySQL), Keepalived (us\u0142uga p\u0142ywaj\u0105cego adresu IP), HAProxy (wiadomo). CloudStack umo\u017cliwia funkcjonowanie wielu serwer\u00f3w MGMT (nody), poszczeg\u00f3lne nody mog\u0105 do\u0142\u0105cza\u0107 do klastra w dowolnym momencie, je\u015bli macie jeden serwer fizyczny to drugi (wirtualny) do\u0142\u0105czycie p\u00f3\u017aniej. Dzi\u0119ki temu uzyskamy pe\u0142n\u0105 elastyczno\u015b\u0107, je\u015bli posiadacie klaster z\u0142o\u017cony z trzech serwer\u00f3w to jako Primary Storage polecam bardzo Ceph. W tym artykule to wszystko, b\u0119d\u0119 si\u0119 do niego odnosi\u0142 w trakcie instalacji i konfiguracji (terminologia), ca\u0142o\u015b\u0107 instalacji zostanie przeprowadzona w systemie CentOS 7, ale mo\u017ce to by\u0107 dowolny Linuks wspieraj\u0105cy KVM. Model wdro\u017cenia z rysunku powy\u017cej jest zbli\u017cony do tego co jest uruchamiane w systemach produkcyjnych.<\/p>\n<p align=\"justify\">EDIT:<\/p>\n<p align=\"justify\">Ze wzgl\u0119du na zmiany w Lab, dalsza konfiguracja zostanie przedstawiona na bazie klastra z\u0142o\u017conego z trzech serwer\u00f3w (wirtualnych). Trzy serwery daj\u0105 wi\u0119ksze mo\u017cliwo\u015bci, zamiast GlusterFS zastosujemy Ceph. Opr\u00f3cz tego nic si\u0119 nie zmieni w konfiguracji.<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Tym artyku\u0142em chcia\u0142bym otworzy\u0107 ca\u0142\u0105 seri\u0119 wpis\u00f3w na temat Apache CloudStack. Od d\u0142u\u017cszego czasu zajmuj\u0119 si\u0119 tym rozwi\u0105zaniem, zebra\u0142em ca\u0142kiem spory baga\u017c do\u015bwiadcze\u0144 kt\u00f3rymi ch\u0119tnie si\u0119 podziel\u0119. Zaczniemy od odpowiedzi na pytanie, czemu CloudStack (a nie OpenStack, oVirt, OpenNebula, Proxmox &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=3341\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3343,"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":[93,45],"tags":[116,108,117],"class_list":["post-3341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nowosci","category-poradniki","tag-cloudstack","tag-kvm","tag-openvswitch"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":4,"sum_votes":20},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3341"}],"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=3341"}],"version-history":[{"count":7,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3341\/revisions"}],"predecessor-version":[{"id":3523,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3341\/revisions\/3523"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/3343"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}