Wsparcie dla Linuxa na Hyper-V
Coraz więcej firm zaczyna korzystać z Hyper-V. Duża część specjalistów, z którymi miałem do czynienia na warsztatach w ostatnich tygodniach pytała o wsparcie w Hyper-V dla sytemów spoza ogródka Microsoft - czyli konkretnie o wspierane dystrybucje Linuxowe.
Jakie dystrybucje są wspierane?
Na stronie Hyper-V Overview możecie znaleźć listę systemów gości, które są wspierane w Hyper-V w Windows Server 2012 oraz Windows Server 2012 R2 (i ich odpowiednikach w Hyper-V Server).
Jesli natomiast chodzi o wsparcie dla dystrybucji Linuxowych to jest przygotowana dedykowana strona Linux Virtual Machines on Hyper-V. Na niej znajdziecie informacje o szczegółowym wsparciu w poszczególnych dystrybucjach oraz jakie funkcjonalności są wspierane. Są też dodatkowe uwagi dotyczące konfiguracji i znajdziecie tam też najlepsze praktyki przy wirtualizacji systemów Linuxowych.
Na tej stronie znajdziecie informację, że aktualnie wspierane są:
- CentOS (od 5.5)
- Red Hat Enterprise Linux (od 5.5)
- Debian (od 7.0)
- Oracle Linux (od 6.4, to nowość!)
- SUSE Linux Enterprise Server (od SLES 11 SP3 + Open SUSE 12.3)
- Ubuntu Server (od 12.04)
W zależności od dystrybucji i konkretnej wersji - specjalne sterowniki (LIS = Linux Integration Services) albo są wbudowane już w system/jądro lub też trzeba będzie je bezpłatnie pobrać w odpowiedniej wersji. Te szczegóły znajdziecie na powyższych stronach. A o samych LIS jeszcze za chwilę kilka dodatkowych, ważnych informacji.
Linux w chmurze publicznej (Microsoft Azure)
Ważna informacja jest też taka, że w naszej chmurze publicznej - Microsoft Azure, również możecie uruchamiać dystrybucje Linuxowe.
Tam przy współpracy z partnerami i społecznością zapewniamy dostęp do:
- gotowej biblioteki maszyn wirtualnych z Linuxem (pomoc ze strony partnerów)
- oraz do bazy obrazów przygotowywanych przez społeczność (VM Depot, ponad 500 gotowców)
Szczegóły wspieranych dystrybucji znajdziecie na stronie Linux on Azure-Endorsed Distributions.
Linux Integration Services - jak powstają i dlaczego
Nasz zespół z Open Source Technology Center (OSTC) w ostatnich latach bardzo mocno wspierał rozwój Linuxa poprzez tworzenie Linux Integration Services.
W pewnym momencie (2012 rok) Microsoft był nawet jednym z bardziej aktywnych twórców kodu Linuxa (inżynier z Microsoft w jądrze Linuxa 3.0 wprowadził 343 zmiany, co plasowało go na topowym miejscu wśród twórców jądra, w jądrze 3.2 wprowadził 165 zmian, co plasowało go na 5 miejscu jeśli chodzi o wkład pracy). Efekty też widać do dziś, bo na przykład w FreeBSD 10.0 (wypuszczonym w styczniu 2014) pojawiły się duże zmiany związane właśnie ze wsparciem dla Hyper-V.
I teraz kilka słów wyjaśnień jak wyglądało tworzenie LIS przed rokiem 2012 i jak to wygląda teraz.
Rozwój LIS dla Hyper-V (przed lutym 2012)
Kiedy pojawiły sie pierwsze podejścia do Linux Integration Services to cały proces wyglądał tak:
- Programiści Microsoft piszą LIS dla Hyper-V
- Microsoft publikuje LIS (jako .ISO) do pobrania z naszych stron
- Klienci pobierają LIS i instalują je w swoich maszynach wirtualnych
Przy czym w takim podejściu (o ile ogólnie jest ono całkiem OK) pojawiają się 2 problemy:
- Klienci mają dodatkową robotę do zrobienia (muszą pobrać i zainstalować LIS w każdej maszynie wirtualnej)
- Microsoft musi pakować LIS dla różnych dystrybucji i oferować sposób ich aktualizacji z czasem
Finalnie chcieliśmy uprościć te prace, w związku z tym należało się przyjrzeć jak wyglądają prace nad rozwojem Linuxa jako takiego...
Rozwój Linuxa
Z grubsza proces rozwoju Linuxa (w oderwaniu na razie od Hyper-V/LIS) wygląda tak:
- Programiści piszą kod czegoś, co chcą dodać do jądra Linuxa
- Kod jest publikowany do społeczności i tam podlega weryfikacji/testom
- Kiedy zostanie podjęta decyzja, że jest z tym kawałkiem kodu wszystko OK - jest on dodawany do jądra Linuxa
- W pewnym momencie jądro Linuxa zostaje zamrożone i wydana zostaje następna wersja tegoż jądra
- Teraz różni twórcy, różnych dystrybucji biorą najnowsze jądro Linuxa i bazują na nim w swoich najnowszych dystrybucjach
I teraz gdzie do tego procesu dołączymy LIS? Otóż Linux Integration Services to w gruncie rzeczy paczka ze sterownikami, które muszą istnieć w danej dystrybucji Linuxa, aby mógł on rozmawiać z hostem Hyper-V oraz sprzętem pod nim.
Rozwój LIS dla Hyper-V (po lutym 2012)
Więc co zrobiliśmy, aby rozwiązać 2 poprzednie problemy, a jednocześnie skorzystać z bardzo rozsądnego podejścia do rozwoju jądra Linuxa? Otóż cały proces tworzenia i dsytrybucji LIS wygląda z grubsza tak:
- Programiści Microsoft piszą LIS dla Hyper-V
- Kod jest zgłaszany do społeczności Linuxowej (do weryfikacji i testów)
- Kiedy zostanie podjęta decyzja, że jest z tym kawałkiem kodu (z LIS) wszystko OK - jest on dodawany do jądra Linuxa
- W pewnym momencie jądro Linuxa zostaje zamrożone i wydana zostaje następna wersja tegoż jądra (z wbudowanymi LIS!)
- Teraz różni twórcy, różnych dystrybucji biorą najnowsze jądro Linuxa i bazują na nim w swoich najnowszych dystrybucjach
Prawda, że proste i świetne jednocześnie? I czy widzicie już co to oznacza na szeroką skalę?
Otóż od lutego 2012 Microsoftowe LIS są włączone w jądro Linuxa. Co za tym idzie - dostępne jest dla każdego użytkownika Linuxa i praktycznie dla każdej dystrybucji! Nie ma już potrzeby pobierania, podpinania, instalowania czy aktualizowania LIS w różnych dystrybucjach w rózny sposób.
Czyli wracając do pytania - które dystrybucje mają wbudowane Linux Integration Services?
Otóż jeśli dowolnie wybrana dystrybucja Linuxa (wydana na bazie jądra po 2012 roku) specjalnie i świadomie nie usunie LIS ze swojego kodu, to w każdej takiej dystrybucji on już będzie wbudowany!