infiniswap安装

news/2025/2/23 16:12:05

环境: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. 客户端守护进程安装

  1. 客户端编译安装

    cd setup
    ./install daemon
    
  2. 运行客户端守护程序:

    cd ../infiniswap_daemon
    ./infiniswap-daemon 192.168.2.221 9400
    

    ip地址 192.168.2.221 是客户端所在主机 ib网卡的地址。

2. 服务端块设备(交换分区)安装

  1. 进入 setup 目录,修改 install.h

    cd setup
    vim install.h
    
  2. 修改内容主要是以下两个:

    #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"

    如果以上两项未修改正确,无法编译通过。

  3. 服务端编译生成内核模块:

    cd setup
    ./install bd
    
  4. 服务端配置 portal.list

    vim portal.list
    

    1

    192.168.2.221:9400

    第一行为daemon的数量,后面每行为一个daemon的 ip:port

  5. 服务端安装块设备,设置为交换分区:

    ./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

  6. 在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
    

http://www.niftyadmin.cn/n/1373648.html

相关文章

关于IoC的绝妙比喻

发信人: dev (无间~一念天堂,一念地狱), 信区: J2EE标 题: 关于IoC的绝妙比喻(zz)发信站: BBS 水木清华站 (Mon Jul 19 08:30:00 2004), 站内A girl wants to kiss a boy.The girls name is Daisy Anne OLeary (DAO). She has red hair.The boys name Ed (its my example), h…

海南2019年创新五项制度推进自贸区建设

海南省长沈晓明作《政府工作报告》 骆云飞 摄 海南省长沈晓明作《政府工作报告》 骆云飞 摄 中新网海口1月27日电 (记者 王子谦)海南省六届人大二次会议27日在海口开幕,海南省长沈晓明在作《政府工作报告》时说,2019年海南将从五方面进行制度创新&#x…

configfs-用户空间控制的内核对象配置

1. 什么是configfs? configfs 是一个基于内存的文件系统,它提供了与sysfs相反的功能。sysfs 是一个基于文件系统的内核对象视图,而configfs 是一个基于文件系统的内核对象管理器(或称为config_items)。 在 sysfs 中&#xff0c…

庚子赔款的最终实际情况

发信人: yss2000 (不偷不搶不後勤), 信区: TsinghuaCent 标 题: 庚子赔款的最终实际情况: 发信站: BBS 水木清华站 (Tue Jul 20 00:05:07 2004), 站内【 以下文字转载自 History 讨论区 】 发信人: zanzhang (yun), 信区: History 标 题: 庚子赔款的最终实际情况&…

configfs_sample.c 理解

1. 编译运行 代码从如下链接获得: https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c 编写 Makefile 文件: obj-m configfs_sample.o all:make -C /lib/modules/$(shell uname -r)/build M$(PWD) modules clean:mak…

最重要的 10 几个 J2EE 最佳实践

发信人: was (银杏叶◇The Day of Days), 信区: J2EE 标 题: 最重要的 10 几个 J2EE 最佳实践 (IBM dW) 发信站: BBS 水木清华站 (Tue Jul 13 20:52:45 2004), 站内IBM WebSphere 开发者技术期刊: 最重要的 10 几个 J2EE 最佳实践级别: 初级Kyle Brown, 高级技术成员, IBM Sof…

智库大会 | 高端对话:智能科技推动管理学变革 ...

随着生产力的加速进化,人类社会的组织形态也在同步进化。过去一百年来大行其道的是刚性科层组织模式,现在一种全新的分工/协同模式,一种能够自我组织、自我适应的组织形态——“液态组织”出现。在数字化和智能化的技术条件下,这种…

块设备驱动、bio理解

别人写过的内容,我就不写了。贴一下大佬的博客,写的非常好: 块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动) 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行) 块设备…