Vorwort
Vor 2 Tagen wurde die neue Version des Betriebssystems CentOS veröffentlicht, nĂ€mlich CentOS 8. Und bisher gibt es im Internet ziemlich wenige Artikel darĂŒber, wie man etwas damit macht, deshalb habe ich beschlossen, diese LĂŒcke zu schlieĂen. Dabei werde ich nicht nur darĂŒber sprechen, wie man dieses Paar Programme installiert, sondern auch, wie ich die Installation von Linux in einer virtuellen Umgebung in der modernen Welt fĂŒr Standardaufgaben sehe, einschlieĂlich Partitionierung der Festplatten und mehr.
Aber zuerst möchte ich kurz erlĂ€utern, warum man auf diese Version von allen vorherigen wechseln sollte, und dafĂŒr gibt es gleich zwei GrĂŒnde:
- php7! In der vorherigen Version von CentOS wurde âklassischesâ php5.4 installiert...
Nun, wenn wir es etwas ernster betrachten, viele Pakete haben mehrere Versionen in einem Rutsch ĂŒbersprungen. Wir (die AnhĂ€nger der Red-Hat-basierten OS) sind endlich, wenn nicht in der Zukunft, dann zumindest in der Gegenwart angekommen. Und die BefĂŒrworter von Ubuntu werden nicht mehr ĂŒber uns lachen und mit dem Finger auf uns zeigen, nun... zumindest fĂŒr eine gewisse Zeit ;).
- Der Ăbergang von yum zu dnf. Der Hauptunterschied besteht darin, dass jetzt offiziell die Arbeit mit mehreren Versionen von Paketen unterstĂŒtzt wird. In der Acht habe ich das bisher noch nicht gebraucht, aber es klingt vielversprechend.
Erstellung einer virtuellen Maschine
Hypervisoren gibt es verschiedene, und ich habe nicht die Absicht, den Leser auf einen bestimmten zuzuschneiden, ich werde ĂŒber allgemeine Prinzipien sprechen.
Speicher
Zuerst⊠FĂŒr die Installation des Systems CentOS ab Version 7 auf jeden Fall, und ich glaube, auch bei 6 war es so (âaber das ist nicht sicherâ), ist es notwendig Mindestsatz 2 GB RAM. Daher empfehle ich, zunĂ€chst so viel zuzuweisen.
Aber falls nötig, kann nach der Installation der Speicherplatz auch reduziert werden. Mit 1 GB funktioniert das nackte System durchaus normal, ich habe es getestet.
Festplatte
FĂŒr eine ordnungsgemĂ€Ăe Installation sollte eine virtuelle Festplatte mit einer GröĂe von 20-30 GB erstellt werden. Das reicht fĂŒr das System. Und eine zweite Festplatte fĂŒr Daten. Diese kann sowohl wĂ€hrend der Erstellung der virtuellen Maschine als auch danach hinzugefĂŒgt werden. Ich fĂŒge sie normalerweise spĂ€ter hinzu.
Prozessor
Auf einem Kern lÀuft das nackte System nicht langsam. Und da die Ressourcen frei skaliert werden, sehe ich keinen Sinn darin, wÀhrend der Installation mehr zu geben (es sei denn, Sie kennen die Anforderungen genau und sind zu faul, um ein weiteres Mal im Konfigurator nachzusehen)
Alles andere kann in der Regel auf den Standardwerten belassen werden.
Eigentlich die Installation
Also⊠Wir starten den Installer⊠Persönlich installiere ich solche Dienste seit langem nur noch in Form von virtuellen Maschinen, daher werde ich nicht beschreiben, wie man das Abbild des Distributions auf einen USB-Stick kopiert â ich mounte einfach die ISO als CD im Lieblingshypervisor, starte und los geht's.
Die Grundinstallation verlÀuft ziemlich typisch, ich werde nur auf einige Punkte eingehen.
Quellenauswahl
Seit dem Erscheinen der achten Version ist das Mirror von Yandex schon mehrere Tage nicht erreichbar. Das bedeutet, es wird gelegentlich hochgefahren und zeigt dann wieder einen Fehler. Ich bin mir sicher, dass es an der ĂŒbermĂ€Ăigen Belastung des Dienstes liegt. Deshalb musste ich persönlich, anstatt die gewohnte Adresse einzugeben, hingehen, , das Mirror auszuwĂ€hlen, das mir gefĂ€llt, und die Adresse manuell im Installationsfenster einzugeben. Hier ist es wichtig, dass man den Pfad zu dem Ordner angibt, in dem das Verzeichnis repodata. Zum Beispiel, .
Festplattenteilung
Diese Frage ist meiner Meinung nach eher religiös. Jeder Administrator hat dazu seine eigene Position. Aber ich möchte trotzdem meine Sichtweise zu diesem Thema teilen.
Ja, grundsĂ€tzlich kann man den gesamten Platz dem Root zuweisen und es funktioniert meistens sogar ganz gut. Warum also verschiedene Partitionen anlegen? â Meiner Meinung nach gibt es dafĂŒr zwei HauptgrĂŒnde: Quoten und PortabilitĂ€t.
Wenn etwas schiefgeht und im Hauptverzeichnis mit den Daten Fehler auftreten, möchte man dennoch die Möglichkeit haben, das System zu laden und WiederherstellungsmaĂnahmen durchzufĂŒhren. Daher lege ich persönlich eine separate Partition fĂŒr /boot an. Dort liegen der Kernel und der Bootloader. Normalerweise reichen 500 Megabyte aus, aber in seltenen FĂ€llen kann mehr benötigt werden. Da wir mittlerweile daran gewöhnt sind, Speicher in Terabyte zu messen, weise ich fĂŒr diese Partition 2 GB zu. Und es ist wichtig, dass man sie nicht als LVM anlegt.
Weiter geht es mit dem Root des Systems. FĂŒr eine normale Installation benötigte ich noch nie mehr als 4 GB nur fĂŒr das System, aber wĂ€hrend geplanter VorgĂ€nge nutze ich hĂ€ufig das Verzeichnis /tmp zum Entpacken von Distributionen, und ich sehe keinen Sinn darin, es als separate Partition zuzuweisen â in modernen Systemen wird es automatisch geleert, daher fĂŒllt es sich nicht. Daher weise ich fĂŒr den Root 8 GB zu.
Swap⊠Im GroĂen und Ganzen hat es wenig praktische Vorteile. Wenn Ihr Server beginnt, Swap zu verwenden, bedeutet das in der heutigen realen Welt nur, dass dem Server mehr Arbeitsspeicher hinzugefĂŒgt werden muss. Andernfalls sind Leistungsprobleme garantiert (oder ein bestimmtes Programm hat einen Speicherleck). Daher ist dieser Abschnitt nur fĂŒr Diagnosen nĂŒtzlich. Ein Wert von 2 GB ist also groĂartig. Ja, unabhĂ€ngig davon, wie viel Arbeitsspeicher der Server hat. Ja, ich habe all die Artikel gelesen, die das VerhĂ€ltnis von Arbeitsspeicher zu Swap erwĂ€hnen⊠IMO sind sie veraltet. In 10 Jahren Praxis war das fĂŒr mich nie hilfreich. Vor 15 Jahren habe ich sie verwendet, ja.
Ob man /home in eine eigene Partition aufteilen sollte, kann IMO jeder selbst entscheiden. Wenn jemand dieses Verzeichnis aktiv auf dem Server nutzt, ist es besser, es zu trennen. Wenn nicht, ist es unnötig.
Kommen wir nun zu /var. Meiner Ansicht nach sollte dies auf jeden Fall separat aufgeteilt werden. Anfangs kann man mit 4 GB auskommen, und dann sieht man weiter. Und ja, mit "sieht man weiter" meine ich, dass
- Erstens kann immer eine andere Festplatte in das Unterverzeichnis /var eingebunden werden (was ich spÀter am Beispiel zeigen werde)
- Zweitens, wir haben ja lvm â man kann immer hinzufĂŒgen. Und normalerweise muss man dann hinzufĂŒgen, wenn zu viele Logs dort anfallen. Aber ich konnte diese Zahl im Voraus nie vorhersagen, deshalb fange ich mit 2 GB an und sehe dann weiter.
Der nicht zugewiesene Speicher bleibt in der Volume-Gruppe frei, er kann spÀter immer noch verwendet werden.
LVM
Alle Partitionen, auĂer /boot, sollten idealerweise in LVM erstellt werden. Ja, einschlieĂlich Swap. Ja, Swap sollte laut allen Empfehlungen an den Anfang der Festplatte gesetzt werden, aber im Fall von LVM ist sein Standort grundsĂ€tzlich nicht festzulegen. Aber wie ich bereits oben schrieb, nutzt ihr System keine Swap gar nicht. Deshalb spielt es keine Rolle, wo es sich befindet. Wir leben nun mal nicht im Jahr 1995, um ehrlich zu sein!
Weiterhin gibt es in LVM einige grundlegende EntitÀten, mit denen man umgehen muss:
- physikalische Volumen
- Volume-Gruppe
- logische Volumen
Physikalische Volumen werden in Gruppen zusammengefasst, wobei jedes physikalische Volumen nur in einer Gruppe sein kann, wÀhrend eine Gruppe auf mehreren physikalischen Volumen liegen kann.
Logische Volumen befinden sich jeweils in einer Gruppe.
Aber... Wir sind im 21. Jahrhundert und es gibt virtuelle Server. Es macht keinen Sinn, die gleichen Mechanismen anzuwenden, die auf physische Server angewendet wurden. FĂŒr virtuelle Server ist es wichtig, die Daten getrennt vom System zu haben! Dies ist besonders wichtig fĂŒr die Möglichkeit, Daten schnell auf eine andere virtuelle Maschine zu ĂŒbertragen (zum Beispiel beim Wechsel auf ein neues Betriebssystem) und allgemein fĂŒr viele nĂŒtzliche Funktionen (getrennte Backups nach Partitionen mittels Hypervisor-Tools). Daher wird eine Volume-Gruppe fĂŒr das System verwendet und eine andere fĂŒr die Daten! Diese logische Trennung hilft im Alltag enorm!
Wenn Sie bei der Erstellung einer virtuellen Maschine nur eine virtuelle Festplatte erstellt haben, endet hier die Konfiguration. Wenn es zwei gibt, dann sollten Sie einfach die zweite vorerst nicht partitionieren.
Wir starten die Installation.
Post-Installation
So, endlich hat sich das frisch installierte System geladen. Das Erste, was zu ĂŒberprĂŒfen ist â das Internet.
ping ya.ru Gibt es eine Antwort? â Ausgezeichnet, drĂŒcken Sie Ctrl-C.
Wenn nicht, gehen Sie das Netzwerk zu konfigurieren, ohne das geht es nicht, aber mein Artikel handelt nicht davon.
Jetzt, wenn wir noch nicht als Root arbeiten, loggen wir uns als Root ein, denn die Eingabe solches der Anzahl der Befehle mit sudo ist mir persönlich zu lÀstig (und möge man mir die paranoid-administrativen Nachsicht gewÀhren):
sudo -iJetzt geben wir zuerst ein
dnf -y updateUnd wenn Sie diesen Artikel im Jahr 2019 lesen, wird wahrscheinlich nichts passieren, aber das Ausprobieren war es wert.
Jetzt konfigurieren wir die restliche Festplatte
Angenommen, die Partition mit dem System war xvda, dann wird die Datenfestplatte xvdb sein. Okay.
Die meisten Tipps beginnen mit den Worten âStarten Sie fdisk und erstellen Sie eine Partition...â
Das ist also falsch!
Ich werde es noch einmal wiederholen, weil es wichtig ist! In diesem Fall ist es schĂ€dlich, beim Arbeiten mit LVM, das einen ganzen, wenn auch virtuellen Block belegt, Partitionen darauf zu erstellen! Jedes Wort in diesem Satz ist wichtig. Wenn wir ohne LVM arbeiten â es ist notwendig. Wenn wir auf der Festplatte z.B. System und Daten haben â es ist notwendig. Wenn wir aus irgendeinem Grund die HĂ€lfte der Festplatte leer lassen wollen â auch notwendig. Aber normalerweise sind all diese Annahmen rein theoretisch. Denn wenn wir beschlieĂen, den bestehenden Partitionen mehr Platz hinzuzufĂŒgen, ist es am einfachsten, dies genau bei dieser Konfiguration zu tun. Und der Komfort in der Administration ĂŒberwiegt alle möglichen Faktoren, sodass wir gezielt auf diese Konfiguration hinarbeiten.
Der Vorteil besteht darin, dass Sie, wenn Sie den Datenbereich erweitern möchten, einfach Platz im virtuellen Bereich hinzufĂŒgen können, woraufhin Sie die Gruppe mit vgextend erweitern und alles ist in Ordnung! In seltenen FĂ€llen kann etwas anderes erforderlich sein, aber mindestens mĂŒssen Sie den logischen DatentrĂ€ger nicht zu Beginn erweitern, was schon angenehm ist. Normalerweise wird empfohlen, diesen DatentrĂ€ger zu löschen und dann einen neuen zu erstellen, was nicht sehr angenehm aussieht und nicht ohne weiteres durchgefĂŒhrt werden kann. Die Erweiterung nach dem von mir angegebenen Szenario kann dagegen "on-the-fly" durchgefĂŒhrt werden, ohne den Bereich abzumontieren.
Also, wir erstellen ein physisches Volume, dann eine Volume-Gruppe, die es enthĂ€lt, und dann den Bereich fĂŒr unseren Server:
pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www
Hier kann man anstelle des groĂen Buchstabens âLâ (und der GröĂe in GB) auch einen kleinen Buchstaben angeben und dann anstelle der absoluten GröĂe eine relative GröĂe verwenden, zum Beispiel um die HĂ€lfte des derzeit freigewordenen Speicherplatzes in der Volume-Gruppe zu nutzen, sollte man â-l +50%FREEâ angeben.
Der letzte Befehl formatiert den Bereich im Dateisystem ext4 (das sich nach meiner Erfahrung als das stabilste erweist, wenn etwas schiefgeht, weshalb ich es bevorzuge).
Jetzt montieren wir den Bereich an den richtigen Ort. Dazu fĂŒgen wir die richtige Zeile in /etc/fstab ein:
/dev/mapper/data-www /var/www ext4 defaults 1 2Und tippen ein
mount /var/wwwWenn ein Fehler auftritt, schlĂ€gt Alarm! Denn das bedeutet, dass es einen Fehler in /etc/fstab gibt. Und dass wir bei der nĂ€chsten Neustart gröĂere Probleme haben werden. Das System könnte möglicherweise ĂŒberhaupt nicht hochfahren, was fĂŒr Cloud-Dienste oft traurig ist. Daher mĂŒssen wir entweder die zuletzt hinzugefĂŒgte Zeile dringend korrigieren oder sie ganz löschen! Aus diesem Grund haben wir uns entschieden, den Mount-Befehl nicht manuell einzugeben â sonst hĂ€tten wir diese hervorragende Möglichkeit zur ĂberprĂŒfung der Konfiguration nicht erhalten.
Jetzt installieren wir alles, was wir wollten, und öffnen die Ports fĂŒr das Web:
dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
Auf Wunsch kann auch eine DB hier platziert werden, aber ich persönlich versuche, sie getrennt vom Webserver zu halten. Obwohl es schneller ist, sie in der NÀhe zu haben, ja. Die Geschwindigkeit der virtuellen Netzwerkkarten liegt normalerweise bei etwa einem Gigabit, und bei der Arbeit auf demselben Rechner erfolgen die Zugriffe fast in Echtzeit. Aber es ist weniger sicher. Das ist eine Frage der PrioritÀten.
Jetzt fĂŒgen wir den Parameter in die Konfigurationsdatei ein (wir erstellen eine neue, die moderne Ideologie von CentOS sieht das so vor)
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Server neu starten.
In den Kommentaren wurde ich kritisiert, dass ich empfohlen habe, SeLinux auszuschalten, deshalb werde ich das Ă€ndern und hinzufĂŒgen, dass man danach nicht vergessen sollte, SeLinux zu konfigurieren.
Eigentlich ein Gewinn! đ
Quelle: habr.com
