ARM install using SDCard vs HDD for OMV

  • Hi all,


    I've been experimenting with OMV for last few weeks in between working and other things. You can skip the setups I've boringly described below if you like but they provide some context if you want to read them. The question I have is as follows. I've got an arm device (nanopim4v2) with 4xsata ports (4xsata hat), I want NAS type stats monitoring (and to collect data from other network devices), I want to run Docker & Portainer with about 5 containers, I need 2x sata ports for data and thus I've 2x spare, I'm not fussed about size.

    • Shall I use an SDCard for OMV, Docker etc... as seems typical
    • Shall I use an SDCard for OMV and a partitioned (or not) data disk for Docker plus data
    • Shall I use an SDCard for boot only and have rootfs on HDD THIS IS MY PREFERED OPTION based on experiments noted below but should it be?

    My worries

    • Using collectd (comes with OMV) will write lots of data to SDCard unless I use rootfs on HDD
    • Using Docker containers like inlfuxdb will wirte lots of data to SDCard unless I use HDD as data disk for Docker containers
    • By using SDCard as boot only and rootfs on HDD cloning becomes more tedious to create backups and restore (I need to investigate this topic more also)
    • All experimental setups I tried below had some stability issues of varying degree although setup 3 seems worse, albeit the setup I've messed with the most so may I probably broke it myself


    First I want to select an installation to move forward with (the real question here), then I'll go about trying to fix the issues I have with that setup in separate threads as needed. Your help, experiences and comments are looked forward to.


    ---

    My experimenting to date.

    1st Setup - Keeping it simple as it's all new to me:

    - Install armbian Buster Server

    - run apt update && upgrade

    - Follow scripted installation for flash/SD storage using the guide Installing OMV5 on Armbian Buster found here.

    OUTCOMES: Got it working okay. I then installed Docker and Portainer using OMV WebUI and started to learn about writing to flash devices and the problems that come with this. I want to run Grafana (with influxdb and maybe telegraf/collectd) to monitor this device as well as some others on my network but would like Grafana and Influxdb running on this device via Docker. Problem now being I end up with lots of writes to SDCard. Or to ram (Flash Memory Plugin) but I want to keep this data.


    2nd Setup - Keep it simple ver2

    - Install armbian Buster Server

    - run apt update && upgrade

    - Use armbian-configure to install OMV via the user interface 3rd party application installer (I was hoping this didn't implement the Flash Memory Plugin as the 1st Setup did)

    OUTCOMES: Work a treat installing but still installed Flash Memory Plugin. Same comments as above, once I enable monitoring services and start using Docker I start saving lots of stuff to the SDCard. Or ram which I'll lose.


    3rd Setup - Adding some complexity

    - Install armbian Buster Server

    - run apt update && upgrade

    - run nand-sata-install to move rootfs to a HDD

    - clear SDCard of now old fs, keeping /boot only

    - Use armbian-configure to install OMV via the 3rd party application installer

    - Disable Flash Storage Plugin

    OUTCOMES: Works well-ish (see last sentnce), OMV WebUI seems no slower than when FS was on SDCard and it's plenty fast enough. There are still some folders in ram as part of the armbian install, but I believe these get flushed and copied to the rootfs periodically, I'm content with that. I've installed Docker and tried telegraf, influxdb and grafana with some success but not as I'd like. So I switched to using collectd which comes with OMV and sent the data to influxdb using network plugin, this works okay but the system is now not stable. The load spirals out of control in a very short period after an random amount of time, be it a few hours or a few days.

    nanopi m4v2 w/ 4xSATA HAT, 4GB SDCard Boot + Root (testing), 320GB HDD OMVdata, 2x 1TB HDD Data

    OMV 5.x

  • I would recommend the second variant; Boot and rootfs on SD card, Docker and Docker data on HDD.


    The first variant wears out the SD card. The third variant is messy and doesn't provide improved performance. Except possibly if you use a SSD instead of a HDD.


    I use the second variant. I also have one OMV4 HC1 with just boot on the SD card and the rest on a 2TB hybrid SSD/HDD, it works fine, but is a mess to backup compared to just cloning a SD card. When I upgrade it I will put boot and rootfs back on the SD card, and docker on the hybrid SSD/HDD.

    Be smart - be lazy. Clone your rootfs.
    OMV 5: 9 x Odroid HC2 + 1 x Odroid HC1 + 1 x Raspberry Pi 4

  • I would recommend the second variant; Boot and rootfs on SD card, Docker and Docker data on HDD.


    The first variant wears out the SD card. The third variant is messy and doesn't provide improved performance. Except possibly if you use a SSD instead of a HDD.


    I use the second variant. I also have one OMV4 HC1 with just boot on the SD card and the rest on a 2TB hybrid SSD/HDD, it works fine, but is a mess to backup compared to just cloning a SD card. When I upgrade it I will put boot and rootfs back on the SD card, and docker on the hybrid SSD/HDD.

    Thanks Adoby I'm not fussed about performance improvements using HDD as rootfs. You point regarding a messy backup/restore solution, I agree totally. While I await any other kind replies I'd like to ask about your use of/or lack of collectd and the OMV monitoring. I tested using telegraf in Docker (instead of collectd) and had some stumbling blocks for some of the plugins which I didn't want to take further, but it's not totally ruled out.


    So, if I use the 2nd variant as you suggest, yes I can see how to work it for Docker, but how about collectd and monitoring (which writes lots to disk). My thoughts on this so far have been to use the Network plugin to send data to influxdb running as container, and possibly disabled rrdcache (not sure how yet - remove this plugin config maybe?). Not sure what to do about the collectd 'buffer' though (enter proper term), since collectd only sends the data to influxdb every x time interval after it's buffered some data up. I'm not sure where this gets stored, obviously I don't want it to be temporarily stored on the SDCard.

    The other thing is logs, I want these kept, but based on limited research so far It looks like I can copy to SDCard or somewhere else using cron. Not sure how I go about flushing the ram though so it doesn't get bogged down after a long time? Would this be the correct path or do I need to look into another option?

    nanopi m4v2 w/ 4xSATA HAT, 4GB SDCard Boot + Root (testing), 320GB HDD OMVdata, 2x 1TB HDD Data

    OMV 5.x

  • Thanks for the reply Adoby, I'll give your recommendation of variation 2 a trial run and will try to tackle some of the issues for me that remain with it.


    If anyone else wants to chime in please feel free.


    In addition I'll post back any findings as it may help others.

    nanopi m4v2 w/ 4xSATA HAT, 4GB SDCard Boot + Root (testing), 320GB HDD OMVdata, 2x 1TB HDD Data

    OMV 5.x

  • Post by macom ().

    This post was deleted by the author themselves ().

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!