FlashMemory Plugin For OMV7
Summary
The FlashMemory Plugin was designed to make booting from USB thumbdrives and SD-cards feasible and a practical
alternative to booting from a hard drive or SSD. In addition to the relative low cost, using USB thumbdrives
enable easy OS backup
options, quick recovery from boot drive failure and it saves a SATA port for a
data storage drive.
This plugin is REQUIRED, for a flash media boot drive, or it will have a short life. For an in-depth explanation see; Why is the FlashMemory Plugin Required?
Prerequisites
- This procedure applies to amd64 ISO installations only. The FlashMemory Plugin is installed by default, during scripted installs. (R-PI's, Armbian Boards, the 32bit install, and the Alternate 64bit install.)
- OMV-Extras must be installed. (See the following.)
Installation
For OMV6; installing OMV-Extras is accomplished by copying
and pasting the following wget command, on your server's command line, as root:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
Highlight the line above and hit ctrl+c. In an SSH client like PuTTY, a right mouse click will paste the line in.
Note: If you're unsure of how to get on the command line, see this reference for → installing and using PuTTY.
When the script is complete, OMV-Extra's will be installed and activated.
With OMV extra's installed, there are two choices to install the FlashMemory Plugin:
1. Installation on the command line:
apt-get install openmediavault-flashmemory
Again, paste the above into a PuTTY session command line, as described above.
2. Installation within the GUI:
The Flashmemory plugin can now be found under, System, Plugins. Find openmediavault-flashmemory 7.X, highlight it and install.
Configuration
Configuration is not necessary. When installed, the Flashmemory plugin is working as designed.
Why is the FlashMemory Plugin Required?
Wear Leveling
While modern flash media drive is solid state, it’s life is limited by the number of write cycles it can withstand before it goes “read-only”. When an OEM specified number of flash memory blocks refuse to erase, the device’s controller will set it “read only”. At that point, the device’s useful life is over.
To extend the life of flash media, most modern flash devices have “wear leveling” built into their controllers. If blocks are written, but not erased, they experience no wear. If blocks are erased, the next new write is set on adjacent blocks that have never been written before. As data is erased and written, blocks are used starting at the beginning of the device’s available storage address range and proceed, in sequence, working toward the end. When the end of the range is reached, the process starts at the beginning and cycles through again. This wear leveling process avoids writing a single location to failure, and spreads wear evenly throughout.
With wear leveling and using two drives of the same type, a drive that is twice the size will last roughly two times longer than the smaller drive. This may seem like is a strong vote for using a larger flash drive. However, when backups are considered, drives of twice the size also take twice as long to image and their image files are twice as large. (When using flash media as a boot drive, a practical trade-off should be considered in the 16 to 32GB range.)
The Purpose of the Plugin
Most writes to OMV's boot drive are entries being appended to log files. While log file entries are very small writes, that may be as little at 80 bytes, they occur on a regular basis. A write operation to a flash device is done in writable “blocks” that are, typically, 2KB or 4KB minimum regardless of how small the write may be. This results in what is called “write amplification” where numerous large segments (2 to 4KB) of the drive are written to record very small amounts of data (+/- 80 bytes). The end result is writing all of the available blocks of the flash device rapidly, to exhaustion, where it will go read-only.
The primary purpose of the Flash Memory Plugin is to reduce the frequency of writes to flash media by consolidating very small writes into one, larger, bulk write that is flushed to the boot drive on shutdown. This dramatically reduces the number of blocks physically written to the Flash Device. The plugin can reduce the number of blocks written to the Flash drive by, potentially, an order of magnitude or 1/10th the amount that would otherwise be written. By extension, a drive of a given size might last up to 10 times longer than it would without the Flash Media plugin.
It's worth noting that SSD's would benefit from the FlashMemory plugin as well.
Source Code
A Closing Note
We, who support the openmediavault project, hope you’ve found this guide to be useful and that you’ll find your openmediavault server to be efficient, easy to use, and enjoyable.
If you found this plugin guide to be helpful, please consider a modest donation to support the hosting costs of this server.
OMV-Extras.org
Venmo: ryecoaaron