Version | 1.0 |
---|---|
Date | 2020-08-27 |
Authors | Gabryel Mason-Williams - Diamond Light Source |
Authors | Dave Bond - Diamond Light Source |
Authors | Mark Basham - Rosalind Franklin Institute and Diamond Light Source |
GRAM is a kernel module based on the compression RAM Block Device ZRAM (https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html). The source code of ZRAM was reworked to remove compression, meaning it has the performance of ZRAM however but does not compress data. GRAM was created for DisTRaC https://github.com/DiamondLightSource/DisTRaC.
- Linux Kernel 3.10.* (Tested on Redhat 7)
- Root privileges to create and remove block device
To created the gram module run make
inside the gram folder; this will produce the gram.ko
file this is the kernel module.
To active, this kernel module run ./create.sh passing the number of RAM blocks (-n=) and size of the RAM block (-s=), running./create.sh -n=1 -s=50G
will create 1 RAM Block with the size of 50G.
Running lsblk
should return something similar, where the dots are other block devices details:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
. . . . . . . .
. . . . . . . .
gram0 252:0 0 50G 0 disk
. . . . . . . .
To create more block devices, increase the number speficifed in (-n=). ./create.sh -n=5 -s=10G
will create 5 RAM blocks, each with a size of 10G.
Running lsblk
should return something similar, where the dots are other block devices details:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
. . . . . . . .
. . . . . . . .
gram0 252:0 0 10G 0 disk
gram1 252:1 0 10G 0 disk
gram2 252:2 0 10G 0 disk
gram3 252:3 0 10G 0 disk
gram4 252:4 0 10G 0 disk
. . . . . . . .
These devices can be found in /dev/gram[0..N]
where N is the number of devices.
To add physical and logical volumes to GRAM blocks, lvm.conf needs to be modified to accept GRAM types. Adding types = ['gram', 100]
within devices{...}
section will allow the creation of physical and logical volumes.
After creating physical and logical volumes, this device can be treated as a standard block device.
To stop using GRAM remove any physical and logical volumes and run
rmmod gram
or run ./remove.sh
this removes the block devices from the system, and free's the memory claimed.
To remove files created when running make
run make clean
bear in mind this will remove gram.ko
.
If there are any questions, please contact scicomp@diamond.ac.uk