OpenStack jest jednym z najszybciej rozwijających się systemów operacyjnych w chmurze. Jednak słowo jest bardzo zdezorientowane i wiele osób nie rozumie za tym prawdziwego pomysłu.

W tym artykule staramy się przeanalizować technologię OpenStack i sposób jej powstania. Zanim jednak zanurzymy się głęboko w OpenStack, musimy dokładnie zrozumieć niektóre aspekty technologii OpenStack zwanej wirtualizacją.

Źródło obrazu: pixabay.com

Co to jest wirtualizacja?

Wirtualizacja to technologia, która pozwala nam tworzyć wirtualne wystąpienia odpowiedników w świecie rzeczywistym. Na przykład prawdziwa maszyna fizyczna zostałaby utworzona w maszyny wirtualne. Maszyny wirtualne to tylko wirtualna implementacja twoich prawdziwych maszyn.

Analogię można wyciągnąć z emulatorów. Maszyny wirtualne działają bardziej tego samego rodzaju, tylko zamiast emulować gry, emulują całą maszynę.

Technologia, która działa za wirtualizacją i umożliwia tworzenie instancji wirtualnych, nazywa się hypervisor. Teraz wszystkie maszyny wirtualne działają na maszynie fizycznej.

Maszyny wirtualne same w sobie mogą być dowolnego typu z dowolną konfiguracją, jednak muszą być mniejsze niż maszyny, na której się spawają. Hiperwizor wypełnia lukę między jądrem maszyny fizycznej a jądrem maszyny wirtualnej.

Przechwytuje wywołania systemowe, konwertuje kod operacji języka na poziomie maszyny, przetwarza go, a następnie przekształca w kod operacji, który będzie później zrozumiany przez maszynę wirtualną.

Maszyna, na której maszyna wirtualna jest „spawnowana” lub tworzona, nosi nazwę Host machine. Maszyna wirtualna, która jest spawnowana lub tworzona przez hypervisor na maszynie hosta, nazywa się maszyną gościa.

Podobnie system operacyjny działający na maszynie hosta nazywa się systemem operacyjnym hosta, a system operacyjny działający na maszynie gościa nazywany jest systemem operacyjnym gościa.

Maszyna hosta i systemy operacyjne hosta są zawsze znacznie wydajniejsze niż maszyna gościnna i systemy operacyjne gościa. Wynika to z faktu, że rzeczywisty sprzęt zapewniający moc przetwarzania znajduje się tylko na komputerze hosta.

Hiperwizor jest również instalowany na hoście, na którym wykonuje większość operacji, wykorzystując moc samego systemu operacyjnego hosta. Maszyna wirtualna korzysta z hiperwizora, aby uzyskać dostęp do części sprzętu rzeczywistej maszyny hosta.

Rolą hiperwizora jest dostarczenie maszynie wirtualnej wymaganego sprzętu wirtualnego. Maszyny wirtualne odradzane przez hiperwizora na ogół nie mają pojęcia, że ​​są wirtualne.

Wymagany sprzęt jest dostarczany podczas odradzania maszyny wirtualnej. Po odrodzeniu w prawdziwej sieci maszyna wirtualna będzie traktowana jako pojedynczy węzeł.

Rodzaje hiperwizorów

Hiperwizory dzielą się głównie na dwa typy:

Typ 1: Hiperwizor natywny lub goły metal:

Te hiperwizory działają bezpośrednio na sprzęcie hosta i mają ścisłą integrację z jądrem hosta. Zarządzają bezpośrednio systemami operacyjnymi gości, a odradzane maszyny wirtualne pojawiają się jako proces. Nazywane są również hiperwizorem typu bare metal. Przykłady obejmują Citrix, XenServer i VMW to ESX / ESXi.

Typ 2: Hostowane hiperwizory:

Te hiperwizory działają jako zwykle instalowany program w systemach operacyjnych hosta. Odradzają maszynę wirtualną i wyodrębniają je z systemu operacyjnego hosta. Analogię można wyciągnąć z emulatorów gier. Przykłady obejmują QEMU, VirtualBox i VMWare Workstation.

Istnieje również trzeci hybrydowy typ hiperwizora, taki jak maszyna wirtualna oparta na jądrze (KVM), która choć działa jako typowy program, ale działa, jest ściśle zintegrowana z jądrem, a następnie ze sprzętem maszyny hosta.

KVM jest prawdopodobnie najbardziej znanym hiperwizorem open source, a dla OpenStack KVM jest szeroko stosowany. Wszystkie te hiperwizory działają poprzez tworzenie czegoś zwanego obrazami.

Te obrazy są kopią repliki zainstalowanego systemu operacyjnego lub dostosowanego systemu operacyjnego ze specjalnymi wymaganiami jądra. Później, gdy użytkownik korzysta z obrazu, modyfikuje obraz zgodnie z danymi przechowywanymi przez klienta.

Tym miejscem pamięci ponownie zarządza hiperwizor, który widzi, że dane klienta są zachowane i są w dokładnie takim samym stanie, jak przed opuszczeniem go przez użytkownika.

Wirtualizacja była konieczna, aby umożliwić efektywne wykorzystanie sprzętu. Zwłaszcza dla operatorów centrów danych w chmurze wirtualizacja była dobrodziejstwem. Korzystając z różnych rodzajów hiperwizorów, dostawcy chmury szybko wykorzystali wirtualizację do odrodzenia maszyn wirtualnych, wirtualnych przełączników, wirtualnych routerów i innych takich wirtualnych instancji sprzętu.

Następnie ściśle je zintegrowali, aby stworzyć dowolną sieć lub maszynę zgodnie z wymaganiami klientów. Korzystając z wirtualizacji, operator centrum danych może założyć kilka maszyn zamiast tylko jednej.

A ponieważ w chmurze chodzi o wynajęcie mocy obliczeniowej, model przychodów znacznie się zwiększył, wynajmując kilka maszyn wirtualnych zamiast tylko jednej maszyny fizycznej.

Zwiększyła również możliwość ponownego użycia, ponieważ nieużywana maszyna wirtualna może być wynajęta innym klientom. Wirtualizacja była więc dominująca i zmieniała zasady centrum danych.

Zamiast kupować cały sprzęt za znaczną cenę, użytkownicy biznesowi pożyczali zwirtualizowane instancje sprzętu, co obniżyło koszty infrastruktury IT.

W związku z tym wirtualizacja poczyniła ogromne postępy, jednak operatorzy centrów danych stanęli przed dużym problemem, który znacznie zatrzymał ich postęp, a nawet ograniczył ich dochody do poziomu strat.

Dużym problemem, którego operatorzy centrów danych nie mogli sobie wyobrazić, było zarządzanie! W miarę ewolucji wirtualizacji i dostarczania zwirtualizowanych instancji prawie każdego możliwego sprzętu pojawiła się trudność w procesie zarządzania tymi mnogościami wirtualnego sprzętu.

Wyobraź sobie, że jako szef firmy chciałbyś 10 różnych maszyn w różnych miejscach i strefach czasowych. Chcesz, aby każdy z nich miał osobne wymagania sprzętowe i programowe, a także chciałbyś śledzić ilość danych wpływających i wychodzących z niego.

Jako operator centrum danych szanujesz wymagania klientów i tworzysz te 10 maszyn wirtualnych. Wyobraź sobie jednak, że wraz z tworzeniem tych maszyn wirtualnych wciąż otrzymujesz nowe wymagania dotyczące większej liczby maszyn wirtualnych, z których każda ma jeszcze bardziej złożone wymagania.

Jak zarządzałbyś tak wieloma maszynami wirtualnymi, każda z własnym złożonym zestawem wymagań i ustawień? Oprócz tego trzeba dokładnie obciążyć każdą z wynajętych maszyn wirtualnych. Załóżmy, że klient ma inne wymagania dotyczące fakturowania.

W przypadku jednej maszyny, która jest używana jako serwer, naliczanie opłaty zależy od ilości danych, które są odbierane przez maszynę. W przypadku innej maszyny, która działa jako klient, rozliczenie zostanie wykonane według czasu włączenia wirtualnej maszyny klienta.

Te wymagania dotyczą tylko jednej osoby. Jako operator centrum danych trzeba być może obsługiwać tysiące wirtualnych urządzeń, każdy z własnymi wymaganiami sieci, sprzętu i oprogramowania.

Krytycznie potrzebny był odpowiedni interfejs zarządzania, aby wprowadzić organizację w bałagan, który stawał się zwirtualizowanym centrum danych. Zamiast obszernego korzystania z wierszy poleceń i skryptów wymagany był dobrze zbudowany „system operacyjny w chmurze”, aby zapewnić odpowiednią konserwację centrum danych. I tu właśnie pojawia się OpenStack.

Polecane kursy

  • Kurs online na temat AJAX
  • Zestaw szybkich testów zawodowych
  • Kurs online na ExtJS
  • Pakiet szkoleniowy CISSP

Co to jest OpenStack?

Jak wspomniano na początku, OpenStack to zasadniczo system operacyjny w chmurze. Przez system operacyjny rozumiemy bezpłatną platformę oprogramowania typu open source do przetwarzania w chmurze. Zaczęło się w 2010 roku jako wspólny projekt Rackspace Hosting i NASA.

Początkowo zaczęto zajmować się tym szczególnym problemem centrum danych, jakim było zarządzanie wieloma maszynami wirtualnymi. Stamtąd szybko rozwinęła się w pełnoprawną społeczność dzięki zaangażowaniu technologicznemu i wsparciu niektórych z najbardziej znanych marek technologii informatycznych, takich jak Oracle, VMWare, Yahoo Inc. itp.

OpenStack jest obecnie wspierany przez fundację OpenStack, organizację non-profit założoną w 2012 roku. Rozwijającej się społeczności OpenStack udało się wypuszczać lepszą wersję swojego oprogramowania OpenStack co sześć miesięcy w cyklu wydawania opartym na czasie z wyraźnymi kamieniami milowymi rozwoju ich wydań.

Każda wersja dodawała obyczaje, czyniąc z prostego oprogramowania do zarządzania centrami danych zaawansowaną platformę oprogramowania w chmurze.

Zapewnia interfejs do zarządzania prawie każdym aspektem maszyny wirtualnej, od tworzenia maszyn wirtualnych na żądanie po kliknięciu przycisku po zbieranie danych z sieci, OpenStack ma szeroki zasięg.

Każdego roku, co dwa lata, społeczność zbiera się w celu planowania nowych funkcji i wsparcia podczas szczytu projektowego OpenStack, podczas którego plany projektowe dużej społeczności OpenStack są sprawdzane i składane.

OpenStack pozwala użytkownikom efektywnie montować i wdrażać maszyny wirtualne. Daje coś, co nazywa się „graficznym interfejsem użytkownika”, aby uzyskać dostęp do prawie każdej funkcji wymaganej przez użytkownika końcowego.

Wracając do naszego poprzedniego przykładu, chciałbyś 10 maszyn, każda z własnym zestawem wymagań. W przypadku wcześniejszego interfejsu wiersza poleceń zarządzanie wszystkim we własnym zakresie byłoby bardzo kłopotliwe.

Dzięki OpenStack wystarczy kliknąć kilka przycisków i odpowiednio skonfigurować maszynę wirtualną. Załóżmy więc, że jeśli chcesz mieć dobrze zbudowaną rozległą sieć, możesz zarządzać swoją siecią komputerową i wyświetlać ją w postaci wykresów i statystyk w czasie rzeczywistym.

Jeśli chcesz korzystać z zaawansowanych funkcji, takich jak analiza danych i obsługa klastra HADOOP, możesz to łatwo ułatwić nawet na maszynie wirtualnej. Inne standardowe funkcje, takie jak pamięć, procesor, użycie pamięci i rdzenia, można również bardzo łatwo skonfigurować w graficznym interfejsie użytkownika przedstawionym przez OpenStack.

W OpenStack dostępna jest także obsługa rozliczeń w czasie rzeczywistym, za pomocą której można śledzić statystyki każdej maszyny wirtualnej spawnowanej za pomocą oprogramowania. Obejmuje statystyki w czasie rzeczywistym, takie jak użycie pamięci, użycie dysku, użycie rdzenia itp.

Ponadto, ponieważ OpenStack jest napisany głównie w języku Python, również korzysta ze skryptów. Zajmuje się również automatyzacją zarządzania tysiącami maszyn wirtualnych. Możesz napisać skrypt, który powie, zaplanuj automatyzację maszyny wirtualnej, kiedy ma być włączona, a kiedy wyłączona.

Automatyzując w ten sposób, możesz stworzyć bardzo dobrze zbudowaną i kompleksową platformę przetwarzania w chmurze. A ponieważ OpenStack jest całkowicie darmowy, każdy może użyć kodu źródłowego do opracowania i dodania własnych funkcji, całkowicie dostosowanych do ich potrzeb organizacyjnych lub osobistych. HP dokonało tego, wydając własne wersje chmury o nazwie HP Helion.

OpenStack, zgodnie z terminologią chmurową, należałby do kategorii infrastruktury jako usługi (IaaS), co oznacza, że ​​jego podstawową funkcją jest pomoc w budowaniu infrastruktury, na której będą wdrażane maszyny wirtualne.

Zasadniczo ułatwia odradzanie maszyn wirtualnych. To na tych maszynach wirtualnych lub „platformach” klienci wynajmują w zależności od swoich wymagań.

Podstawowe składniki OpenStack

OpenStack ma wiele różnych komponentów, ponieważ jako open source można dodać i zintegrować kilka komponentów z oprogramowaniem.

Jednak w sercu oprogramowania znajdują się tylko trzy podstawowe elementy openstack:

  1. Składnik pamięci:

Składnik OpenStack składa się z Cinder i Swift. Głównym celem tego komponentu jest przechowywanie danych odrodzonych i działających maszyn wirtualnych.

  1. Komponent infrastruktury:

Komponent ten, inaczej zwany Nova Compute, jest odpowiedzialny za zarządzanie każdym aspektem zarządzania i tworzenia maszyny wirtualnej. Obejmuje to przydzielenie wymaganego sprzętu, interakcję z hiperwizorami i działanie jako centralny węzeł w interakcji z każdym innym komponentem wymaganym do odrodzenia maszyn wirtualnych.

  1. Usługi obrazowania:

Nazywany również Glance, zapewnia usługi wyszukiwania i wyszukiwania obrazów. Zasadniczo zapewnia wsparcie w zakresie przechowywania i zarządzania różnymi replikami lub obrazami maszyn wirtualnych. Zatem w oparciu o wymagania, klient może pobrać dowolny obraz.

Wniosek

OpenStack, od skromnego początku jako oprogramowanie open source do administrowania chmurą, szybko stał się dużą społecznością entuzjastów chmury, którzy sprawili, że OpenStack rozgałęzia się na różne obszary chmury.

Sercem OpenStack jest wirtualizacja i hiperwizory, które zapewniają, że OpenStack jako platforma zarządzania może wykorzystywać moc maszyn wirtualnych.

Zwykle wdrażany jako system operacyjny infrastruktury jako usługa (IaaS), daje łatwiejszą opcję zarządzania tysiącami zwirtualizowanych instancji.

Przyszłość OpenStack wygląda jasno, teraz z big data i innymi takimi najnowszymi aspektami technologii chmury zintegrowanymi z nim płynnie. Wraz ze stale rosnącą społecznością, Open Stack będzie się rozwijał w znacznym tempie.

Polecane artykuły

Oto kilka artykułów, które pomogą ci uzyskać więcej szczegółów na temat Open Stack vs. Virtualization, więc po prostu przejdź przez link.

  1. Najlepsza rzecz do nauczenia się Azure Paas vs Iaas
  2. Chcesz wiedzieć o pytaniach do wywiadu AJAX?
  3. Kompleksowy przewodnik po Androidzie i Open Source Security (OS)
  4. Mity i nieporozumienia na temat oprogramowania Open Source
  5. Która technologia jest najlepsza? Przetwarzanie w chmurze lub wirtualizacja
  6. 10 najlepszych przydatnych porównań między chmurą obliczeniową a wirtualizacją