Содержание

OpenMediaVault

openmediavault is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. Thanks to the modular design of the framework it can be enhanced via plugins.

openmediavault is primarily designed to be used in small offices or home offices, but is not limited to those scenarios. It is a simple and easy to use out-of-the-box solution that will allow everyone to install and administrate a Network Attached Storage without deeper knowledge.

Текущая конфигурация

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda      8:0    0  1,8T  0 disk
└─md0    9:0    0  1,8T  0 raid1 /srv/dev-disk-by-id-md-name-nas-md0
sdb      8:16   0  1,8T  0 disk
└─md0    9:0    0  1,8T  0 raid1 /srv/dev-disk-by-id-md-name-nas-md0
sdc      8:32   1 14,5G  0 disk
├─sdc1   8:33   1 13,8G  0 part  /
├─sdc2   8:34   1    1K  0 part
└─sdc5   8:37   1  650M  0 part
 
fdisk -l
Disk /dev/sdc: 14,5 GiB, 15514730496 bytes, 30302208 sectors
Disk model: USB DISK 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfd7f9956
 
Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdc1  *        2048 28966911 28964864 13,8G 83 Linux
/dev/sdc2       28968958 30300159  1331202  650M  5 Extended
/dev/sdc5       28968960 30300159  1331200  650M 82 Linux swap / Solaris
# показать версию
dpkg -l | grep openmediavault

Установка, настройка

Установить дополнение, открывающее доступ к другим дополнениям, лучше делать из консоли (http://omv-extras.org):

# Пример для 5-й версии openmediavault
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
# Пример для 4-й версии openmediavault
wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all4.deb
dpkg -i openmediavault-omvextrasorg_latest_all4.deb
apt-get update

Далее из интерфейса установить обновление самого openmediavault и плагин FlashMemory (обязательно, если система стоит на флешке). Для FlashMemory отредактировать /etc/fstab, как сказано на странице самого плагина FlashMemory.

Обновить все пакеты через менеджер обновлений, перезагрузиться. Сразу ставиться могут не все, тогда нужно выделять и ставить частями.
Сделать RAID, создать файловую систему, смонтировать, включить Самбу.
Включить SMART, активировать мониторинг, запланировать еженедельные тесты (short-test).
Завести пользователя или группу, дать права и т. д.
Настроить уведомления.

Апгрейд с 5 версии на 6

  1. Backup the OS drive (this is allways a good idea, not only for upgrades)
  2. Make sure, you have enough free space on your os drive
  3. Check any installed plugins if they have been ported to OMV6.
    If you are using plugins which have not been / will not be ported, get rid of the plugins except unionfs / mergefolderfs. These two will automatically be be converted to the newer mergerfs plugin
    (Many plugins can be replaced by docker containers. Do this before upgrading)
  4. If you installed software from foreign repos make sure they have a release for bullseye or remove the repos / software
  5. Go to the cli (Putty, ssh, keyboard) and run these commands (In case of errors stop and ask on the forum before makingthings worse)
    1. Make sure your current install is correct all configs can be deployed by running sudo omv-salt stage run deploy
    2. Get the current install up to date: sudo omv-upgrade
    3. Do the release upgrade by running sudo omv-release-upgrade
      If you see an error message from patch which says a patch has alredy been applied, ignore it. (this is the only error to be ignored)
  6. Wait for the last script to finish and reboot.
  7. Refresh/clear browser cache (Crtl-Shift R on most browsers)
  8. Check if all services and docker containers are running as you expect.
  9. If you see Linux image Updates you can not install on the UI, go to the cli and run omv-upgrade once more.

https://forum.openmediavault.org/index.php?thread/42340-is-there-a-guide-to-in-place-upgrade/&postID=305564#post305564

Апгрейд с 4 версии на 5

On a test OMV 4.x system with the flashmemory plugin installed, this is all I did to upgrade it to OMV 5.x (as root):

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/upgrade4to5 | sudo bash
 
reboot
 
apt purge openmediavault-omvextrasorg resolvconf -y
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
apt update && apt dist-upgrade -y
omv-salt deploy run nginx
omv-salt deploy run phpfpm
apt install usrmerge -y

Clear your browser cache after upgrading!

https://forum.openmediavault.org/index.php?thread/27909-omv-5-0-finally-out/&postID=219830#post219830

Миграция системного диска

https://forum.openmediavault.org/index.php?thread/6363-how-to-move-omv-system-to-another-drive/
https://forum.openmediavault.org/index.php?thread/8062-change-system-drive/

Docker

Установка из OMV-extras.

Нюанс - чтобы держать Volumes контейнеров на дата-дисках OMV, надо убрать опцию noexec из параметров дата-диска в следующих файлах:

nano /etc/openmediavault/config.xml
nano /etc/fstab

Иначе будет выдаваться ошибка, что нет прав.

Особенности

Права удобнее раздавать не с помощью ACL, а с помощью Privileges, т. е., на уровне Самбы, а не файловой системы. Тем не менее, если оставлять настройки создаваемых папок по умолчанию, то синхронизировать файлы с USB-HDD на хранилище с помощью Robocopy будет нельзя из-за ошибки: «ОШИБКА 5 (0x00000005) Изменение атрибутов файла \\192.168.1.3\Distr\ Отказано в доступе.»
Чтобы решить эту проблему, нужно исключить копирование атрибутов при синхронизации (/copy:DT):

$letter = D:
$address = "10.11.100.243"
$mark = get-date -UFormat "%Y-%m-%d_%H-%M-%S"
 
ROBOCOPY $letter\Distr \\$address\Distr /MIR /copy:DT /TEE /NP /LOG:sync_usb2omv_$mark.txt
ROBOCOPY $letter\Doc \\$address\Doc /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt
ROBOCOPY $letter\English \\$address\English /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt
ROBOCOPY $letter\music \\$address\Music /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt
ROBOCOPY $letter\photo \\$address\Photo /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt
ROBOCOPY $letter\Upload \\$address\Upload /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt
ROBOCOPY $letter\video \\$address\Video /MIR /copy:DT /TEE /NP /LOG+:sync_usb2omv_$mark.txt

Решение проблем

После обновления OMV с 3 на 4 версию (Debian Stretch), перестало авторизовывать по SMB с доменной машины. Решение - добавить в Extra options в настройках Самбы параметр

ntlm auth = yes

Источник: http://forums.debian.net/viewtopic.php?f=5&t=133724


На почту еженедельно приходит письмо:
[nas.workgroup] Anacron job 'cron.weekly' on nas
/etc/cron.weekly/openmediavault-update-smart-drivedb:
mesg: ttyname failed: Неприменимый к данному устройству ioctl

Решение: отредактировать файл /root/.profile, заменив в нём строку

mesg n || true
# на
test -t 0 && mesg n || true

Источник: https://forum.openmediavault.org/index.php/Thread/21028-cron-after-Update-stdin-is-not-a-tty/?postID=163463#post163463


При попытке проверить обновления выходит ошибка, где есть такой текст:
Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

Решение: зайти по SSH и перезапустить сеть.

sudo /etc/init.d/networking restart

Источник: https://forum.openmediavault.org/index.php/Thread/8464-Cant-update-system-and-or-install-OMV-Extras/


При обновлении в консоли (omv-update) выплёвывает текст:

Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7f59ba5a9950>
Traceback (most recent call last):
  File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable
Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7f59ba5a9950>
Traceback (most recent call last):
  File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable

Workaround:

# line 109:
def remove(wr, selfref=ref(self)):
# replace with:
def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref):

# line 117:
_remove_dead_weakref(d, wr.key)
# replace with:
_atomic_removal(d, wr.key)

RAID

Массив развалился:

mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Mar  6 13:24:17 2018
     Raid Level : raid1
     Array Size : 1953383488 (1862.89 GiB 2000.26 GB)
  Used Dev Size : 1953383488 (1862.89 GiB 2000.26 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Nov  2 12:47:16 2019
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : nas:md0  (local to host nas)
           UUID : b0b7703d:4da40b26:28176a4e:a72b0f7a
         Events : 4188

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       -       0        0        1      removed

Несмотря на то, что диск removed, добавить его из GUI всё равно нельзя, потому что он виден как диск и уже включён в массив.

Решение:

mdadm /dev/md0 --add /dev/sdb
mdadm: re-added /dev/sdb

После этого идёт синхронизация данных и дальше всё в порядке.

После входа в WebGUI выкидывает обратно на страницу входа (login loop)

rm -rf /var/lib/php/sessions
mkdir -m 777 /var/lib/php/sessions
nginx -s reload
reboot

https://pcmac.biz/openmediavault-5-login-loop-issue/
https://forum.openmediavault.org/index.php?thread/31476-after-recent-update-webgui-stuck-in-endless-login-loop/

Материалы

https://openmediavault.readthedocs.io/en/latest/index.html
https://alexmdv.ru/setevoe-xranilishhe-na-openmediavault
http://it-enginer.ru/openmediavault-omv-3-0-pervaya-ekspluataciya/
http://jermsmit.com/howto-upgrade-openmediavault/