Proxmox auf Raspberry Pi (Pimox): Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung Markierungen: Manuelle Zurücksetzung Visuelle Bearbeitung |
(kein Unterschied)
|
Version vom 16. Dezember 2021, 04:03 Uhr
Eine Anleitung um Proxmox VE auf einem Raspberry Pi 4 Cluster einzurichten.
Installation
Hardware
Minimal
- 1x Raspbarry-Pi 4 8GB
- 1x microSD Karte (Betriebssystem, VMs & Container)
Empfohlen für Hochverfügbarkeitscluster
- 2x Raspbarry-Pi 4 8GB
- 2x SSD mit USB3.0 Adapter (VMs & Container)
- 2x microSD Karte (Betriebssystem)
Ultravariante
- 4x Raspbarry-Pi 4 8GB
- 8x SSD mit USB3.0 Adapter (4x Betriebssystem, 4x VMs & Container)
Optional
- PoE HAT für Raspberry
Falls kein PoE HAT verwendet wird müssen die Raspberrys unbedingt anderweitig gekühlt werden!
SD Karten vorbereiten
- Die neuste Version von Raspberry Pi OS Lite (64 Bit) herunterladen.
- Die heruntergeladene *.zip-Datei kann direkt mit dem Raspberry Pi Imager auf die SD-Karte geflashed werden.
Tipp: In der neusten Version vom Imager kann man mit STRG+X vor dem Flashen bereits einige Einstellungen vornehmen (Hostname, SSH, Tastaturlayout, usw.)
Systemeinstellungen
Feste IP einrichten (/etc/dhcpcd.conf)
Damit der Cluster beim nächsten DHCP-Lease nicht zersprengt wird, müssen wir als erstes feste IPs für unsere Cluster Nodes vergeben.
Dafür editieren wir die Datei /etc/dhcpcd.conf
:
sudo vi /etc/dhcpcd.conf
Dort suchen wir nun nach folgendem Eintrag:
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
Nun werden die zur Konfiguration notwendigen Zeilen aktiviert, indem das # entfernt wird und die Adressen entsprechend des eigenen Netzwerkes angepasst.
Am Ende sollte das Ganze in etwa so aussehen:
# Example static IP configuration:
interface eth0
static ip_address=192.168.2.81/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.2.1
static domain_name_servers=192.168.2.1 1.1.1.1
Damit diese Einstellung wirksam wird, muss der Raspberry neu gestartet werden.
Wenn ihr einen Fehler in der Konfiguration gemacht habt, kommt ihr danach nicht mehr per SSH auf euren Raspberry!
sudo reboot
Erledigt!
Jetzt könnt ihr euch per SSH mit der festgelegten IP verbinden.
Hostnamen setzen (/etc/hostname)
Falls im Imager bereits der Hostname gesetzt wurde kann dieser Punkt übersprungen werden.
Als Erstes setzen wir einen Hostnamen für unseren Proxmox Node. Dafür editieren wir die Datei /etc/hostname
.
sudo vi /etc/hostname
Hier wird nun der gewünschte Hostname eingetragen. In meinem Fall habe ich mich für ClusterPi-1 entschieden.
Der zweite Raspberry wäre dementsprechend ClusterPi-2, u.s.w.
Hosts eintragen (/etc/hosts)
Nun werden auf jedem Raspberry die Hostnamen aller Cluster Nodes eingetragen.
Dazu editieren wir die Datei /etc/hosts
.
Am Anfang sieht diese ungefähr so aus:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 ClusterPi-1
Die IPv6 Einträge können ruhigen gewissen gelöscht werden.
Am wichtigsten ist es aber den Eintrag "127.0.1.1 ClusterPi-1" zu entfernen, da der Cluster mit den absoluten Adressen arbeiten soll. [1]
Danach werden die Hostnamen der Nodes hinzugefügt, so dass es am Ende so aussehen sollte:
127.0.0.1 localhost
192.168.2.81 ClusterPi-1
192.168.2.82 ClusterPi-2
192.168.2.83 ClusterPi-3
192.168.2.84 ClusterPi-4
Die IP-Adressen müssen natürlich dem entsprechen was ihr vorher konfiguriert habt.
Root-Passwort vergeben
Damit man sich später auf der Proxmox Weboberfläche anmelden kann, muss noch ein Passwort für den Root Benutzer festgelegt werden.
Zuerst wechseln wir über sudo
in den root Benutzer:
sudo -s
Jetzt kann mit passwd
ein neues Passwort vergeben werden:
passwd
Jetzt da der Raspberry fertig konfiguriert ist, kann Proxmox installiert werden.
Pimox installieren
Mittlerweile gibt es Pimox in der Version 7, wofür allerdings ein Betriebssystem basierend auf Debian 11 "Bullseye" benötigt wird.
Dazu muss das neuste Raspberry Pi OS Lite (64 Bit) installiert werden.
Debian 10 "Buster" (pimox)
Die Paketquelle für Pimox hinzufügen und die Installation starten:
curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/KEY.gpg | apt-key add -
curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/pimox.list > /etc/apt/sources.list.d/pimox.list
apt update
apt upgrade
apt install proxmox-ve
Während er Installation wird man gefragt ob man die smb.conf so konfigurieren möchte, dass WINS Server Daten per DHCP empfangen werden können. Da wir kein DHCP nutzen kann das mit <No> quittiert werden.
Direkt im Anschluss folgt eine Warnung, dass das Paket ZFS und der Linux Kernel unterschiedlichen Lizenzen unterliegen und nachdem sie auf eurem System installiert sind, nicht zusammen als ein Paket weitervertrieben werden dürfen. Dies kann mit <Ok> bestätigt werden.
Debian 11 "Bullseye" (pimox7)
Pimox7 hat ein Shell-Skript, das einem das Hinzufügen der Paketquellen und das Starten der Installation abnimmt.
Die Installation sollte per Monitor und nicht per SSH durchgeführt werden, da die Netzwerkverbindung abbrechen kann!
curl https://raw.githubusercontent.com/pimox/pimox7/master/pimox.sh | sh
Anschließend noch eine Neustart und die Installation ist abgeschlossen:
reboot
Jetzt könnt ihr im Browser über https://<IP-Adresse>:8006 auf das PVE (Proxmox Virtual Enviroment) zugreifen!
Bei 'User' tragt ihr root ein und das Passwort welches vorher festgelegt wurde.
Proxmox Cluster einrichten
Damit aus den einzelnen Nodes auch ein Cluster wird, müssen wir diese im PVE mit einander verknüpfen.
- Dazu ruft ihr die Weboberfläche irgendeines Nodes auf.
- Auf der Linken Seite klickt ihr dann auf "Datacenter" und in der weiteren Auswahl auf "Cluster".
- Jetzt geht ihr auf "Create Cluster" und erstellt einen Cluster mit dem gewünschten Namen.
- Nachdem dieser Prozess abgeschlossen ist, könnt ihr über "Join Information" einen Schlüssel kopieren um die anderen Nodes dem neuen Cluster hinzuzufügen.
- Dazu einfach auf jedem weiteren Node auf "Join Cluster" gehen und den kopierten Schlüssel einfügen.
Netzwerk Bridge erstellen
Um auf den VMs und Containern eine Netzwerkschnittstelle nutzen können, muss noch eine Netzwerk Bridge zum physischen Adapter des Raspberrys erstellt werden.
Zuerst auf jedem Node ifupdown2 installieren
sudo apt install ifupdown2
Danach auf jedem Node eine Linux Bridge erstellen:
- System->Network
- Create->Linux Bridge
- Bei "Bridge ports" das Hauptinterface eintragen (z.B. eth0)
- Die IP und Gateway vom Node eintragen
- Mit "Apply Configuration" die Einstellungen übernehmen
Hinweis: Um "VLAN aware" zu aktiveren muss im Kernel VLAN-Filtering aktiviert sein!
Ab jetzt übernimmt Proxmox mit /etc/network/interfaces
die Netzwerkkonfiguration.
Daher muss der dhcpcd deaktiviert werden:
systemctl stop dhcpcd
systemctl disable dhcpcd
Fertig ist euer Raspberry Pi - PVE Cluster!
Auf diesem Stand könnt ihr nun Virtuelle Maschinen und Container anlegen und diese vom einen Node zum anderen migrieren.
Leider hat der Cluster bisher keine Ausfallsicherheit, da die Daten der VMs/CTs nur Lokal (Auf den Nodes) gespeichert werden können.
Wenn also ein Node ausfällt auf dem die Daten einer VM/CT liegen, sind diese für die anderen Nodes nicht mehr zu erreichen und die VM/CT stoppt.
Ceph einrichten
Um den Cluster ausfallsicher zu machen, richten wir nun Ceph auf unseren vier SSDs ein.
Ceph installieren
- Auf der Linken Seite einen Node auswählen.
- Jetzt auf "Ceph" gehen und im anschließenden Dialog "Install Ceph" auswählen.
- Im Dialog die neuste Version installieren
- Danach euer Cluster Netzwerk eintragen (z.B. 192.168.2.0/24) und einen Monitor-Node auswählen.
- "Number of replicas" bestimmt wie oft eure Daten im Cluster repliziert werden.
- "Minimum replicas" gibt an wie viele Replikationen online sein müssen.
"Monitor" und "Manager" einrichten
Aktuell hat unser Ceph Cluster nur einen Monitor (Den wir bei der Installation ausgewählt haben). Wenn dieser ausfällt, ist kein Zugriff mehr auf die Daten möglich.
Also fügen wir zwei weitere hinzu:
- Auf der linken Seite wieder einen Node auswählen
- Dann auf Ceph -> Monitor
- Mit Monitor -> Create zwei weitere Nodes hinzufügen
Die Anzahl der Monitore sollte immer ungerade sein, wobei drei völlig ausreichend sind. [2][3]
Nun müssen wir noch drei Manager erstellen:
Von den Managern ist immer nur einer aktiv aber auch hier sollten für eine hohe Verfügbarkeit mehrere erstellt werden.
Dafür nehmen wir die drei Nodes, die wir vorher bereits als Monitor deklariert haben. [4][5]
OSDs erstellen
SSDs vorbereiten
Als erstes sehen wir nach welches Gerät die SSD ist:
ls -l /dev
Wenn Ihr eine SD-Karte für das Betriebssystem nutzt, ist es mit hoher Wahrscheinlichkeit /dev/sda, da die SD Karte mmcblk0 heißt...
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 mmcblk0
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 mmcblk0p1
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 mmcblk0p2
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 sda
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 sda1
Bei 2x SSDs suchen wir das Gerät, das nur eine Partition hat (z.B. /dev/sdb /dev/sdb1)...
brw-rw---- 1 root disk 8, 0 Jul 19 18:51 sda
brw-rw---- 1 root disk 8, 1 Jul 19 18:51 sda1
brw-rw---- 1 root disk 8, 2 Jul 19 18:51 sda2
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 sdb
brw-rw---- 1 root disk 8, 16 Jul 19 18:51 sdb1
Danach die vorhandenen Partitionstabellen von den SSDs löschen:
sudo /sbin/sgdisk /dev/sdX -Z
Das ganze auf jedem Node ausführen und neu starten.
Als nächstes müssen die SSDs mit GPT initialisiert werden:
- In der Proxmox VE Weboberfläche einen Node auswählen
- Auf Disks gehen
- Die SSD auswählen die wir vorher gelöscht haben
- Initialize Disk with GPT auswählen
- Auf jedem Node ausführen
Sollte es dabei zu einem Fehler kommen, am besten die vorherigen Schritte wiederholen.
Wenn alles erfolgreich war können wir jetzt die OSDs erstellen.
- Einen Node auswählen
- Ceph->Create
- Mit Create: OSD eine neue OSD erstellen (Die Einstellungen können beibehalten werden)
- Auf jedem Node wiederholen
Ceph Pool erstellen
Um später einen RBD Storage zu erstellen, auf dem die VMs und Container laufen, brauchen wir einen Ceph Pool der die OSDs "vereint".
Dafür wieder einen Node auswählen
Ceph->Pools
Create
Storage erstellen
Virtuelle Maschinen (VMs) und Container (CT) erstellen
Neue VM erstellen
Wichtig: Bei allen VMs muss als BIOS "OVMF (UEFI)" eingestellt und der Haken bei "Add EFI Disk" gesetzt sein.
- Altes CD/DVD Laufwerk entfernen
- Neues CD/DVD Laufwerk hinzufügen
- Statt IDE wählen wir SCSI
- Das gewünschte Image einbinden (Siehe unten)
- Unter Options die Boot Reihenfolge anpassen
- CD/DVD Laufwerk
- Festplatte
Debian 10 "Buster"
Leider scheint es nicht möglich zu sein Debian 10.10 zu installieren, da der Bootvorgang des ISO-Images immer mit einer "Synchronous Exception" abbricht.
Das Debian 10.9 Image lässt sich mit ein paar Anpassungen in den Hardwareeinstellungen allerdings installieren.
- Unter Hardware->Add einen Serial Port hinzufügen
- Das Display auf Serial terminal 0 ändern
Debian 11 "Bullseye"
https://cdimage.debian.org/cdimage/release/current/arm64/iso-cd/
Nachdem das Image eingebunden wurde sind keine weiteren Hardwareanpassungen nötig und die VM kann gestartet werden.
Ubuntu 12.04
https://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04.2-live-server-arm64.iso
AlmaLinux 8
http://de.mirrors.clouvider.net/almalinux/8.5/isos/aarch64/AlmaLinux-8.5-aarch64-minimal.iso
Bei der neusten Version (11-2021) reichen die Standardeinstellungen.
Am Anfang "AlmaLinux installieren" wählen und dann ein paar Minuten warten bis der Installationsassistent erscheint.
Während der Installationsassistens lädt zeigt die Konsole "Display output not active".
Andernfalls:
- Unter Hardware->Add einen Serial Port hinzufügen
- Das Display auf Serial terminal 0 ändern
- VM starten
- Die Konsole über Console->xterm.js öffnen
Neuen CT erstellen
Falls ihr den Container nicht Lokal, sondern auf einem Ceph RBD ablegen wollt, müsst ihr vorher den Raspberry Pi Kernel mit rbd Modul bauen.
rootfs.tar.gz
herunterladen (Siehe unten)- Umbenennen in z.B. debian-10.10-standard_arm64_2021.08.08.tar.xz
- In der PVE Weboberfläche einen Storage auswählen (z.B. local)
- Auf CT Templates, dann auf Upload
Debian 10 "Buster"
https://us.images.linuxcontainers.org/images/debian/buster/arm64/default/
AlmaLinux 8
Ubuntu 12.04 Focal
https://us.images.linuxcontainers.org/images/ubuntu/focal/arm64/default/
Bei fehlenden CPU und/oder Memory Werten in der Proxmox Übersicht [6]:
Die Datei /boot/cmdline.txt
auf dem Node öffnen:
sudo vi /boot/cmdline.txt
Dort folgendes ans Ende anhängen:
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
Sodass die Datei dann z.B. so aussieht:
console=serial0,115200 console=tty1 root=PARTUUID=c8669ead-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
Das ganze bei allen anderen Nodes im Cluster wiederholen.
Optionale Modifikationen
Backup NAS einrichten
S.M.A.R.T. für die SSDs im PVE anzeigen
Zuerst muss der smartctl
Aufruf vom PVE etwas erweitert werden.
Dazu müssen wir die Datei Diskmanage.pm bearbeiten.
sudo vi /usr/share/perl5/PVE/Diskmanage.pm
Dort such ihr die Zeile
my $cmd = [$SMARTCTL, '-H'];
Tipp: Mit '/' könnt ihr in vi schnell nach Text suchen /my $cmd = [$SMARTCTL, '-H']
Und ändert sie wie folgt ab:
my $cmd = [$SMARTCTL, '-d', 'sat', '-H'];
Der Nachteil ist, dass jetzt alle Speichermedien die in Ceph erfasst werden mit diesem Befehl arbeiten.
D.h. es werden z.B. bei normalen HDDs vermutlich keine S.M.A.R.T. Daten mehr angezeigt.
Dafür müsste man das Script eventuell ein bisschen erweitern damit der "-d sat" Parameter dynamisch zugeschaltet wird.
QEMU Guest Agent installieren
- Die gewünschte VM auswählen und auf Options gehen
- Doppelklick auf QUEMU Guest Agent oder den Eintrag auswählen und auf Edit
- Beide Eintrage auswählen und auf OK
Run quest-trim after disk move or VM migration bewirkt, dass die virtuelle Festplatte der VM bei jeder Migration (Der VM oder nur des Laufwerks) auf die tatsächlich benutze Größe reduziert wird.
Dadurch werden z.B. bei einer 64GB großen Festplatte nicht die ganzen 64GB verschoben, sondern nur der tatsächlich belegte Speicher.
Als Letztes den Agent auf der VM installieren und starten:
Debian/Ubuntu
sudo apt install qemu-guest-agent
Jetzt noch den Service starten:
sudo systemctl start qemu-guest-agent
CentOS/AlmaLinux
Proxmox HA einrichten
Der Proxmox HA (High Availability) Service migriert VMs und Container automatisch sobald ein Node ausfällt.
Logs in den RAM auslagern
Um die SD Karte ein wenig zu entlasten können wir die Logs in /var/log
in den RAM auslagern.
Dafür als erstes Log2Ram installieren.
Dann vergrößern wir noch das RAM Laufwerk, da wir mit den standardmäßigen 40MB bei den ganzen Proxmox/Ceph Logs schnell ans Limit kommen.
Config Datei editieren:
sudo vi /etc/log2ram.conf
Dort den Eintrag SIZE auf 128M ändern:
SIZE=128M
Node aus der PVE Weboberfläche neustarten.
Ceph - RAM Nutzung begrenzen
Standardmäßig kann Ceph für jede OSD 4GB RAM belegen. Besonders bei HDDs kann dies die Performance des Ceph Clusters erhöhen. [7][8]
Die 8GB RAM des Raspberry kann das aber schnell an die Grenzen treiben.
Mit osd_memory_target
kann dieser Wert verringert oder vergrößert werden (Angabe in Byte).
Dafür auf irgendeinem Node die Datei ceph.conf
bearbeiten:
vi /etc/ceph/ceph.conf
Unter [global]
folgende Zeilen einfügen um den Speicher auf 2GB zu begrenzen:
osd_memory_target = 2147483648
Nach der Anpassung muss jeder Node einmal neu gestartet werden damit die Änderung wirksam wird.
Zabbix Monitoring einrichten
Zabbix Agent installieren:
sudo apt install zabbix-agent
Zabbix Konfiguration anpassen:
sudo vi /etc/zabbix/zabbix_agentd.conf
- Server=127.0.0.1
+ Server=192.168.2.10
- ServerActive=127.0.0.1
+ ServerActive=192.168.2.10
- # AllowRoot=0
+ AllowRoot=1
Die IP durch die eures Zabbix Servers ersetzen.
In Zabbix einen neuen Host ohne Interface erstellen. Dieser stellt keinen eigenständigen Server dar, sondern repräsentiert den gesamten Cluster.
Später laufen dort die Daten von Ceph und Proxmox rein.
Proxmox überwachen [9]
Skript installieren
Auf jedem Node ausführen...
Python3-PIP installieren:
sudo apt update
sudo apt install python3-pip
proxmoxer und requests installieren:
pip install proxmoxer
pip install requests
Auf https://github.com/takala-jp/zabbix-proxmox das Skript proxmox_cluster.py
und die beiden Templates snmp_boolean_type_valuemap.xml
und proxmox_cluster_template.xml
herunterladen.
Als Zielverzeichnis für das Skript kann man z.B. /etc/zabbix/scripts/ nehmen
Das Skript ausführbar machen:
chmod +x /etc/zabbix/scripts/proxmox_cluster.py
Zabbix Host einrichten
Die beiden Templates snmp_boolean_type_valuemap.xml
und proxmox_cluster_template.xml
in Zabbix importieren:
Configuration→Templates→Import
Als Template für den Host wählen wir Template Proxmox cluster aus.
PVE Benutzer mit API Zugriff erstellen
Auf irgendeinem Node den Benutzer erstellen:
pveum useradd zabbix@pve -comment "Zabbix monitoring user"
Ein Passwort für den Benutzer erstellen:
pveum passwd zabbix@pve
Dem neuen Benutzer mit der PVEAuditor-Rolle die Rechte geben alles zu lesen:
pveum aclmod / -user zabbix@pve -role PVEAuditor
Cronjobs einrichten
Damit regelmäßig und redundant, Daten an den Zabbix Server gesendet werden richten wir auf jedem Node zwei Cronjobs ein.
In diesem Beispiel werden vier Nodes verwendet und die beiden Cronjobs dementsprechend verteilt, sodass der Discovery alle 6 Stunden und die Datenübertragung jede Minute von einem anderen Node kommt.
sudo crontab -e -u zabbix
Node 1:
# Discovery 00:00
# Data every 4th minute (0, 4, 8, 12, ...)
0 0 * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster -d
*/4 * * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster
Node 2:
# Discovery 06:00
# Data every 4th minute beginning at 1 (1, 5, 9, 13, ...)
0 6 * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster -d
1-59/4 * * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster
Node 3:
# Discovery 12:00
# Data every 4th minute beginning at 2 (2, 6, 10, 14, ...)
0 12 * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster -d
2-59/4 * * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster
Node 4:
# Discovery 18:00
# Data every 4th minute beginning at 3 (3, 7, 11, 15, ...)
0 18 * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster -d
3-59/4 * * * * /etc/zabbix/scripts/proxmox_cluster.py -a 192.168.2.10 -u zabbix@pve -p <password> -t PVECluster
Ceph überwachen [10]
Ceph Zabbix Sender aktivieren:
sudo ceph mgr module enable zabbix
Zabbix Host konfigurieren:
sudo ceph zabbix config-set zabbix_host 192.168.2.10
Zabbix Identifier konfigurieren (Entspricht dem "Host name" den ihr in Zabbix konfiguriert habt):
sudo ceph zabbix config-set identifier PVECluster
Der Standardintervall für die Aktualisierung beträgt 60s. Mit folgendem Befehl kann eine Aktualisierung manuell ausgelöst werden:
sudo ceph zabbix send
Quellen
Einzelnachweise
- ↑ https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster#Install_a_standard_Debian_Buster_.28amd64.29
- ↑ https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster#pve_ceph_monitors
- ↑ https://docs.ceph.com/en/latest/rados/operations/add-or-rm-mons/#adding-monitors
- ↑ https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster#pve_ceph_manager
- ↑ https://docs.ceph.com/en/latest/mgr/administrator/#high-availability
- ↑ https://github.com/pimox/repo/issues/5
- ↑ https://documentation.suse.com/ses/6/html/ses-all/tuning-ceph.html#bluestore-cache
- ↑ https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/4/html/configuration_guide/the-basics-of-ceph-configuration#osd-memory-target_conf
- ↑ https://github.com/takala-jp/zabbix-proxmox
- ↑ https://docs.ceph.com/en/mimic/mgr/zabbix/