Czy mogę wirtualizować Windows i Linux przy pomocy virtualbox na solaris z ZFS ZVOLS?

4

Zastanawiam się nad stworzeniem systemu do wirtualizacji Windows Server 2016 i CentOS 6 za pomocą virtualbox na Solarisie (do użytku domowego), aby wykorzystać niezawodność ZFS.

Planowałem zdobyć płytę DP ws / serwer z 1 TB pamięci RAM i stosem dysków WD Red.

Jestem również zainteresowany zezwoleniem maszynom wirtualnym z systemem Windows na dostęp do zasobów GPU. Czy jest to możliwe w tej sytuacji?

Czy można hostować maszynę wirtualną z systemem Windows / Linux, która korzysta z zfs zpool lub vdev zamiast iść bezpośrednio do sprzętu w celu uzyskania dostępu do systemu plików?

Naprawdę potrzebuję tylko systemów operacyjnych Windows i Linux, ale rozważałem hosta Solaris wyłącznie dla korzyści ZFS i jego kompatybilności z VirtualBox.

Czy jest na to lepszy sposób, czy wybrałem najlepszą opcję?

Bez względu na to, czy jest to najlepsza, czy lepsza metoda, jakie są problemy związane z jakąkolwiek zaproponowaną przez Ciebie metodą?

Mam ograniczony budżet i wolałbym wydawać pieniądze na sprzęt niż na oprogramowanie, jeśli będzie dostępna opcja wolnego oprogramowania.

Inną opcją było dodanie sprzętowego adaptera sas z Raidem 6 i użycie Windows Server 2016 jako hosta dla virtualboxa, Linuxa i innych maszyn wirtualnych, ale NTFS nie jest tak niezawodny jak ZFS ...

EDYTOWAĆ

Moje cele to:

  1. Mieć jedną maszynę fizyczną.

  2. Minimalizuj ryzyko utraty danych w wyniku awarii dysku twardego i innych problemów z systemem plików.

  3. Uruchom system operacyjny serwera Windows 2016 oraz niektóre aplikacje, takie jak Exchange, SQL Server. Wymagana jest tutaj karta graficzna

  4. Uruchom zmodyfikowany system CentOS (FreePBX).

  5. Uruchom niektóre inne maszyny wirtualne, najlepiej również z obsługą GPU.

  6. Uzupełnij i ewentualnie zastąp skrzynkę Synology RS812 +.

  7. Minimalizuj wydatki na oprogramowanie, pozwalając na więcej / lepszy sprzęt w moim budżecie.

Jestem w fazie planowania, więc na tym etapie mogę rozważyć wszystko.

Mając hosta Solaris, myślałem, że cały system plików byłby zfs, a zatem lepiej chroniony przed awariami, niż goście wirtualni mogliby na to pozwolić - chyba że coś gdzieś źle zrozumiałem. Wydaje się, że alternatywy powodują, że przynajmniej część systemu plików nie jest zfs, z mniejszą niezawodnością.

Monty Wild
źródło

Odpowiedzi:

4

Jestem również zainteresowany zezwoleniem maszynom wirtualnym z systemem Windows na dostęp do zasobów GPU. Czy jest to możliwe w tej sytuacji?

Aby bezpośrednio przejść przez kartę graficzną PCIe, potrzebujesz:

  • dwie karty graficzne PCIe (jedna, jeśli używane są pewne sztuczki, takie jak przenoszenie karty przez skrypty z systemu hypervisor do systemu gościa podczas uruchamiania)
  • płyta główna obsługująca Intel VT-d lub AMD Vi (poprzednio IOMMU)
  • oprogramowanie hypervisor, które go obsługuje

Wygląda na to, że niestety Virtualbox obecnie go nie obsługuje . Jeśli jest to trudne wymaganie, może być konieczne użycie KVM w systemie Linux lub Illumos, VMware ESXi lub Microsoft Hyper-V, wszystkie one obsługują tę funkcję (choć wymaga to innych prac konfiguracyjnych).

Czy można hostować maszynę wirtualną z systemem Windows / Linux, która korzysta z zfs zpool lub vdev zamiast iść bezpośrednio do sprzętu w celu uzyskania dostępu do systemu plików?

Tak to mozliwe. Oto odpowiednie polecenia zaczerpnięte z postu na blogu Johannesa Schlütera:

# zfs create -V 10G tank/some_name
# chown your_user /dev/zvol/rdsk/tank/some_name
# VBoxManage internalcommands createrawvmdk \
  -filename /home/your_user/VBoxdisks/some_name.vmdk \
  -rawdisk /dev/zvol/rdsk/tank/some_name
# VBoxManage registerimage disk /home/your_user/VBoxdisks/some_name.vmdk

Alternatywnie możesz użyć COMSTAR do obsługi zvol przez iSCSI.

Chociaż ma to tylko niewielki dodatkowy narzut i nie ma bezpośredniej korzyści w przypadku lokalnym, możesz z niego skorzystać, gdy chcesz się rozłożyć i na przykład dodać inny (redundantny) serwer pamięci lub przenieść pamięć do oddzielnego pudełka.

W twoim konkretnym przypadku nie zrobiłbym tego, ale istnieje opcja (także z NFS zamiast iSCSI, ale przy korzystaniu z zvoli zamiast systemów plików nie ma natychmiastowej korzyści, jeśli oba są odpowiednio skonfigurowane).

Czy jest na to lepszy sposób, czy wybrałem najlepszą opcję?

  • Jeśli chcesz korzystać z Virtualbox, zrobiłbym to
  • Jeśli jesteś elastyczny w odniesieniu do hiperwizora, możesz spojrzeć na SmartOS (ZFS, Zones i KVM w małym, prawie bezstanowym systemie operacyjnym serwera zbudowanym specjalnie do hostowania maszyn wirtualnych)
  • Jeśli potrzebujesz karty PCIe dla kart graficznych, może być konieczne użycie Linux + KVM, ESXi lub Hyper-V jako hiperwizora, wirtualizacja maszyny Wirtualnej pamięci masowej Solaris / illumos, przekazywanie jej na dyski i podawanie ich z powrotem przez NFS lub iSCSI do hypervisor, gdzie jest następnie normalnie używany. Jest to również znane jako urządzenie pamięci masowej All-in-One (AiO). Sugeruję przeczytanie tej koncepcji w doskonałej instrukcji gea (patrz link PDF na górze). Brzmi skomplikowanie, ale po skonfigurowaniu jest zaskakująco prosty i elastyczny, ponieważ można go w dowolnym momencie przenieść z sieci wirtualnej do sieci fizycznej, można zastąpić sprzęt jak zwykle, a całe podejście jest wielowarstwowe. Ma kilka wad, ale wejdę w nie tylko, jeśli jesteś zainteresowany, ponieważ są one dość niszowe.

Jeśli chodzi o twoją edycję:

  1. Mieć jedną maszynę fizyczną.
  2. Minimalizuj ryzyko utraty danych w wyniku awarii dysku twardego i innych problemów z systemem plików.
  3. Uruchom system operacyjny serwera Windows 2016 oraz niektóre aplikacje, takie jak Exchange, SQL Server. Wymagana jest tutaj karta graficzna
  4. Uruchom zmodyfikowany system CentOS (FreePBX).
  5. Uruchom niektóre inne maszyny wirtualne, najlepiej również z obsługą GPU.
  6. Uzupełnij i ewentualnie zastąp skrzynkę Synology RS812 +.
  7. Minimalizuj wydatki na oprogramowanie, pozwalając na więcej / lepszy sprzęt w moim budżecie.

Mówiąc ogólnie, masz dwie możliwe opcje konfiguracji urządzenia wielofunkcyjnego - sama pamięć masowa zwirtualizowana (jak w pliku Readme napp-it, który podłączyłem) lub pamięć w hiperwizorze. Nazywam ich A i B, aby porównać twoje punkty.

  1. A i B są równe, ponieważ oba są na tej samej maszynie fizycznej.
  2. A i B są prawie równe, ponieważ oba systemy mogą korzystać z ZFS. W przypadku A możesz wybrać system pamięci masowej (Solaris, Illumos, Linux, BSD), w przypadku B musisz wybrać coś, co obsługuje przekazywanie ZFS i PCIe dla VGA (obecnie tylko Linux i FreeBSD). Wpływa to również na wybór hiperwizora (ESXi, Hyper-V, KVM z A i tylko KVM z B).
  3. A i B są równe. Należy jednak pamiętać, że pojedynczy GPU można przekazać tylko do jednej działającej maszyny wirtualnej, która zajmuje go całkowicie. Przełączanie procesorów graficznych wymaga zamknięcia maszyn wirtualnych, których dotyczy problem. Jeśli potrzebujesz współużytkowanej obsługi GPU, masz ograniczone możliwości: Nvidia Tesla / Grid (bardzo droga) lub nowe wspólne GPU Intel Skylake (niezbyt mocne, wciąż eksperymentalne, patrz prezentacja KVMGT ).
  4. W obu przypadkach nie ma problemu, ponieważ wystarczy wirtualna karta VGA.
  5. Zobacz punkt 3, w zależności od liczby maszyn wirtualnych zakup ok. Kilku kart lub pojedynczej karty sieciowej lub poczekanie, aż udostępnianie zostanie poprawnie zaimplementowane dla wszystkich kart KVM.
  6. Oba przypadki obsługują użycie iSCSI i NFS do użytku wewnętrznego i zewnętrznego (czyli rzeczywistej sieci), zależy to od preferencji administratora. Oba mogą również korzystać z pamięci z NAS / SAN (zakładając, że z arkusza danych nie mam systemu samodzielnie).
  7. Niezależnie od twojego wyboru, całe oprogramowanie może być uruchomione bez żadnych kosztów licencji, z wyjątkiem oczywiście Windows Server i potrzebnych licencji CAL (ale można je zastąpić samba4) i Solaris (można zastąpić dystrybucją illumos, taką jak OmniOS, OpenIndiana lub SmartOS) . Rozwiązanie Grid może wiązać się z dodatkowymi kosztami licencji, nie analizowałem go, ponieważ sam sprzęt jest tak drogi, że nie jest przydatny w takich przypadkach.

W dużej mierze sprowadza się to do preferencji:

  • Jeśli nie masz doświadczenia z administrowaniem Linuksem (w tym ZoL) i konfiguracją KVM (może to być nieco trudne w zależności od sprzętu i dystrybucji), możesz ominąć dodatkową maszynę wirtualną do przechowywania i potrzebować małego dysku SSD / HDD, jeśli wybierzesz rozwiązanie B.
  • Z drugiej strony, jeśli chcesz wybierać z pełnego zakresu opcji i korzystać z najlepszego systemu dla każdego przypadku, możesz skorzystać z elastyczności rozwiązania A (chociaż tutaj może wystąpić niewielki narzut sieci wewnętrznej).
użytkownik121391
źródło
Spójrz na zmiany mojego pytania.
Monty Wild
@MontyWild zobacz moją zaktualizowaną odpowiedź
user121391
Gdybym użył opcji zfs-host, czy mógłbym użyć VGA płyty głównej dla hosta i GPU dla jednego gościa?
Monty Wild
@MontyWild Tak, to normalny sposób i działa tak, jak można się spodziewać (w rzeczywistości działa w obu przypadkach, ponieważ maszyna wirtualna pamięci masowej nie potrzebuje w rzeczywistości rzeczywistej karty graficznej, tylko hiperwizor). Jeśli używasz KVM, możesz nawet ponownie podłączyć VGA do drugiej maszyny wirtualnej po uruchomieniu (z wadą, że system dom0 hosta może być zarządzany tylko zdalnie przez SSH lub konsolę szeregową).
user121391,
Moim zamiarem jest dołączanie do maszyn wirtualnych i hosta przez RDP, http lub SSH przez większość czasu. Jest to bardziej uwielbiany serwer NAS i aplikacja niż host stacjonarny, a procesor graficzny byłby wykorzystywany raczej do transkodowania wideo niż aplikacje komputerowe lub do gier. Spędzi większość czasu siedząc w mojej szafie bez nadzoru. Jeśli chodzi o mój ostatni komentarz, miałem na myśli, że mogę użyć Solaris z zfs i hiperwizorem jako hostem i pozwolić, aby używał vga płyty głównej, i uruchomić gościa Windows Server i pozwolić, aby używał gpu - jeśli znajdę odpowiedniego hiperwizora, który będzie działał na Solarisie.
Monty Wild