Skip to content

Commit

Permalink
requirements docs improved with missing information fixed (#142)
Browse files Browse the repository at this point in the history
* requirements docs improved with missing information fixed

* Addressed and closed #131, requirements talk about installation,
  not updates (not manageable updates), so the wording is correct because
  later on there are points about that, but i handled the issue in this
  commit in better way for.
    * Improve the very vague requirements documentation, that is also
      ambiguous in some way.
    * Not all software requirements are handled by the OS, for example
      we need a valid network for communications, if the network is unreachable
      clients are unable to reach any shared resources.
    * OMV is the most flexible NAS system. Pointed that out and tried
      to clarify all the needs about hardware and software.
    * Separate software requirements and hardware requirements. Previous
      document was very mixed about it, maybe this commit featured a too
      long one. I'm open to suggestions and leave this PR open to the
      editors and maintainers for.
    * Pointed out that Debian OS is the main software requirement. So
      then hardware requirements will rely based on OS hardware support!
    * Pointed out that NIC is a missing hardware requirement and why. It's
      a NAS system and wrote about that terminology as well.
    * Software requirements are handled by the OS and depend on it, but
      some packages were pointed out that are important to it, so there
      will be no confusion about it
* The page should be titled "requirements" because hardware is a prerequisite,
  but it depends on the core software - the Debian OS, if such hardware is
  not supported, OMV would not be able to be installed or would not be able
  to work properly... so prerequisites as a list are very confusing about it
* Set the minimum requirements to be adequate and manageable:
    * A 1.5G root filesystem partition was sufficient using the netinstall
      iso and turning off recommendations, then sdisable auto-updates and
      create a cron job to clean up the apt package cache storage daily.
      This does not allow upgrades, but does allow updates. It means
      a 4G disk system drive is possible and valild.  of course, these are
      for expert users... so I wrote sections of recommendations for novice users.
    * a 100M swap was sufficient. I configured Linux to not use swap at all...
      but novice users won't have the necessary skills, so... of course,
      these are for expert users... so I wrote sections of recommendations
      for novice users.
* setting up a NAS system is easy with OMV, but a minimum of knowledge is
  required for inexperienced users, so I wrote such needs in each section.
  **Warning** I indicated that 1 disk is enough for both: system drive storage
  plus mixed with Data storage, that is basically true and officially supported,
  if you, as an expert administrator, simply install OMV on top of a fresh
  Debian setup customized with a free partition available for OMV data drive
  storage. This could be done by leaving a free partition already formatted also!

* Update prerequisites.rst per request!

fix misspelled redundancy

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst due misc spelling

* dot point missing

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst per requested

* missing dot point at end of paragraph

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst fix missing context for data drive

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst per request!

* mispelled word

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst per request! misspelled

* miscpelled xpected

Co-authored-by: Volker Theile <[email protected]>

* Update prerequisites.rst per request! resume context for IDE

Co-authored-by: Volker Theile <[email protected]>

* per request! fix several miscspelled and beter context for

* Add a warning that 32bit works, but with OMV6 32bit support
  has been stopped officially. It should work, but it is not tested
  nor new features take care that they might not work on 32bit systems,
  this is thanks to arch independient technology of OMV development
* Fix severals end of paragraphs without dot point.
* Fix severals miscspelled Gib to GiB
* Fix severals miscspelled words, like xpected, triks and "cos"..
* Provide better context for "Spaghetti" sentences, remade all of them
  also those structurated as bumpy or vagues

* update requirements : use x86/x64 for AMD64 and detail ARM also

* Fix miscspelled archs, sorry this was very rare
* x86-64, x64, x86_64 and x86 are valids for AMD64 cos have
  sabe base and same maning based on anunce in 1999
* separate names on the ARM cases, Debian already supports
  the 32bit of ARM but i guess OMV will works as same!
* 32bit x86 must works cos is the same case, OMV just
  relies on Debian OS so all the pieces need will be there!
* Improved filesystem details on technical notes about
  lifetime for SSD and complex features like compression.

* Update prerequisites.rst disks list size respect brands hardware

* add abbreviations for System disk drive and Data disk drives, 
  usefully and reused for software part items in table
* the hardware section its not about size, its about hardware 
  per se, although the issue comes down to what Debian 
  supports, devices should really be cited based on use and
  not based on minimum support, since Debian tries to cover
  everything while OMV is oriented to a specific task. The 
  example is the difference between WD Black and WD Green, 
  the second will wear out quickly if there is a lot of use.
* Same change for software drives, use abbreviations for 
  the  item list, specified the size minimal disk, cos Windoze 
  users always think that one disk is one partition, so 
  minimize this table list to that, details such part in the 
  paragraphs below

* requirements: remove brands hardware, remove old oldstable, miscspelled fixes, swap optional

* taking in consideration that SSD and HDD are still made
  and now there is the HHD (Helium Hard drives) those with helium inside
  for high demand storage .. in speciall NAS systems.
  the SDD is not the best for NAS systems, HDD/HHD are the best..
  so i included the "HHD" inside the formula.. so this information
  will not be out of date in many years.. cos spining disks still
  are the best for long data

* requirements: fix table mailformed

* https://github.com/openmediavault/openmediavault-docs/actions/runs/12920764345/job/36033630346?pr=142
* prerequisites.rst:16: (ERROR/3) Malformed table.
* prerequisites.rst:107: (ERROR/3) Malformed table.

---------

Co-authored-by: Volker Theile <[email protected]>
  • Loading branch information
mckaygerhard and votdev authored Jan 24, 2025
1 parent d1f68bf commit 6f8aa59
Showing 1 changed file with 260 additions and 20 deletions.
280 changes: 260 additions & 20 deletions prerequisites.rst
Original file line number Diff line number Diff line change
@@ -1,35 +1,275 @@
Prerequisites
Requisites
=============

Before installing |omv| make sure your hardware is supported.
The |omv| system is the most flexible Network Attached Storage (NAS) on the market,
this is because it relies on the operating system Debian GNU/Linux [9]_

* **CPU**: Any x86-64 or ARM compatible processor
* **RAM**: 1 GiB capacity
* **HDD**:
Any system has software and hardware requirements, also minimal
ones and recommended ones.

* **System Drive**: min. 4 GiB capacity (plus the capacity of the RAM)
* **Data Drive**: capacity according to your needs
Hardware requirements
---------------------

.. note::
The whole disc will be occupied by the system and swap space [1]_, so size
doesn't matter so much. Data storage on the system disc is not supported.
====== ================ ========= ========== ==================================
Item supported Minimal Best Recommendation
====== ================ ========= ========== ==================================
DRIV SSD/HDD/USB... 1,any 2,HHD 2 disks: Seagate Firecuda, WD Black, IronWolf
RAM 1GiB+ any 1GiB 4Gig 8GiB+ dual channel DDR4/DDR3
NIC WiFi/Ether/USB any 10Mb NIC 1GiB NIC or 10Gb NICs: SFP fiber
CPU arm,x86,x64 32bit 64bit Intel Dual Core, AMD Ryzen
====== ================ ========= ========== ==================================

.. note::
Take into account in your considerations about the size of the system disk
that various plugins such as `openmediavault-podman` or `openmediavault-k8s`
store their data (e.g. container images) on the system disk.
The storage drives (DRIV)
^^^^^^^^^^^^^^^^^^^^^^^^^

Spinning Harddisk, SSD [2]_, Disk-on-Module [3]_, CompactFlash [4]_ or USB thumb
drive [5]_ type drives can be used as system drive.
This is the key of the system. |omv| supports any drive hardware and any drive
interface (SATA, ISE, SCSI, USB, SERIAL) but information and management will
depend on the disk drives supported by the Debian operating system.
**Supported Debian OS versions can be checked in the** :doc:`releases section </releases>`.

Modern storage drives have firmware inside that reports several attributes.
Any storage drives is supported but |omv| only supports SMART for those
disks that are connected to an HBA in pass-through mode.

The system manages two types of storage unit classification:

System drive storage (SDS)
The Storage Disk Drive(s) used to put the system program files.
**This system drive (which can consist of several partitions)
cannot officially be used for shared resources or as user data drive**.
The recommendation for the system drive(s) hardware could be older spinning
Hard Disk Drives (HDD), Disk-on-Module [3]_, CompactFlash [4]_ or thumb drives (USB),
the Solid State Disks (SDD [2]_) must be managed. Best option are
the Helium Hard Drives (HHD).

Data drive storage (DDS)
The storage disk drive(s) where the user data will be stored. **Cannot be
the same of the system drive(s) and sizes will depend of the usage of the stored user data**.
Shared resources are managed over partitions, which is discussed in the software
requirements topic below. The recommendation for the Data drives must be
Solid State Disks (SSD [2]_ disks) for best performance or spinning
Hard Disk Drives (HDD) for better device durability over time.

The memory (RAM)
^^^^^^^^^^^^^^^^

Enough RAM is vital to maintaining peak performance. There are several combinations
of installation sizes but the **recommendation is at least 4GiB for novice administrators**.

For best practice you should have 8GiB of RAM for basic operations in default installation,
and no matter the size, RAM must be configured in Dual Channel mode [8]_
inclusivelly if there are little amount of, it will improve performance.

Unless other NAS systems the |omv| system can run in at least 1GiB of RAM, but
of course will need expertise.

The communication card (NIC)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A NAS system as means is a network oriented system, of course |omv| is the
most flexible NAS system in the world and allows multiple ways of communication,
this is becouse |omv| offers several modes of shared resources like RSYNC that
do not depends on networking. But there are few key points:

- The NAS write speed to storage is limited to the speed of your NAS computer NIC card.
- The NAS write speed to storage is limited to the speed of your network.
- Speed of writing to the storage depends on ratio of the number of users accessing it.

Full-duplex NICs are recommended, half-duplex NICs typically offer 10/100 Mbit/s
and storage drives far exceed those speeds but are of course supported by |omv|.

Any supported NIC vendor is determined by the support of the operating system
where |omv| system resides and runs, which is Debian GNU/Linux.

The architecture (CPU)
^^^^^^^^^^^^^^^^^^^^^^

We have already denoted in the requirements table the supported architectures or
processors (which reduces and determines which computers can be used) but this is
really a reference since it is determined by the support of the operating system
where |omv| system resides and runs, which is Debian GNU/Linux.

Any computer system supported by the common requirements of Debian operating
system could be an |omv| system installation target. **Currently supported are
AMD64 (x86/x86-64 64bits), i386 (x86 32bits), ARMv7+ARMv8 (arm64 64bits armel/armhf 32bits)**.
The i386 version is no longer officially supported since version 6, although
it is still published by the project due to the nature of |omv| technology.

Software requirements
---------------------

====== ================= ============== ================ =========================================
Item Software Minimal Best Recommendation
====== ================= ============== ================ =========================================
OS Debian Linux oldstable stable Current stable (plus 1 month released)
BOOT BIOS,UBOOT,UEFI BIOS,mbr BIOS,gpt Disable Secure boot, gpt table
SDS HDD,SSD,USB... 1, 4GiB 2, 120+500GiB Disk drive with 120G root size, 8G swap size
DDS HDD,SSD,USB... 0 or any HHD,1 per share One disk or part per shared resource
NET LAN,WAN,SAN,VPN LAN SAN,PAN,LAN Fiber IPv4, or at least cable LAN
====== ================= ============== ================ =========================================

The operating system (OS)
^^^^^^^^^^^^^^^^^^^^^^^^^

The |omv| is a piece of software, it resides and runs under a key software OS
named Debian GNU/Linux as "the universal operating system" [9]_

**Supported Debian OS versions can be checked in the** :doc:`releases section </releases>`.

While possible to deploy in a virtual environment, depending of the nature of
virtualization it will degrade the performance access in various ways. Installation
in LXC or any other container based solution is not supported.

Whatever the situation, the |omv| assumes that target operating system does not
have any previous installation of any of the programs used by |omv| dependencies:

============= ============== ================= ==========================================
software package related to Observations
============= ============== ================= ==========================================
http server nginx |webui| port 80 must be free at installation
http system php |webui| only OS php packages wil be used!
display GUI lighdm,xdm.. Desktop install **Conflicts, any will be deinstalled**
network man netplan.io Networking network is managed by |omv| with netplan
ssh server ssh Remote access any configuration will be managed
smb server samba Shared drives any configuration will be managed
quota man quota Quota manage any configuration will be managed
============= ============== ================= ==========================================

The device boot (BOOT)
^^^^^^^^^^^^^^^^^^^^^^^^^

The boot type and its support is determined by the Debian operating system
which supports BIOS, UEFI, PXE, UBOOT and many others, the configurations
of these depend on the installation of the operating system and once done
the |omv| can be installed without problems.

However the downloadable and ready-to-use ISO image from the official |omv| website
only supports AMD64 with BIOS mode boot at the moment. If you want to have |omv| on
other computers with another boot type/mode, then you should install Debian first
and then :doc:`manually</installation/on_debian>` |omv|.

**Supported Debian OS versions can be checked in the** :doc:`releases section </releases>`.

The system drive storage (SDS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Any brand of storage disk will be supported as long as it is supported by
the Debian operating system version, since it is where |omv| system resides
and runs, which is Debian GNU/Linux, check it at the :doc:`releases section </releases>`.

The system storage disk will be fully managed and taken over by |omv| after
installed. In case of the official ISO installation, will automatically partition
the system storage disk drive into 3 partitons. Consult the next table for.

In case of a manual installation on a previous Debian operating system, this
**drive should have at least two partitions**. Consult the next table for.

============ ========== =========== =======================================
Partition Mininmal Best size Mandatory
============ ========== =========== =======================================
``/boot`` 256Mib 500Mib Optional, partition used to boot
``/`` 4Gi 120GiB Yes, the partition were system install
``swap`` 100Mib 16GiB Optional, the partition for virtual ram
============ ========== =========== =======================================

The Data drive storage (DDS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The data storage disk will be partially managed by the |omv| after installation,
and only in customized installation this can be a partition of the same system drive
storage.

Each data storage drive will be managed, but regardless of the partitioning
scheme, all data drive partitions will be mounted at the ``/srv/`` path.
The **data storage drive must be a different disk drive than the system disk drive**
where the operating system is installed. **One partition of each data
drive can handle one or many shared resources.**

============== ========== =========== ========================================
Partition Min size Best size Mandatory
============== ========== =========== ========================================
``/srv/<*>`` 100Mib bigger Yes, size as need! E.g. 128GiB,500GiB,4TiB
============== ========== =========== ========================================

Technical notes
---------------

Take into **consideration that as more exquisite the customization as less supported
could be.**.

|omv| allows for minimal deployment and use of the system with very minimal
hardware/software requirements, at the cost of the key knowledge, but other NAS
systems allow ease of use at the cost of high requirements. |omv| allows both as
well in a well balanced use case! [7]_

About minimal or custom setups
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

It can be noted that |omv| systems can be installed on just 4GiB of system partition,
with no more than 1GiB of RAM and using a WiFi or USB connection to access it
remotely, on any small device such as Raspberry Pi or Banana Pi boars
which are ARM, or old i386s machines no matter is those are 32 or 64 bits,
but of course as more exquisite the configuration more knowledge will be need
as per `issue comment #131 <https://github.com/openmediavault/openmediavault-docs/issues/131#issuecomment-2546765841>`_.

Technically OMV can be installed on a single storage disk, this is possible if
it is done on a previously configured Debian system, with a free partition apart
from the 3 necessary system partitions, previously formatted and configured.
Of course this is only possible for skilled Linux users.

Drive Storage technical details
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

System Drives are not managed as same of Data Drives. System drives are not so
intensively used, but Data Drives will need tricks to extend the useful life.
Drivers support is by the project https://www.smartmontools.org/wiki/TocSupport

If you use a Flash Drive, select one with static wear leveling 6, without this
the drive will have a very short lifetime. It is also recommended to install and
activate the Flash Memory plugin.

In the same Solid State Disk, or rather Drive (SSD) for x86 based architectures, is
usually only recognized properly by the BIOS or UEFI, when in the BIOS/UEFI the
feature AHCI has been activated for SATA (instead of IDE). Modern computers have that
by default. But on old machines the default might/could be IDE.
About ARM based computers this is not a problem, when used SATA interfaces, but
on eMMCs will need some tuning because they are treated like Flash drives.

On SSDs, the cleaning action TRIM is recommended for the good performance in
the long run. Otherwise it might become slow after some time. Very old SSD's from
before 2010 usually don't support TRIM.

Take note that eMMCs, SSDs, Flash drives will have a lifetime degradation,
excessive overwrites wear out those drives faster, specially in those very cheap.

On SSDs Hibernation (suspend-to-disk) causes a huge amount of write actions,
|omv| is a server system so it is expected to stay always on or off.

About compresion or encryption
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Enabling encryption on SSDs also means more overwrites which wear out SSDs, eMMCs
or Flash drives faster.

As well as enabling compression on filesystems like Btrfs or ZFS; although Ext4
has better commit timing; a parameter with commit=600 to 800 is best
for this particular one.

Partition table technical details
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Of course, the supported partition tables will depend on the installation mode,
and |omv| can handle any type of partition table supported by the Debian operating
system. This is because to manage shares on new or uninitialized storage drives
it will need to create partitions or at least read structure of thems.

If you use a Flash Drive, select one with static wear leveling [6]_, without
this the drive will have a very short lifetime. It is also recommended to
install and activate the :ref:`Flash Memory plugin <plugin_3rd_party>`. The
entire disk is used as system disk and can not be used to store user data.

.. [1] https://en.wikipedia.org/wiki/Paging
.. [2] https://en.wikipedia.org/wiki/Solid-state_drive
.. [3] https://en.wikipedia.org/wiki/Solid-state_drive#DOM
.. [4] https://en.wikipedia.org/wiki/CompactFlash
.. [5] https://en.wikipedia.org/wiki/USB_flash_drive
.. [6] https://en.wikipedia.org/wiki/Wear_leveling
.. [7] https://forum.openmediavault.org/index.php?board/29-guides/
.. [8] https://en.wikipedia.org/wiki/Multi-channel_memory_architecture
.. [9] https://www.debian.org/intro/about.en.html#what

0 comments on commit 6f8aa59

Please sign in to comment.