Verwaltung von virtuellen Maschinen und Jails für FreeBSD

Achtung! Der deutschsprachige Inhalt ist wegen fehlenden Betreuerinnen und Betreuern veraltet. Verwenden Sie bitte die englischsprachige Version!

Über das Projekt

CBSD wurde für FreeBSD als Ebene für die Verwaltung von jail(8) , bhyve und Xen geschrieben. Angesiedelt ist das Projekt als alleinstehendes integriertes Werkzeug für eine umfassende Lösung zum schnellen Herstellen und Bereitstellen von virtuellen Umgebungen mit vorgefertigten Festlegungen der Software mit minimaler Konfiguration.

Es wurden jetzt dadurch keine zusätzlichen Funktionalitäten des Betriebssystems beeinflusst. Alles was CBSD kann, könnte auch erreicht werden, indem zehn oder hunderte Befehle manuell in der Kommandozeile für die Verwendung der darunterliegenden Werkzeuge laufen gelassen werden. (Aber nicht, dass das wer wollen würde.)


  • Demo jail
  •  
  • Demo bhyve

Funktionalitäten…

  • Einfach zum Anfangen
  • Es machen wie im Stil von Vagrant style? Kein Problem!
  • webbasierte grafisches Oberfläche für das Verwalten der virtuellen Umgebung (siehe den Artikeln Installation auf FreeBSD )
  • Unterstützung für das System von Funktionalität von ZFS: Beschränkung durch ZFS, Senden durch ZFS, Augenblickaufnahme durch ZFS und so weiter;
  • Mangel bestender Anbindung von ZFS : CBSD funktioniert auch offenbar auf den Dateisystemen UFS, HammerFS oder jeglichen anderen: Manche Menschen nutzen jail und bhyve auf einem Dateisystem für Cluster wie NFS, GlusterFS und Ceph, was typischen für Rechenzentren und Ausfallsicherung ist
  • pre/post start/stop hooks für die Integration mit externen Sachen für DevOPS (DDNS, DNSmasq, Consul, usw. …)
  • Exportieren der Metriken für die Benutzung von Ressourcen für jail und bhyve (Exportieren und Anzeigen der statistischen Metriken von jail and bhyve mit CBSD, Grafana und Prometheus)
  • kommandozeilenbasierte grafische Oberfläche für den Dialog im Stil von bsdconfig mit der Sie nicht eine große Anzahl von Kommandos und Argumenten lernen brauchen
  • modulare Struktur - Jede Kommando ist eine eigenständige Datei und das macht ein Projekt mit CBSD einfach zu betreuen. Außerdem gibt es einige komplexe externe Module. (vncterm, noVNC, WS/WSS notification, Puppet helpers)
  • schnelle Erstellung der Bereitstellung von virtuellen Umgebungen von Grund aus mit einer Datei für das Manifest;
  • Profile für die Erstellung von einer for Jail
  • Import und Export von Umgebungen in ein Abbild;
  • Klonen von virtuellen Umgebungen (einschließlich dem Klonen von entfernten Knoten);
  • kalte Migration von Umgebungen zwischen Knoten;
  • Kontrolle der Begrenzung von Ressourcen (Priorisierung, Beschränkung);
  • Replikation und/oder Datensicherung zu entfernten Knoten;
  • Verteilung von beliebten Umgebungen mit einem spezifischen Festlegung an Software und Diensten
  • Kontrolle der Reihenfolge der Inbetriebnahme;
  • für die Verwendung fertige Quelle mit Vorlage der Umgebung
  • Unterstützung von Puppet und ein Modul für CBSD für Puppet für massenhafte Verwaltung ;
  • bhyve: Unterstützung cloud-init . Gesamte Bandbreite moderner Betriebssysteme: ( Windows , CentOS , NetBSD , OpenBSD , Debian, Ubuntu and FreeBSD )
  • bhyve: Unterstützung für live migration ;
  • bhyve: Unterstützung als "gejailtes" bhyve;
  • bhyve: Unterstützung für ZVOL und Backend für MD;
  • bhyve: Unterstützung für VNC
  • bhyve: PCI Passthrough und SR-IOV
  • bhyve: geteilte Ordner für eine virtuelle Maschine mit bhyve (durch virtio-p9)
  • bhyve: Unterstützung von UEFI PXE boot (mit unbeobachteten Installieren);
  • bhyve: Verwaltung virtueller Platten;
  • bhyve: Unterstützung von VALE : Der schnelle auf NETMAP basierende virtuelle Switch;
  • jail: Parallele Ausführung eines massenhaften/mehrfachen Kommandos: jexec
  • jail: volle oder teilweise Verschlüsslung der Daten (durch GELI);
  • jail: XJails (Xorg in einer Jail);
  • jail: Unterstützung für eine nicht native Architektur durch den Modus zur Benutzung von qemu (zum Beispiel als Jail auf arm und mips64 auf Knoten mit x86-64);
  • jail: eine für die Verwendung fertige Quelle für Kernel and Welt, die nicht buildworld/installworld benötigt;
  • Katalog kann auf Platten für Speicher, RAM oder auf tmpfs mit einer nur lesbar eingehängten Basis abgelegt werden;
  • jail: Unterstützung von NAT (pf, ipfw, ipfilter);
  • jail: Unterstützung von VIMAGE;
  • jail: Unterstützung von CARP;
  • jail: Unterstützung von RACCT/RCTL;
  • jail: Berechnung des Verkehrs je Jail;
  • jail: Freigeben von Ports - Durchleiten von Ports des Netzwerkes in eine Jail;
  • jail: Dialog einer Jail zu einem Abbild für PXE/ISO/Speicherstick;
  • jail: Unterstützung von VNC für eine Jail;

Ziele

  • Bereitstellen einer einfachen Verwaltung für virtuelle Umgebungen für Benutzerinnen und Benutzer von FreeBSD
  • Zeigen der Funktionalitäten von FreeBSD als eine Platform für das Hosting einer Cloud;
  • Automatisierung der Bereitstellung einer Umgebung;
  • Erstellung einer (eigenen/persönlichen) Plattform für Anwendungen mit Diensten auf Abruf (PaaS);
  • Bibliothek an Umgebungen für zügige Provisionierung;
  • Roadmap

FAQ (Häufig gestellte Fragen)

F: «Warum FreeBSD?:

  • Nach Ansicht der Erstellenden des Projektes ist Linux kein Teil der einfachen Leute; Es ist völlig kontrolliert von einer großen kommerziellen Organisation, während FreeBSD maßgeblich von Liebhaberinnen und Liebhabern entwickelt wird. Heutzutage ist Linux - Es ist eine kommerzielle Maschine zum Geld machen. - das was Microsoft Windows in den 90er Jahren war. Und das obwohl viele Benutzerinnen und Benutzer von Linux gegen das Monopol von Windows kämpften (Der Erschaffer von CBSD ist einer von denjenigen). Ja, FreeBSD ist sehr weit beim Vergleichen zu Linux bei derer beiden Eigenschaften hinterher. Es muss sich nur einmal die Füllen an solchen mächtigen Möglichkeiten, wie OpenVZ, Docker, Rancher, Kubernetis, LXD, Ceph, GlusterFS, OpenNebula, OpenStack, Proxmox, ISPPanel und einem Dutzend anderen angeschaut werden. All das wurde von kommerziellen Unternehmen zu Linux erstellt und das ist sehr gut gemacht. Jedenfalls ist Linux übersättigt mit ähnlichen Lösungen. Daher ist es viel mehr interessant was auf FreeBSD zu erstellen, wo nichts wie sowas existiert. Das ist eine exzellente Herausforderung zum Verbessern und Instandhalten auf FreeBSD. Wir lieben Unabhängigkeit und Frieden; Und FreeBSD heutzutage - ein unabhängiges und freies Betriebssystem, das in den Händen von gewöhnlichen Leuten ist.

F: «Warum ist CBSD in sh geschrieben:

  • Der meiste Code wurde in sh geschrieben, da es keine Abrufe von komplexer Logik gibt ( Details ). Der Kern von CBSD sollte als Backend für ein Kommando der Shell angedacht sein, was erreichbar ist wenn es nötig ist und im Falle von Problemen, sodass jede Ingenieurin und jeder Ingenieur für das Systems das Problem im Code lokalisieren und berichtigen kann.

    Die Probleme der Komplexität zur Betreuung von "großen Code für sh " wurde ursprünglich durch die modulare Struktur des Projektes gelöst, wo jedes Sktipt nur ihre jeweilige Aufgabe erledigt.

    Der Rest - komplexere Komponenten von CBSD (z.B. ein Frontend, das die RestAPI für Schnittstellen implementiert) - sind in einer Sprache wie go, nodejs, php geschrieben und sind nicht Teil vom Kern von CBSD.

F: CBSD ist nur für FreeBSD? Wie ist es mit dem Portieren zu einer anderen Platform?

  • In den meinsten Fällen wird Protieren gleichwertig mit von Grund auf Schreiben sein, seither das Projekt auf Funktionalitäten nur für FreeBSD basiert. Wir sind an der Portierung zu Plattformen interessiert, die sich von FreeBSD abgeleitet sind. Zum Beispiel unterstützen wir die Plattform HardenedBSD.

    Eine andere fantastische Idee ist das Portieren von CBSD zu DragonFly BSD . Wenn die Entwicklerinnen und Entwickler von DFLYBSD das Gerüst für jail (libjail) syncronisieren können und in der Lage sind bhyve zu portieren (siehe: Port bhyve - The BSD Hypervisor ), wäre CBSD zu verschieben eine einfache AUfgabe und wir könnten einen unglaublichen Verbund von DFLY / HammerFS / jail / bhyve / CBSD bekommen.

F: Ist CBSD bereit produktiv eingesetzt zu werden?

  • Das hängt an der Person und ihren Anforderungen. CBSD existiert seit 2013 und ist im Moment eines der ältesten Systeme für das Verwalten von virtuellen Umgebungen auf FreeBSD, während es im aktuellen Zustand ist und fortschreitet sich zu verbessern. Eine gewisse Anzahl von Benutzerinnen und Benutzern verwenden CBSD in großen Installationen im produktiven Betrieb.

    Wir sind auch daran interssiert mehr über die Verwendung von CBSD und ClonOSE zu erfahren, weswegen wir eine separate Seite erstellt haben, wo wir Artikel und Rezensionen von verschiedenen Benutzerinnen und Benutzern sammeln.

F: bastillebsd , bsdploy , bvm , chyves , ezjail , finch , focker , ioc , iocage: ( in shell , in python ), iocell , iohyve , jadm , jail-primer , jailadmin , jailctl , jailutils , pot , quickjail , qjail , rvmadm , tredly , virt-manager vm-bhyve , warden , zjail, und andere: Was zur Hölle sind soviele Projekte und was ist der Unterschied zwischen all diesen? Irgendein Vergleich?

  • Die meisten von ihnen wurden geboren und bereits gestorben. Einige Projekte sind wegen dem NIH-Syndrom geboren. Einige starben wegen dem Mangel an langfristigen Zielen und Unterstützung. Im Vergleich mit CBSD is arg schwierig . Kurze Antwort: Jedes Projekt hat einen sehr speziellen Vektor der Herstellung und Ziele im Vergleich zu anderen Werkzeugen; Die Wahl liegt zwischen einzelnen unterschiedlichen Möglichkeiten der Implemtierungen. Der hauptsächliche Unterschied zwischen CBSD und anderen ist, dass CBSD als eine komplette Lösung mit einer einfach (wo es möglich ist) Schnittstelle für die Verwaltung angesiedelt ist. CBSD ist aus diesem Grund auch viel breiter und größer und nicht all das ist anwendbar. Aber wir haben anderen Ziele im Vergleich zu anderen und fokusieren uns auf komplexe Lösungen für Cluster.

Q: Irgendwelche Töchterprojekte?

F: jail, bhyve, xen... Was ist mit Docker und gibt es einen Plan um Docker in CBSD zu unterstützen?

  • Nein. Wir fokusieren uns auf große für den Betrieb fertige und auf FreeBSD basierende Installationen. Docker ist großartig, aber es hat keine offizielle Unterstützung von FreeBSD, daher ergibt es keinen Sinn unsachgemäße Werkzeuge in der seriös Arbeit zu verwenden.

    Docker kann wie es ist in MacOS oder FreeNAS - durch eine dazwischende Schicht mit dem Hypervisor [x/b]hyve - verwendet werden. Aber es passt mehr für Spaß und und Spiele, als als seriöse Anwendung in einer Infrastruktur im produktiven Betrieb. Aber wer das wirklich haben will: Docker mit FreeBSD oder Kubernetes mit FreeBSD für dich selbst einfach zu machen ohne CBSD. ;-)

auf CBSD bezogene Unterstützung, Gespräche und Kanal der Gruppe der Benutzenden

Wir haben einen Kanal bei Telegram für die Diskussion über das Benutzen und die Entwicklung von CBSD.

Bitte treten Sie uns bei @cbsdofficial bei. (nur in englischer Sprache)

Unser offizieller Mail-Verteiler wird von Tilda Center bereitgestellt. Senden Sie eine Mail an cbsd+subscribe@lists.tilda.center um sich einzutragen.

Unterstützen Sie das Projekt!

Wenn Sie dem Projekt helfen möchten, mache Sie Spenden oder kaufe den Entwicklerinnen und Entwicklern Bier indem Sie die unten stehende Schaltfläche benutzen:

Spenden an das Projekt CBSD/ClonOS

Darüber hinaus können Sie Informationen über das Projekt verbreiten oder einen Artikel als Anleitung zur Benutzung schreiben. Nebenbei können Sie das Projekt durch das Drücken vom Stern bei Github CBSD favorisieren. Kleine Belanglosigkeit, aber nett! ;-)