{"id":38929,"date":"2019-10-31T22:26:48","date_gmt":"2019-10-31T19:26:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\/"},"modified":"2019-10-31T22:26:48","modified_gmt":"2019-10-31T19:26:48","slug":"linux-mnogolikij-kak-rabotat-na-lyubom-distributive","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","title":{"rendered":"Linux ist vielf\u00e4ltig: So arbeiten Sie mit jeder Distribution","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linux ist vielf\u00e4ltig: So arbeiten Sie mit jeder Distribution\" src=\"\/wp-content\/uploads\/2019\/10\/ee1aaad566204532c974a3ce8f13b915.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEine Backup-Anwendung zu erstellen, die auf jedem Distribution funktioniert, ist eine anspruchsvolle Aufgabe. Um Veeam Agent for Linux auf Distributionen von Red Hat 6 bis Debian 6, bis hin zu OpenSUSE 15.1 und Ubuntu 19.04 zum Laufen zu bringen, m\u00fcssen wir eine Vielzahl von Problemen l\u00f6sen, insbesondere wenn man bedenkt, dass das Produkt ein Kernel-Modul beinhaltet.<\/p>\n<p>Der Artikel basiert auf Materialien eines Vortrags auf der Konferenz <noindex><a rel=\"nofollow\" href=\"https:\/\/linuxpiter.com\/materials\/2636\"> LinuxPiter 2019<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLinux ist nicht nur eines der popul\u00e4rsten Betriebssysteme. Es ist im Grunde eine Plattform, auf der man etwas Einzigartiges, etwas Eigenes schaffen kann. Daher gibt es viele Distributionen von Linux, die sich in der Auswahl der Softwarekomponenten unterscheiden. Das bringt ein Problem mit sich: Damit ein Produkt auf jeder Distribution funktioniert, m\u00fcssen die Besonderheiten jeder einzelnen ber\u00fccksichtigt werden.<\/p>\n<h2>Paketmanager. .deb vs .rpm<\/h2>\n<p>\nBeginnen wir mit dem offensichtlichen Problem der Verbreitung von Produkten f\u00fcr verschiedene Distributionen.<br \/>\nDer typischste Weg, Softwareprodukte zu verteilen, besteht darin, ein Paket in ein Repository zu legen, damit der im System integrierte Paketmanager es von dort installieren kann.<br \/>\nEs gibt jedoch zwei g\u00e4ngige Paketformaten: <i>rpm<\/i> und <i>deb<\/i>. Das bedeutet, dass jede Unterst\u00fctzung notwendig sein wird.<\/p>\n<p>In der Welt der deb-Pakete ist die Kompatibilit\u00e4t erstaunlich hoch. Ein und dasselbe Paket l\u00e4sst sich sowohl auf Debian 6 als auch auf Ubuntu 19.04 problemlos installieren und nutzen. Die Standards f\u00fcr den Aufbau und die Verwaltung von Paketen, die in \u00e4lteren Debian-Distributionen festgelegt wurden, bleiben auch in den modernen Distributionen wie Linux Mint und elementary OS relevant. Daher ben\u00f6tigt der Veeam Agent for Linux nur ein deb-Paket f\u00fcr jede Hardwareplattform.<\/p>\n<p>In der Welt der rpm-Pakete hingegen sind die Unterschiede erheblich. Erstens gibt es zwei v\u00f6llig unabh\u00e4ngige Distributoren, Red Hat und SUSE, f\u00fcr die Kompatibilit\u00e4t keine Rolle spielt. Zweitens besitzen diese Distributoren sowohl Distributionen mit technischer Unterst\u00fctzung als auch experimentelle. Auch hier ist Kompatibilit\u00e4t nicht erforderlich. So haben wir letztendlich verschiedene Pakete f\u00fcr el6, el7 und el8. Au\u00dferdem ein separates Paket f\u00fcr Fedora und verschiedene Pakete f\u00fcr SLES11 und 12 sowie ein eigenes f\u00fcr openSUSE. Das Hauptproblem liegt in den Abh\u00e4ngigkeiten und den Paketnamen. <\/p>\n<h2>Das Problem der Abh\u00e4ngigkeiten<\/h2>\n<p>\nLeider treten h\u00e4ufig die gleichen Pakete unter verschiedenen Namen in unterschiedlichen Distributionen auf. Unten finden Sie eine unvollst\u00e4ndige Liste der Abh\u00e4ngigkeiten des Pakets veeam.<\/p>\n<p>F\u00fcr EL7:<br \/>\nF\u00fcr SLES 12:<\/p>\n<ul>\n<li>libblkid<\/li>\n<li>libgcc<\/li>\n<li>libstdc++<\/li>\n<li>ncurses-libs<\/li>\n<li>fuse-libs<\/li>\n<li>file-libs<\/li>\n<li>veeamsnap = 3.0.2.1185<\/li>\n<\/ul>\n<ul>\n<li>libblkid1<\/li>\n<li>libgcc_s1<\/li>\n<li>libstdc++6<\/li>\n<li>libmagic1<\/li>\n<li>libfuse2<\/li>\n<li>veeamsnap-kmp = 3.0.2.1185<\/li>\n<\/ul>\n<p>\nDas Ergebnis ist, dass die Liste der Abh\u00e4ngigkeiten f\u00fcr die Distribution einzigartig ist. <\/p>\n<p>Schlimmer wird es, wenn sich unter dem alten Paketnamen eine aktualisierte Version verbirgt. <\/p>\n<p><b>Beispiel:<\/b><\/p>\n<p>In Fedora 24 wurde das Paket <i>ncurses<\/i> von Version 5 auf Version 6 aktualisiert. Unser Produkt wurde speziell mit der Version 5 erstellt, um die Kompatibilit\u00e4t mit \u00e4lteren Distributionen zu gew\u00e4hrleisten. Um die alte Version 5 der Bibliothek in Fedora 24 zu nutzen, musste das Paket <i>ncurses-compat-libs<\/i>. <\/p>\n<p>verwendet werden. Infolgedessen erscheinen f\u00fcr Fedora zwei Pakete mit unterschiedlichen Abh\u00e4ngigkeiten. <\/p>\n<p>Es wird noch interessanter. Nach einem weiteren Update der Distribution ist das Paket <i>ncurses-compat-libs<\/i> mit der Version 5 der Bibliothek nicht mehr verf\u00fcgbar. F\u00fcr den Distributor ist es kostspielig, alte Bibliotheken in die neue Version der Distribution zu ziehen. Nach einiger Zeit trat das Problem auch in den SUSE-Distributionen wieder auf.<\/p>\n<p>Als Ergebnis musste f\u00fcr einige Distributionen auf eine explizite Abh\u00e4ngigkeit von <i>ncurses-libs<\/i>verzichtet werden, und das Produkt wurde so angepasst, dass es mit jeder Version der Bibliothek funktionieren kann.<\/p>\n<p>\u00dcbrigens gibt es in der 8. Version von Red Hat kein Metapaket mehr, <i>Python<\/i>das auf das gute alte <i>python 2.7<\/i>Au\u00dferdem gibt es ein <i>python2 verwies.<\/i> und <i>Python<\/i>3. <\/p>\n<h2>Alternativen zu Paketmanagern<\/h2>\n<p>\nDas Problem mit Abh\u00e4ngigkeiten ist altbekannt. Man erinnere sich nur an den Begriff \"Dependency Hell\". <br \/>\nDie Herausforderung besteht darin, verschiedene Bibliotheken und Anwendungen so zu kombinieren, dass sie stabil arbeiten und nicht miteinander in Konflikt geraten \u2013 genau das versucht jeder Linux-Distributor zu bew\u00e4ltigen.<\/p>\n<p>Eine ganz andere Herangehensweise bietet der Paketmanager <b>Snappy<\/b> von Canonical. Der Grundgedanke: Die Anwendung wird in einer isolierten und vom Hauptsystem gesch\u00fctzten Sandbox ausgef\u00fchrt. Wenn eine Anwendung Bibliotheken ben\u00f6tigt, werden diese zusammen mit der Anwendung bereitgestellt.<\/p>\n<p><b>Flatpak<\/b> was ebenfalls das Ausf\u00fchren von Anwendungen in einer Sandbox unter Verwendung von Linux-Containern erm\u00f6glicht. Dieses Konzept wird auch von <b>AppImage<\/b>.<\/p>\n<p>Diese L\u00f6sungen erm\u00f6glichen die Erstellung eines Pakets f\u00fcr alle Distributionen. Im Fall von <b>Flatpak<\/b> kann die Installation und der Start der Anwendung sogar ohne Wissen des Administrators erfolgen.<\/p>\n<p>Das Hauptproblem besteht darin, dass nicht alle Anwendungen in einer Sandbox funktionieren k\u00f6nnen. Einige ben\u00f6tigen direkten Zugang zur Plattform. Ganz zu schweigen von Kernelmodulen, die stark vom Kernel abh\u00e4ngen und somit nicht in das Sandbox-Konzept passen. <\/p>\n<p>Ein weiteres Problem ist, dass beliebte Enterprise-Distributionen von Red Hat und SUSE bisher keine Unterst\u00fctzung f\u00fcr Snappy und Flatpak enthalten. <\/p>\n<p>Daher ist der Veeam Agent f\u00fcr Linux weder auf <noindex><a rel=\"nofollow\" href=\"https:\/\/snapcraft.io\/\">snapcraft.io<\/a><\/noindex> noch auf <noindex><a rel=\"nofollow\" href=\"https:\/\/flathub.org\/home\">flathub.org<\/a><\/noindex>.<\/p>\n<p>Abschlie\u00dfend m\u00f6chte ich im Zusammenhang mit Paketmanagern erw\u00e4hnen, dass es die M\u00f6glichkeit gibt, vollst\u00e4ndig auf Paketmanager zu verzichten, indem man die Bin\u00e4rdateien und das Skript zur Installation in einem Paket zusammenf\u00fchrt. <\/p>\n<p>Ein solches Bundle erm\u00f6glicht es, ein gemeinsames Paket f\u00fcr verschiedene Distributionen und Plattformen zu erstellen, den Installationsprozess interaktiv zu gestalten und notwendige Anpassungen vorzunehmen. Ich habe solche Pakete f\u00fcr Linux nur von VMware gesehen.<\/p>\n<h2>Das Problem der Updates<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Linux ist vielf\u00e4ltig: So arbeiten Sie mit jeder Distribution\" src=\"\/wp-content\/uploads\/2019\/10\/aa14b10a434c28541574421d97807de7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSelbst wenn alle Abh\u00e4ngigkeitsprobleme gel\u00f6st sind, kann die Software auf derselben Distribution unterschiedlich funktionieren. Ursache sind die Updates.<\/p>\n<p>Es gibt drei Update-Strategien:<\/p>\n<ul>\n<li>Die einfachste ist, nie zu aktualisieren. Man hat den Server konfiguriert und vergessen. Warum Updates, wenn alles funktioniert? Probleme beginnen beim ersten Anruf beim Support. Der Ersteller der Distribution unterst\u00fctzt nur die aktualisierte Version. <\/li>\n<li>Man kann dem Distributor vertrauen und automatische Updates einrichten. In diesem Fall ist ein Anruf beim Support wahrscheinlich, sofort nach einem fehlgeschlagenen Update.<\/li>\n<li>Die manuelle Aktualisierung nach einer Testphase in der Infrastruktur ist die sicherste, jedoch auch die kostspieligste und arbeitsintensivste Option. Nicht jeder kann sich das leisten.<\/li>\n<\/ul>\n<p>\nDa verschiedene Nutzer unterschiedliche Aktualisierungsstrategien anwenden, m\u00fcssen sowohl die neueste Version als auch alle zuvor ver\u00f6ffentlichten unterst\u00fctzt werden. Das verkompliziert sowohl den Entwicklungsprozess als auch die Testphase und sorgt f\u00fcr zus\u00e4tzlichen Stress im Support-Team.<\/p>\n<h2>Vielfalt der Hardwareplattformen<\/h2>\n<p>\nDiverse Hardwareplattformen sind ein Problem, das in hohem Ma\u00dfe spezifisch f\u00fcr nativen Code ist. Mindestens einmal m\u00fcssen Bin\u00e4rdateien f\u00fcr jede unterst\u00fctzte Plattform erstellt werden.<\/p>\n<p>Im Projekt Veeam Agent f\u00fcr Linux k\u00f6nnen wir einfach nichts RISC-\u00e4hnliches unterst\u00fctzen.<\/p>\n<p>Ich werde nicht im Detail auf dieses Thema eingehen. Ich m\u00f6chte nur die wichtigsten Probleme anrei\u00dfen: plattformabh\u00e4ngige Typen wie <code>size_t<\/code>, Struktur-Alignment und Byte-Reihenfolge.<\/p>\n<h2>Statische und\/oder dynamische Verlinkung<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Linux ist vielf\u00e4ltig: So arbeiten Sie mit jeder Distribution\" src=\"\/wp-content\/uploads\/2019\/10\/dc473aad4ea0818940af7eafdbc641fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDie Frage \"Wie verlinkt man mit Bibliotheken - dynamisch oder statisch?\" sollte diskutiert werden.<\/p>\n<p>In der Regel verwenden C\/C++-Anwendungen unter Linux dynamische Bindung. Das funktioniert hervorragend, wenn die Anwendung speziell f\u00fcr eine bestimmte Distribution erstellt wurde.<\/p>\n<p>Steht jedoch die Aufgabe an, verschiedene Distributionen mit einer einzigen Bin\u00e4rdatei abzudecken, muss man sich an der \u00e4ltesten unterst\u00fctzten Distribution orientieren. In unserem Fall ist das Red Hat 6. Es enth\u00e4lt gcc 4.4, das nicht einmal den Standard C++11 unterst\u00fctzt. <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/projects\/cxx-status.html\">vollst\u00e4ndig<\/a><\/noindex>.<\/p>\n<p>Wir kompilieren unser Projekt mit gcc 6.3, das C++14 vollst\u00e4ndig unterst\u00fctzt. Daher m\u00fcssen wir in diesem Fall die Bibliotheken libstdc++ und Boost mit Red Hat 6 mitbringen. Am einfachsten ist es, statisch mit ihnen zu verlinken.<\/p>\n<p>Leider kann nicht mit allen Bibliotheken statisch verlinkt werden.<\/p>\n<p>Einerseits m\u00fcssen Systembibliotheken wie <i>libfuse<\/i>, <i>libblkid<\/i> dynamisch gebunden werden, um die Kompatibilit\u00e4t mit dem Kernel und seinen Modulen sicherzustellen. <\/p>\n<p>Zweitens gibt es eine Feinheit bei den Lizenzen. <\/p>\n<p>Die GPL-Lizenz erlaubt grunds\u00e4tzlich das Linken von Bibliotheken nur mit Open-Source-Code. MIT- und BSD-Lizenzen erm\u00f6glichen die statische Verkn\u00fcpfung und erlauben das Einbinden von Bibliotheken in ein Projekt. Hingegen scheint die LGPL keine Einw\u00e4nde gegen statische Verkn\u00fcpfungen zu haben, fordert jedoch, dass die zur Verkn\u00fcpfung ben\u00f6tigten Dateien \u00f6ffentlich zug\u00e4nglich gemacht werden. <\/p>\n<p>Im Allgemeinen sch\u00fctzt die Verwendung von dynamischer Verkn\u00fcpfung davor, etwas zur Verf\u00fcgung stellen zu m\u00fcssen.<\/p>\n<h2>Kompilierung von C\/C++-Anwendungen<\/h2>\n<p>\nUm C\/C++-Anwendungen f\u00fcr verschiedene Plattformen und Distributionen zu kompilieren, gen\u00fcgt es, eine passende Version von gcc auszuw\u00e4hlen oder zusammenzustellen und Cross-Compiler f\u00fcr spezifische Architekturen zu verwenden sowie das gesamte Set an Bibliotheken zu erstellen. Diese Arbeit ist durchaus machbar, aber recht aufwendig. Und es gibt keine Garantien, dass der gew\u00e4hlte Compiler und die Bibliotheken eine funktionierende Variante gew\u00e4hrleisten. <\/p>\n<p>Ein offensichtlicher Vorteil: Die Infrastruktur wird erheblich vereinfacht, da der gesamte Kompilierungsprozess auf einer Maschine durchgef\u00fchrt werden kann. Dar\u00fcber hinaus gen\u00fcgt es, ein Set von Bin\u00e4rdateien f\u00fcr eine Architektur zu erstellen und diese in Pakete f\u00fcr verschiedene Distributionen zu verpacken. Genau so werden die Pakete von Veeam f\u00fcr den Veeam Agent for Linux erstellt.<\/p>\n<p>Im Gegensatz zu dieser Option kann man einfach eine Build-Farm einrichten, also mehrere Maschinen f\u00fcr die Kompilierung. Jede dieser Maschinen wird die Anwendung kompilieren und das Paket f\u00fcr ein bestimmtes Betriebssystem und eine spezifische Architektur erstellen. In diesem Fall erfolgt die Kompilierung mit den Mitteln, die der Distributor bereitgestellt hat. Das hei\u00dft, die Phase der Vorbereitung des Compilers und die Auswahl der Bibliotheken entfallen. Zudem kann der Bauprozess leicht parallelisiert werden. <\/p>\n<p>Es gibt jedoch einen Nachteil bei diesem Ansatz: F\u00fcr jedes Betriebssystem innerhalb einer Architektur muss ein eigenes Set von Bin\u00e4rdateien erstellt werden. Ein weiterer Nachteil ist, dass eine Vielzahl von Maschinen gewartet werden muss, was viel Speicherplatz und Arbeitsspeicher erfordert. <\/p>\n<p>Auf diese Weise werden KMOD-Pakete des Kernmoduls veeamsnap f\u00fcr Red Hat-Distributionen erstellt.<\/p>\n<h2>Open Build Service<\/h2>\n<p>\nDas Team von SUSE hat versucht, einen Mittelweg zu finden, indem es einen speziellen Dienst zur Kompilierung von Anwendungen und zur Erstellung von Paketen entwickelt hat \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/openbuildservice.org\/\">openbuildservice<\/a><\/noindex>.<\/p>\n<p>Im Grunde genommen handelt es sich um einen Hypervisor, der eine virtuelle Maschine erstellt, alle erforderlichen Pakete installiert, die Anwendung kompiliert und das Paket in dieser isolierten Umgebung erstellt, bevor die virtuelle Maschine freigegeben wird.<\/p>\n<p><img decoding=\"async\" alt=\"Linux ist vielf\u00e4ltig: So arbeiten Sie mit jeder Distribution\" src=\"\/wp-content\/uploads\/2019\/10\/93d2a70c589a7186ecef85a7863e59e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer in OpenBuildService implementierte Planer wird selbstst\u00e4ndig bestimmen, wie viele virtuelle Maschinen er f\u00fcr eine optimale Paketbaugeschwindigkeit starten kann. Der integrierte Signaturmechanismus signiert die Pakete automatisch und legt sie im integrierten Repository ab. Das integrierte Versionskontrollsystem speichert die Historie der \u00c4nderungen und Builds. Es bleibt nur, die eigenen Quellcodes in dieses System hinzuzuf\u00fcgen. Es ist nicht einmal notwendig, einen eigenen Server zu betreiben, sondern man kann einen \u00f6ffentlichen nutzen.<\/p>\n<p>Hier gibt es allerdings ein Problem: Ein solcher Kompressor l\u00e4sst sich schwer in die bestehende Infrastruktur integrieren. Zum Beispiel ist keine Versionskontrolle erforderlich, da wir bereits unsere f\u00fcr die Quellcodes haben. Unser Signaturmechanismus weicht ab: Es wird ein spezieller Server verwendet. Auch ein Repository ist nicht n\u00f6tig. <\/p>\n<p>Dar\u00fcber hinaus ist die Unterst\u00fctzung anderer Distributionen \u2013 zum Beispiel Red Hat \u2013 ziemlich sp\u00e4rlich umgesetzt, was durchaus nachvollziehbar ist.<\/p>\n<p>Ein Vorteil dieses Services ist die schnelle Unterst\u00fctzung der neuesten Version des SUSE-Distributionspakets. Vor der offiziellen Ver\u00f6ffentlichung werden die erforderlichen Pakete im \u00f6ffentlichen Repository bereitgestellt. In der Liste der verf\u00fcgbaren Distributionen auf OpenBuildService erscheint ein neuer Eintrag. Wir setzen ein H\u00e4kchen, und er wird in den Build-Plan aufgenommen. So kann die Hinzuf\u00fcgung einer neuen Version der Distribution praktisch mit einem Klick erfolgen.<\/p>\n<p>In unserer Infrastruktur wird mit OpenBuildService eine Vielzahl von KMP-Paketen des veeamsnap-Kernelmoduls f\u00fcr SUSE-Distributionen erstellt.<\/p>\n<p>Nun m\u00f6chte ich auf spezifische Fragen eingehen, die speziell f\u00fcr Kernelmodule relevant sind.<\/p>\n<h2>kernel ABI<\/h2>\n<p>\nLinux-Kernelmodule wurden historisch als Quelltexte verbreitet. Die Tatsache ist, dass die Kernel-Entwickler sich nicht um die Unterst\u00fctzung einer stabilen API f\u00fcr Kernelmodule k\u00fcmmern, geschweige denn auf bin\u00e4rer Ebene, auch bekannt als kABI.<\/p>\n<p>Um ein Modul f\u00fcr den Vanilla-Kernel zu kompilieren, ben\u00f6tigt man unbedingt die Header genau dieses Kernels, und es wird nur auf diesem Kernel funktionieren. <\/p>\n<p>DKMS automatisiert den Prozess des Zusammenbaus von Modulen bei Kernel-Updates. Dadurch verwenden Benutzer des Debian-Repositories (und seiner zahlreichen Verwandten) entweder Kernel-Module aus dem Distributeur-Repository oder solche, die mit DKMS aus den Quellcodes erstellt werden.<\/p>\n<p>Diese Situation ist jedoch f\u00fcr den Enterprise-Sektor nicht besonders zufriedenstellend. Anbieter propriet\u00e4rer Software m\u00f6chten ihr Produkt in Form von vorgefertigten Bin\u00e4rdateien vertreiben. <\/p>\n<p>Administratoren m\u00f6chten aus Sicherheitsgr\u00fcnden keine Entwicklungswerkzeuge auf Produktionsservern halten. Anbieter von Enterprise Linux, wie Red Hat und SUSE, haben entschieden, dass sie f\u00fcr ihre Benutzer eine stabile kABI unterst\u00fctzen k\u00f6nnen. Infolgedessen wurden KMOD-Pakete f\u00fcr Red Hat und KMP-Pakete f\u00fcr SUSE eingef\u00fchrt.<\/p>\n<p>Die Grunds\u00e4tze dieser L\u00f6sung sind ziemlich einfach. F\u00fcr eine bestimmte Version des Distributionssystems wird die API des Kernels eingefroren. Der Anbieter erkl\u00e4rt, dass er genau den Kernel, beispielsweise 3.10, verwendet und nur Fehlerbehebungen und Verbesserungen vornimmt, die die Kernelfunktionen nicht beeintr\u00e4chtigen. Die f\u00fcr den urspr\u00fcnglichen Kernel kompilierten Module k\u00f6nnen ohne erneute Kompilierung f\u00fcr alle nachfolgenden Versionen verwendet werden.<\/p>\n<p>Red Hat gibt an, dass die kABI-Kompatibilit\u00e4t f\u00fcr die Distribution w\u00e4hrend des gesamten Lebenszyklus besteht. Das bedeutet, dass ein f\u00fcr RHEL 6.0 (Release November 2010) erstelltes Modul auch mit der Version 6.10 (Release Juni 2018) funktionieren sollte. Das sind fast 8 Jahre. Nat\u00fcrlich ist diese Aufgabe ziemlich kompliziert. <br \/>\nWir haben mehrere F\u00e4lle dokumentiert, in denen das Modul veeamsnap aufgrund von Problemen mit der kABI-Kompatibilit\u00e4t nicht mehr funktionierte. <\/p>\n<p>Nachdem das f\u00fcr RHEL 7.0 erstellte Modul veeamsnap mit dem Kernel von RHEL 7.5 nicht kompatibel war, jedoch geladen wurde und garantiert den Server abst\u00fcrzen lie\u00df, haben wir die Nutzung der kABI-Kompatibilit\u00e4t f\u00fcr RHEL 7 grunds\u00e4tzlich aufgegeben. <\/p>\n<p>Aktuell enth\u00e4lt das KMOD-Paket f\u00fcr RHEL 7 eine Build f\u00fcr jede Version des Releases und ein Skript, das das Laden des Moduls sicherstellt.<\/p>\n<p>SUSE ist bei der kABI-Kompatibilit\u00e4t vorsichtiger vorgegangen. Sie gew\u00e4hrleisten die kABI-Kompatibilit\u00e4t nur innerhalb eines Service Packs. <\/p>\n<p>Zum Beispiel fand die Ver\u00f6ffentlichung von SLES 12 im September 2014 statt. SLES 12 SP1 folgte bereits im Dezember 2015, was also etwas mehr als ein Jahr sp\u00e4ter ist. Obwohl beide Versionen den Kernel 3.12 verwenden, sind sie kABI-in-kompatibel. Offensichtlich ist es viel einfacher, die kABI-Kompatibilit\u00e4t nur \u00fcber ein Jahr hinweg aufrechtzuerhalten. Ein j\u00e4hrlicher Update-Zyklus f\u00fcr das Kernmodul sollte keine Probleme f\u00fcr die Modulentwickler verursachen. <\/p>\n<p>Dank dieser Politik von SUSE haben wir keine Probleme mit der kABI-Kompatibilit\u00e4t f\u00fcr unser Modul veeamsnap festgestellt. Es ist jedoch zu erw\u00e4hnen, dass die Anzahl der Pakete f\u00fcr SUSE fast um den Faktor zehn h\u00f6her ist.<\/p>\n<h2>Patches und Backports<\/h2>\n<p>\nAuch wenn die Distributor*innen sich bem\u00fchen, die kABI-Kompatibilit\u00e4t und die Stabilit\u00e4t des Kernels zu gew\u00e4hrleisten, streben sie gleichzeitig an, die Leistung zu verbessern und Fehler in diesem stabilen Kernel zu beheben. <\/p>\n<p>Zus\u00e4tzlich zur eigenen \u201eFehlerbehebung\u201c verfolgen die Entwickler des Enterprise-Linux-Kernels die \u00c4nderungen im Vanilla-Kernel und \u00fcbernehmen diese in ihr \u201estabiles\u201c System.<\/p>\n<p>Das f\u00fchrt manchmal zu neuen <noindex><a rel=\"nofollow\" href=\"https:\/\/access.redhat.com\/solutions\/3658111\">Fehlern<\/a><\/noindex>.<\/p>\n<p>Im letzten Release von Red Hat 6 gab es in einem der kleineren Updates einen Fehler. Dieser f\u00fchrte dazu, dass das Veeamsnap-Modul das System beim Freigeben von Snapshots zuverl\u00e4ssig zum Absturz brachte. Durch den Vergleich der Quellcodes des Kernels vor und nach dem Update konnten wir feststellen, dass ein Backport daf\u00fcr verantwortlich war. Ein \u00e4hnlicher Fix wurde im Vanilla-Kernel der Version 4.19 vorgenommen. Nur funktionierte dieser Fix im Vanilla-Kernel einwandfrei, w\u00e4hrend es beim \u00dcbertragen in das 'stabile' 2.6.32 zu Problemen mit der Spin-Sperrung kam.<\/p>\n<p>Nat\u00fcrlich treten Fehler immer und \u00fcberall auf, aber war es wirklich notwendig, den Code von 4.19 nach 2.6.32 zu ziehen und dabei die Stabilit\u00e4t zu riskieren? Ich bin mir nicht sicher...<\/p>\n<p>Das Schlimmste ist, wenn das Marketing in das Tauziehen zwischen 'Stabilit\u00e4t'  'Modernisierung' eingreift. Die Marketingabteilung m\u00f6chte, dass der Kernel des aktualisierten Distributors stabil ist und gleichzeitig bessere Leistung und neue Funktionen bietet. Dies f\u00fchrt zu seltsamen Kompromissen. <\/p>\n<p>Als ich versuchte, ein Modul auf dem 4.4-Kernel von SLES 12 SP3 zu erstellen, war ich \u00fcberrascht, Funktionen aus dem Vanilla 4.8 zu entdecken. Meiner Meinung nach \u00e4hnelt die Implementierung des blockbasierten I\/O im 4.4-Kernel von SLES 12 SP3 mehr dem Kernel 4.8 als der vorherigen stabilen Version 4.4 von SLES 12 SP2. Ich kann nicht beurteilen, wie viel Code von Kernel 4.8 in den SLES-Kernel 4.4 f\u00fcr SP3 \u00fcbernommen wurde, aber es f\u00e4llt mir schwer, diesen Kernel weiterhin als stabilen 4.4 zu bezeichnen. <\/p>\n<p>Das Unangenehmste dabei ist, dass man bei der Erstellung eines Moduls, das auf verschiedenen Kernen gleicherma\u00dfen gut funktioniert, nicht mehr auf die Kernelversion vertrauen kann. Man muss auch die Distribution ber\u00fccksichtigen. Es ist gut, dass man manchmal auf eine Define zur\u00fcckgreifen kann, die mit neuen Funktionen kommt, aber diese M\u00f6glichkeit ist nicht immer gegeben. <\/p>\n<p>Infolgedessen wird der Code mit seltsamen Bedingungs-Kompatibilit\u00e4tsdirektiven \u00fcberladen.<\/p>\n<p>Es gibt auch Patches, die die dokumentierte API des Kerns \u00e4ndern. <br \/>\nIch stie\u00df auf die Distribution <noindex><a rel=\"nofollow\" href=\"https:\/\/neon.kde.org\/\">KDE neon<\/a><\/noindex> 5.16 und war sehr \u00fcberrascht, dass der Aufruf von lookup_bdev in dieser Kernelversion die Liste der Eingabeparameter ge\u00e4ndert hat.<\/p>\n<p>Um alles zusammenzustellen, musste ein Skript in die Makefile hinzugef\u00fcgt werden, das \u00fcberpr\u00fcft, ob der Parameter mask in der Funktion lookup_bdev vorhanden ist.<\/p>\n<h2>Signatur von Kernmodulen<\/h2>\n<p>\nLassen Sie uns aber zum Thema der Paketverteilung zur\u00fcckkehren.<\/p>\n<p>Ein Vorteil des stabilen kABI ist, dass Kernmodule als Bin\u00e4rdatei signiert werden k\u00f6nnen. Auf diese Weise kann der Entwickler sicher sein, dass das Modul nicht versehentlich besch\u00e4digt oder absichtlich ver\u00e4ndert wurde. Dies kann mit dem Befehl modinfo \u00fcberpr\u00fcft werden. <\/p>\n<p>Die Distributionen Red Hat und SUSE erm\u00f6glichen die \u00dcberpr\u00fcfung der Signatur eines Moduls und laden es nur, wenn das entsprechende Zertifikat im System registriert ist. Das Zertifikat ist der \u00f6ffentliche Schl\u00fcssel, mit dem das Modul signiert wird. Wir verteilen es als separates Paket.<\/p>\n<p>Das Problem ist hier, dass die Zertifikate entweder in den Kernel eingebettet sein k\u00f6nnen (die von den Distributoren verwendet werden) oder in den nicht-fl\u00fcchtigen Speicher EFI mit Hilfe des Tools <i>mokutil<\/i>. Das Tool <i>mokutil<\/i> fordert beim Installieren des Zertifikats einen Neustart des Systems an und bietet dem Administrator noch vor dem Laden des Betriebssystemkernels die M\u00f6glichkeit, das Laden des neuen Zertifikats zu genehmigen. <\/p>\n<p>Das Hinzuf\u00fcgen eines Zertifikats erfordert also physischen Zugriff des Administrators auf das System. Wenn die Maschine in der Cloud oder einfach in einem entfernten Rechenzentrum steht und der Zugriff nur \u00fcber das Netzwerk (z. B. \u00fcber SSH) m\u00f6glich ist, kann das Zertifikat nicht hinzugef\u00fcgt werden. <\/p>\n<h2>EFI bei virtuellen Maschinen<\/h2>\n<p>\nObwohl EFI bereits seit Langem von nahezu allen Motherboard-Herstellern unterst\u00fctzt wird, k\u00f6nnte der Administrator bei der Installation des Systems die Notwendigkeit von EFI \u00fcbersehen, wodurch es deaktiviert sein k\u00f6nnte. <\/p>\n<p>Nicht alle Hypervisoren unterst\u00fctzen EFI. VMWare vSphere unterst\u00fctzt EFI ab Version 5. <br \/>\nMicrosoft Hyper-V hat ebenfalls Unterst\u00fctzung f\u00fcr EFI, beginnend mit Hyper-V f\u00fcr Windows Server 2012R2. <\/p>\n<p>In der Standardkonfiguration ist diese Funktion f\u00fcr Linux-Maschinen jedoch deaktiviert, was bedeutet, dass das Zertifikat nicht installiert werden kann. <\/p>\n<p>In vSphere 6.5 kann die Option <b>Secure Boot<\/b> nur in der alten Version der Weboberfl\u00e4che, die \u00fcber Flash funktioniert, eingestellt werden. Die HTML-5 Web UI hinkt noch hinterher.<\/p>\n<h2>Experimentelle Distributionen<\/h2>\n<p>\nAbschlie\u00dfend betrachten wir das Thema experimenteller Distributionen und Distributionen ohne offizielle Unterst\u00fctzung. Einerseits sind solche Distributionen in den Servern ernsthafter Organisationen kaum anzutreffen. Diese Distributionen haben keine offizielle Unterst\u00fctzung. Daher kann auch keine technische Unterst\u00fctzung f\u00fcr ein Produkt auf einer solchen Distribution bereitgestellt werden. <\/p>\n<p>Dennoch bieten solche Distributionen eine praktische Plattform, um neue experimentelle L\u00f6sungen auszuprobieren. Zum Beispiel Fedora, OpenSUSE Tumbleweed oder die Unstable-Versionen von Debian. Sie sind ziemlich stabil. Sie enthalten stets die neuesten Programmversionen und immer einen aktualisierten Kernel. Nach einem Jahr k\u00f6nnte diese experimentelle Funktionalit\u00e4t in der aktualisierten Version von RHEL, SLES oder Ubuntu integriert sein. <\/p>\n<p>Wenn also etwas auf einer experimentellen Distribution nicht funktioniert, ist das ein Grund, das Problem zu untersuchen und zu l\u00f6sen. Man sollte darauf vorbereitet sein, dass diese Funktionalit\u00e4t bald auf den Produktionsservern der Benutzer verf\u00fcgbar sein wird.<\/p>\n<p>Die derzeit verf\u00fcgbaren Liste der offiziell unterst\u00fctzten Distributionen f\u00fcr Version 3.0 k\u00f6nnen Sie hier einsehen <noindex><a rel=\"nofollow\" href=\"https:\/\/helpcenter.veeam.com\/docs\/agentforlinux\/userguide\/system_requirements.html?ver=30\">hier<\/a><\/noindex>. Allerdings ist die tats\u00e4chliche Liste der Distributionen, auf denen unser Produkt betrieben werden kann, wesentlich umfassender.<\/p>\n<p>Pers\u00f6nlich fand ich das Experiment mit dem Betriebssystem \u201eElbrus\u201c interessant. Nach der \u00dcberarbeitung des Veeam-Pakets konnte unser Produkt installiert und zum Laufen gebracht werden. \u00dcber dieses Experiment habe ich auf Habr geschrieben in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/veeam\/blog\/447960\/\">Artikel<\/a><\/noindex>. <\/p>\n<p>Die Unterst\u00fctzung neuer Distributionen geht weiter. Wir erwarten die Ver\u00f6ffentlichung der Version 4.0. Bald sollte die Beta erscheinen, also bleibt dran an <noindex><a rel=\"nofollow\" href=\"https:\/\/www.veeam.com\/whats-new-linux-agent.html\">whats-new<\/a><\/noindex>!<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/veeam\/blog\/471226\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u2014 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Veeam Agent for Linux \u043d\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043e\u0442 Red Hat 6 \u0438 Debian 6, \u0434\u043e OpenSUSE 15.1 \u0438 Ubuntu 19.04 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u044f\u0434\u0440\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u2014 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Veeam Agent for Linux \u043d\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043e\u0442 Red Hat 6 \u0438 Debian 6, \u0434\u043e OpenSUSE 15.1 \u0438 Ubuntu 19.04 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u044f\u0434\u0440\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Linux \u043c\u043d\u043e\u0433\u043e\u043b\u0438\u043a\u0438\u0439: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u2014 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Veeam Agent for Linux \u043d\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043e\u0442 Red Hat 6 \u0438 Debian 6, \u0434\u043e OpenSUSE 15.1 \u0438 Ubuntu 19.04 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u044f\u0434\u0440\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Linux ist vielschichtig: Wie man auf jeder Distribution arbeitet | ProHoster","description":"Eine Backup-Anwendung zu erstellen, die auf jeder Distribution funktioniert, ist eine schwierige Aufgabe. Um den Veeam Agent f\u00fcr Linux auf Distributionen von Red Hat 6 und Debian 6 bis hin zu OpenSUSE 15.1 und Ubuntu 19.04 zum Laufen zu bringen, m\u00fcssen eine Reihe von Problemen gel\u00f6st werden, insbesondere wenn man bedenkt, dass das Softwareprodukt ein Kernel-Modul enth\u00e4lt. Der Artikel wurde basierend auf Materialien eines Vortrags erstellt auf","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Linux \u043c\u043d\u043e\u0433\u043e\u043b\u0438\u043a\u0438\u0439: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 | ProHoster","og:description":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u2014 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Veeam Agent for Linux \u043d\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043e\u0442 Red Hat 6 \u0438 Debian 6, \u0434\u043e OpenSUSE 15.1 \u0438 Ubuntu 19.04 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u044f\u0434\u0440\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:48+00:00","article:modified_time":"2019-10-31T19:26:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38929","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:00:26","updated":"2026-01-23 23:59:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=38929"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/29206"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=38929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=38929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=38929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}