Opis openmediavault
openmediavault to kompletne rozwiązanie sieciowej pamięci masowej (NAS) oparte na systemie Debian Linux. Jest dostępny dla platform x86-64 i ARM. Zawiera pełny interfejs administracji sieciowej. Może być kontrolowany przez SSH, jeśli jest włączony. Dostęp do przechowywania plików jest możliwy za pomocą wielu różnych protokołów, takich jak FTP, SMB/CIFS lub NFS, i może być kontrolowany przez zarządzanie prawami dostępu dla użytkowników i grup. Openmediavault jest przeznaczony przede wszystkim do użytku w środowiskach domowych lub małych biurach domowych, ale nie ogranicza się do tych scenariuszy. Jest to proste i łatwe w użyciu gotowe rozwiązanie, które każdy może zainstalować i administrować bez konieczności posiadania specjalistycznej wiedzy na temat sieci i systemów pamięci masowej. System zbudowany jest na zasadzie modułowej i można go łatwo rozbudowywać za pomocą wtyczek dostępnych zaraz po zainstalowaniu systemu bazowego.
Przydatne adresy
Strona projektu: https://www.openmediavault.org/features.html
Minimalne wymagania do instalacji: https://docs.openmediavault.org/en/stable/prerequisites.html
Ręczna instalacja openmediavault na systemie Debian 11: https://forum.openmediavault.org/index.php
Instalacja openmediavault na Raspberry PI: https://raspberrytips.com/openmediavault-on-raspberry-pi/
Instalacja Docker-a na openmediavault: https://wiki.omv-extras.org/doku.php?id=omv6:docker_in_omv
Instalacja openmediavault z obrazu iso: https://www.howtoforge.com/tutorial/install-open-media-vault
Zakres wykorzystania openmediavault w sieci
openmediavault wykorzystywany jest w mojej sieci do różnych celów:
1) jako dodatkowy storage dostępny przez protokół NFS dla maszyn z systemem Linux
a) storage area dla Zone Minder – system monitoringu z kamer video
b) datastore dla Proxmox Backup Server 2 – przyrostowy backup maszyn wirtualnych Proxmox VE
c) datastore dla Proxmox VE – ISO image, VZDump backup file, Container template
d) datastore dla kontenerów Docker-a do przechowywania multimediów np. Airsonic
e) udział sieciowy dla backupu danych i konfiguracji w postaci plików archiwum *.tar
f) udział sieciowy z filmami i zdjęciami dla Plex-a
2) na potrzeby udostępniania folderów z danymi dla maszyn z Windows / macOS przez protokół SMB
Konfiguracja maszyny wirtualnej openmediavault w Proxmox
Minimalne wymagania openmediavault to 1 CPU / 1 GB RAM / 4 GB HDD.
W tym przypadku dla sprawnego działania maszyny wirtualnej omv przydzielono 2 vCPU oraz 1 GB RAM.
Wirtualny dysk ma rozmiar 8 GB aby można było swobodnie instalować aktualizacje oraz dodatkowe oprogramowanie i wtyczki. Do maszyny wirtualnej po skończonej instalacji i restarcie podłączony został dysk USB SEAGATE One Touch Hub 12TB HDD z 1 partycją Linux sformatowaną w systemie EXT4.
Instalacja openmediavault
Sam proces instalacji z obrazu ISO jest banalnie prosty i należy jedynie uważać podczas wpisywania hasła dla root-a oraz wyboru miejsca instalacji GRUB-a.
Wstępna konfiguracja openmediavault
Sprawdzamy w Proxmox VE w konsoli maszyny wirtualnej omv adres ip i logujemy się przez przeglądarkę na podany adres np. http://192.168.8.109 , użytkownik: admin , hasło (domyślne) : openmediavault
Zmiana języka openmediavault na angielski
W celu łatwiejszego wyszukiwania pomocy w internecie dotyczącej openmediavault dobrze jest ustawić język interfejsu webowego na angielski.
Zmiana adresu ip openmediavault na statyczny
W menu Network – Interfaces – Edit ustawiamy parametry statycznego połączenia sieciowego. Po zapisaniu logujemy się ponownie pod nowym adresem np. http://192.168.8.28
Zmiana domyślnego hasła admina
Aktualizacja systemu Debian 11 w openmediavault
Logujemy się przez SSH użytkownikiem root oraz hasłem jakie podaliśmy podczas instalacji openmediavault i wydajemy komendę:
apt update && apt upgrade reboot
lub z poziomu interfejsu webowego w menu System – Update management wybieramy Perform update.
Dodanie dysku USB do maszyny wirtualnej openmediavault
Do wyłączonej maszyny wirtualnej omv dodajemy wybrane urządzenie USB pamięci masowej.
Po uruchomieniu maszyny wirtualnej omv w menu Storage – Disks sprawdzamy czy pojawił się nowy dysk. Jeśli mamy na nim dane do usunięcia i chcemy szybko wyczyścić dysk wybieramy opcję Wipe.
W tym przypadku jednak podłączamy dysk posiadający już jedną partycję sformatowaną w systemie EXT4, więc niczego nie musimy czyścić ani tworzyć. Warto natomiast włączyć opcję Enable Write-Cache w ustawieniach dysku oraz opcje S.M.A.R.T. dla wybranego dysku.
Rozwiązanie problemu z odczytem S.M.A.R.T. z dysków zewnętrznych USB
Jeśli posiadamy problematyczny dysk zewnętrzny USB dla którego Linux nie obsługuje protokołu UAS (nie można odczytać status smart z konsoli), należy wyłączyć obsługę tego protokołu dla Debiana 11 będącego pod spodem openmediavault.
# sprawdzenie nazwy urządzenia blokowego lsblk # weryfikacja działania narzędzia smartctl smartctl -i /dev/sdb # sprawdzamy id urządzenia USB lsusb Bus 008 Device 002: ID 0bc2:ab80 Seagate RSS LLC One Touch Hub # dodajemy je do nowo utworzonego pliku nano /etc/modprobe.d/disable-uas.conf options usb-storage quirks=0bc2:ab80:u # po zmianach w powyższych plikach update-initramfs -u reboot
Rozwiązanie problemu z kartą muzyczną intela podczas startu openmediavault
nano /etc/modprobe.d/openmediavault-blacklist.conf # Disable floppy kernel module to prevent error messages like: # end_request: I/O error, dev fd0, sector 0 blacklist floppy blacklist snd_hda_intel # po zmianach w powyższych plikach update-initramfs -u reboot
Utworzenie / podłączenie systemu plików na dysku
Zanim będziemy mogli dodawać udziały sieciowe należy utworzyć lub podłączyć istniejący system plików jak w tym przypadku (Mount existing file system)
Instalacja dodatkowych wtyczek do openmediavault
Wchodzimy w menu System – Plugins i wybieramy z dostępnej listy wtyczek interesującą nas wtyczkę.
Polecam zainstalować wtyczkę diskstats, filebrowser, ftp oraz jeśli możemy zwiększyć zasoby maszyny wirtualnej do 4 vCPU i 4 GB RAM clamav (antywirus).
Jeśli potrzebujemy więcej wtyczek czy też wsparcia dla Docker-a warto zainstalować omv-extras. Więcej informacji na stronie https://wiki.omv-extras.org/
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
Włączenie wybranych usług openmediavault
Włączamy wszystkie potrzebne usługi np. FTP, File Browser, NFS, SMB/CIFS, Rsync itd. SSH jest domyślnie włączona. File Browser dostępny pod adresem http://ip_omv:3670 pozwala na bardzo wygodne wgrywanie i ściąganie plików z ze wskazanego udziału dyskowego, w tym przypadku /projects.
Tworzymy potrzebne udziały dyskowe
Aby zachować przejrzystość i bezpieczeństwo zapisywanych danych, dobrze jest włączyć ich separację i potworzyć tematycznie wszelkie potrzebne udziały dyskowe w menu Storage – Shared folders.
Tworzenie użytkowników NFS, FTP, SMB / CIFS
Wchodzimy w menu Users – Users i wybieramy Create. Jeśli będziemy do wybranych udziałów dostawać się przez protokół SMB / CIFS dobrze jest utworzyć zawczasu użytkownika z hasłem aby móc go później przypisać do wybranego udziały sieciowego. W przypadku NFS kontrola dostępu może być realizowany w różny sposób i zakładanie użytkownika nie jest tu wymagane.
Konto utworzone w tym miejscu będzie również służyć do logowania się przez protokół FTP.
Tworzenie potrzebnych udziałów sieciowych SMB / CIFS
W przypadku tworzenia udziału sieciowego dla protokołu SMB / CIFS możemy wybrać szereg interesujących opcji:
– Time Machine support jeśli planujemy dodać ten udział do macOs i wykorzystywać go jako miejsce backupu danych
– Enable recycle bin jeśli chcemy mieć dodatkową ochronę przed przypadkowym usunięciem danych z dysku sieciowego
– Host allow i Host deny jeśli chcemy ograniczyć wskazanym adresom ip dostęp do wybranego udziału sieciowego
Tworzenie potrzebnych udziałów sieciowych NFS
W przypadku tworzenie udziałów sieciowych NFS możemy ograniczać dostęp poprzez podanie konkretnego ip lub sieci (Client), uprawnień (Permission) czy opcji dodatkowych (Extra options).
Dla potrzeb wykorzystania udziału sieciowego przez Proxmox Backup Server należy podać extra options: rw,sync,no_subtree_check,no_root_squash,insecure_locks
Przydział uprawnień dla wybranego użytkownika SMB / CIFS
W menu Users – {wybrany user } – Shared folder permission możemy jednoznacznie wskazać uprawnienia SMB / CIFS użytkownika do wybranych folderów.
Przydział uprawnień dla wybranego użytkownika FTP
Posiadamy stworzonego wcześniej na potrzeby dostępu przez SMB / CIFS użytkownika zibi.
Należy w menu Storage – Shared Folders – {wybrany folder} – Access Control List wskazać jednoznacznie że systemowy użytkownik np. zibi ma mieć konkretne uprawnienia do udziału dyskowego np. /projects.
Pliki i katalogi utworzone przez admin-a z poziomu File Browser w udziale dyskowym /projects nie mogą być zmieniane przez użytkownika zibi. Po połączeniu przez FTP użytkownik zibi ma teraz pełne uprawnienia w folderze /projects.
Przykłady połączeń z różnych systemów do udziałów sieciowych openmediavualt
Podłączenie udziału samby openmediavault z Windows 11
Wybieramy z menu podręcznego ikony Mój komputer – Mapuj dysk sieciowy. Podajemy ściężkę do folderu w formacie \\adres_ip_omv\nazwa_udziału_sieciowego, zaznaczamy Połącz ponownie przy logowaniu i Połącz przy użyciu innych poświadczeń. Podajemy wcześniej ustaloną nazwę użytkownika oraz hasło.
Podłączenie udziału samby openmediavault z Ubuntu / Debian
# instalujemy cifs utils aby można było montować zdalne udziały samby sudo apt-get install cifs-utils # tworzymy punkt montowania mkdir /mnt/projects # montujemy zdalny udział sieciowy /projects do lokalnego folderu /mnt/projects mount -t cifs -o user=zibi,password=xxxxxx //192.168.8.28/projects /mnt/projects/
Podłączenie udziału nfs openmediavault z Proxmox VE
W Proxmox VE wchodzimy w menu Datacenter – Storage – Add – NFS. Podajemy wszystkie potrzebne informacje i wskazujemy w Content przeznaczenie tego udziału sieciowego. W tym przypadku jest to tylko backup maszyn wirtualnych czyli VZDump backup file.
Podłączenie udziału nfs openmediavault z Ubuntu / Debian
# instalujemy klienta nfs sudo apt-get install portmap nfs-common # tworzymy punkt montowania mkdir /mnt/backup # montujemy zdalny udział sieciowy /backup_cfg do lokalnego folderu /mnt/backup mount -t nfs 192.168.8.28:/export/backup_cfg /mnt/backup/
Podłączenie udziału nfs openmediavault z Proxmox Backup Server
Tworzenie chunkstore może potrwać na dużym dysku sieciowym dość długo i aby uniknąć timeoutów z interfejsu GUI najlepiej jest podłączać Datastore z NFS z linii komend serwera Proxmox Backup Server.
# tworzymy punkt montowania mkdir /mnt/backupstore # montujemy zdalny udział sieciowy /backup_pbs do lokalnego folderu /mnt/backupstore mount -t nfs 192.168.8.28:/backup_pbs /mnt/backupstore/ # tworzymy datastore o nazwie backupstore korzystający z punktu montowania /mnt/backupstore proxmox-backup-manager datastore create backupstore /mnt/backupstore/
Należy jedynie pamiętać o nadaniu odpowiednich uprawnień użytkownikowi do Datastore. Tutaj użytkownik pbsclient ma uprawnienia DatastoreAdmin.
Zaawansowana konfiguracja openmediavault
Instalacja certyfikatu Letsencrypt
W tym przykładzie zakładamy, że posiadamy gotowe pliki: privkey.pem oraz cert.pem pochodzące z maszyny wirtualnej certbot zajmującej się odnawianiem certyfikatu Letsencrypt celem dalszej dystrybucji do wszystkich serwerów w mojej sieci. Wchodzimy w menu System – Certificates – SSL i wybieramy Import.
Private key wskazujemy z naszego komputera plik privkey.pem
Certificate wskazujemy z naszego komputera plik cert.pem
Comment wpisujemy Letsencrypt
Jeśli mamy już zainstalowany certyfikat SSL możemy go ustawić w:
– System – Workbench
– Services – FTP – SSL/TLS Settings
– Services – File Browser
Informacja o zainstalowanych certyfikatach znajduje się w pliku /etc/openmediavault/config.xml w sekcji
<certificates> <sslcertificate> <uuid>d9e56d83-386c-4a74-a828-13d8816e1a53</uuid> ... <comment>Lestencrypt</comment> </sslcertificate> </certificates>
Dzięki uuid wiemy, że cert.pem jest zapisany w /etc/ssl/certs/openmediavault-d9e56d83-386c-4a74-a828-13d8816e1a53.crt , natomiast privkey.pem w /etc/ssl/private/openmediavault-d9e56d83-386c-4a74-a828-13d8816e1a53.key
Automatyczne odnowienie certyfikatu SSL Let’s encrypt dla openmediavault
Więcej informacji na temat automatycznego odnowienia certyfikatu SSL Let’s encrypt dla openmediavault można znaleźć na stronie https://itadmin.vblog.ovh/lets-encrypt-wildcard-dystrybucja-certyfikatu-ssl-w-sieci-wewnetrznej/#Reczne_odnowienie_certyfikatu_SSL_dla_openmediavault oraz https://itadmin.vblog.ovh/skrypt-bash-update_cert-sh/
Zarządzanie openmediavault z konsoli
Niektóre zadanie administracyjne aby nie przeładowywać niepotrzebnie interfejsu www openmediavault zostały przeniesione do narzędzi omv_*
# lista wszystkich zmiennych środowiskowych
omv-env list
# lista wszystkich skonfigurowanych zmiennych środowiskowych
omv-env get
# zmiana jakieś zmiennej środowiskowej
omv-env set -- OMV_SSHD_SUBSYSTEM_SFTP "/usr/lib/openssh/sftp-server"
# lista wszystkich usług
omv-salt deploy list
# pokaż wszystkie obiekty typu filesystem podpięte jako ext4
omv-confdbadm read conf.system.filesystem.mountpoint | jq -r '.[]|select(.type=="ext4")'
{
"uuid": "e64adfc3-98e5-4962-8590-114a91031008",
"fsname": "/dev/disk/by-uuid/24ed8e9c-485a-4e22-84dd-2e039ff328c0",
"dir": "/srv/dev-disk-by-uuid-24ed8e9c-485a-4e22-84dd-2e039ff328c0",
"type": "ext4",
"opts": "defaults,nofail,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl",
"freq": 0,
"passno": 2,
"hidden": false,
"usagewarnthreshold": 95,
"comment": ""
}
# pokaż wszystkie zamontowane file systemy
omv-rpc -u admin 'FileSystemMgmt' 'enumerateMountedFilesystems' '{"includeroot": true}'
# wszystkie możliwe polecenia omv_
source /usr/share/openmediavault/scripts/helper-functions
# można teraz wpisać omv_ i wcisnąć tab
Konfiguracja powiadomień emailowych
Domyślna konfiguracja postfixa (/etc/postfix/main.cf) zapewnia bezproblemową obsługę powiadamiania przez zewnętrzny serwer SMTP. W tym przypadku skrzynka znajduje się na serwerze OVH. Należy w menu System – Notifications – Settings włączyć powiadomienia i podać dane serwera pocztowego takie jak adres, port, nazwa konta wysyłającego powiadomienia i dane dostępowe do skrzynki wysyłającej powiadomienia. Następnie w menu System – Notifications – Event należy wskazać jakiego typu powiadomienia mają przychodzić na adres wskazany powyżej w polu Recipient. W tym przypadku interesuje mnie jedynie status S.M.A.R.T. dysku oraz nowe aktualizacje. Więcej informacji na ten temat: https://docs.openmediavault.org/en/5.x/administration/general/notifications.html#events
Podgląd wysyłanych wiadomości email:
tail -f /var/log/mail.log May 23 23:00:51 nas postfix/qmgr[205742]: 164E1443B3: removed May 24 00:00:50 nas postfix/pickup[297453]: 442C54187A: uid=0 from=<root> May 24 00:00:50 nas postfix/cleanup[299533]: 442C54187A: message-id=<[email protected]> May 24 00:00:50 nas postfix/qmgr[205742]: 442C54187A: from=<[email protected]>, size=1001, nrcpt=2 (queue active) May 24 00:00:50 nas postfix/pipe[299536]: 442C54187A: to=<[email protected]>, relay=omvnotificationfilter, delay=0.03, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered via omvnotificationfilter service) May 24 00:00:51 nas postfix/smtp[299537]: 442C54187A: replace: header Subject: SMART error (FailedReadSmartSelfTestLog) detected o: Subject: [nas.netapps.ovh] SMART error (FailedReadSmartSelfTestLog) detected on host: nas May 24 00:00:51 nas postfix/smtp[299537]: 442C54187A: to=<[email protected]>, relay=ssl0.ovh.net[193.70.18.144]:587, delay=1.1, delays=0.01/0.01/0.75/0.32, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 31C9C1FE02) May 24 00:00:51 nas postfix/qmgr[205742]: 442C54187A: removed
Odczyt parametrów pracy przez snmp
Przed wykorzystaniem snmp w openmediavault należy zainstalować wtyczkę snmp oraz włączyć ją w menu Services – SNMP.
# sprawdzenie komunikacji i wyświetlenie wszystkich możliwych wartości snmpwalk -v2c -c public 192.168.8.28 # podstawowe informacje o hoście snmpwalk -v2c -c public 192.168.8.28 1.3.6.1.2.1.1 # nazwa hosta snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.2.1.1.5.0 iso.3.6.1.2.1.1.5.0 = STRING: "nas" # uname -a snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Linux nas 6.1.0-0.deb11.7-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.20-2~bpo11+1 (2023-04-23) x86_64" # uptime snmpget -v2c -c public 192.168.8.28 .1.3.6.1.2.1.1.3.0 iso.3.6.1.2.1.1.3.0 = Timeticks: (70247) 0:11:42.47 # CPU i karty sieciowe snmpwalk -v2c -c public 192.168.8.28 .iso.3.6.1.2.1.25.3.2.1.3 iso.3.6.1.2.1.25.3.2.1.3.196608 = STRING: "GenuineIntel: Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz" iso.3.6.1.2.1.25.3.2.1.3.196609 = STRING: "GenuineIntel: Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz" iso.3.6.1.2.1.25.3.2.1.3.262145 = STRING: "network interface lo" iso.3.6.1.2.1.25.3.2.1.3.262146 = STRING: "network interface enp6s18" iso.3.6.1.2.1.25.3.2.1.3.262148 = STRING: "network interface veth43335cc1" iso.3.6.1.2.1.25.3.2.1.3.786432 = STRING: "Guessing that there's a floating point co-processor" # load 1/5/15 snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.4.1.2021.10.1.3.1 iso.3.6.1.4.1.2021.10.1.3.1 = STRING: "0.22" snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.4.1.2021.10.1.3.2 iso.3.6.1.4.1.2021.10.1.3.2 = STRING: "0.24" snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.4.1.2021.10.1.3.3 # swap snmpget -v 2c 192.168.8.28 -c public .1.3.6.1.4.1.2021.4.4.0 iso.3.6.1.4.1.2021.4.4.0 = INTEGER: 936728
Zaplanowane zadania
Jeśli potrzebujemy wykonywać cyklicznie jakieś polecenie lub skrypt wtedy można je wygodnie dodać w menu System – Scheduled Tasks – Create. Utworzone zadania można podejrzeć również w pliku /etc/cron.d/openmediavault-userdefined
cat /etc/cron.d/openmediavault-userdefined # This file is auto-generated by openmediavault (https://www.openmediavault.org) # WARNING: Do not edit this file, your changes will get lost. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 15 10 * * * root /var/lib/openmediavault/cron.d/userdefined-eaaad76a-4a08-4b91-b39e-453ca15b9fcf 2>&1 | mail -E -s "Cron" -a "From: Cron Daemon <root>" root >/dev/null 2>&1
Serwer Rsync
Do uzupełnienia




























































