Pessoal, neste artigo vou falar rapidamente sobre o aplicativo RapidDisk (rxdsk), criado pelo ilustríssimo Petros Koutoupis.

O RapidDisk serve como um sistema de arquivos “na memória”, onde podemos armazenar e acessar arquivos numa velocidade incrívelmente maior do que em discos convencionais.
Na realidade já existem outros aplicativos com o mesmo princípio do que o RapidDisk, porém o rxdsk traz a funcionalidade de alocação dinâmica de espaço, ou seja, o aplicativo não reserva imediatamente a quantidade de memória informada.

Onde usar o RapidDisk?

Meu pequeno e jovem gafanhoto, o uso do rxdsk é vasto, podemos usar para armazenar páginas web, para servidores ftp ou para armazenar arquivos de cache de banco.
É válido mencionar que existe uma funcionalidade chamada RapidCache, disponível nas novas versões do rxdsk, onde podemos pegar uma partição num disco e carregá-la diretamente para a memória. O RapidCache mantém o sincronismo entre o disco e a partição em memória ( mas lembre-se que neste caso ocorrerá degradação da performance do rxdsk).

Instalando o RapidDisk

Infelizmente ( ou felizmente ) o RapidDisk está disponível apenas via git, o link para o GIT do RapidDisk está em: http://rapiddisk.org/index.php?title=Download_and_Installation.
A instalação é muito tranquila, apenas serão necessários pacotes para a compilação do aplicativo ( make e gcc ) e os headers do kernel.

Observe abaixo como fiz para instalar o rapidDisk em um Debian 6.0.6:

apt-get install git make linux-source-2.6.32 gcc zlib1g-dev -y
mkdir -p  /opt/install/rxdsk
cd /opt/install/rxdsk
git clone http://git.rapiddisk.org/rxdsk-2.x.git
cd rxdsk-2.x/
make
make install

Observe que usamos o RapidDisk 2! Nele temos a função RapidCache, que permite o mapeamento de um disco para uma partição na memória!

Após a compilação e instalação do RapidDisk, um novo aplicativo estará disponível: rxadm. Com ele faremos a criação de nossa partição “rápida” e mapearemos ela com um disco físico.

Mas antes de iniciar o uso do rxdsk, carregue os módulos com:

modprobe rxdsk
modprobe rxcache

Agora sim, tudo está pronto para o uso.

Criando uma partição e mapeando ao disco.

No exemplo abaixo, vou criar uma partição de 32 MB ( apenas para teste ) e mapeá-la ao meu disco, que já existe, /dev/sdb1.

Primeiro vamos criar nosso nova partição com 32M.

rxadm --attach 32

* Para criar novas partiçoes, use a opção –attach e para removê-las, use –detach.

Observe que agora já temos uma partição configurada.

root@bouwen01:/tmp# rxadm --list
rxadm 2.8
Copyright 2011-2013 Petros Koutoupis

List of rxdsk device(s):

 RapidDisk Device 1: rxd0
	Size: 33554432

List of rxcache mapping(s):

  None

Se você quiser, pode criar um filesystem no /dev/rxd0 e montá-lo, porém ele não estará persistido em um disco físico! Se quiser manter persistido e sincronizado com um disco, continue lendo 😉

Para persistir o novo dispositivo com um disco use a opção map, como no exemplo abaixo:

root@bouwen01:/tmp# rxadm --rxc-map rxd0 /dev/sdb1 4
rxadm 2.8
Copyright 2011-2013 Petros Koutoupis

Command to map rxc0 with rxd0 and /dev/sdb1 has been sent.
Verify with "--list"

Veja que informamos o dispositivo novo rxd0 e uma partição em disco /dev/sdb1.

Se montarmos nosso dispositivo mapeado /dev/mapper/rxc0, vamos observar que os dados de sdb1 estarão acessíveis.

root@bouwen01:/tmp# mount /dev/mapper/rxc0 /mnt/rxdsk/
root@bouwen01:/tmp# ls -la /mnt/rxdsk/
total 16017
drwxr-xr-x 3 root root     1024 Feb 15 13:57 .
drwxr-xr-x 3 root root     4096 Feb 15 13:58 ..
-rw-r--r-- 1 root root 16384000 Feb 15 13:57 file16M.zero
drwx------ 2 root root    12288 Feb 15 13:55 lost+found

Pronto, agora você pode usar tranquilamente seu disco!
Toda a alteração feita será aplicada também no disco físico.

Observações gerais

Atente para alguns detalhes:

Cuidado ao usar em ambientes Oracle Database: Infelizmente o RapidDisk não está homologado para os bancos Oracle e, se seu banco acabar sendo corrompido devido o uso do rxdsk, você não terá suporte.
Observe o path: A partição mapeada fica em /dev/mapper e a partição virtual fica em /dev
Outros projetos de RamDisk: São vários, mas os mais interessantes são: RamCloud, dm-cache e flashcache.

Bem pessoal, espero que este breve artigo possa ajudá-los.
Abraço!