infiniswap安装
环境:ubuntu14.04,内核4.04
uname -a
Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
克隆项目:
git clone https://github.com/SymbioticLab/Infiniswap.git
1. 客户端守护进程安装
客户端编译安装:
cd setup
./install daemon
运行客户端守护程序:
cd ../infiniswap_daemon
./infiniswap-daemon 192.168.2.221 9400
ip地址 192.168.2.221 是客户端所在主机 ib网卡的地址。
2. 服务端块设备(交换分区)安装
进入 setup 目录,修改 install.h
cd setup
vim install.h
修改内容主要是以下两个:
#have the kernel patch for lookup_bdev()
#(HAVE_LOOKUP_BDEV_PATCH), default is undefined
have_lookup_bdev_patch=1
#name of physical backup disk
#(BACKUP_DISK), default is "/dev/sda4"
backup_disk="/dev/vdb"
如果以上两项未修改正确,无法编译通过。
服务端编译生成内核模块:
cd setup
./install bd
服务端配置 portal.list
vim portal.list
1
192.168.2.221:9400
第一行为daemon的数量,后面每行为一个daemon的 ip:port
服务端安装块设备,设置为交换分区:
./infiniswap_bd_setup.sh如果执行
./infiniswap_bd_setup.sh出错,可以一步一步执行,该文件内容如下:modprobe infiniswap
mount -t configfs none /sys/kernel/config nbdxadm -o create_host -i 0 -p $PWD/portal.list #portal.list
nbdxadm -o create_device -i 0 -d 0 ls /dev/infiniswap0
mkswap /dev/infiniswap0
swapon /dev/infiniswap0
成功挂载为交换分区后,打印的内核日志:
[ 94.543854] IS_create_configfs_files
[ 99.157269] IS_session_make_group, name=infiniswaphost0
[ 99.157330] portal_attr_store, buf=1,192.168.2.221:9400,
[ 99.157335] In IS_session_create() with portal: rdma://1,192.168.2.221:9400,
[ 99.157527] rdma://1,192.168.2.221:9400,
[ 99.157879] portal: 192.168.2.221, 9400
[ 99.158040] IS_create_conn with cpu: 0
[ 99.158042] IS_create_conn with cpu: 1
[ 102.866554] IS_device_make_group, name=infiniswap0
[ 102.866612] device_attr_store
[ 102.866616] In IS_create_device(), dev_name:infiniswap0
[ 102.866619] IS: st_size = 12884901888
[ 102.866621] IS_register_block_device
[ 102.867318] IS_init_hctx called index=0 xq=ffff880079327e80
[ 102.867323] IS_init_hctx called index=1 xq=ffff880079327e98
[ 102.867349] IS_register_block_device, dev_name infiniswap0
[ 102.867543] IS: init done
[ 102.868987] stackbd: init done
[ 102.868995] Opened /dev/vdb
[ 102.869010] stackbd: Device real capacity: 29360128
[ 102.869013] stackbd: Max sectors: 8
[ 102.869053] stackbd: done initializing successfully
[ 112.873800] rdma_trigger
[ 211.265717] kernel_cb_init, created cm_id ffff88003633a000
[ 211.265842] cma_event type 0 cma_id ffff88003633a000 (parent)
[ 211.266119] cma_event type 2 cma_id ffff88003633a000 (parent)
[ 211.266161] rdma_resolve_addr - rdma_resolve_route successful
[ 211.266641] created pd ffff880078b8b5c0
[ 211.267343] created cq ffff880036338800
[ 211.269382] created qp ffff880036338c00
[ 211.269388] IS: IS_setup_buffers called on cb ffff88007a9b5000
[ 211.269391] IS: size of IS_rdma_info 392
[ 211.269394] IS: cb->mem=1
[ 211.269396] IS: IS_setup_buffers, in cb->mem==DMA
[ 211.269619] IS: allocated & registered buffers...
[ 211.282962] cma_event type 9 cma_id ffff88003633a000 (parent)
[ 211.282974] ESTABLISHED
[ 211.282990] rdma_connect successful
[ 211.285548] IS_ctx_dma_setup, setup_ctx_dma
[ 211.285734] evict_handler, waiting for STOP msg
[ 211.463865] Received rkey 80709 addr 7fd423fff000 from peer
[ 211.517175] Received rkey 80608 addr 7fd3e3ffd000 from peer
[ 239.423567] Adding 12582908k swap on /dev/infiniswap0. Priority:-1 extents:1 across:12582908k SSFS
在Infiniswap目录编写了服务端启动脚本
r_bd.sh:#!/bin/bash pwd=111111
swaps='/dev/vda5' cd setup
echo $pwd | sudo -S swapon -s for i in $swaps; do
echo $pwd | sudo -S swapoff $i
done ./infiniswap_bd_setup.sh
echo $pwd | sudo -S swapon -s
其中, swaps的值
/dev/vda5使通过swapon -s查看到的交换分区名字,可设置多个,如:'/dev/vda5 /dev/vda6',pwd 是登录账号的密码。添加可执行权限:
chmod +x r_bd.sh
运行bd:
./r_bd.sh
infiniswap安装的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
- tLinux 2.2下安装Mono 4.8
Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
随机推荐
- 探索未来之路,激发AI创新活力!“天翼云息壤杯”高校AI大赛北京区域赛开赛!
近年来,人工智能发展速度之快.辐射范围之广令人瞩目.今年的<政府工作报告>提出,深化大数据.人工智能等研发应用,开展"人工智能+"行动.AI充满了无限可能和潜力,未来还 ...
- GIS矢量数据获取:全球行政区划、路网、POI点、建筑物范围、信号基站等
本文对目前主要的行政区边界与道路路网.建筑轮廓.POI.手机基站等数据产品的获取网站加以整理与介绍. 目录 5 行政区边界与建筑轮廓.POI.基站数据 5.1 行政区边界数据 5.1.1 DIVA ...
- Salt key 系统的接口
官方文档:https://docs.saltstack.com/en/3000/ref/wheel/all/salt.wheel.key.html Wheel 系统包装了Salt key 系统,以编程 ...
- 《<吕氏春秋> 刘本》
<<吕氏春秋> 刘本>(卷三) 编者 刘昱合 其他版本 <吕氏春秋>(卷一) <吕氏春秋>(卷二) <<吕氏春秋> 全本>(卷三 ...
- 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
引子:那个让运维集体加班的夜晚 "凡哥!线上服务响应时间飙到10秒了!"凌晨1点,实习生小李的语音带着哭腔. 监控大屏上,JVM堆内存曲线像坐了火箭--刚扩容的16G内存,30分钟 ...
- python os.walk函数
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下. root 所指的是当前正在遍历的这个文件夹的本身的地址 dirs 是一个 list ,内容是该文件夹中所有的目录的名 ...
- 循环(Java篇)
令人头痛的循环(:´д`)ゞ 我们在学习循环的时候可能会有点懵,什么是循环?它可以干嘛?我这里为什么要用循环来写这段代码?等问题. 首先我们来讲一下循环可以干嘛 循环是什么?o(′益`)o 在 Jav ...
- 通过 API 将Deepseek响应流式内容输出到前端
要实现通过 API 将流式内容输出到前端,可以采用以下技术方案(以 Python 后端 + 前端 JavaScript 为例): 方案一:使用 Server-Sent Events (SSE) 这是浏 ...
- docker 配置安装宝塔面板
宝塔镜像 https://hub.docker.com/r/btpanel/baota 配置宝塔 第一步:创建一个名为 bt-data 的目录,此目录将存储宝塔数据. $ mkdir bt-data ...
- 深入理解Base64编码原理
前言 上篇文章有涉及到Base64编码的内容,今天我们再来详细了解一下Base64的编码原理以及应用场景. 通过这篇文章你能够学习到: 什么是Base64,为什么需要Base64? Base64的编码 ...