mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2026-01-27 10:22:15 +00:00
Added PersistWorkflow and SupportedHardware docs
This commit is contained in:
55
docs/PersistWorkflow.md
Normal file
55
docs/PersistWorkflow.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Rationale
|
||||
|
||||
By default, the ONL file system is NOT persistent, meaning that if you
|
||||
reboot, your changes will dissapear (!!). While this may sound suboptimal
|
||||
at first, it does have the incredibly nice property of ensuring that many
|
||||
classes of configuration and other problems can go away with a reboot.
|
||||
This is particularly nice when you have a switch that may be headless
|
||||
(no permanently connected console cable or keyboard).
|
||||
|
||||
ONL accomplishes this with OverlayFS
|
||||
(https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt).
|
||||
As described at http://opennetlinux.org/docs/bootprocess, the ONL
|
||||
switch image (.SWI file) contains a read-only root file system image.
|
||||
The default ONL root file system is then a copy-on-write (using overlayfs)
|
||||
view into that file system image.
|
||||
|
||||
It has the following properites:
|
||||
|
||||
* Any file that is editted/removed/etc is transparently copied into a RAM disk via overlayfs
|
||||
* Thus, any changes to files appear as you would expect, until a reboot
|
||||
* Any file that is uneditted remains backed by the /mnt/flash2 file system, so you
|
||||
do not need to have enough RAM to store the entire rootfs. This is important with
|
||||
switches that do not have much RAM to begin with.
|
||||
|
||||
That said, ONL does have a provision to persist explicitly marked files
|
||||
across a reboot. This document shows how this works.
|
||||
|
||||
|
||||
# Persisting Files
|
||||
|
||||
Just run `/sbin/persist /path/to/file` to mark a file as 'persisted'. This
|
||||
file will be saved to the /mnt/flash persistent storage device and automatically
|
||||
put back into place on reboot. Once a file has been persisted, it will always
|
||||
be persisted across reboots. If you really want to unpersist a file, manually remove it from
|
||||
'/persist/rootfs/path/to/file'.
|
||||
|
||||
# Under the covers
|
||||
|
||||
Running `/sbin/persist file` makes a hardlink of that file, e.g., /foo/bar/baz, to
|
||||
/persist/rootfs/foo/bar/baz.
|
||||
|
||||
The `/etc/init.d/restorepersist` script runs on bootup and does a number of things:
|
||||
|
||||
* Restores the previously saved cpio archive from /mnt/flash/persist/rootfs into both / and /persist/rootfs
|
||||
* Sets up hard links between /persist/rootfs/foo/bar/baz and /foo/bar/baz
|
||||
* Starts a `watchdir` process for changes in /persist/rootfs
|
||||
|
||||
`watchdir` in turn uses the inotify(3) subsystem to, upon a change, run `/sbin/savepersist /persist/rootfs`.
|
||||
|
||||
And so, any change to a persisted file is noticed by watchdir and saved
|
||||
to /mnt/flash in a cpio archive automatically using /sbin/savepersist.
|
||||
|
||||
# Limitations
|
||||
|
||||
You cannot persist any file that is read/used before `/etc/rcS.d/S03restorepersist` is run, including this script itself. Also, it is NOT recommended for persisting logging files, e.g., /var/log/*. While technically this will work, you will likely quickly exceed the write cycle limit of the underlying flash memory. Better to use a syslog server.
|
||||
62
docs/SupportedHardware.md
Normal file
62
docs/SupportedHardware.md
Normal file
@@ -0,0 +1,62 @@
|
||||
Hardware Support
|
||||
================
|
||||
Because of the HTML formatting, this page may be best viewed from
|
||||
<http://opennetlinux.org/hcl>
|
||||
|
||||
|
||||
Quanta
|
||||
------
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr class="info">
|
||||
<th> Device <th> Ports <th> CPU <th> Forwarding <th> Support Status </tr>
|
||||
</thead>
|
||||
<tr> <td> QuantaMesh T1048-LB9 <td> 48x1G + 4x10G <td> FreeScale P2020 <td> Broadcom BCM56534 (Firebolt3) <td> Supported and Tested </tr>
|
||||
<tr> <td> QuantaMesh T1048-LB9A <td> 48x1G + 4x10G <td> FreeScale P2020 <td> Broadcom BCM56534 (Firebolt3) <td> Supported, no ONIE, not regularly tested </tr>
|
||||
<tr> <td> QuantaMesh T3048-LY2 <td> 48x10G + 4x40G <td> FreeScale P2020 <td> Broadcom BCM56846 (Trident+) <td> Supported and Tested </tr>
|
||||
<tr> <td> QuantaMesh T3048-LY8 <td> 48x10G + 6x40G <td> Intel Rangely C2758 x86 <td> Broadcom BCM56854 (Trident2) <td> Supported and run in the lab </tr>
|
||||
<tr> <td> QuantaMesh T5032-LY6 <td> 32x40G <td> Intel Rangely C2758 x86 <td> Broadcom BCM56850 (Trident2) <td> Supported and run in the lab </tr>
|
||||
</table>
|
||||
|
||||
|
||||
Accton/Edge-Core
|
||||
------
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr class="info">
|
||||
<th> Device <th> Ports <th> CPU <th> Forwarding <th> Support Status </tr>
|
||||
</thead>
|
||||
<tr> <td> Accton AS4600-54T <td> 48x1G + 4x10G <td> FreeScale P2020 <td> Broadcom BCM56540 (Apollo2) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS5600-52X <td> 48x10G + 4x40G <td> FreeScale P2020 <td> Broadcom BCM56846 (Trident+) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS5610-52X <td> 48x10G + 4x40G <td> FreeScale P2020 <td> Broadcom BCM56846 (Trident+) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS5710-54X <td> 48x10G + 6x40G <td> FreeScale P2041 <td> Broadcom BCM56854 (Trident2) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS6700-32X <td> 32x40G <td> FreeScale P2041 <td> Broadcom BCM56850 (Trident2) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS5712-54X <td> 48x10G + 6x40G <td> Intel Rangely C2538 x86 <td> Broadcom BCM56854 (Trident2) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS6712-32X <td> 32x40G <td> Intel Rangely C2538 x86 <td> Broadcom BCM56850 (Trident2) <td> Supported and Tested </tr>
|
||||
<tr> <td> Accton AS5812-54T <td> 48x10G + 6x40G <td> Intel Rangely C2538 x86 <td> Broadcom BCM56864 (Trident2+) <td> Supported </tr>
|
||||
<tr> <td> Accton AS5812-54X <td> 48x10G + 6x40G <td> Intel Rangely C2538 x86 <td> Broadcom BCM56864 (Trident2+) <td> Supported </tr>
|
||||
<tr> <td> Accton AS6812-32X <td> 32x40G <td> Intel Rangely C2538 x86 <td> Broadcom BCM56864 (Trident2+) <td> Supported </tr>
|
||||
</table>
|
||||
|
||||
DNI/Agema
|
||||
---
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr class="info">
|
||||
<th> Device <th> Ports <th> CPU <th> Forwarding <th> Support Status </tr>
|
||||
</thead>
|
||||
<tr> <td> AG-7448CU <td> 48x10G + 4x40G <td> FreeScale P2020 <td> Broadcom BCM56845 (Trident) <td> Supported and Tested </tr>
|
||||
</table>
|
||||
|
||||
Dell
|
||||
---
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr class="info">
|
||||
<th> Device <th> Ports <th> CPU <th> Forwarding <th> Support Status </tr>
|
||||
</thead>
|
||||
<tr> <td> S4810-ON <td> 48x10G + 4x40G <td> FreeScale P2020 <td> Broadcom BCM56845 (Trident) <td> Supported and Tested </tr>
|
||||
<tr> <td> S4048-ON <td> 48x10G + 6x40G <td> Intel Atom C2338 <td> Broadcom BCM56854 (Trident2) <td> Supported and Tested </tr>
|
||||
<tr> <td> S6000-ON <td> 32x40G <td> Intel Atom S1220 <td> Broadcom BCM56850 (Trident2) <td> Supported and Tested </tr>
|
||||
|
||||
</table>
|
||||
Reference in New Issue
Block a user