De stabiliteit en betrouwbaarheid van onze diensten is een van onze belangrijkste speerpunten. Desondanks kan het gebeuren dat jouw VPS betrokken raakt bij een incident en tijdelijk onbereikbaar raakt. In dit artikel geven we je een overzicht van termen die je in een bericht naar aanleiding van een incident kunt tegenkomen en die (nog) niet behandeld worden in andere artikelen.
Ansible playbook
Een Ansible playbook is een geautomatiseerd script dat wordt gebruikt voor het beheren van configuraties, het automatiseren van taken en het implementeren van software. Een playbook is geschreven in YAML (Yet Another Markup Language) en definieert taken en instellingen die moeten worden uitgevoerd op één of meerdere servers. Playbooks zijn ontworpen om herbruikbaar en makkelijk te begrijpen te zijn, waardoor system administrators en ontwikkelaars complexe processen kunnen automatiseren en vereenvoudigen.
Ceph
Ceph is een open-source softwareplatform voor opslag van data. Wij gebruiken Ceph bijvoorbeeld voor de schijven van PerformanceVPS'en. Ceph biedt object-, block- en file-storage in een gedistribueerd computernetwerk. Het is ontworpen om zeer schaalbaar en fouttolerant te zijn. Ceph biedt de mogelijkheid om duizenden storageservers te gebruiken om petabytes tot exabytes aan gegevens te beheren.
DMA
DMA (Direct Memory Access) is een functie waarmee hardwarecomponenten in een computer gegevens direct naar en van het RAM kunnen lezen en schrijven, zonder tussenkomst van de CPU. Dit verhoogt de datasnelheid en vermindert de belasting van de processor.
Driver/Stuurprogramma
Een driver/stuurprogramma/device driver verwijst naar een specifiek type software dat de interactie tussen het besturingssysteem en een hardwarecomponent mogelijk maakt. Drivers stellen het besturingssysteem in staat om met de hardware te communiceren en zijn essentieel voor de werking van computers en andere apparaten.
Flappen
Wanneer een netwerkverbinding ‘flapt’ valt die kortstondig weg. Het gaat om slechts een fractie van een seconde waarbij de netwerkverbinding van een apparaat wegvalt en direct weer online komt. Het flappen van een verbinding kan diverse oorzaken hebben, zoals een te grote belasting van CPU cores die IRQ's verwerken.
Hypervisor
Een hypervisor is computer software, firmware of hardware waarmee je virtuele machines (VM's) kunt maken en hosten. Met een hypervisor kan een computer (de host machine) een of meerdere virtuele machines (guest machines) ondersteunen door virtueel zijn resources (CPU, RAM, netwerk, etc) te delen.
In de meeste gevallen wordt dit gebruikt om servers te virtualiseren. Een VPS bij TransIP is een voorbeeld van een virtuele machine die gehost wordt op een hypervisor.
IO
IO staat voor "Input/Output", wat letterlijk "invoer/uitvoer" betekent. Het is een term die wordt gebruikt om te beschrijven hoe een computer of een apparaat informatie ontvangt (invoer) en hoe het informatie verstuurt of weergeeft (uitvoer).
- Invoer (Input): Dit kan van alles zijn, zoals de letters die je typt op een toetsenbord, de bewegingen van je muis, of gegevens die van het internet worden gedownload. Het zijn alle acties of gegevens die naar de computer worden gestuurd om te worden verwerkt. In de context van onze platformen doelen we meestal op netwerkverkeer of data die van/naar de schijf van een VPS/hypervisor wordt gestuurd.
- Uitvoer (Output): Dit zijn de resultaten na de verwerking door de computer, zoals de tekst die op je scherm verschijnt, het geluid dat uit je luidsprekers komt, of documenten die uit je printer komen.
IOMMU
Een IOMMU (Input-Output Memory Management Unit) is een hardwarecomponent die geavanceerd geheugenbeheer mogelijk maakt, voornamelijk voor externe apparaten zoals grafische kaarten en netwerkkaarten. Het stelt deze apparaten in staat om direct toegang te krijgen tot het geheugen van de computer, terwijl de integriteit en beveiliging van het systeem worden beschermd. De beveiliging die IOMMU biedt is zeer belangrijk, omdat rechtstreekse toegang tot geheugen zonder IOMMU ook potentieel ongecontroleerde toegang kan geven tot zaken als wachtwoorden. Wanneer je een wachtwoord typt om bijvoorbeeld in te loggen op een website, komt dat wachtwoord in het geheugen terecht.
IOMMU-pad
Het IOMMU-pad verwijst naar het communicatiepad tussen de IOMMU en de apparaten die het ondersteunt. Het pad zorgt voor de gegevensoverdracht en de geheugentoewijzing tussen de IOMMU en het apparaat, waardoor directe toegang tot het geheugen mogelijk wordt zonder dat de CPU tussenbeide hoeft te komen.
IRQ
Een IRQ (Interrupt Request) is een signaal dat naar de CPU wordt gestuurd om de aandacht te vragen en aan te geven dat een apparaat zoals een toetsenbord, muis of netwerkkaart onmiddellijke aandacht nodig heeft. Wanneer de CPU een IRQ ontvangt, onderbreekt het de huidige operaties (vandaar de term “interrupt”). Het stelt de CPU in staat om te reageren op hardwareverzoeken door de bijbehorende ‘interrupt handler’ uit te voeren.
Interrupt handler
Een interrupt handler, ook bekend als een interrupt service routine (ISR), is een speciale functie in het besturingssysteem of in een driver die wordt aangeroepen wanneer een interrupt (IRQ) optreedt.
Wanneer de CPU na het ontvangen van een IRQ de huidige operaties onderbreekt, voert het de interrupt handler uit. Deze handler is verantwoordelijk voor het identificeren van de oorzaak van de interrupt, het uitvoeren van de noodzakelijke taken om de gebeurtenis te verwerken. De handler informeert vervolgens de CPU dat de interrupt is afgehandeld, waarna de CPU terugkeert naar zijn vorige activiteiten.
Kernel
De kernel is het centrale onderdeel van een besturingssysteem. Het heeft de volledige controle over een systeem en functioneert als een soort brug tussen applicaties en de daadwerkelijke gegevensverwerking die wordt uitgevoerd op de hardware van de computer. Voor de communicatie tussen het besturingssysteem en de fysieke hardware wordt gebruik gemaakt van drivers/stuurprogramma's. De kernel is bijvoorbeeld verantwoordelijk voor geheugenbeheer, procesbeheer en apparaatbeheer, en het verwerken van IRQ's.
De kritieke code van de kernel wordt meestal geladen in een gereserveerd deel van het geheugen. Dit gereserveerde geheugen wordt beschermd van toegang door applicaties en minder belangrijke onderdelen van een besturingssysteem.
Kernel panic
Een kernel panic is een ernstige systeemfout die optreedt wanneer het besturingssysteem een fout detecteert waarvan het niet kan herstellen. Dit resulteert vaak in het abrupt stoppen van het systeem om verdere schade te voorkomen. Een kernel panic kan veroorzaakt worden door diverse problemen zoals hardwarefalen, corrupte drivers of bugs in de kernel code zelf. Het scherm toont typisch een foutmelding of diagnostische informatie die kan helpen bij het opsporen van de oorzaak van de fout.
Kernel-workers
Kernel-workers zijn achtergrondprocessen of ‘threads’ die door de kernel van het besturingssysteem worden aangemaakt en beheerd. Ze worden gebruikt om asynchrone taken uit te voeren, zoals het afhandelen van systeem events (zoals hardware interrupts, oftewel IRQ's) of het uitvoeren van drivers, zonder de prestaties van de processen die op de voorgrond van je besturingssysteem draaien te beïnvloeden.
KRBD-kernelmodule
KRBD staat voor Kernel-based RADOS Block Device. Het is een module binnen de Linux-kernel die directe toegang biedt tot Ceph-opslagclusters via de block device-interface van het besturingssysteem. KRBD maakt gebruik van de kernel van het besturingssysteem om RBD-images (RADOS Block Devices) te mounten als block devices, waardoor deze door jouw VPS kunnen worden gebruikt alsof het lokale harde schijven zijn.
Netwerkinterface
Een netwerkinterface of netwerkadapter is een software- of hardwarecomponent die de communicatie tussen een computer en een netwerk mogelijk maakt. Het kan een fysieke netwerkkaart zijn (die bijvoorbeeld op het moederbord van je computer zit) of een software-apparaat zoals een virtuele netwerkadapter (zoals de netwerkadapter van jouw VPS). De netwerkinterface bevat de noodzakelijke elektronische schakelingen en software drivers om te communiceren over een netwerk.
Netwerkpakket
In een computer netwerk wordt netwerkcommunicatie opgedeeld in hele kleine deeltjes, genaamd netwerkpakketen. Deze zijn niet groter dan 21 tot 65535 bytes en bevatten niet alleen de te versturen gegevens, maar ook bestemmings- en oorsprongsadressen en foutcontrole-informatie.
Object Storage Daemon (OSD)
Het OSD-proces in een Ceph-cluster zorgt ervoor dat de data correct opgeslagen wordt. Ook communiceren OSD's met andere OSD's om te borgen dat data gerepliceerd aanwezig is. In de regel is er één OSD per fysiek storagemedium, zoals een harde schijf.
Packet loss
Packet loss treedt op wanneer één of meer verzonden pakketten hun bestemming op een netwerk niet bereiken. Dit kan worden veroorzaakt door netwerkcongestie, beschadiging van de gegevens, hardwarefouten, of softwareproblemen. Packet loss kan de snelheid en kwaliteit van de netwerkcommunicatie beïnvloeden.
PCI-apparaat
Een PCI-apparaat is een stuk hardware dat is aangesloten op een computer via een PCI-slot op het moederbord. PCI staat voor Peripheral Component Interconnect, een industrie standaard bus voor het aansluiten van randapparatuur aan de computer.
PCI-apparaten kunnen uiteenlopen van netwerkkaarten, geluidskaarten, grafische kaarten, tot uitbreidingskaarten die extra poorten zoals USB of Ethernet bieden. Deze apparaten communiceren met het moederbord via de PCI-bus, waardoor gegevens kunnen worden overgedragen tussen de hardware en het systeem. PCI is in de loop van de tijd geëvolueerd naar varianten zoals PCI-X en PCI Express, die hogere gegevensoverdrachtsnelheden en verbeterde prestaties bieden.
Placement Group
Alle data binnen een Ceph-cluster wordt toegewezen aan Placement Groups die bepalen waar data fysiek opgeslagen wordt. Placement Groups worden verspreid over verschillende OSD's om je data redundant op te slaan. Dankzij het gebruik van Placement Groups kan data verspreid worden over OSD's in verschillende storage servers, of zelfs verschillende racks, of datacenters.
RADOS Block Device (RBD-image)
Een RBD-image is een type virtuele diskopslag/harde schijf dat gebruikt wordt door Ceph om blokopslag te simuleren (in OSD's), vergelijkbaar met fysieke schijven, maar dan binnen een gedistribueerde omgeving.
Ceph verdeelt deze RBD-images over een cluster van servers om high availability te bereiken. De data wordt opgesplitst in stukken en over verschillende servers verdeeld, wat helpt bij het beschermen tegen gegevensverlies door hardwarefouten.
RBD-header
ZFS
ZFS is een geavanceerd bestands- en volumebeheersysteem ontworpen door Sun Microsystems. Het biedt functies zoals hoge opslagcapaciteit, integriteitcontrole van gegevens, geïntegreerde RAID-functionaliteit, snapshot- en kloonmogelijkheden, en continue integriteitscontrole van gegevens.
Met ZFS kan indien data op een (RAID) set van meerdere harde schijven is opgeslagen, deze set schijven vervolgens aan een ander systeem (met ZFS) gekoppeld worden om verder te worden gebruikt. Hierdoor kunnen we bijvoorbeeld schijven met VPS-data tussen verschillende storageservers migreren zonder dat je dat merkt.