RAID, RAM and Cache

    • Major Upgrade

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • RAID, RAM and Cache

      Hi,

      I am not an expert on this, but I have been investigating and I have several doubts.

      I have a question regarding the use of RAM as a cache of RAID controllers. I
      have read that you can use some of the RAM as a disk cache and I was
      wondering if at least a RAID controller built into the motherboard could
      use part of the RAM with cache. And even if it could also be used as a cache of a RAID controller card, although this I see more difficult. I thought I read in a forum that if the motherboard allows it in any way, it could become possible.

      The post was edited 1 time, last by nmarmon ().

    • nmarmon wrote:

      I would like to know if it is possible to use part of the RAM of a motherboard as a cache of a RAID controller. It
      may sound a little absurd, but I've seen RAID cards out there that
      apparently have not, and I wondered if they were pulling RAM.
      Most real raid cards have cache on the card. No idea how you would use motherboard ram as cache or why you would want to. If the card doesn't have it, there would probably be very little (if any) benefit.

      nmarmon wrote:

      said motherboard must have integrated RAID
      Don't use the fake raid that most desktop boards have. It is worse than software raid for performance and you usually can't move it to another board if it fails.
      omv 4.0.14 arrakis | 64 bit | 4.13 backports kernel | omvextrasorg 4.1.1
      omv-extras.org plugins source code and issue tracker - github.com/OpenMediaVault-Plugin-Developers

      Please don't PM for support... Too many PMs!
    • nmarmon wrote:

      Sorry I have reformulated the thread question, because I think I had not expressed it well. I think now I have been more precise in what I look for.
      Maybe specific motherboard raid implementations allow you to use motherboard ram as cache. I have not seen one but I generally ignore onboard raid unless it is a true raid controller like some server motherboards have (my supermicro has an LSI raid controller). That said, I still think this is a waste of time since they are still pretty much software raid and their drivers are usually not good with Linux. I would either use mdadm software raid or if you really need performance, buy a real hardware raid controller. My mdadm raid arrays could easily saturate gigabit which should satisfy most.
      omv 4.0.14 arrakis | 64 bit | 4.13 backports kernel | omvextrasorg 4.1.1
      omv-extras.org plugins source code and issue tracker - github.com/OpenMediaVault-Plugin-Developers

      Please don't PM for support... Too many PMs!
    • Re,

      cabrio_leo wrote:

      Addition: ...with onboard cache and battery backup module!
      Addition 2: ... and UPS (USV in german) ...

      At least you have to dig through the masses on Caches which come in handy while using RAID:
      - HDD-Cache
      - RAID-Controller-Cache
      - possible SSD-Cache
      - RAM-Cache
      (and this are only the basis physical ones - command-caches and other "specials" not counted in)

      You have to avoid to many Cache-Stages, because that is not performing good at all (time to update the stati in every cache took longer).
      - So, on RAID it is always good to disable the HDD-Caches.
      - RAID-Controller-Caches should only be used, when BBU an UPS is active (or you don't really need your data :P)
      so ... what remains are:
      - possible SSD-Cache (may be sounds unfamilar, but with modern SSDs it can be a good enhancement even to home-NAS-boxes)
      - RAM-Cache

      RAM-Cache is always used and os-dependent - and in case of linux, always the best choice. Linux does RAM-Caching every time it has free ("unused") RAM in larger blocks available. Linux will do the filecaching, while md on top makes the command-caching and the "os-NCQ". It's a good, very old and approved technique.

      nmarmon wrote:

      I have read that you can use some of the RAM as a disk cache and I was wondering if at least a RAID controller built into the motherboard could use part of the RAM with cache.
      It's going tricky here, mixing things up - you can use RAM as file-cache (RAM-Disk) and use RAM as Data-Cache (Data can be files, temp's and commands/pipes, ... whatever), which are completely other things. RAID-Controller-Cache is both, and Linux "cached mem" is it too - both needs special organisation.
      EDIT: organisation means here not only data organisation, it includes the hit-strategies and algotithms which are needed and used for good cache-performance!

      Every Fake-RAID-Driver uses a little part of RAM as buffer (not cache). Why should such driver use extra RAM for caching, while the OS does it too? I never knew a Fake-RAID-driver with a special Cache-Setting - of course it sound logical, but not for the vendors, because the have to develop own Algorithms and Strategies, which will make the driver more expensive ... capitalism ;)

      And YES, it is generally possible to generate "own" (RAID-)Caches in RAM, but why? Linux does it ... since ... *erm* ... nearly ever. :D
      (and yes, i saw some software (for Windows) which claimed to speed up your PC whil caching data in RAM, but this were the good old days of to less RAM ans slow devices (floppies and IDE-Drives)).

      Sc0rp