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?

LinuxNa 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ą:

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)

Linux in AzureWaż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:

  1. Programiści Microsoft piszą LIS dla Hyper-V
  2. Microsoft publikuje LIS (jako .ISO) do pobrania z naszych stron
  3. 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:

  1. Programiści piszą kod czegoś, co chcą dodać do jądra Linuxa
  2. Kod jest publikowany do społeczności i tam podlega weryfikacji/testom
  3. Kiedy zostanie podjęta decyzja, że jest z tym kawałkiem kodu wszystko OK - jest on dodawany do jądra Linuxa
  4. W pewnym momencie jądro Linuxa zostaje zamrożone i wydana zostaje następna wersja tegoż jądra
  5. 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:

  1. Programiści Microsoft piszą LIS dla Hyper-V
  2. Kod jest zgłaszany do społeczności Linuxowej (do weryfikacji i testów)
  3. Kiedy zostanie podjęta decyzja, że jest z tym kawałkiem kodu (z LIS) wszystko OK - jest on dodawany do jądra Linuxa
  4. W pewnym momencie jądro Linuxa zostaje zamrożone i wydana zostaje następna wersja tegoż jądra (z wbudowanymi LIS!)
  5. 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!