Jump to content

mgutt

Moderators
  • Posts

    11,366
  • Joined

  • Last visited

  • Days Won

    124

Everything posted by mgutt

  1. Ich halte hier mal meine TBW vom SSD Cache fest: Ich vergleiche das dann noch mal in ein paar Monaten, einfach um meinen Abnutzungsgrad festzuhalten.
  2. Gestern habe ich einem Kunden geholfen, der einen mir bisher unbekannten BTRFS Fehler hatte. Es gab einen Fehler wie diesen, gefolgt von einem Stack Trace: WARNING: CPU: 2 PID: 452 at ../fs/btrfs/extent-tree.c:3731 btrfs_free_reserved_data_space_noquota+0xe8/0x100 [btrfs]() Dem folgten dann noch einige "BTRFS error (device loop2) bdev /dev/loop2, loop Write error at byte offset length" Als Resultat wurde eine der SATA SSDs seines RAID1 auf BTRFS info (device sdc1): forced readonly" gesetzt. Nach einem Neustart war soweit wieder alles ok, also habe ich einen scrub gemacht. Bei der weiteren Analyse fiel mir auf, dass seine SSDs fast abgenutzt waren (schaut mal auf Power on hours und Percent lifetime remain, da soll noch einer sagen, dass es nicht dringend notwendig ist für Docker eine RAM-Disk einzuführen), aber sonst keine Fehler zeigten: Also wies ich ihn auf meinen Guide hin und nach Ausgabe der BTRFS Subvolumes von Docker, kam es zu einem Input/Output Error: Und erneut wurde die SSD auf readonly gesetzt: Was mich ja total verwundert ist, dass wir hier von einem Subvolume innerhalb eines gemounteten docker.img sprechen. Es geht also eigentlich gar nicht um das BTRFS RAID1, aber trotzdem wird die komplette SSD (/dev/sdc) auf readonly gesetzt?!
  3. mgutt

    Neukonfiguration

    Bezogen auf deine 0 Byte Bedenken ist das völlig irrelevant.
  4. Korrekt. unRAID läuft auf 5000/5001. In NPM ist dann ein redirect von tower auf tower:5000 drin. Wobei ich da jetzt auch unraid.example.com machen könnte. Korrekt. Es ist ja nicht vorgeschrieben, dass eine Domain eine öffentliche IP haben muss.
  5. Ich betreibe (noch) keinen lokalen DNS Server. Ich muss aber was korrigieren: Bei mir haben alle Subdomains im DNS die lokale IP des Servers stehen: Dadurch kann Let's Encrypt den Server nicht erreichen, um das SSL Zertifikat zu aktivieren / erneuern. Ich hatte schon mal die öffentliche IP hinterlegt, aber dann blockt diese Regel wirklich alle Zugriffe: # allow anyone in 192.168.178.0/24 allow 192.168.178.0/24; # drop rest of the world deny all; Das liegt daran, dass wenn die Domain eine lokale IP im DNS stehen hat, dass die Fritz!Box dann einen NAT Loopback macht und der eigentlich lokale Zugriff kommt dann von der öffentlichen IP meines Internetanschlusses. Daher funktioniert dann auch keine Erneuerung des SSL Zertifikates. Ich muss dafür erst der Domain wieder kurz die öffentliche IP zuweisen (also alle 3 Monate). Tatsächlich könnte ich genau das Problem lösen, in dem ich der Domain eine öffentliche IP gebe und lokal über einen lokalen DNS Server der Domain die lokale IP zuweise, was ja mit pihole ziemlich einfach möglich wäre: https://blog.unixweb.de/pi-hole-als-dns-server-fuer-lokale-ip-adressen/ Ich überlege immer noch wie ich das vielleicht doch ohne hinbekomme.
  6. Wichtig ist, dass die tags direkt in der Thread-Übersicht erscheinen und anklickbar sind. Dann erklärt sich das von selbst. Eben genauso wie bei Stackoverflow, die das optimal umgesetzt haben: Aber wie gesagt ginge das ja eh erst, wenn das Forum entsprechend erweitert wird. Bis dahin taugt denke ich auch ein Unterforum.
  7. Genau dafür wäre das br0 Netzwerk da. Allerdings gilt das als problematisch, wenn auch VMs in dem Netzwerk unterwegs sind (mögliche Serverabstürze). Ab Unraid 6.10 kann man aber in den Docker-Einstellungen auf "ipvlan" umstellen. Dann soll das kein Problem mehr darstellen. Statt IPs nutze ich übrigens Subdomains. zB: https://unificontroller.example.com/ https://nginxproxymanager.example.com/ Die werden von NPM auf den Port des Containers weitergeleitet, also in dem Fall 8443: Von außen kann keiner die Domains öffnen, weil ich in NPM diese Advanced Regel ergänzt habe, die ausschließlich einen lokalen Zugriff erlaubt: # allow anyone in 192.168.178.0/24 allow 192.168.178.0/24; # drop rest of the world deny all; Das einzige was von außen erlaubt ist, ist der Unterordner zur Verifikation von SSL Zertifikaten: https://unifi.example.com/.well-known/acme-challenge/ Dazu braucht es aber keine extra Einstellung, weil das eine Grundregel in NPM ist.
  8. Es gibt nicht viele Foren-Softwares, die das konsequent umsetzen (also Pflicht und tag-basierte Suchlinks). Die einzige, die ich kenne ist zB Discourse. Das Forum hier basiert auf Invision. Da bräuchte es diese Erweiterung für: https://invisioncommunity.com/forums/topic/451714-radical-tags/ Wobei ich nicht erkennen kann, ob man den tag anklicken und damit direkt danach suchen kann. Auch ob die Suche entsprechend angepasst wird, ist nicht nachvollziehbar. Häufig greifen solche Erweiterungen nicht tief genug.
  9. Ich bevorzuge die "Reddit-" oder "Stackoverflow-Methode". Also eine Seite, alles voll. Das erlaubt auch die Filterung nach offenen Hilfeersuchen usw. Ständig irgendwas verschieben und Threads thematisch splitten, ist zwar ganz nett, aber wir haben alle nur eine begrenzte Zeit und ich helfe lieber als penibel alles korrekt zu splitten und zuzuordnen. Allerdings macht es absolut Sinn langfristig wertvolle Inhalte separat aufzuheben, damit man sie schneller wiederfinden kann. Also Deutsch als Hauptforum und "Anleitungen" als Subforum, fänd ich durchaus sinnvoll. Da würde ich dann auch den powertop Thread und den mit den ganzen Nextcloud Fehlerkorrekturen reinpacken. Das sind dann keine direkten Anleitungen, aber sie enthalten wertvolle Informationen.
  10. Das oder man muss über die /boot/config/smb-extra.cfg eigene SMB Freigaben erstellen. Ein Beispiel: Kann über das Config Editor Plugin bearbeitet werden. Danach einfach "samba restart" im Terminal ausführen.
  11. Die klassische Nutzung wäre deine Datengrabplatten im Array zu verwenden und die SSD als vorgelagerten Cache. Beides müsste dafür neu formatiert werden. Wenn ich aber nicht total falsch liege (@hawihoney ? ), kann man mit dem Unassigned Devices Plugin alle deine bestehenden Disks und Pools mounten. Was du allerdings in jedem Fall benötigst, ist ein leerer Datenträger im Array, damit du Docker und VM nutzen kannst. Wenn du eh keine Parity verwenden möchtest, könntest du zb die SSD als einzigen Datenträger ins Array packen. Darauf würde dann alles installiert werden (Docker, VM, etc). Später könntest du die SSD auch ohne Neuformatierung als SSD Cache weiter nutzen, sofern du dich doch dafür entscheidest deine HDDs im Array einsetzen zu wollen. unRAID ist da flexibel. Gerade als Datengrab / Cold Storage ist das Array ja prädestiniert. Aber wie gesagt. Vom Prinzip kann man alles ziemlich flexibel nutzen. Es gibt auch viele, die im Array nur einen leeren USB Stick haben und mehrere SSDs als RAID5 Cache Pool. Geht auch.
  12. Ah ok, dann hast du also ein Windows To Go erstellt. Das ist ja was anderes als die klassische ISO.
  13. Und dann? Auf die NVMe installiert? Als VM hätte ich jetzt interessant gefunden.
  14. Runterladen: https://slackware.pkgs.org/14.2/slackonly-x86_64/autossh-1.4g-x86_64-1_slonly.txz.html Und dann in /boot/extra kopieren. Alle txz Dateien in dem Ordner werden beim Booten automatisch installiert.
  15. mgutt

    Backuplösung

    Windows? Dann rechte Maustaste auf die relevanten Ordner wie zb "Desktop" und freigeben. Dazu aber erst einen neuen Nutzer hinzufügen. Den nennt du zb "backup" und vergibst ein eigenes Passwort. Dann gibst du die Ordner rein lesend frei. In unRAID wiederum kannst du diesen SMB Share über UD mounten und den Pfad dann über LuckyBackup sichern.
  16. Man kann mit LUKS komplette Laufwerke verschlüsseln. Allerdings formatiert man erst in LUKS und danach ZFS: https://blog.wirelessmoves.com/2020/12/zfs-with-luks-workstation-power-at-home-part-11.html Eventuell wäre Nextcloud eine Alternative? https://www.hostflash.de/blog/webhosting/serverseitige-verschluesselung-in-nextcloud-aktivieren-anleitung.html#:~:text=Um die Verschlüsselung zu aktivieren,aktivieren“ (3.).
  17. Leider nein: https://forums.unraid.net/topic/99393-häufig-gestellte-fragen/?tab=comments#comment-1008640
  18. @matty2k Ja, aber du musst sie dann als PCIe Gerät durchschleifen. Also am VFIO binden, Server neu starten und dann bei der VM als Gerät hinzufügen. Natürlich darf sie dann nicht im Cache Pool im Einsatz sein. Sollte das der Fall sein, dann erst den Cache leeren und den Cache Pool entfernen.
  19. My PC woke up and is now reloading a Webterminal infinitely. Even a new opened Webterminal does it. While this happens the logs were filled with the error of this bug report: nginx: <datetime> [alert] 8330#8330: worker process <random_number> exited on signal 6 Now I try to investigate the problem. At first what happens on the network monitor of the browser: /webterminal/token is requested as follows: GET /webterminal/token HTTP/1.1 Host: tower:5000 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Accept: */* Referer: http://tower:5000/webterminal/ Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie: users_view=user1; db-box2=2%3B0%3B1; test.sdd=short; test.sdb=short; test.sdc=short; diskio=diskio; ca_startupButton=topperforming; port_select=eth1; unraid_11111111621fb6eace5f11d511111111=11111111365ea67534cf76a011111111; ca_dockerSearchFlag=false; ca_searchActive=true; ca_categoryName=undefined; ca_installMulti=false; ca_categoryText=Search%20for%20webdav; ca_sortIcon=true; ca_filter=webdav; ca_categories_enabled=%5Bnull%2C%22installed_apps%22%2C%22inst_docker%22%2C%22inst_plugins%22%2C%22previous_apps%22%2C%22prev_docker%22%2C%22prev_plugins%22%2C%22onlynew%22%2C%22new%22%2C%22random%22%2C%22topperforming%22%2C%22trending%22%2C%22Backup%3A%22%2C%22Cloud%3A%22%2C%22Network%3A%22%2C%22Network%3AFTP%22%2C%22Network%3AWeb%22%2C%22Network%3AOther%22%2C%22Plugins%3A%22%2C%22Productivity%3A%22%2C%22Tools%3A%22%2C%22Tools%3AUtilities%22%2C%22All%22%2C%22repos%22%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%5D; ca_selectedMenu=All; ca_data=%7B%22docker%22%3A%22%22%2C%22section%22%3A%22AppStore%22%2C%22selected_category%22%3A%22%22%2C%22subcategory%22%3A%22%22%2C%22selected_subcategory%22%3A%22%22%2C%22selected%22%3A%22%7B%5C%22docker%5C%22%3A%5B%5D%2C%5C%22plugin%5C%22%3A%5B%5D%2C%5C%22deletePaths%5C%22%3A%5B%5D%7D%22%2C%22lastUpdated%22%3A0%2C%22nextpage%22%3A0%2C%22prevpage%22%3A0%2C%22currentpage%22%3A1%2C%22searchFlag%22%3Atrue%2C%22searchActive%22%3Atrue%2C%22previousAppsSection%22%3A%22%22%7D; col=1; dir=0; docker_listview_mode=basic; one=tab1 response: HTTP/1.1 200 OK Server: nginx Date: Sat, 28 Aug 2021 16:35:53 GMT Content-Type: application/json;charset=utf-8 Content-Length: 13 Connection: keep-alive content: {"token": ""} ws://tower:5000/webterminal/ws is requested: GET ws://tower:5000/webterminal/ws HTTP/1.1 Host: tower:5000 Connection: Upgrade Pragma: no-cache Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Upgrade: websocket Origin: http://tower:5000 Sec-WebSocket-Version: 13 Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie: users_view=user1; db-box2=2%3B0%3B1; test.sdd=short; test.sdb=short; test.sdc=short; diskio=diskio; ca_startupButton=topperforming; port_select=eth1; unraid_11111111621fb6eace5f11d511111111=11111111365ea67534cf76a011111111; ca_dockerSearchFlag=false; ca_searchActive=true; ca_categoryName=undefined; ca_installMulti=false; ca_categoryText=Search%20for%20webdav; ca_sortIcon=true; ca_filter=webdav; ca_categories_enabled=%5Bnull%2C%22installed_apps%22%2C%22inst_docker%22%2C%22inst_plugins%22%2C%22previous_apps%22%2C%22prev_docker%22%2C%22prev_plugins%22%2C%22onlynew%22%2C%22new%22%2C%22random%22%2C%22topperforming%22%2C%22trending%22%2C%22Backup%3A%22%2C%22Cloud%3A%22%2C%22Network%3A%22%2C%22Network%3AFTP%22%2C%22Network%3AWeb%22%2C%22Network%3AOther%22%2C%22Plugins%3A%22%2C%22Productivity%3A%22%2C%22Tools%3A%22%2C%22Tools%3AUtilities%22%2C%22All%22%2C%22repos%22%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%5D; ca_selectedMenu=All; ca_data=%7B%22docker%22%3A%22%22%2C%22section%22%3A%22AppStore%22%2C%22selected_category%22%3A%22%22%2C%22subcategory%22%3A%22%22%2C%22selected_subcategory%22%3A%22%22%2C%22selected%22%3A%22%7B%5C%22docker%5C%22%3A%5B%5D%2C%5C%22plugin%5C%22%3A%5B%5D%2C%5C%22deletePaths%5C%22%3A%5B%5D%7D%22%2C%22lastUpdated%22%3A0%2C%22nextpage%22%3A0%2C%22prevpage%22%3A0%2C%22currentpage%22%3A1%2C%22searchFlag%22%3Atrue%2C%22searchActive%22%3Atrue%2C%22previousAppsSection%22%3A%22%22%7D; col=1; dir=0; docker_listview_mode=basic; one=tab1 Sec-WebSocket-Key: aaaaaaaa3CNW7Y3Waaaaaaaa Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits Sec-WebSocket-Protocol: tty response: HTTP/1.1 101 Switching Protocols Server: nginx Date: Sat, 28 Aug 2021 16:35:53 GMT Connection: upgrade Upgrade: WebSocket Sec-WebSocket-Accept: aaaaaaaaFh/OM7XjuLssaaaaaaaa Sec-WebSocket-Protocol: tty content: data:undefined, EDIT: Ah, damn it. I closed one of the still open GUI-Tabs and by that the WebTerminal does not reload anymore 😩 So it seems to be a connection between the background process which loads notifications and the WebTerminal. I will try to investigate the problem when it happens again. But we can compare against the requests which happen if this bug is not present. This time it loads three different URLs: ws://tower:5000/webterminal/ws GET ws://tower:5000/webterminal/ws HTTP/1.1 Host: tower:5000 Connection: Upgrade Pragma: no-cache Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Upgrade: websocket Origin: http://tower:5000 Sec-WebSocket-Version: 13 Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie: users_view=user1; db-box2=2%3B0%3B1; test.sdd=short; test.sdb=short; test.sdc=short; diskio=diskio; ca_startupButton=topperforming; port_select=eth1; unraid_11111111621fb6eace5f11d511111111=11111111365ea67534cf76a011111111; ca_dockerSearchFlag=false; ca_searchActive=true; ca_categoryName=undefined; ca_installMulti=false; ca_categoryText=Search%20for%20webdav; ca_sortIcon=true; ca_filter=webdav; ca_categories_enabled=%5Bnull%2C%22installed_apps%22%2C%22inst_docker%22%2C%22inst_plugins%22%2C%22previous_apps%22%2C%22prev_docker%22%2C%22prev_plugins%22%2C%22onlynew%22%2C%22new%22%2C%22random%22%2C%22topperforming%22%2C%22trending%22%2C%22Backup%3A%22%2C%22Cloud%3A%22%2C%22Network%3A%22%2C%22Network%3AFTP%22%2C%22Network%3AWeb%22%2C%22Network%3AOther%22%2C%22Plugins%3A%22%2C%22Productivity%3A%22%2C%22Tools%3A%22%2C%22Tools%3AUtilities%22%2C%22All%22%2C%22repos%22%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%5D; ca_selectedMenu=All; ca_data=%7B%22docker%22%3A%22%22%2C%22section%22%3A%22AppStore%22%2C%22selected_category%22%3A%22%22%2C%22subcategory%22%3A%22%22%2C%22selected_subcategory%22%3A%22%22%2C%22selected%22%3A%22%7B%5C%22docker%5C%22%3A%5B%5D%2C%5C%22plugin%5C%22%3A%5B%5D%2C%5C%22deletePaths%5C%22%3A%5B%5D%7D%22%2C%22lastUpdated%22%3A0%2C%22nextpage%22%3A0%2C%22prevpage%22%3A0%2C%22currentpage%22%3A1%2C%22searchFlag%22%3Atrue%2C%22searchActive%22%3Atrue%2C%22previousAppsSection%22%3A%22%22%7D; col=1; dir=0; docker_listview_mode=basic; one=tab1 Sec-WebSocket-Key: aaaaaaaaqoOk/3z+aaaaaaaa Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits Sec-WebSocket-Protocol: tty response HTTP/1.1 101 Switching Protocols Server: nginx Date: Sat, 28 Aug 2021 16:51:11 GMT Connection: upgrade Upgrade: WebSocket Sec-WebSocket-Accept: aaaaaaaaDWIMhZ8VeZoxaaaaaaaa Sec-WebSocket-Protocol: tty This time, there was no content! /webterminal/ request: GET /webterminal/ HTTP/1.1 Host: tower:5000 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Referer: http://tower:5000/Docker Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie: users_view=user1; db-box2=2%3B0%3B1; test.sdd=short; test.sdb=short; test.sdc=short; diskio=diskio; ca_startupButton=topperforming; port_select=eth1; unraid_11111111621fb6eace5f11d511111111=11111111365ea67534cf76a011111111; ca_dockerSearchFlag=false; ca_searchActive=true; ca_categoryName=undefined; ca_installMulti=false; ca_categoryText=Search%20for%20webdav; ca_sortIcon=true; ca_filter=webdav; ca_categories_enabled=%5Bnull%2C%22installed_apps%22%2C%22inst_docker%22%2C%22inst_plugins%22%2C%22previous_apps%22%2C%22prev_docker%22%2C%22prev_plugins%22%2C%22onlynew%22%2C%22new%22%2C%22random%22%2C%22topperforming%22%2C%22trending%22%2C%22Backup%3A%22%2C%22Cloud%3A%22%2C%22Network%3A%22%2C%22Network%3AFTP%22%2C%22Network%3AWeb%22%2C%22Network%3AOther%22%2C%22Plugins%3A%22%2C%22Productivity%3A%22%2C%22Tools%3A%22%2C%22Tools%3AUtilities%22%2C%22All%22%2C%22repos%22%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%5D; ca_selectedMenu=All; ca_data=%7B%22docker%22%3A%22%22%2C%22section%22%3A%22AppStore%22%2C%22selected_category%22%3A%22%22%2C%22subcategory%22%3A%22%22%2C%22selected_subcategory%22%3A%22%22%2C%22selected%22%3A%22%7B%5C%22docker%5C%22%3A%5B%5D%2C%5C%22plugin%5C%22%3A%5B%5D%2C%5C%22deletePaths%5C%22%3A%5B%5D%7D%22%2C%22lastUpdated%22%3A0%2C%22nextpage%22%3A0%2C%22prevpage%22%3A0%2C%22currentpage%22%3A1%2C%22searchFlag%22%3Atrue%2C%22searchActive%22%3Atrue%2C%22previousAppsSection%22%3A%22%22%7D; col=1; dir=0; docker_listview_mode=basic; one=tab1 response: HTTP/1.1 200 OK Server: nginx Date: Sat, 28 Aug 2021 16:51:11 GMT Content-Type: text/html Content-Length: 112878 Connection: keep-alive content-encoding: gzip content: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>ttyd - Terminal</title> ... /webterminal/token request GET /webterminal/token HTTP/1.1 Host: tower:5000 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Accept: */* Referer: http://tower:5000/webterminal/ Accept-Encoding: gzip, deflate Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7 Cookie: users_view=user1; db-box2=2%3B0%3B1; test.sdd=short; test.sdb=short; test.sdc=short; diskio=diskio; ca_startupButton=topperforming; port_select=eth1; unraid_11111111621fb6eace5f11d511111111=11111111365ea67534cf76a011111111; ca_dockerSearchFlag=false; ca_searchActive=true; ca_categoryName=undefined; ca_installMulti=false; ca_categoryText=Search%20for%20webdav; ca_sortIcon=true; ca_filter=webdav; ca_categories_enabled=%5Bnull%2C%22installed_apps%22%2C%22inst_docker%22%2C%22inst_plugins%22%2C%22previous_apps%22%2C%22prev_docker%22%2C%22prev_plugins%22%2C%22onlynew%22%2C%22new%22%2C%22random%22%2C%22topperforming%22%2C%22trending%22%2C%22Backup%3A%22%2C%22Cloud%3A%22%2C%22Network%3A%22%2C%22Network%3AFTP%22%2C%22Network%3AWeb%22%2C%22Network%3AOther%22%2C%22Plugins%3A%22%2C%22Productivity%3A%22%2C%22Tools%3A%22%2C%22Tools%3AUtilities%22%2C%22All%22%2C%22repos%22%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%5D; ca_selectedMenu=All; ca_data=%7B%22docker%22%3A%22%22%2C%22section%22%3A%22AppStore%22%2C%22selected_category%22%3A%22%22%2C%22subcategory%22%3A%22%22%2C%22selected_subcategory%22%3A%22%22%2C%22selected%22%3A%22%7B%5C%22docker%5C%22%3A%5B%5D%2C%5C%22plugin%5C%22%3A%5B%5D%2C%5C%22deletePaths%5C%22%3A%5B%5D%7D%22%2C%22lastUpdated%22%3A0%2C%22nextpage%22%3A0%2C%22prevpage%22%3A0%2C%22currentpage%22%3A1%2C%22searchFlag%22%3Atrue%2C%22searchActive%22%3Atrue%2C%22previousAppsSection%22%3A%22%22%7D; col=1; dir=0; docker_listview_mode=basic; one=tab1 response HTTP/1.1 200 OK Server: nginx Date: Sat, 28 Aug 2021 16:51:11 GMT Content-Type: application/json;charset=utf-8 Content-Length: 13 Connection: keep-alive content: {"token": ""} EDIT: Ok, had this bug again. This time the shares and main tab were parallel open while the Terminal reloaded. After closing the main tab, it stopped. This time I leave only the main tab open to verify the connection to this page.
  20. So und auch gleich mal das find Kommando optimiert, so dass es das "diff" und "merge" Verzeichnis nicht mehr ausgibt und auch nur noch die Uhrzeit: find /var/lib/docker -type f -not -path "*/diff*" -print0 | xargs -0 stat --format '%Y:%.19y %n' | sort -nr | cut -d: -f2- 2> /dev/null | head -n30 | sed -e 's|/merged|/...|; s|^[0-9-]* ||' Beispiel:
  21. Und sonst gibt es keine Parameter? Ok, dann erstellt wohl redis über die Konfigurationsdatei selbst dieses anonyme Volume. Das passende Kommando habe ich jetzt auch: csv="CONTAINER;PATHS\n"; for f in /var/lib/docker/image/*/layerdb/mounts/*/mount-id; do subid=$(cat $f); idlong=$(dirname $f | xargs basename); id="$(echo $idlong | cut -c 1-12)"; name=$(docker ps --format "{{.Names}}" -f "id=$id"); [[ -z $name ]] && continue; csv+="\n"$(printf '=%.0s' {1..30})";"$(printf '=%.0s' {1..104})"\n"; [[ -n $name ]] && csv+="$name;" csv+="/var/lib/docker/(btrfs|overlay2)/.../$subid\n"; csv+="$id;"; csv+="/var/lib/docker/containers/$idlong\n"; for vol in $(docker inspect -f '{{ range .Mounts }}{{ if eq .Type "volume" }}{{ .Destination }}{{ printf ";" }}{{ .Source }}{{ end }}{{ end }}' $id); do csv+="$vol\n"; done; done; echo ""; echo -e $csv | column -t -s';'; echo ""; Ergebnis: Jetzt kann also auch jeder solche Pfade dem jeweiligen Container zuordnen.
  22. @TexasUnraid By this command, it's now easier to check which path belongs to which container: csv="CONTAINER;PATHS\n"; for f in /var/lib/docker/image/*/layerdb/mounts/*/mount-id; do subid=$(cat $f); idlong=$(dirname $f | xargs basename); id="$(echo $idlong | cut -c 1-12)"; name=$(docker ps --format "{{.Names}}" -f "id=$id"); [[ -z $name ]] && continue; csv+="\n"$(printf '=%.0s' {1..20})";"$(printf '=%.0s' {1..100})"\n"; [[ -n $name ]] && csv+="$name;" csv+="/var/lib/docker/(btrfs|overlay2).../$subid\n"; csv+="$id;"; csv+="/var/lib/docker/containers/$idlong\n"; for vol in $(docker inspect -f '{{ range .Mounts }}{{ if eq .Type "volume" }}{{ .Destination }}{{ printf ";" }}{{ .Source }}{{ end }}{{ end }}' $id); do csv+="$vol\n"; done; done; echo ""; echo -e $csv | column -t -s';'; echo ""; Sample output: And I optimized the "find" command as well: find /var/lib/docker -type f -not -path "*/diff*" -print0 | xargs -0 stat --format '%Y:%.19y %n' | sort -nr | cut -d: -f2- 2> /dev/null | head -n30 | sed -e 's|/merged|/...|; s|^[0-9-]* ||' Sample output: PS Instead of this: --mount type=tmpfs,destination=/tmp,tmpfs-mode=1777,tmpfs-size=256000000 I prefer creating a new path and link it to Unraid's /tmp, which is already a RAM-Disk: Another example: The tmp size is already limited to 50% of the RAM and finally no applicaton should write so much temporary data. My total size in Unraid is 57MB: du -sh /tmp 57M /tmp
  23. Das Kommando aus Punkt 4 gibt jetzt verständlichere Ergebnisse aus, in dem auch der jeweilige Pfad ausgegeben wird: Damit sollte es nun einfacher sein den jeweiligen Ordner zuzuordnen. @T0a /var/lib/docker/containerd/daemon/io.containerd.metadata.v1.bolt/meta.db habe ich auch. Ich habe mir mal den Inhalt der Datei angeschaut und sie enthält Infos zu verschiedenen Containern. Das ist also eine Datei vom Docker Dienst selbst und diese lassen wir lieber in Ruhe. Das selbe gilt für die Datei /var/lib/docker/network/files/local-kv.db. Allerdings werden beide Dateien bei mir nur selten überschrieben. Daher kein Grund sie überhaupt in den RAM auszulagern. Das was in /var/lib/docker/volumes geschrieben wird, ist dagegen von einem Container selbst. Ich vermute, dass du einen Container hast, der im "Extra Parameters" Feld einen Befehl wie "--mount source=foo,target=/bar" nutzt. Dann erstellt Docker nämlich eine separate "Festplatte", die dann in "/var/lib/docker/volumes abgelegt wird. Ich habe das bei meinem Unifi-Controller Container getestet: Dadurch schreibt Unifi nun in den Pfad: /var/lib/docker/volumes/test/_data/hsperfdata_abc/296 Mit dieser Technik kann man wohl mehrere Container auf das selbe Verzeichnis zugreifen lassen. Komisch ist nur, dass bei dir kein Name, sondern eine ID im Pfad steht. EDIT: Ah ok. Wenn man keinen Namen festlegt, dann erstellt er das mit einer zufälligen ID: /var/lib/docker/volumes/d8c9fdca9be08d2b85fba7b061d868a29a585e4c085635a074f2b5093dd79162/_data/hsperfdata_abc/297 Mal sehen ob ich das irgendwie zuordnen kann... EDIT: Ok, gespeichert wird das in der /var/lib/docker/containers/<containerid>/config.v2.json. Da gibt es doch bestimmt ein Docker Kommando für....
  24. @dlandon How often does your plugin check the availability? In his last post you find a log of a script which executed every minute a ping and it seems that his server is reachable.
×
×
  • Create New...