Skip to main content

Idea: Relatively Reliable Ram Drive Server

Idea:Relatively Reliable Ram Disk Server (specs updated 2012-Q2)


Two commodity servers

Parts (for each)
  • MB with 8 or 16 DIMM slots
  • Two 10G ethernet cards for storage
  • SATA RAID
  • Four smallish enterprise drives:
    • Two drives in a mirrored pair for OS
    • Two drives for backing store
  • 32GB DIMMs of ECC Registered RAM
Parts for file server node
  • Bonded pair of 1G or 10G cards
    Building
    • Make a large RAM disk on each (leave 2GB for OS)
    • On one machine:
      • Share the RAM disk with the other machine via one crossover network (one of the 10G cards on each machine) via iSCSI
      • Share pair of backing drives via iSCSI
    • On other machine (file server)
      • Using md, on each, mirror the iSCSI RAM disk to the local RAM disk.
      • Make a filesystem on mirrored RAM disk
      • Share RAM filesystem via NFS and SAMBA.
      • Combine iSCSI drives and local drives into RAID 0+1 backing store. 
      • Make journaled filesytem on backing store disk.
      • Mount backing store
    • Put each server on a sizable independent UPS with a serial/USB monitor to smooth out uptime (5h-10h)
    • Configure serial trigger from UPS such that if the AC cuts on either of them the file server will stop sharing and then run an rsnapshot backup to the backing store.
    • Run rsnapshot to flush the RAM filesystems every 30 minutes.
    • Configure RAM disk startup and shutdown
      • On shutdown have file server to rsnapshot RAM disk to backing store before coming down.
      • On start up check uptime on other server to see if it went down as well.
        • If so, have file server rsnapshot to RAM disk before starting file sharing services.
        • If not, have file server recover RAM disk from mirror.
    Note: If you have the file server on a 10G network with three 10G cards, you could share the RAM disk itself as an iSCSI target and use dd to back it off to the backing store.


    • You can use these RAM LUNs in combination with flachcache or bcache to speed up access to existing physical LUNs.  Not necessarily safe ;-), but if you need cheap speed, these will work.

      Comments

      Popular posts from this blog

      PowerShell One-Liners

      Introduction

      PowerShell is Microsoft's shell for their product lines. It's now on version 3.0. If you miss the power of the command line while using Windows on either your laptop or servers, PowerShell provides that power.


      Important concepts:
      Almost all aspects of the Microsoft ecosystem are objects within an overarching structure. You query and manipulate this structure and its objects with PowerShell. This includes all aspects of SharePoint, Active Directory, and Exchange. Other companies, like VMware (see below) have also written PowerShell modules.This "object nature" means that PowerShell pipes pass objects and properties, not just text. Variables store data-structures of objects. 
      One-liners

      Note: Unwrap the code lines before you use them.

      Get Help

      Get the usage of the command "Select-Object":

      Get-Help Select-Object

      Built-in examples for the command "Select-Object":

      Get-Help Select-Object -examples | more

      Get the list of all commands and sort it:

      Fixing SSH connection problems in EGit in Eclipse

      Note: I posted a version of this on Stack Overflow. Errors can occur when there is an underlying SSH authentication issue, like having the wrong public key on the git remote server or if the git remote server changed its SSH host key. Often the an SSH error will appear as: "Invalid remote: origin: Invalid remote: origin"
      Eclipse will use the .ssh directory you specify in Preferences -> General -> Network Connections -> SSH2 for its ssh configuration. Set it "{your default user directory}.ssh\" . To fix things, first you need to determine which ssh client you are using for Git. This is stored in the GIT_SSH environmental variable. Right-click on "Computer" (Windows 7), then choose Properties -> Advanced System Settings -> Environment Variables. If GIT_SSH contains a path to plink.exe, you are using the PuTTY stack. To get your public key, open PuTTYgen.exe and then load your private key file (*.ppk). The listed public key should match the pu…

      How to play a video on a Raspberry Pi Desktop by double-clicking on a file...

      The article describes how to open video, audio, and other media files in the Raspberry Pi desktop (the LXDE file manager) using the GPU-based player program.



      Does double-clicking on a video file in Raspbian result in slow blocky playback in SMPlayer and VLC on your Raspberry Pi? The short answer is that those video players will not work because at this time (Nov. 2013), they do not make use of the GPU on the Raspberry Pi. You need to use the hardware accelerated player, omxplayer, that is used in XBMC Live and OpenELEC.  The problem is that omxplayer is a command line player that is designed to be embedded in the XBMC based distributions.  I present below a way to make it play videos, if you double-click them in the Raspbian Desktop. Others have presented this method, but I've added a little bit of abstraction to make management easier. To start, open LXTerminal and the follow the process below.
      Step One - Get rid of the CPU-based media players
      sudo aptitude remove vlc smplayer

      St…