Forord
Der nye version af operativsystemet CentOS, nemlig CentOS 8, er nu ude i 2 dage. Indtil videre er der forholdsvis få artikler på internettet om, hvordan man udfører forskellige opgaver i det, så jeg har besluttet at udfylde dette hul. Jeg vil ikke kun fortælle om, hvordan man installerer disse programmer, men også om, hvordan jeg generelt ser installationen af Linux i et virtuelt miljø i den moderne verden til typiske opgaver, inklusive partitionering af diske og lignende.
Men først vil jeg kort fortælle, hvorfor man bør opgradere til denne version fra alle tidligere versioner, og der er faktisk to grunde:
- php7! I den tidligere version af CentOS blev den "orthodoxe" php5.4 brugt...
Nå, hvis vi skal være lidt mere seriøse, så er der virkelig mange pakker, der er sprunget over flere versioner på én gang. Vi (tilhængere af redhat-lignende OS) er endelig kommet ind i, hvis ikke fremtiden, så i det mindste nutiden. Og tilhængere af Ubuntu vil ikke længere grine af os og pege fingre, nå… i det mindste i et stykke tid ;).
- Overgangen fra yum til dnf. Den primære forskel er, at der nu officielt understøttes arbejde med flere versioner af pakker samtidig. Det er ikke noget, jeg har haft brug for i version 8 endnu, men det lyder lovende.
Creating a Virtual Machine
Der findes forskellige hypervisorer, og jeg har ikke som mål at tilpasse læseren til en specifik, jeg vil fortælle om de generelle principper.
Hukommelse
Første… For at installere systemet CentOS siden version 7, helt sikkert, og jeg tror også, at det var sådan i version 6 («men det er ikke sikkert»), kræves mindst 2 GB RAM. Derfor anbefaler jeg at tildele det beløb i starten.
Men hvis det er nødvendigt, kan mængden af hukommelse reduceres efter installationen. Systemet kører helt fint på 1 GB, jeg har prøvet det.
Disk
For en normal installation bør der oprettes en virtuel disk på 20-30 GB. Det er tilstrækkeligt til systemet. Og en anden disk til data. Den kan tilføjes enten under oprettelsen af den virtuelle maskine eller efterfølgende. Jeg plejer at tilføje den senere.
Processor
På én kerne kører systemet uden problemer. Og da ressourcerne kan skaleres frit, ser jeg ikke nogen grund til at give mere under installationen (med mindre du præcist kender kravene og har svært ved at navigere i konfigurationsværktøjet).
Det øvrige kan som regel efterlades som standard.
Faktisk installation
Så… Vi starter installationsprogrammet… Personligt har jeg i lang tid kun installeret sådanne tjenester som virtuelle maskiner, så jeg vil ikke beskrive, hvordan man laver bootbare USB-drev — jeg monterer bare ISO-filen som en CD-ROM i min foretrukne hypervisor, boot og så afsted.
Den grundlæggende installation foregår ret typisk, så jeg vil kun fokusere på et par punkter.
Valg af kilde
Siden udgivelsen af den ottende version har Yandex-spejlet været nede i flere dage. Altså, det er periodisk oppe, men så begynder det igen at vise en fejl. Jeg er sikker på, at det skyldes den store belastning på tjenesten. Så når jeg skal angive kilden, har jeg måttet gå i stedet for at indtaste den sædvanlige adresse, , vælge det spejl, jeg kan lide, og manuelt indtaste adressen i installationsprogrammet. Her er det vigtigt at huske, at man skal angive stien til den mappe, hvor kataloget repodata. For eksempel, .
Diskpartitionering
Dette spørgsmål er efter min mening mere religiøst. Hver administrator har sin egen holdning til dette. Men jeg vil alligevel dele mit synspunkt.
Ja, i princippet kan man godt afsætte hele pladser til rodpartitionen og det vil som regel fungere ret godt. Hvorfor så bygge en kompleks struktur med forskellige partitioner? — De vigtigste grunde hertil er efter min mening 2: kvoter og flytbarhed.
For eksempel, hvis noget går galt, og der opstår fejl på hovedpartitionen med data, ønsker man i det mindste at kunne boote systemet og udføre genopretning. Derfor tildeler jeg personligt en separat partition til /boot. Her ligger kernen og bootloaderen. Normalt kræver det 500 MB, men i sjældne tilfælde kan der være behov for mere, og da vi allerede er vant til at måle plads i terabyte, afsætter jeg 2 GB til denne partition. Her er det vigtigt, at den ikke må være LVM.
Dernæst kommer rodpartitionen til systemet. For en normal installation har jeg aldrig haft brug for mere end 4 GB til selve systemet, men under planlagte aktiviteter bruger jeg ofte katalogen /tmp til at udpakkede distributionsfiler, og at afsætte det til en separat partition giver ikke mening — i moderne systemer bliver det automatisk ryddet, så det fyldes ikke. Så jeg afsætter 8 GB til rodpartitionen.
Swap… I det store hele er der ikke meget praktisk nytte af det. Hvis din server begynder at bruge swap, betyder det i den virkelige verden blot, at serveren skal have mere RAM. Ellers er problemer med ydeevnen garanteret (eller også er der en eller anden program, der 'lækket' hukommelse). Derfor er denne sektion kun nødvendig for diagnosticering. Så 2 GB er et fremragende tal. Ja, uanset hvor meget hukommelse der er på serveren. Ja, jeg har læst alle de artikler, der beskriver forholdet mellem mængden af hukommelse og mængden af swap… IMHO er de forældede. I min 10 års praksis har jeg aldrig haft brug for det. For 15 år siden brugte jeg dem dog.
Om man skal dedikere /home til en separat sektion, IMHO kan man selv beslutte. Hvis nogen aktivt vil bruge denne mappe på serveren, er det bedst at dedikere den. Hvis ingen vil bruge den, er det ikke nødvendigt.
Derefter, /var. Efter min mening bør det nøje dedikeres. For at starte kan man begrænse det til 4 GB, og så ser man, hvordan det går. Og ja, med 'hvordan det går' mener jeg, at
- For det første kan man altid montere en anden disk i undermappen /var (hvilket jeg senere vil vise med et eksempel)
- For det andet har vi jo lvm — man kan altid tilføje. Og normalt skal man tilføje, når for mange logs begynder at strømme ind der. Men jeg har aldrig været i stand til at forudsige dette tal på forhånd, så jeg starter med 2 GB og ser så.
Det ikke tildelte plads forbliver ledig i volumengruppen, og det kan altid bruges senere.
LVM
Alle Sektioner undtagen /boot er fornuftigt at lave i LVM. Ja, inklusive swap. Ja, swap skal efter alle anbefalinger være i begyndelsen af disken, men i tilfælde af LVM kan man i princippet ikke bestemme dens placering. Men som jeg skrev tidligere, dit system burde ikke bruger slet ikke swap. Og derfor betyder det ikke noget, hvor den er placeret. Vi lever jo ikke i 95, for at være ærlig!
Derefter i LVM er der flere grundlæggende enheder, som man skal kunne leve med:
- fysisk volumen
- volumen gruppe
- logisk volumen
Fysiske volumener samles i grupper, hvor hvert fysisk volumen kun kan være i én gruppe, men en gruppe kan være placeret på flere fysiske volumener.
Og logiske volumener befinder sig i hver især i én gruppe.
Men... Vi lever i det 21. århundrede. Og der findes virtuelle servere. Det giver ikke mening at anvende de samme mekanismer på dem, som vi brugte til fysiske servere. For virtuelle servere er det vigtigt at adskille data fra systemet! Dette er især vigtigt for hurtigt at kunne skifte data til en anden virtuel maskine (for eksempel ved overgang til et nyt styresystem) og generelt for alle mulige nyttige funktioner (separate backup-løsninger via hypervisoren). Derfor anvendes én volume group til systemet og en anden til data! Denne logiske opdeling hjælper virkelig i det daglige!
Hvis du kun har oprettet én virtuel harddisk ved oprettelsen af den virtuelle maskine, stopper konfigurationen der. Hvis der er to, så skal du bare ikke partitionere den anden endnu.
Vi starter installationen.
Postinstallation
Så, endelig er det nydeligt installeret system startet. Det første, vi skal kontrollere, er internettet.
ping ya.ru Er der svar? — Fremragende, tryk Ctrl-C.
Hvis ikke — så gå ind og konfigurer netværket, for uden det er livet surt, men min artikel handler ikke om det.
Nu, hvis vi ikke allerede er logget ind som root, skal vi logge ind som root, for jeg gider ikke at indtaste sådan mange kommandoer med sudo (og ja, tilgive mig, paranoide administratorer):
sudo -iNu skriver vi først
dnf -y updateOg hvis du læser denne artikel i 2019, sker der højst sandsynligt ikke noget, men det var værd at forsøge.
Lad os nu konfigurere den tilbageværende disk
Lad os sige, at partitionen med systemet var xvda, så vil disken med data være xvdb. Okay.
De fleste råd vil starte med ordene 'Kør fdisk og opret en partition...'
Så det er forkert!
Jeg gentager det igen, for det er vigtigt! I dette tilfælde er det skadelig at oprette partitioner på en hel disk, selvom det er en virtuel disk, når man arbejder med LVM! Hvert ord i denne sætning er vigtigt. Hvis vi arbejder uden LVM — så er det nødvendigt. Hvis vores disk har både system og data — så er det nødvendigt. Hvis vi af en eller anden grund skal lade halvdelen af disken være tom — så er det også nødvendigt. Men som regel er alle disse forudsætninger rent teoretiske. For hvis vi beslutter os for at tilføje plads til en eksisterende partition, vil det være nemmest at gøre det med netop denne konfiguration. Og bekvemmeligheden i administrationen opvejer så meget andet, at vi målrettet stræber efter denne konfiguration.
Bekvemmeligheden ligger i, at hvis du ønsker at udvide datadelen, kan du blot tilføje plads til den virtuelle del, hvorefter du udvider gruppen med vgextend, og så er det klaret! I sjældne tilfælde kan der være behov for noget mere, men i det mindste skal du ikke udvide den logiske volumen i starten, hvilket allerede er behageligt. For at udvide denne volumen anbefales det faktisk at slette den eksisterende først og derefter oprette en ny ovenpå… hvilket ikke ser særlig godt ud og ikke kan gøres live, mens udvidelsen ifølge mit scenarie kan udføres „on the fly“ selv uden at afmontere partitionen.
Så i alt, opretter vi en fysisk volumen, derefter en volumen gruppe, der inkluderer den, og til sidst en partition til vores server:
pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www
Her kan du i stedet for stort bogstav „L“ (og størrelsen i GB) angive et lille, og så angive et relativt i stedet for et absolut størrelse. For eksempel, for at bruge halvdelen af den nuværende ledige plads i volumen gruppen, skal du angive „-l +50%FREE“
Og den sidste kommando formaterer partitionen i ext4 filsystemet (som hidtil har vist den største stabilitet i tilfælde af problemer, så derfor foretrækker jeg den).
Nu monterer vi partitionen det rigtige sted. For at gøre dette tilføjer vi den korrekte linje til /etc/fstab:
/dev/mapper/data-www /var/www ext4 defaults 1 2Og vi skriver
mount /var/wwwHvis der opstår en fejl - så slå alarm! For det betyder, at vi har en fejl i /etc/fstab. Og ved næste genstart vil vi have meget store problemer. Systemet kan endda slet ikke starte, hvilket for cloud-tjenester ofte er ret trist. Så vi skal enten straks rette den senest tilføjede linje eller helt fjerne den! Netop derfor nægtede vi at skrive monteringskommandoen manuelt - så ville vi ikke få denne fremragende mulighed for at kontrollere konfigurationen lige nu.
Nu installerer vi alt, hvad vi ønskede, og åbner porte til web:
dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
Det er muligt at installere en database her også, men personligt foretrækker jeg at holde den adskilt fra webserveren. Selvom det er hurtigere at have den tættere på, ja. Hastigheden for virtuelle netværksadaptere ligger som regel omkring en gigabit, og når man arbejder på den samme maskine, sker adgangen næsten øjeblikkeligt. Men det er mindre sikkert. Her handler det om, hvad man prioriterer.
Nu tilføjer vi parameteren i konfigurationsfilen (vi opretter en ny, den moderne ideologi for CentOS er sådan).
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Genstart serveren.
I kommentarerne blev jeg kritiseret for at anbefale at deaktivere SeLinux, så jeg vil rette op på det og skrive, at man efterfølgende ikke må glemme at konfigurere SeLinux.
Faktisk, profit! 🙂
Kilde: habr.com
