基于Femu搭建ZNS
使用Femu搭建ZNS
- Femu
- 编译安装运行
- 创建host和guest共享目录
- 替换内核
- 存在的问题
Femu
Femu是一款基于qemu设计的SSD模拟器,可以模拟多种SSD模型,包括传统,OCSSD,ZNS SSD,以及noSSD,详情见 Github,本文不做过多介绍。
编译安装运行
Femu的编译安装过程在 Gihub 的 README 中有详细介绍,并且大部分工作都通过脚本集成好了,作为用户我们只需要简单执行几个shell脚本即可完成编译。
运行模拟器时,先修改run-zns.sh
中的路径,然后直接执行 ./run-zns.sh
即可
注意事项:
qemu运行之前需要制作一个虚拟机镜像,这里存在两钟方式:
- 直接使用GitHub中提供的镜像(Ubuntu20, kernel 5.4)
- 另外一种是自行制作一个虚拟机镜像,方法如下:
# 1. 创建格式为qcow2的80G镜像空间:
qemu-system-x86_64 create -f qcow2 ubuntu-test 80G# 2. 安装iso镜像:qemu-system-x86_64 -boot d -cdrom ubuntu-xx.iso -hda ubuntu-test -m 1024
# 3. 修改run-zns.sh中的镜像路径并运行
./run-zns.sh
这里我制作镜像的过程可能不太正确,导致在run的时候一直卡住,有知道问题出在哪的大佬恳请指正。所以我这里推荐直接使用提供的虚拟机镜像。
创建host和guest共享目录
创建共享目录的方法有很多,这里使用9p virtio
实现共享目录·。
具体参见 https://blog.csdn.net/gatieme/article/details/82912921
替换内核
做内核开发时,需要自行编译内核,可以在Qemu内部直接编译内核源码,但是效率太低,我在服务器上运行也是近乎崩溃,这里推荐创建共享目录,将源码放在共享目录
- 在host端执行
make menuconfig
和make -j32
- 在guest端执行
make install
存在的问题
成功启动Femu后,可能会不断弹出类似下面的信息
...
CH 0.000000 112800814121673
CH 0.000000 112800914117364
CH 0.000000 112801014120556
CH 0.000000 112801114123267
CH 0.000000 112801214122919
...
我不知道这些东西是什么,不断弹出的信息使终端无法工作,我通过ssh在另外的终端登入该虚拟机。
- 首先,看下run-zns.sh中启动虚拟机的参数:
-net user,hostfwd=tcp:127.0.0.1:5900-:22 \
-net nic,model=virtio \
该选项可以把虚拟机端口guest_port映射到主机端口host_port上,从而实现外部对虚拟机的访问。
- 然后,在host查看端口:
netstat -anp | grep 5900
- ssh 访问qemu
ssh -p 5900 root@127.0.01
基于Femu搭建ZNS相关推荐
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:www.cctalk.com/v/151149238- 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并使用 安装 koa-st ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 路由koa-router
路由koa-router--MVC 中重要的环节:Url 处理器 ?? iKcamp 制作团队 原创作者:大哼.阿干.三三.小虎.胖子.小哈.DDU.可木.晃晃 文案校对:李益.大力萌.Au.DDU. ...
- python系统-基于Python搭建Django后台管理系统
一个好的项目数据库管理后台是必须的,今天代码君教大家搭建Django网站后台,当然做网站后台的前提是需要有Python以及Django的开发环境,至于如何搭建这些开发环境,请查看我的上一篇文章 Mac ...
- 基于Keras搭建cifar10数据集训练预测Pipeline
基于Keras搭建cifar10数据集训练预测Pipeline 钢笔先生关注 0.5412019.01.17 22:52:05字数 227阅读 500 Pipeline 本次训练模型的数据直接使用Ke ...
- Python IDE之Pydev: 基于Eclipse搭建python的编译环境(Eclipse+pydev)简介、安装、使用的详细攻略
Python IDE之Pydev: 基于Eclipse搭建python的编译环境(Eclipse+pydev)简介.安装.使用的详细攻略 目录 pydev简介 PyDev 安装和配置 1.安装MyEc ...
- 使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 终于有时间搞java了,今天使用IDEA基于maven搭建了多模块聚合工程,经过了多番尝试, ...
- 基于hexo搭建个人免费博客——基本设置和了解
2017年最新基于hexo搭建个人免费博客--基本设置和了解 前言 前面的文章已经能让大家搭建起自己的博客,并通过网络访问了,通过基础的发布文章和编辑既可以实现博客的运作了,其他的一些包括分页和标签. ...
- 鸿蒙基于JS搭建HelloWorld并修改国际化文件
场景 鸿蒙HarmonyOS环境搭建与HelloWrold应用运行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1179945 ...
- 基于centos8搭建zookeeper集群
[README] 本文基于centos8 搭建 1,其他linux版本,命令可能不同: 2,集群包括3个节点,如下(因为采用NAT模型进行网络连接,需要让windows和linux机器在同一个网段): ...
- 基于PyTorch搭建CNN实现视频动作分类任务代码详解
数据及具体讲解来源: 基于PyTorch搭建CNN实现视频动作分类任务 import torch import torch.nn as nn import torchvision.transforms ...
最新文章
- POJ2492 A Bug s Life 题解
- php document.write,在JS中有关document.write()的用法(详细教程)
- 计算机导论中的名词解释,计算机导论期末考试试题及答案
- android手机连接PC后怎样切换为U 盘模式
- 手机网络游戏系统架构图
- mybatis的拦截器及分页机制
- linux系统及服务安全(持续更新中)
- 31 天重构学习笔记9. 提取接口
- 关于C语言goto的使用
- win10 文件夹背景 win10教程
- Egret引擎基础教程I(下载安装创建第一个项目)
- Google原生输入法LatinIME词库构建流程分析(一)
- 20162327WJH《程序设计与数据结构》课程总结
- windows xp 下载老版本的chrome浏览器
- 4246. 【五校联考6day2】san
- java打印星型_初识java java入门知识 基础知识 打印各种星型图形 源代码
- python logging日志模块以及多进程日志
- 肥鲨HDO和HD3买哪个?
- 基于ArcGIS:GIS空间分析复习-理论概念+案例分析
- mmdetection 安装与使用(win10)
热门文章
- 大数据—数据收集系统介绍(Flume,Sqoop)
- STM32cubIDE 黑色主题_儿童画创意第二弹 | 绘画的秘密+万圣节主题画,10个创意教程一次看完!...
- 真相了,原来程序员不喜欢领导改需求是这样子的!
- 数据科学家也良莠不齐 蹩脚数据科学家的10个迹象
- 如何建立一个自己的网站?不懂代码搭建自己网站详细教程
- 从零开始 了解C++
- 80C51单片机的指令系统
- java 一年有多少周_Java获取一年有多少周、某周的第一天和最后一天.
- 台式计算机刚换的显示屏怎么设置,如何设置双屏显示(笔记本电脑双屏切换的快捷键)...
- java中的switch case语句