Serwer domowy z Proxmox VE (wirtualizacja) cz. 1

Tym razem postanowiłem opisać przygotowanie serwera domowego od zera z wykorzystaniem Linuxa Debian i Proxmoxa. Nie będzie zabawy z KVM, Qemu, OpenVZ, LXC itd. z konsoli ponieważ Proxmox pozwala tworzyć wirtualne maszyny i kontenery oraz nimi zarządzać z poziomu przeglądarki (posiada panel web). Co to jest Proxmox – odsyłam do Wiki (wersja angielska) Proxmox – Wikipedia, a tak w skrócie to:

Proxmox VE (Virtual Environment) jest rozwiązaniem przeznaczonym do zarządzania serwerami w środowiskach wirtualnych (opartych o KVM oraz o kontenery LXC). Pozwala on na zarządzanie maszynami wirtualnymi, przestrzenią dyskową, wirtualną siecią oraz klastrami HA.

Więcej chyba nic nie muszę dodawać. Czyli bez nadmiernej zabawy z konsolą można zarządzać wirtualnymi maszynami. Każdy sam wie do czego potrzebuje serwer i sam określi jakie usługi będzie hostować na serwerze i jakie wirtualne maszyny utworzy. Serwer z wirtualnymi maszynami/kontenerami może pozwolić na stworzenie środowiska m.in. na takie usługi jak: serwer WWW/FTP, serwer bazodanowy (MySQL, PostgreSQL, MSSQL itd.), Owncloud/Nextcloud, serwer plików (OpenMediaVault), serwer GIT i SVN (GitLab/SCM-Manager), serwer z innymi usługami (np. rtorrent, skrypty/usługi do backupu itd.), serwer do gier, serwery do testów deweloperskich softu, który tworzy programista itd. Z racji, że tekst jest dość obszerny ze względu na zamieszczone screeny postanowiłem podzielić to na części. Pierwsza część to instalacja systemu i wstępna konfiguracja. Kolejna część to będzie instalacja Proxmoxa i utworzenie przykładowej wirtualnej maszyny. Po tych opisach co i jak każdy powinien już wiedzieć jak własnymi siłami praktycznie od podstaw stworzyć w domu (lub nawet firmie) serwer do wirtualizacji w oparciu o środowisko Proxmox VE. Podkreślam, że zawsze kluczowe jest bezpieczeństwo danych dlatego też do tematów migracji obecnych środowisk, danych, struktur itd. podchodzi się indywidualnie i tutaj nie poruszam tematów migracji obecnych środowisk do środowisk zwirtualizowanych. Zapraszam do lektury.

Co do wymagań sprzętowych to żeby wykonać opisywane przeze mnie tutaj wskazówki należy posiadać komputer, który wspiera sprzętowo wirtualizację (Procesor AMD/Intel z technologią wirtualizacji czyli AMD-V/Intel VT), posiadać minimum dwa dyski jednakowej pojemności (jeżeli ktoś ma jeden dysk to po prostu nie utworzy RAID1), mieć wystarczającą ilość RAM (powiedzmy, że minimum te 4GB RAM zależnie ile i jakie wirtualne maszyny są potrzebne i z jaką ilością przydzielonego RAM itd.).
Proxmoxa można zainstalować jako gotowy system z gotowego ISO instalacyjnego (Proxmox bazuje na Debianie) lub samodzielnie zainstalować Debiana i doinstalować środowisko Proxmox. Tutaj opiszę drugi sposób czyli samodzielną instalację Debiana i instalację środowiska Proxmox. Dlaczego tak? Ponieważ instalacja Proxmoxa z dedykowanego obrazu instalacyjnego nie wspiera softraid z ext3/ext4 i ma tylko softraid w systemie plików ZFS. Proxmox wspiera sprzętowe kontrolery RAID, a w warunkach domowych raczej mało kto taki kontroler posiada aby był kompatybilny z Proxmoxem.
Opiszę instalację Linuxa Debian, z softraidem 1 (mirror), instalację Proxmoxa i utworzenie przykładowej maszyny wirtualnej. Jeżeli ktoś już ma przygotowane środowisko (zainstalowanego Debiana) lub wie jak zainstalować Linuxa Debian i ustawić dyski w softraid 1 może przejść od razu do części drugiej z instalacją Proxmoxa Serwer domowy z Proxmox (wirtualizacja) cz. 2.
W przykładzie opiszę jak ustawić dyski z programowym RAID-1. Takim samym sposobem można na starcie dodać kolejne dyski na dane i z nich także utworzyć programowy RAID-1. Jeżeli ktoś chce później, już po instalacji systemu dołożyć kolejne dyski i zrobić RAID0, RAID1, RAID5 lub co tam chce to już raczej będzie musiał to robić z poziomu konsoli.



Spis treści:
1. Konfiguracja systemu
2. Instalacja Linux Debian
2.1 Konfiguracja sieci


1. Przygotowanie
Najpierw należy przygotować nośnik instalacyjny. Tutaj opiszę przykład instalacji z pendrive z obrazem Debian 9.2.1 amd64 (UWAGA: cały artykuł opisuje przygotowanie systemu Linux w wersji 64bit pod instalację Proxmoxa. Jest to istotne dla samej instalacji Proxmoxa w części 2), instalacja minimalna czyli netinst (instalacja sieciowa). Jeżeli ktoś ma napęd CD/DVD to może nagrać obraz ISO na płytę i ustawić boot z płyty na komputerze w celu instalacji. W przypadku uruchomienia instalacji z USB należy najpierw utworzyć bootowalny pendrive. W tym celu ściągamy ze strony https://www.debian.org/CD/netinst/ interesującą nas wersję Debiana (w moim przypadku jest to amd64). Ściągamy narzędzie Universal USB Installer(https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/). Uruchamiamy Universal USB Installer i klikamy przycisk Agree. Pokaże się okienko, w którym wybieramy odpowiednio
Step 1: Debian netinst
Step 2: klikamy przycisk browse i wskazujemy plik z obrazem instalacyjnym.
Step 3: wybieramy z listy pendrive którym ma zostać użyty, dodatkowo zaznaczamy opcję “We Will Fat32 Format” (sformatuje to pendrive czyli wyczyści dane które na nim są aby było miejsce na pliki instalacyjne).

Jak wszystko ustawiliśmy klikamy Create i czekamy aż program wykona swoje zadanie.


2. Instalacja Linux Debian
Gdy już mamy gotowy bootowalny pendrive to podłączamy go do komputera (jeżeli komputer ma porty USB 3.0 i USB 2.0 to najlepiej podłączyć pendrive do USB 2.0), uruchamiamy komputer i ustawiamy boot na USB (lub CD/DVD jeżeli ktoś używa płyty). Kiedy komputer się uruchomi z USB pojawi się menu MultiBoot USB (ten kto używa płyty zobaczy od razu ekran z menu Debiana). Wybieramy Unlisted ISOs (via GRUB), a następnie Boot debian-9.2.1-amd64-netinst (w moim przypadku). Pojawi się ekran instalatora Debian. Jako, że lubię tryb tekstowy to wybieramy Install. Nie wszystkie tutaj przedstawione ekrany mogą się pojawić w czasie instalacji, a to dlatego, że przeprowadzałem instalację w trybie zaawansowanym przez co parę dodatkowych opcji do wyboru się mi pojawiło. Nie jest to zbyt istotne, bo jeżeli któryś ekran się komuś nie pojawi z możliwościami wyboru opcji to system będzie miał w tych miejscach po prostu domyślne ustawienia. Czyli nie ma co się przejmować i można iść dalej.

Język to już kto jaki chce (u siebie wybieram English, ale kto chce to może wybrać Polski lub inny)

na kolejnym ekranie Country, territory or area wybieramy other

następny ekran “Continent or region” wybieramy Europe

następny ekran “Country, territory or area” tutaj wybieram Poland

następny ekran “Country to base default locale settings on” zostawiamy United States – en_US.UTF-8

ekran “Keymap to use” wybieramy Polish.

Teraz instalator będzie wykrywać napęd CD/DVD czyli naszego pendrive. Jeżeli się wszystko powiedzie otrzymamy stosowany komunikat, że się powiodło. Wybieramy opcję “Continue”

W kolejnym oknie należy wprowadzić nazwę komputera.

Kolejne okno to nazwa domeny. Jak nie używamy domeny to zostawiamy puste i wybieramy continue.

W kolejnym kroku należy wprowadzić hasło root (administratora systemu).

Kolejny ekran to powtórzenie hasła root

Kolejny ekran to pełna nazwa użytkownika. Może to być cokolwiek chcemy.

Kolejne okno to nazwa użytkownika (login, którego będziemy używać jako użytkownicy)

Następnie idziemy dalej i podajemy hasło użytkownika

Kolejne okno to powtórzenie hasła użytkownika

Następne okno to będzie partycjonowanie dysków. Tutaj będzie trochę zabawy więc wybieramy opcję Manual

Kolejne okno to widok dostępnych dysków. W moim przypadku to wygląda jak poniżej. Czyli 2x dysk SATA 160GB i jeden widoczny dysk 3.9GB to USB pendrive. Wybieramy pierwszy dysk.

Wybieramy opcję “Create a new partition” (tworzymy nową partycję)

Rozmiar partycji w tym przypadku to 158GB (zostawiam 2GB na dysk swap). Nie bawię się w tym przypadku w dzielenie dysku na jakieś mniejsze partycję typu na sytem, home, boot, var itd. , bo cały dysk ma przeznaczenie na system, a że będzie to pracować w softRAID 1 to tak jest po prostu łatwiej. Każdy ma tutaj dowolność jak podzieli sobie dysk twardy.

Następny krok to typ pratycji i tutaj ustawiamy primary

Lokalizacja partycji to początek dysku “Beginning”

W kolejnym oknie wchodzimy w “Use As”

Ustawiamy “physical volume for RAID”, bootable flag ustawiamy na ON (należy wybrać Bootable flag i wcisnąć enter), a następnie potwierdzamy ustawienia wybierając “Done setting up the partition”

Instalator wróci do ekranu partycjonowania, który będzie wyglądać podobnie do tego jak poniżej. MAmy utworzoną partycję podstawową 158GB, bootowalna, typ RAID. Wybieramy teraz wolne 2GB na dysku pierwszym.

Wybieramy opcję tworzenia partycji

Rozmiar partycji 2GB

Typ partycji podstawowy

Ustawiamy “Use As” na “physical volume for RAID”, a następnie potwierdzamy ustawienia wybierając “Done setting up the partition”

Instalator wróci do ekranu partycjonowania dysków. Teraz analogicznie powyższe operacje należy wykonać tak samo dla drugiego dysku. Identycznie go podzielić czyli jedna partycja 158GB, bootable, typ RAID, kolejna partycja 2GB, typ RAID. Musi to wyglądać podobnie jak na screenie poniżej. Czyli dwa dyski mają identycznie utworzone partycje i każda z nich jest typu RAID. Jeżeli tak jest to wybieramy opcję “Configure software RAID” (konfiguracja RAIDA programowego)

Zostaniemy zapytani czy zapisać zmiany na dysku. Potwierdzamy, że tak czyli opcja “Yes”

Ekran konfiguracji RAID pozwoli utworzyć macierz. Wybieramy opcję Create MD device.

Kolejny ekran to typ RAID. Tutaj wybieramy RAID1 (czyli mirror)

Ilość urządzeń/dysków w RAID to 2 czyli wpisujemy 2.

Ilość dysków zapasowych RAID1 wpisujemy 0

Kolejne okno to wybór dysków do tworzonej macierzy. Tutaj zaznaczamy /dev/sda1 oraz /dev/sdb1 czyli partycja 158GB pierwszego dysku i partycja 158GB drugiego dysku i przechodzimy dalej.

Kolejny ekran to ponownie ekran tworzenia macierzy. Teraz pozostaje utworzyć kolejną macierz dla dysków SWAP. Czyli “Create MD device”

Teraz tak samo jak dla powyższej macierzy ustawiamy kolejny ilość urządzeń/dysków to 2, dysków zapasowych 0 i teraz w wyborze partycji do macierzy RAID1 wybieramy partycje /dev/sda2 i /dev/sdb2 czyli partycja 2GB z dysku pierwszego i partycja 2GB z dysku drugiego.

Skoro ustawiliśmy już wszystkie nam potrzebne partycje jako RAID1 to wybieramy opcję Finish.

Pojawi się okienko postępu operacji i skanowania dysków

Następnie pojawi się okienko partycjonowania dysków. Jak widać mam teraz RAID1 device #0 i RAID1 device #1. Jedna macierz ma 157.9GB, a druga 2.0GB. Musimy teraz ustawić systemu plików na tych macierzach.

Czyli wybieramy pierwszą macierz 157.9GB

Wchodzimy opcję “Use as”

Wybieramy Ext4

Mount point ustawiamy na / i potwierdzamy ustawienia

Teraz macierz 2GB czyli swap.

Wchodzimy opcję “Use as” i ustawiamy opcję “swap area”

Na ekranie ustawiania partycji będzie to wyglądać podobnie jak poniżej. Czyli najpierw utworzyliśmy takie same partycje na obu dyskach, utworzyliśmy dwie macierze RAID1 z poszczególnych partycji obu dysków, ustawiliśmy typ systemu plików na obu macierzach.

Dyski gotowe do instalacji systemu. Zapisujemy ustawienia wybierając “Finish partitioning and write changes to disk”

Okno w którym potwierdzamy ustawienia czyli wybieramy “Yes”

Postęp operacji tworzenia partycji itd.

Po tym jak system zapisze to co ustawiliśmy przejdzie do isntalacji systemu

Jeżeli pojawi się okienko pytające o dodatkowe pakiety z płyt CD/DVD to wybieramy opcję “No”

W oknie Debian archive mirro country wybieramy Poland

Kolejne okno to wybór serwera z pakietami. Najlepiej wybrać taki, który jest najbliżej nas/mamy do niego najlepsze połączenie. Jeżeli tego nie wiemy to bezpiecznie jest wybrać ftp.pl.debian.org. W moim przypadku wybieram ftp.task.gda.pl

Kolejne okno to HTTP proxy. Jeżeli nie używamy proxy (lub nie wiesz co to jest) to zostawiamy po prostu puste i kontynuujemy

Postęp konfiguracji

Postęp instalacji

Okno z pytaniem czy chcemy brać udział w “konkursie” na najpopularniejszy pakiet. Jak kto woli. Dla mnie opcja “No”

Kolejne okno to wybór co chcemy aby zostało zainstalowane. W tym przypadku wybieramy SSH server oraz standard system utilities. Niczego więcej z tej listy nie potrzebujemy.

Postęp instalacji

Okno z pytaniem czy instalować GRUB boot loadera w MBR dysku. Wybieramy opcję YES

Kolejne okno to wybór dysku. Tutaj wybieramy dysk pierwszy czyli /dev/sda

Jeżeli ktoś ma EFI to pojawi się taki komunikat jak na screenie poniżej. Ja u siebie wybrałem opcję “No” i u mnie nie ma z tym problemów aby komputer wykonał boot systemu. Jeżeli ktoś ma UEFI (tak jak u mnie) to musi sprawdzić u siebie czy będzie OK. Może się zdarzyć, że UEFI nie będzie potrafiło uruchomić systemu z GRUBEm w MBR. Wtedy trzeba będzie przeprowadzić instalację systemu i wybrać opcję “Yes”.

Po uruchomieniu systemu należy wykonać kopię GRUBa / MBR na drugi dysk (instalator wykonał instalację tylko na /dev/sda).

dd if=/dev/sda of=/dev/sdb bs=512 count=1

dd if=/dev/sda1 of=/dev/sdb1 status=progress

Po instalacji gruba na drugim dysku oba dyski będą się mogły bootować w przypadku awarii jednego z nich.


2.1 Konfiguracja sieci
Po instalacji logujemy się do komputera jako użytkownik lub od razu jako root. Po zalogowaniu się jako użytkownik wpisujemy komendę

su

podajemy hasło i jesteśmy zalogowani jako root.
Po zalogowaniu się jako root wydajemy polecenie do aktualizacji:

apt-get update && apt-get upgrade -y

Jeżeli będą jakieś aktualizacje dostępne to zostaną zainstalowane.

Instalujemy podstawowe narzędzia, które się mogą przydać:

apt-get install nano htop mc -y

Teraz przechodzimy do konfiguracji sieci. Serwer musi mieć stały adres IP w sieci lokalnej abyśmy nie mieli problemów z dostępem do usług. Możemy sprawdzić obecne karty sieciowe w systemie przy pomocy polecenia

ip a

Jak widać w Debian 9 domyślnie zamiast “ifconfig” jest “ip a”.
Wynik polecenia może być podobny do tego poniżej:

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.143/24 brd 192.168.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::d250:99ff:fe97:c84f/64 scope link
       valid_lft forever preferred_lft forever

Pozycja 1 to interface loopback, który nas nie interesuje w tym przypadku.
Pozycja 2 to interface sieciowy, który jest podłączony do sieci i ma oznaczenie

enp2s0

oraz otrzymał z DHCP serwera adres IP 192.168.0.143.

Teraz edytujemy plik interfaces i ustawiamy adresację statyczną

nano /etc/network/interfaces

U mnie plik wygląda tak:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp2s0
iface enp2s0 inet static
        address 192.168.0.10/24
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 208.67.222.222

Jak widać w polu address ustawiłem adres w podsieci 192.168.0.10. Jest to stały adres w sieci lokalnej i serwer zawsze będzie pod tym adresem dostępny. Pole gateway to adres routera, który jest bramą do internetu.
Kolejnym krokiem jest restart karty sieciowej. Możemy wykonać restart serwera lub wydać komendę

ifdown -v --force enp2s0; ifup -v enp2s0

Polecenie wyłączy kartę sieciową, a następnie włączy już z nową konfiguracją. Wynik możemy sprawdzić poleceniem

ip a

To tyle jeżeli chodzi o instalację systemu Linux Debian. Teraz pozostaje instalacja Proxmoxa, która została opisana w części drugiej: Serwer domowy z Proxmox VE (wirtualizacja) cz. 2

You can leave a response, or trackback from your own site.

2 komentarze to “Serwer domowy z Proxmox VE (wirtualizacja) cz. 1”

  1. AAA pisze:

    Windows wiecznie żywy!
    Do przygotowania pendrive z linuksem potrzebny jest komputer z… windowsem…
    Paranoja

  2. PabloSz1970 pisze:

    Muszę przyznać, że tak genialnie merytorycznie opisu instalacji dawno nie widziałem. Instalację debiana przeszedłem bezproblemowo, a przy okazji rozjaśniło mi się co nieco w głowie w związku z niektórymi sprawami. Za część o proxmox dopiero będę się zabierał. Gratulacje i podziękowania
    Paweł

Leave a Reply

You must be logged in to post a comment.

Powered by WordPress | Designed by: NewWpThemes | Provided by Free WordPress Themes