NEWS
Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen
-
Hi,
über die Zeit hat es sich als sinnvoll erwiesen das Gastnetz der FritzBox mitzunutzen. Habe also 2 getrennte Netze. In beider Netzen befinden sich aber Komponenten die in den ioBroker einbinden möchte. Bislang habe ich einen ioBroker im Docker mit jeweils einer Netzwerkschnittstelle in beiden Netzen genutzt. Das ist aber nicht optimal da z.B. der red-node echo-local node immer in beiden Netzen alle devices bereitstellt. Also habe ich mir ein Multihost Konstrukt überlegt.
version: '3.9' services: iobroker-master: container_name: iobroker-master hostname: iobroker-master image: buanet/iobroker:latest-v6 restart: always #mac_address: 02:42:4e:ec:ad:97 networks: frontend-master: ipv4_address: 192.168.178.110 backend: #ipv4_address: 172.29.4.2 dns: - 192.168.178.1 - 192.168.179.1 volumes: - /share/ContainerStation/ioBroker-master:/opt/iobroker - /share/homes/Klaus/Backup/iobroker:/backup/iobroker environment: - IOB_MULTIHOST=master - IOB_OBJECTSDB_HOST=0.0.0.0 - IOB_OBJECTSDB_PORT=9001 - IOB_OBJECTSDB_TYPE=file - IOB_STATESDB_HOST=0.0.0.0 - IOB_STATESDB_PORT=9000 - IOB_STATESDB_TYPE=file - DEBIAN_FRONTEND=teletype - LANG=de_DE.UTF-8 - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - SETGID=1000 - SETUID=1000 - TZ=Europe/Berlin iobroker-slave: container_name: iobroker-slave hostname: iobroker-slave image: buanet/iobroker:latest-v6 restart: always depends_on: - iobroker-master #mac_address: 02:42:34:53:40:84 networks: frontend-slave: ipv4_address: 192.168.179.110 backend: #ipv4_address: 172.29.4.3 dns: - 192.168.178.1 - 192.168.179.1 volumes: - /share/ContainerStation/ioBroker-slave:/opt/iobroker - /share/homes/Klaus/Backup/iobroker:/backup/iobroker environment: - IOB_MULTIHOST=slave - IOB_OBJECTSDB_HOST=iobroker-master - IOB_OBJECTSDB_PORT=9001 - IOB_OBJECTSDB_TYPE=file - IOB_STATESDB_HOST=iobroker-master - IOB_STATESDB_PORT=9000 - IOB_STATESDB_TYPE=file - DEBIAN_FRONTEND=teletype - LANG=de_DE.UTF-8 - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - SETGID=1000 - SETUID=1000 - TZ=Europe/Berlin networks: frontend-master: external: name: qnet-static-eth0 frontend-slave: external: name: qnet-static-eth1 backend:
Der Master nutzt also 192.168.178.0/24
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.29.4.3 netmask 255.255.252.0 broadcast 172.29.7.255 ether 02:42:ac:1d:04:03 txqueuelen 0 (Ethernet) RX packets 41035 bytes 6815468 (6.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24712 bytes 5587778 (5.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.178.110 netmask 255.255.255.0 broadcast 192.168.178.255 ether 02:42:d9:4c:14:ed txqueuelen 1000 (Ethernet) RX packets 49817 bytes 3637725 (3.4 MiB) RX errors 0 dropped 26413 overruns 0 frame 0 TX packets 11007 bytes 7171726 (6.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Der Slave 192.168.179.0/24
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.29.4.2 netmask 255.255.252.0 broadcast 172.29.7.255 ether 02:42:ac:1d:04:02 txqueuelen 0 (Ethernet) RX packets 373933 bytes 169075358 (161.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 575677 bytes 114835450 (109.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.179.110 netmask 255.255.255.0 broadcast 192.168.179.255 ether 02:42:a2:8c:2a:74 txqueuelen 1000 (Ethernet) RX packets 100835 bytes 13637454 (13.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 71 bytes 4898 (4.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Über das von außen nicht erreichbare backend Netz kann der Slave mit dem Master kommunizieren.
Jetzt kann ich auf jedem rede-node laufen lassen mit getrennten diensten für jedes Netz.
Ein paar Punkte sind aber noch nicht ganz sauber.
- kann man mein single Backup in Multihost verwenden? Wenn ja, wie?
- Wie kann man bestimmen das Frontend (mein FB Netz) die erste Schnittstelle im Container wird?
- und dann noch mac_address: zuweisen, damit mir die FB nicht immer mitteilt, dass ein neues Gerät hinzugekommen ist.
- Macht es Sinn noch Redis als db hinzuzufügen? Nachdem was ich lese eigentlich nur für states. Was macht Ihr diesbezüglich?
Danke schonmal für eure Unterstützung und Anregungen.
-
@kla960 sagte in Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen:
Hi,
über die Zeit hat es sich als sinnvoll erwiesen das Gastnetz der FritzBox mitzunutzen.
Magst du mir kurz erklären wofür das sinnvoll ist außer für Gäste, sprich Geräte bei den ich nicht möchte das Sie Verbindung zum Rest meines Netzwerks haben?
-
@wendy2702 Ja, unsere Fernseher werden nur noch mit der 1und1 TV App, Netflix .... genutzt.
Also kommt alles andere ins Gast Netz, weil ein Download der Kinder z.B. den Stream stoppt.
In der Fritz Box kann man für das Hauptnetz downstream Bandbreite gegenüber dem Gast Netz reservieren. Mit der normalen Priorisierung nur den upstream.
Streaminggenuss somit immer gewährt. -
@kla960 ok.
Ist deine Bandbreite denn so gering das der DL der Kids den Stream unterbricht?
Wir sind 4 Personen Haushalt mit teilweise 4 streams zeitgleich. Meistens zwei davon auch in UHD und selbst wenn ich dann noch meine Spotify Mediathek für die kommende Woche auf mein Handy lade, mein Sohn zockt und meine Tochter neben Netflix noch Instagram quält läuft hier alles.
-
@wendy2702 wenn Spiele von Steam geladen werden usw. dauert das selbst bei 50000kbit eine ganze Weile und kann alles blockieren.
-
@kla960 Also da ist mein Sohn auch aktiv aber das dadurch bei uns der Stream oder etwas anderes unterbrochen wurde hatten wir noch nie.
Mal das aktiviert für die Geräte die Streamen:
-
@wendy2702 Vielleicht können wir uns hier wieder auf das eigentliche Thema konzentrieren. Danke
-
@kla960 Sicherlich.
Wollte eigentlich nur darauf hinweisen das es auch ohne zwei getrennte Netze funktionieren sollte.
-
@kla960 sagte in Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen:
Ein paar Punkte sind aber noch nicht ganz sauber.
- kann man mein single Backup in Multihost verwenden? Wenn ja, wie?
Was genau meinst du mit „single“ Backup? Wenn du das erstellt hast bevor du ein Multihost System erstellt hast enthält es nur die Daten vom Master, stellt dir also beim Restore nur den Master her.
- Wie kann man bestimmen das Frontend (mein FB Netz) die erste Schnittstelle im Container wird?
Da kann ich leider nichts zu sagen da ich keinen Docker auf QNAP nutze.
- und dann noch mac_address: zuweisen, damit mir die FB nicht immer mitteilt, dass ein neues Gerät hinzugekommen ist.
Verstehe nicht genau was du damit meinst. Im Einfachsten die Benachrichtigungen der FB deaktivieren aber von welcher MAC redest du denn?
- Macht es Sinn noch Redis als db hinzuzufügen? Nachdem was ich lese eigentlich nur für states. Was macht Ihr diesbezüglich?
Redis ist/soll etwas schneller sein als File aber mit JS-Controller wird das format eh, wenn man will auf JSONFile umgestellt wodurch das System stabiler und sicherer gegen z.B. Stromausfälle werden soll.
-
@wendy2702 sagte in Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen:
@kla960 sagte in Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen:
Ein paar Punkte sind aber noch nicht ganz sauber.
- kann man mein single Backup in Multihost verwenden? Wenn ja, wie?
Was genau meinst du mit „single“ Backup? Wenn du das erstellt hast bevor du ein Multihost System erstellt hast enthält es nur die Daten vom Master, stellt dir also beim Restore nur den Master her.
imMomentan habe ich ja noch mein Single ioBroker laufen. Das Multisystem teste ich gerade. Wenn es das macht, was ich will, sollten schon die meisten Objekte übertragen werden. Will nicht unbedingt alles neu anlegen. Der erste Versuch mein Single System Backup im Multimaster herzustellen war nicht so erfolgreich.
Den /opt/iobroker Pfad umhängen war vielversprechender.- Wie kann man bestimmen das Frontend (mein FB Netz) die erste Schnittstelle im Container wird?
Da kann ich leider nichts zu sagen da ich keinen Docker auf QNAP nutze.
- und dann noch mac_address: zuweisen, damit mir die FB nicht immer mitteilt, dass ein neues Gerät hinzugekommen ist.
Verstehe nicht genau was du damit meinst. Im Einfachsten die Benachrichtigungen der FB deaktivieren aber von welcher MAC redest du denn?
Lt. dem was ich gelesen habe, werden die beiden Punkte ein Problem bleiben, da man die Netzwerkschnittstellen nicht priorisieren kann. MAC-Adressen Zuordnung ist auch nicht gut implementiert.
Beispiel in docker compose:mac_address: 02:42:4e:ec:ad:97
- Macht es Sinn noch Redis als db hinzuzufügen? Nachdem was ich lese eigentlich nur für states. Was macht Ihr diesbezüglich?
Redis ist/soll etwas schneller sein als File aber mit JS-Controller wird das format eh, wenn man will auf JSONFile umgestellt wodurch das System stabiler und sicherer gegen z.B. Stromausfälle werden soll.
Habe jetzt mal die states in Redis verlagert. Habe halt langsame Platten keine SSDs in meinem NAS. Nach allem was ich lese, sollte das besser für die Performanz sein. Memory hat mein NAS mit 8 GB eigentlich ausreichend, hingegen läuft auf dem NAS ja mehr als nur ioBroker und die HDDs bremsen unter Last schon ordentlich.
-
@wendy2702 sagte in Buanet-docker auf QNAP NAS mit 2 getrennten IP Netzen:
@kla960 Sicherlich.
Wollte eigentlich nur darauf hinweisen das es auch ohne zwei getrennte Netze funktionieren sollte.
Wenn das für dich funktioniert? Aber das wirkt sich nur auf die upload Rate aus. Sieht man dann auch im Monitor. Steht auch so bei AVM.
Link Text -
@kla960 das steht da aber nicht so.
Wenn du Echtzeit anwendest geht das in beide Richtungen. Im Beispiel steht ja extra drin wofür es ist:
Die Kategorie "Echtzeitanwendungen" eignet sich besonders für Anwendungen, die sehr hohe Anforderungen an die Übertragungsrate und Reaktionszeit stellen, z.B. Internettelefonie, IPTV oder Video-on-Demand.
Wenn du also deine Streaming devices mit Echtzeit priorisieren schauen deine Kids beim Download von Steam in die Röhre da das keine echtzeitanwendung ist.
Aber nochmal zum multihost.
Wenn das System funktioniert sollte es ausreichen die Instanz vom Master auf dem Slave zu „verschieben“. Es installiert sich dann die entsprechende Instanz auf dem Slave und ab danach übernimmt dieser die Arbeit. Du musst auf dem Slave kein Backup einspielen oder sonstiges machen.
Hoffe ich habe dich was den Punkt betrifft richtig verstanden.
-
@wendy2702 doch hier:
Priorisierte Anwendungen Solange die Internetverbindung nicht von Echtzeitanwendungen ausgelastet wird, können Netzwerkgeräte und -anwendungen in der Kategorie "Priorisierte Anwendungen" bis zu 90% der Upload-Datenrate beanspruchen. Geräte und Anwendungen, die nicht priorisiert sind, erhalten somit auch dann 10% der Upload-Datenrate, wenn priorisierte Anwendung mit voller Last übertragen. Nutzen mehrere priorisierte Anwendungen die Internetverbindung, wird die Datenrate gleichmäßig verteilt. Die Kategorie "Priorisierte Anwendungen" eignet sich für Anwendungen, die eine schnelle Reaktionszeit erfordern, z.B. VPN- und Terminal-Anwendungen oder Online-Spiele.
90% der Upload-Datenrate hier wird nur von Upload-Datenrate gesprochen.
Wie auch immer. Bei mir sind nur die Kinder am motzen, wenn die sich gegenseitig Ihre datenrate zuballern. Hauptsache meine Frau und ich haben uneingeschränkten Genuss -
@kla960 nicht verwechseln!
Es gibt Echtzeit priorisierte Anwendungen/ Geräte
Und Priorisierte Anwendungen
-
Lt. dem was ich gelesen habe, werden die beiden Punkte ein Problem bleiben, da man die Netzwerkschnittstellen nicht priorisieren kann. MAC-Adressen Zuordnung ist auch nicht gut implementiert.
Beispiel in docker compose:mac_address: 02:42:4e:ec:ad:97
Für den Fall, dass jemand dasselbe Problem hat. So sieht die Lösung für Docker Compose aus.
mac_address: 02:42:4e:ec:ad:97 networks: frontend-master: priority: 1000 ipv4_address: 192.168.178.110 intern:
Die frontend-master Schnittstelle kommt jetzt vor intern hoch und erhält die definierte mac_address.