Donnerstag, 15. Oktober 2015

Terminalbefehle und ihre Bedeutung

  • touch: Änderung von Zugriffs- und Änderungszeitstempel. Existiert die Datei noch nicht, wird sie neu angelegt
  • cat: ursprünglich zum zusammensetzen von Dateien gedacht, wird aber zwischenzeitlich hauptsächlich eingesetzt um kleinere Dateien im Terminal anzuzeigen
  • wget: Dateien von HTTP oder FTP Seiten downloaden
  • apt-key: Aktionen den Schlüsselbund betreffend
  • wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
  • Download der angegebenen Datei im "quiet" Modus (-q) und Ausgabe im Terminal (-O-) und Übergabe der Ausgabe (-) an den apt-key add, damit der Schlüssel hinzugefügt werden kann
  • apt-get: Paketverwaltung! update, upgrade, install, remove, autoremove, etc.(siehe auch: https://wiki.ubuntuusers.de/apt/apt-get)
  • pwd: gibt das aktuelle Verzeichnis zurück, indem man sich gerade befindet, print working directory
  • git clone git://ADRESSE: Herunterladen nur den Quellcode aus dem Git-Repository
  • cd: change directory (Wechsel der Verszeichnisse)
  • mkdir: Anlegen eines Verzeichnisses
  • sollte die Uhr aus dem Panel verschwunden sein:
    pkill -f indicator-datetime-service , nachdem man sich vergewissert hat, dass in den Systemeinstellungen die Uhr für das Panel aktiviert ist
  • VERBOSE: Ausführungsmodus von Computerprogrammen (meist Aufruf aus einer Kommandozeile), der dafür sorgt, dass die Ausführung des Programms mit geloggt wird. Verwendung erfolgt meist mit -v oder --verbose und kann z.B. bei chmod, mkdir, cd, rm, cat verwendet werden. 
  • tar -xzf Dateiname: (Ent)packen von tar-Archiven. Bei den Optionen müssen immer die Dateiendungen beachtet werden. Handelt es sich nicht nur um ein gepacktes, sondern auch komprimiertes Archiv, müssen die Optionen entsprechend angepasst werden siehe auch: wiki.ubuntuusers.de/tar
  • ln: Erzeugung eines Links; Entweder ein Softlink -s, oder ein Hardlink (ohne Option) 
  • uname -r: Kernelversion ermitteln 
  • sudo apt-get install linux-headers-$(uname -r): Aktuellen Kernel installieren 
  • usermod -d /Verzeichnis/ -m "Benutzer": Benutzer Home-Verzeichnis ändern 
  • möchte man in einem Server den aktuellen Benutzer abmelden, weil man sich vielleicht mit einem anderen anmelden möchte, benutzt man einfach den Befehlt exit
  • ip link show (device) ip a s
  • md5sum: Quersumme einer Datei bilden -> z.B. kann man damit abgleichen, ob eine Datei auch vollständig und korrekt kopiert wurde
  • iotop: Anzeige der laufenden Prozesse des Systems im Terminal 
  • free: zeigt die momentane Speicherbelegung des RAM an (Option -m: Angabe in MByte)
  • vmstat (Sekunden): tabellarische Auskunft über Prozesse, Arbeitsspeicher, Auslagerung- sowie Festplatten und Prozessor-Aktivitäten
  • apt-get install <paketname1> <paketname2> ...
  • apt-get remove <paketname1> <paketname2> ...
  • apt-get purge <paketname1> <paketname2> ...
  • apt-cache search <paketname>
  • dpkg -l : Installierte Pakete zeigen lassen
  • dpkg -l | grep <Suchbegriff> In den installierten Paketen nach einem bestimmten suchen
  • less : pager zur Ausgabe von (Text-) Dateien im Terminal
  • head Datei: Ausgabe der ersten 10 Zeilen der Datei

Donnerstag, 8. Oktober 2015

OpenStack

  • Initiiert wurde das Softwareprojekt von  Rackspace & NASA und wird unterstützt durch z.B. Firmen wie SUSE Linux GmbH, Dell, Canonical, etc
  • OpenStack wird als freie Software in Python unter Apache Lizenz entwickelt
  • Cloud Computing (als Dienstleistung) umfasst das gesamte Spektrum der Informationstechnologie (Infrastruktur => z.B. Rechenerleistung, Speicherplatz), Plattformen & Software) 
OpenStack => Software, die aus vielen unterschiedlichen Einzelprodukten besteht:
  • OpenStack Compute -> Nova:
    • Kann Gruppen von virtuellen Maschinen verwalten
    • unterstützt Hypervisoren -> XEN & KVM & Hyper-V(MS)
    • Ansteuerung über libvirt
    • Bereitstellung von Storage: iSCSI, sheepDog oder Swift
    • Bereitstellung von Object Storage: Glance
    • Verwaltung erfolgt über REST API, die mit dem CLI von Eucalyptus angesteuert wird
    • Für den Betrieb von Nova ist noch eine Datenbank notwendig
  • OpenStack Storage -> Swift:
    • verantwortlich für reduntante Datenspeicherung (Object Storage)
    • Als Backend für Glance oder Cinder einsetzbar
    • Für Dateiverwaltung z.B. Cyberduck
  •  OpenStack Image Service -> Glance:
    • stellt den OpenStack Usern Images für virtuelle Maschinen zur Verfügung
    • Images dienen Nova dazu, Instanzen zu kompilieren
  •   OpenStack Identity ->Keystone:
    • Authentifizierungs- und Rechtesystem zwischen den OpenStack Komponenten
    • Gliederung des Projektzugriffs in sog. Mandanten (tenants)
    • Der Tenenat ist Mieter der Cloud und hat mind. einen zugeordenten Benutzer
    • Verschiedene Benutzer mit unterschiedlichen Rechten pro Mandant möglich
    • Token System zur Authorisierung
    • Anbindung anderer Authentifizierungssysteme möglich (z.B. LDAP)
    • Abstrahieren der Authentifizierung auf vorgelagerten Webservern möglich -> Erweiterung der Authentifizierungssysteme
  • OpenStack Dashboard -> Horizon:
    • Webinterface zur Verwaltung der OpenStack Cloud
    • Bereitstellung der wichtigsten Funktionen der OpenStack Komponenten in einer GUI
  • OpenStack Block Storage -> Cinder
    • Bereitstellung virtuellen Blockspeichers in Form virtualisierter Speichermedien (Festplatten, CDs, etc.)
    • Blockspeicher kann an VMs angehängt werden
    • Über eine API-Schnittstelle lässt sich Cinder mit Swift verbinden => Blockspeicher kann mit Objektspeicher kommunizieren 
  • OpenStack Networking -> Neutron (ehem. Quantum)
    • Netzwerkdienst für OpenStack
    • Verwaltung von Netzwerken, Subnetze, IP-Adressen/ Floating IPs
    • Floating IP: IP die als Schnittstelle zwischen dem öffentlichen und internen Netzwerk dient
    • Unterstützung von Load Balancer (?), HA-Proxy(?), Health-Monitor, sowie VLAN & VPN
    • Firewall mit vielseitigen Portregeln 
  • OpenStack Database Service -> Trove
    • befindet sich noch in der Entwicklungsphase
    • soll sowohl NoSQL Datenbank (z.B. MongoDB) als auch SQL-Datenbanken (z.B. MariaDB) in der Cloud als DBaaS (Datenbank as a Service) bereitstellen
  • OpenStack Orchestration -> Heat
    • Erzeugung von Stacks
    • Stack: Konfigurationen aus verschiedenen Cloud-Komponenten z.B. Instanzen, Load Balancer, Sicherheitsgruppen, etc.
    • Realisierung von Deployment- und Autoscaling Prozessen direkt im OpenStack
    • Ablage der Konfiguration in einem Heat Orchestration Template (HOT) im YAML-Format
    • Mit einem Template können gesamte Infrastrukturen automatisiert erzeugt werden
  • OpenStack Telemetry -> Ceilometer
    • Erfassen und Abfragen von Nutzungsdaten der OpenStack Cloud
    • Wird von Heat verwendet um Leistungszahlen für Autoscaling zu ermitteln
  •  OpenStack Data processing service -> Sahara
    • Datenverarbeitungssystem
    • Dem Nutzer einfachen Zugang zu Datenverarbeitungscluster bereitstellen
    • Wikipedia-Artikel wird an diesem Punkt zu chinesisch... SPÄTER noch mal lesen

Mittwoch, 7. Oktober 2015

Hadoop, Dockers und noch vieles mehr

OpenStack
  • Cloud erzeugen, verwalten, bearbeiten
Ceph
  • Bereitstellung von Objekt-, Block- oder Dateisytem-Speicher
  • schneller Zugriff, parallel große Anzahl von Zugriffen möglich
  • RADOS Reliable Autonomic Distributed Object Store
  • Ausführung in einem Storage-Cluster
  • Applikationen in C, C++, Java, Python & PHP möglich
  • RADOS Gateway unterstützt OpenStack Swift & Amazon S3
  • Ceph bietet ein File System mit POSIX Semantik an, was andere Systeme wohl nicht haben
  • RBD RADOS Block Device
 Apache Hadoop
  • Framework für skalierbare, verteilt arbeitende Software
  • freie Software in Java geschrieben
  • basiert auf einem MapReduce Algorithmus von Google
  • Hadoop ermöglicht es intensive Rechenprozesse mit großen Datenmengen auf Computerclustern durchzuführen
  • HDFS (Hadoop Distributed File System) ist ein hochverfügbares Dateisystem zur Speicherung sehr großer Datenmengen auf den Dateisystemen mehrer Rechner
  • HBASE skalierbare Datenbank zur Verwaltung sehr großer Datenmengen innerhalb eines Hadoop Clusters; basiert auf Google Big Table (Hochleistungs Datenbanksystem)
  • HIVE -> Erweiterung um Data Warehouse Funktionalität; Anfragesprache HIVE QL und Indizes (SQL ähnlich)
  • Pig: Erstellen von MapReduce Programme für Hadoop mit der Sprache Pig Latin
  • Chukwa: Echtzeitüberwachung sehr großer verteilter Systeme
  • ZooKeeper: Dient der verteilten Konfiguration von verteilten Systemen
  • auf der Homepage werden noch wesentlich mehr Module beschrieben
Elasticsearch
  • Suchmaschine
  • Vusalisierung heißt Marvel
  • JSON Dokumente -> Daten sind immer Dokumente
Dockers
  • Container Verwaltung, die unterschiedlichste Anwendungen (in Containern) bereitstellt. Dabei ist es völlig unerheblich aus welcher Umbegung sue aufgerufen wird
  • Im Gegensatz zu VMs fehlt Dockers das GuestOS. Dockers teilt den Kernel mit allen anderen Containern. Sie laufen als isolierter Prozess auf dem Host-System
LinuxContainers
  • Bereitstellung einer Distro- & Anbieter-neutralen Umgebung zur Entwicklung von LinuxContainer Technologien
  • Bereitstellung einer Umgebung ohne Kernel & Hardware Simulation (wie es bei einer VM der Fall ist)
  • LXC (lex-cee): Set mit WErkzeugen, Templates,, Bibliotheken und Programmierschnittstellen -> Erzeugung von Containern
  • LXD (leex-dee): Container-Hypervisor
    • systemweiter Daemon (lxd)
    • Kommandozeilen Client (lxc)
    • OpenStack Nova plugin (nova-compute-lxd) was ab Ubuntu 15.04 mitgeliefert wird
    • REST-API wird über den Daemon bereitgestellt (lokal & über Netzwerk)
  • LXCFS: Dateisystem, welches aktuell noch mit einigen Beschränkungen auf dem Linux-Kernel arbeitet. Möglich ist u.a.:
    • Bereitstellung eines cgroupfs-like Baum, der dem Container bekannt ist und mit dem CG Manger arbeitet
    • Bereitstellung eines Datei-Sets, welches über die originale /proc eingebunden wird um CGroup-Werte bereit zustellen
REST (Representational State Transfer)
  • Programmierparadigma für verteilte Systeme, insbesonders für Webseiten
  • Abstraktion der Struktur und Verhalten des WWW
MapReduce
  • Programmiermodul von Google für nebenläufige Berechnungen über mehrere Petabyte große Datenmengen auf Computerclustern
NAS (Network Attached Storage)
  • Speicher der direkt an ein Netzwerk angeschlossen ist
  • Verwaltung der Dateien über Netzwerkprotokolle wie SMP/ CIFS, NFS (dateibasiert) oder iSCSI und FCoE (blockbasiert)
  • NAS-Systeme arbeiten autonom
Hypervisor:
  • Virtual Machine Monitor (VMM)
  • abstrahierende Schicht zwischen tatsächlicher Hardware (inkl. installiertem OS) und weiteren Betreibssystemen
  • Definition einer virtuellen Umgebung (hardwareresourcen, z.B. CPU, Speicher, FEstplattenplatz, verfügbare Peripherie)
  • Die definierte Umgebung ist völlig unabhängig von der realen Hardware, auf der sie eingerichtet wurde
  • VirtualBox, VMWare, XEN
KVM (Kernel-based Virtual Machine)
  • Hypervisor ohne Bedienoberfläche
  • Im Linux-Kerne fest implementiert
XEN
  • Hypervisor 
  • Citrix-Systems
Object Storage
Block Storage
Dateisystem Storage
Cluster
RabbitMQ


Donnerstag, 1. Oktober 2015

Definitionen und Abkürzungen

  • Broadcast Adresse: höchste IP Adresse (255.255.255.255) ist reserviert um ein Nachricht gleichzeitig an alle Teilnehmer zu senden
  • DNS: Domain Name Server; Server auf dem die Namen zu den Netzwerkadressen gespeichert sind -> 167.216.245.249 = www.linuxcare.com (nicht mehr erreichbar ;-))
  • FQDN: Fully Qualify Domain Name; Vollständiger Domainname, z.B. www.example.com. -> . => roor-label, .com => Top Level Domain, .example => second level domain, www => third level domain
  • LVM (Logic Volume Manager) notwendige Definitionen:
    • Physical Volume (PV): physikalisches Laufwerk, Partintion, RAID System, welches als LVM PV konfiguriert ist
    • Volume Group (VG): Gruppe aus einem oder mehreren PVs, welche durch weitere PVs erweitert werden kann. Es handelt sich um ein virtuelles Laufwerk, von dem ein oder mehrere logische Laufwerk abgeleitet werden kann
    • Logical Volume (LV): enspricht einer Partition auf einem nicht LVM System. Ein LV wurde im verlangten Format formatiert (EXT3, XFS, JFS, etc.). Das Laufwerk kann dann einfach gemounted und als Speicher verwendet werden
  • Dash:
    • Debian Almquist Shell -> Standardshell für Shellskripte, wird aber aufgrund ihrer Unkonfortabilität eher selten genutzt -> Bash
    • Unter Unity ist die Dash das Schnellstartmenü, in der das System nach Anwendungen, Dateien, etc. durchsucht werden kann 
     
  • Bash: Bourne again Shell
  • Apache: Webserver, der in Kombination mit MYSQL, PHP, Pearl oder Python zum LAMP (Linux, Apache, MySQL, PHP) Server wird
  • RC: Release Candidate 
  • FOSS: Free and Open Source Software 
  • systemd: Daemon für Linux-Systeme, das als erstes Programm, init-Programm, zum Starten, Überwachen und Beenden anderer Programme dient (seit Ubuntu 15.04)
  • Daemon: Unter Linux (oder Unix) ein Programm, was im Hintergrund abläuft
  • PaaS: Platform as a Service
  • SaaS: Software as a Service
  • IaaS: Infrastructure as a Service
  • QEMU: Quick Emulator ist eine freie virtuelle Maschine, die die gesamte Hardware eines Computers emuliert und durch die dynamische Übersetzung der Prozessorinstruktionen des Gastprozessors in Instruktionen für den Host-Prozessor eine sehr gute Ausführungsgeschwindigkeit erreicht
  • Puppet: Systemkonfigurationswerkzeug mit dem z.B. automatisiert mehrere Computer via Netzwerk konfiguriert werden können
  • RabbitMQ ist eine Open Source Message Broker Software, die das Advanced Message Queuing Protocol (AMQP) implementiert (Middleware, die zur Nachrichtenübertragung dient) ich habe keine Ahnung was das bedeutet :-(
  • ARM: Mikroprozessortechnik, die vor allem im embedded Bereich weit verbreitet ist. Advanced RISC Machines
  • CLI: Command Line Interface Kommandozeilen-Interaktionen
  • SDK: Software Developer Kit
  • LVM: Logical Volume Manager
  • DKMS: Dynamic Kernel Module Support
  • MTP: Media Transfer Protocol
  • ADB: Android Debug Bridge
  • RBAC: Role Based Access Control
  • TTL: Time to life (Gültigkeitsdauer)
  • VLAN: Virtual Local Area Network   
  • VPN: Virtual Private Network 
  • ETL: Extract, Transform, Load Prozess, mit dessen Hilfe Daten aus (veschiedenen) Systemen in einem Zielsystem vereinigt werden. Wird vor allen Dingen im Warehouse-Data Bereich verwendet
  • DAG: Database Availability Group: Eine DAG ist ein hochverfügbares und DAten absicherndes Feature von Exchange Server 2010 
  • JRE: Java Runtime Environment 
  • MTBF: Mean Time Between Failures -> mittlere Betriebsdauer zwischen Ausfällen 
  • WORM: Write Once read many 
  • NFV: Network Functions Virtualization 
  • VIP (external, internal):virtual IP 
  • ICMP: Internet Control Message Protocol 
  • CM: Configuration Management
  • Tarballs: komprimiertes Archiv mit der Endung tar.gz
  • IRQ: Interrupt ReQuest
  • ISR: Interrupt Service Routine
  • AHCI: Advanced Host Controller Interface offener Schnittstellen Standard für SATA-Controller
  • ACPI: Advanced Configuration and Power Interface, offener Industriestandard zur Energieverwaltung von Notebooks, Desktops und Servern