Vorwort
Seit zwei Tagen ist die neue Version des Betriebssystems CentOS, namentlich CentOS 8, verfügbar. Im Internet gibt es bisher nur wenige Artikel dazu, wie man mit dieser Version arbeitet, deshalb habe ich beschlossen, diese Lücke zu schließen. Ich werde nicht nur erklären, wie man ein paar Programme installiert, sondern auch, wie ich die Installation von Linux in modernen virtuellen Umgebungen für typische Aufgaben, einschließlich der Partitionierung von Festplatten und mehr, sehe.
Zunächst möchte ich kurz erläutern, warum es sinnvoll ist, auf diese Version von allen vorherigen umzusteigen. Es gibt sogar zwei Gründe dafür:
- php7! In der vorherigen Version von CentOS wurde der 'orthodoxe' php5.4 installiert...
Aber um es etwas ernsthafter zu gestalten, viele Pakete haben mehrere Versionen übersprungen. Wir (die Fans der Red Hat-basierten Systeme) sind endlich, wenn nicht im zukünftigen, dann zumindest im gegenwärtigen Standard angekommen. Und die Anhänger von Ubuntu werden nicht mehr über uns lachen und mit dem Finger auf uns zeigen, nun ja... zumindest für eine gewisse Zeit ;).
- Der Übergang von yum zu dnf. Der Hauptunterschied ist, dass nun offiziell die Arbeit mit mehreren Versionen von Paketen unterstützt wird. In der neuen Version habe ich dies bisher noch nicht benötigt, aber es klingt vielversprechend.
Erstellung einer virtuellen Maschine
Es gibt verschiedene Hypervisoren und ich habe nicht die Absicht, den Leser auf einen bestimmten auszurichten. Ich werde über allgemeine Prinzipien sprechen.
Speicher
Zuerst… Für die Installation des CentOS-Systems, mindestens ab Version 7, und wahrscheinlich auch schon in 6, ist es nötig mindestens 2 GB RAM bereitzustellen. Deshalb empfehle ich, vorerst so viel zuzuweisen.
Sollte man nach der Installation jedoch feststellen, dass weniger RAM benötigt wird, kann der Speicher auch reduziert werden. Mit 1 GB läuft das nackte System vollkommen in Ordnung, ich habe es überprüft.
Festplatte
Für eine ordnungsgemäße Installation sollte eine virtuelle Festplatte mit einem Volumen 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 später hinzugefügt werden. Ich füge sie normalerweise später hinzu.
Prozessor
Auf einem Kern läuft das nackte System nicht langsam. Da die Ressourcen jedoch frei skalierbar sind, sehe ich keinen Sinn darin, bei der Installation mehr zuzuteilen (es sei denn, Sie wissen genau, was die Anforderungen sind und möchten nicht nochmal in den Konfigurator gehen).
Alles andere kann normalerweise auf den Standardwerten belassen werden.
Tatsächlich die Installation
Also… starten wir den Installer… Persönlich installiere ich solche Dienste schon seit langem nur noch als virtuelle Maschinen, deshalb werde ich nicht auf das Beschreiben von Distributionen auf USB-Sticks eingehen – ich mounte einfach das ISO als CD in meinem bevorzugten Hypervisor, starte den Bootvorgang und los geht's.
Die grundlegende Installation verläuft recht typisch, ich möchte jedoch auf einige Punkte eingehen.
Quellenauswahl
Seit der Veröffentlichung der achten Version ist das Yandex-Mirror bereits seit einigen Tagen nicht verfügbar. Es ist also so, dass es sporadisch verfügbar ist und dann wieder einen Fehler anzeigt. Ich bin mir sicher, dass es an der Überlastung des Dienstes liegt. Deshalb musste ich für die Angabe der Quelle anstatt die gewohnte Adresse einzugeben, , das Mirror, das mir gefällt, auswählen und die Adresse manuell im Installationsfenster eingeben. Hier ist es wichtig zu beachten, dass der Pfad zum Ordner angegeben werden muss, in dem sich das Verzeichnis repodata. Zum Beispiel .
Festplattenpartitionierung
Diese Frage ist meiner Meinung nach eher eine Glaubensfrage. Jeder Admin hat dazu seine eigene Meinung. Aber ich möchte trotzdem meine Sichtweise zu diesem Thema teilen.
Ja, im Prinzip kann man den gesamten Speicher dem Root zuweisen, und es wird meistens ziemlich gut funktionieren. Warum also den Aufwand mit verschiedenen Partitionen? – 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 ich dennoch in der Lage sein, das System zu laden und Wiederherstellungsmaßnahmen durchzuführen. Daher weise ich persönlich einen separaten Bereich für /boot zu. Dort befinden sich der Kernel und der Bootloader. Normalerweise reichen 500 MB aus, aber in seltenen Fällen kann mehr benötigt werden. Da wir mittlerweile daran gewöhnt sind, den Speicher in Terabytes zu messen, weise ich diesem Bereich 2 GB zu. Wichtig ist, dass dieser Bereich nicht als LVM erstellt werden kann.
Der nächste Bereich ist das Root-Verzeichnis des Systems. Für eine normale Installation benötigte ich bisher nie mehr als 4 GB nur für das System. Während geplanter Wartungsarbeiten nutze ich oft das Verzeichnis /tmp zum Entpacken von Distributionen, und ich sehe keinen Sinn darin, ihm einen eigenen Bereich zuzuweisen – in modernen Systemen wird es automatisch geleert, daher füllt es sich nicht. Deshalb weise ich dem Root-Bereich 8 GB zu.
Swap… Im Grunde genommen gibt es kaum praktische Vorteile. Wenn auf Ihrem Server Swap verwendet wird, bedeutet das in der realen Welt lediglich, dass dem Server mehr RAM hinzugefügt werden muss. Andernfalls sind Leistungsprobleme garantiert (oder es gibt ein Speicherleck bei irgendeinem Programm). Daher ist dieser Abschnitt nur zur Diagnose notwendig. Zwei GB sind also eine ausgezeichnete Zahl. Ja, unabhängig davon, wie viel RAM der Server hat. Ja, ich habe all die Artikel gelesen, in denen das Verhältnis von RAM zu Swap diskutiert wird... Meiner Meinung nach sind sie veraltet. In 10 Jahren Praxis hat mir das nie geholfen. Vor 15 Jahren habe ich es verwendet, ja.
Ob man /home in eine eigene Partition aufteilt, kann meiner Meinung nach jeder selbst entscheiden. Wenn jemand aktiv auf dieses Verzeichnis auf dem Server zugreifen wird, ist es besser, es abzutrennen. Wenn nicht, braucht man es nicht.
Als Nächstes /var. Meiner Ansicht nach sollte dies unbedingt getrennt werden. Man kann zunächst mit 4 GB anfangen, und dann sehen, wie es weitergeht. Und ja, unter "wie es weitergeht" meine ich, dass
- Erstens kann man immer eine andere Festplatte im Unterverzeichnis /var mounten (was ich später anhand eines Beispiels zeigen werde).
- Zweitens, wir haben LVM – man kann immer etwas hinzufügen. In der Regel muss man das tun, wenn zu viele Logs dorthin gelangen. Aber ich konnte diese Zahl nie im Voraus vorhersagen, daher starte ich mit 2 GB und schaue dann weiter.
Nicht zugewiesener Speicher bleibt in der Gruppenvolumengruppe frei und kann später jederzeit verwendet werden.
LVM
Alle Die Partitionen, außer /boot, sollten sinnvollerweise in LVM erstellt werden. Ja, einschließlich Swap. Ja, Swap sollte laut aller Empfehlungen am Anfang der Festplatte sein, aber bei LVM lässt sich dessen Standort grundsätzlich nicht bestimmen. Aber wie ich bereits oben geschrieben habe, sollte Ihr System nicht überhaupt Swap verwenden. Daher spielt es keine Rolle, wo es sich befindet. Wir leben schließlich nicht mehr im Jahr 95, ganz ehrlich!
Darüber hinaus gibt es in LVM mehrere grundlegende Entitäten, mit denen man umgehen können muss:
- physischer Volume
- Volume-Gruppe
- logisches Volume
Physische Volumes werden in Gruppen zusammengefasst, wobei jedes physische Volume nur in einer Gruppe sein kann und eine Gruppe auf mehreren physischen Volumes liegen kann.
Und logische Volumes befinden sich jeweils in einer Gruppe.
Aber… wir leben schließlich im 21. Jahrhundert. Und die Server sind virtuell. Es macht keinen Sinn, dieselben Mechanismen anzuwenden, die für physische Server verwendet wurden. Bei virtuellen Servern ist es wichtig, Daten getrennt vom System zu haben! Das ist besonders wichtig für die Möglichkeit, Daten schnell auf eine andere virtuelle Maschine zu migrieren (zum Beispiel beim Wechsel auf ein neues Betriebssystem) und für nützliche Funktionen wie getrennte Backups für verschiedene Partitionen durch den Hypervisor. Daher wird eine Volume-Gruppe für das System genutzt, während eine andere für die Daten verwendet wird! Diese logische Trennung erleichtert das Leben erheblich!
Wenn Sie beim Erstellen einer virtuellen Maschine nur eine virtuelle Festplatte erstellt haben, ist die Konfiguration damit abgeschlossen. Wenn zwei erstellt wurden, sollten Sie die zweite vorerst nicht partitionieren.
Starten Sie die Installation.
Nach der Installation
So, endlich ist das neu installierte System hochgefahren. Das Erste, was wir überprüfen müssen, ist die Internetverbindung.
ping ya.ru Gibt es eine Antwort? — Ausgezeichnet, wir drücken Ctrl-C.
Falls nicht — gehen Sie und richten Sie das Netzwerk ein, ohne das geht es nicht, aber mein Artikel handelt nicht davon.
Wenn wir noch nicht als Root angemeldet sind, wechseln wir zum Root-Benutzer, denn wir müssen eingeben. solches Die Anzahl der sudo-Befehle, die ich persönlich ausführen muss, ist ärgerlich (und möge man den paranoid veranlagten Admins verzeihen):
sudo -iJetzt geben wir zuerst ein:
dnf -y updateUnd wenn Sie diesen Artikel im Jahr 2019 lesen, wird wahrscheinlich nichts passieren, aber einen Versuch wert war es.
Jetzt konfigurieren wir die restliche Festplatte.
Angenommen, die Partition mit dem System war xvda, dann wird die Datenfestplatte xvdb sein. Alles klar.
Die meisten Ratschläge beginnen mit den Worten „Starten Sie fdisk und erstellen Sie eine Partition…“
Nun, das ist falsch.!
Ich wiederhole es noch einmal, denn das ist wichtig! In diesem Fall ist es schädlich, Partitionen auf einer ganzen, wenn auch virtuellen Festplatte zu erstellen, wenn Sie mit LVM arbeiten! Jedes Wort in diesem Satz ist wichtig. Wenn wir ohne LVM arbeiten – ist es notwendig. Wenn wir auf der Festplatte zum Beispiel das System und die Daten haben – ist es notwendig. Wenn wir aus irgendeinem Grund die Hälfte der Festplatte leer lassen wollen – ist es auch notwendig. Aber gewöhnlich sind all diese Annahmen rein theoretisch. Denn wenn wir beschließen, den vorhandenen Partitionen mehr Platz hinzuzufügen, ist es am einfachsten, dies genau in dieser Konfiguration zu tun. Und der Komfort in der Verwaltung überwiegt so viele andere Aspekte, dass wir absichtlich auf diese Konfiguration hinarbeiten.
Der Vorteil ist, dass Sie einfach Platz im virtuellen Volume hinzufügen können, wenn Sie den Speicherbereich erweitern möchten. Danach erweitern Sie die Gruppe mit vgextend, und das war’s! In seltenen Fällen könnte es nötig sein, noch etwas anderes zu tun, aber in jedem Fall müssen Sie nicht zu Beginn das logische Volume erweitern, was schon einmal angenehm ist. Oft wird empfohlen, zuerst das vorhandene zu löschen und dann ein neues zu erstellen, was nicht besonders schön aussieht und nicht im laufenden Betrieb möglich ist. Das von mir beschriebene Erweiterungsszenario kann hingegen „on-the-fly“ durchgeführt werden, ohne das Volume zu demontieren.
Also, wir erstellen ein physisches Volume, dann eine Volume-Gruppe, die es enthält, und dann ein Volume 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 verwenden und dann anstelle der absoluten Größe eine relative angeben. Um zum Beispiel die Hälfte des momentan verfügbaren Speicherplatzes in der Volume-Gruppe zu nutzen, muss man „-l +50%FREE“ angeben.
Der letzte Befehl formatiert die Partition im Dateisystem ext4, das sich in meiner Erfahrung als das stabilste erweist, wenn etwas schiefgeht. Daher bevorzuge ich es.
Jetzt mounten wir die Partition an den gewünschten Ort. Dazu fügen wir die richtige Zeile in /etc/fstab hinzu:
/dev/mapper/data-www /var/www ext4 defaults 1 2Und geben ein
mount /var/wwwWenn ein Fehler auftritt, schlagen wir Alarm! Denn das bedeutet, dass es einen Fehler in /etc/fstab gibt. Und beim nächsten Neustart werden wir große Probleme haben. Das System könnte sogar ganz ausfallen, was für Cloud-Dienste oft ziemlich bedauerlich ist. Daher müssen wir entweder die zuletzt hinzugefügte Zeile dringend korrigieren oder sie ganz entfernen! Aus diesem Grund haben wir uns entschieden, den Mount-Befehl nicht manuell einzugeben – dadurch hätten wir nicht die großartige Möglichkeit gehabt, die Konfiguration jetzt sofort zu überprüfen.
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 Datenbank hier hinzugefügt werden, aber persönlich halte ich sie lieber getrennt vom Webserver. Es stimmt zwar, dass die Nähe die Geschwindigkeit erhöht. Die virtuelle Netzwerkkarten haben in der Regel eine Geschwindigkeit von etwa einem Gigabit, und wenn sie auf derselben Maschine betrieben werden, geschehen die Anfragen nahezu sofort. Aber dafür ist es weniger sicher. Hier kommt es darauf an, was einem wichtiger ist.
Nun fügen wir den Parameter in die Konfigurationsdatei ein (wir erstellen eine neue, gemäß der modernen CentOS-Ideologie).
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Wir starten den Server neu.
In den Kommentaren wurde ich für den Rat, SeLinux auszuschalten, kritisiert, deshalb werde ich das korrigieren und erwähnen, dass man danach nicht vergessen sollte, SeLinux zu konfigurieren.
Eigentlich, das bringt Vorteile! 🙂
Quelle: habr.com
