静看光阴荏苒
不管不顾不问不说也不念

在ikoula的Debian9下部署rapiddisk

这里先简要介绍一下这个rapiddisk。

rapiddisk是一个可以用来创建RAMDISK(内存盘)的工具,和我前两天介绍的直接用Linux内核自带的brd模块创建RAMDISK一样。但rapiddisk有一个更高级的功能叫:“cache-map”。简单点说就是我们可以利用rapiddisk创建的内存盘给普通HDD硬盘做缓存加速。

像目前市面上有很多给HDD硬盘做缓存加速的方案,比如bcache,又比如facebook开发的flashcache,但这些方案都是需要SSD做支持才行的。那如果我们的服务器上面没有SSD,只有普通的HDD,有没办法做缓存加速呢?答案就是今天的这个:rapiddisk。

这篇文章我将在ikoula的一台垃圾独立服务器上部署rapiddisk并启用cache-map。

因为ikoula的独立服务器没有IPMI/VNC/KVM/等等一切可以用来远程管理的平台,并且ikoula后台重装的系统默认是把硬盘的全部空间分配给根目录,而我们要做cache-map就必须得umount一个文件系统才行,根目录又不能umount,所以我想到了先把根目录缩小(缩小根目录真不是一件容易事),再利用LVM的机制去创建一个新的挂载点。

首先我们来缩小根目录,这里需要用到一个脚本,我们先更新一下源和安装一个git:

apt update
apt install git

然后拉取这个脚本:

git clone https://github.com/szepeviktor/debian-server-tools.git
cd debian-server-tools

编辑这个脚本:

nano debian-resizefs.sh

修改如图位置为你想要的根目录新大小:

然后执行脚本,等待机器重启完成:

./debian-resizefs.sh

接着使用LVM将根目录的大小缩减至100G:

lvresize -L 100G VolGroup00/root

我这台机器是2X2T的硬盘做的RAID0,我更改了根目录大小为100G,那么我把剩下的全部硬盘空间划分给/home,所以这里创建一个新的LV:

lvcreate -L 3.53T -n home VolGroup00

接着格式化为ext4:

mkfs.ext4 /dev/VolGroup00/home

创建一个挂载目录:

mkdir -p /home

挂载上去:

mount /dev/VolGroup00/home /home

设置fstab:

echo "/dev/VolGroup00/home /home ext4 defaults 0 0" >> /etc/fstab

这样我们就成功的把根目录缩小了,并且创建了一个新的挂载点。

现在安装一些编译安装rapiddisk所需的依赖:

apt install zlib1g-dev libcryptsetup-dev libjansson-dev dkms

如果是CentOS7:

yum -y groupinstall "Development Tools"
yum -y install zlib-devel cryptsetup-devel jansson-devel dkms

拉取项目编译并安装:

cd
git clone https://github.com/pkoutoupis/rapiddisk.git
cd rapiddisk
make
make install
make dkms
make tools-install

使用如下命令查看模块加载信息:

modinfo rapiddisk
modinfo rapiddisk-cache

加载模块到内核:

modprobe dm_crypt
modprobe rapiddisk
modprobe rapiddisk-cache

现在我们创建一个大小为4GB的内存盘:

rapiddisk --attach 4096

格式化为ext4:

mkfs.ext4 /dev/rd0

创建一个新的挂载目录:

mkdir -p /ramdisk

取消之前/home目录的挂载:

umount /dev/mapper/VolGroup00-home

创建cache-map,并指定为我们之前的/home:

rapiddisk --cache-map rd0 /dev/mapper/VolGroup00-home

查看创建之后的新文件系统信息:

rapiddisk --list

最后我们把新的文件系统挂载到/ramdisk:

mount /dev/mapper/rc-wt_VolGroup00-home /ramdisk

这样一个经过RAMDISK缓存加速的HDD硬盘就创建完成了:

设置开机自动加载rapiddisk模块:

echo "dm_crypt" >> /etc/modules
echo "rapiddisk" >> /etc/modules
echo "rapiddisk-cache" >> /etc/modules

如果不想使用了,使用下面的命令关闭rapiddisk模块:

modprobe -r rapiddisk
modprobe -r rapiddisk-cache

删除内存盘:

rapiddisk --detach rd0

使用帮助手册:

man rapiddisk

下面我使用hdpram对普通的HDD硬盘和经过RAM缓存加速过的HDD硬盘进行简单的测试,请注意我们测试只需要测试读取性能即可,因为rapiddisk只对读取有缓存,写入是没有任何缓存机制的。

普通的HDD硬盘读取速度稳定在230MB/s左右:

而经过RAM缓存的HDD硬盘读取速度一次比一次快,一共7次测试,最后一次的速度已经在600MB/s往上了:

赞(1)
未经允许不得转载:荒岛 » 在ikoula的Debian9下部署rapiddisk
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿