使用QEMU配置虚拟OCSSD(中文版安装)
安装环境
- Ubuntu系统版本18.04
kathy@kathy:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
- 内核版本
kathy@kathy:~$ uname -a
Linux kathy 5.4.0-42-generic #46~18.04.1-Ubuntu SMP Fri Jul 10 07:21:24 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
kathy@kathy:~$
qemu-nvme安装
从OCSSD项目中下载qemu-nvme
git clone https://github.com/OpenChannelSSD/qemu-nvme.git
qemu-nvme配置
- 进入刚才下载的qemu-nvme目录下
kathy@kathy:~$ cd qemu-nvme
kathy@kathy:~/qemu-nvme$ ./configure --target-list=x86_64-softmmu --prefix=$HOME/qemu-nvme
- 以下是遇到的一些问题和解决办法
ERROR: Python not found. Use --python=/path/to/python
###解决
sudo apt-get install python
ERROR: pkg-config binary 'pkg-config' not found
###解决
sudo apt-get install -y pkg-config
ERROR: glib-2.40 gthread-2.0 is required to compile QEMU
###解决
sudo apt-get install libglib2.0-dev
ERROR: pixman >= 0.21.8 not present.
Please install the pixman devel package.
###解决
sudo apt-get install libpixman-1-dev
qemu-nvme编译
make -j '# of core'
make install
配置Open-Channel 2.0 SSD设备
- 首先,如果之前系统没有安装qemu,通过
ln
命令给qemu-img
和qemu-system-x86_64
文件创建硬链接,以便在主机的bash中直接使用。
kathy@kathy:~/qemu-nvme$ cd bin
kathy@kathy:~/qemu-nvme/bin$ sudo ln qemu-img /usr/bin
kathy@kathy:~/qemu-nvme/bin$ sudo ln qemu-system-x86_64 /usr/bin
- 创建OCSSD和系统镜像文件,我们把这两个文件创建在一个新的文件路径下,方便管理。
##创建ocssd.img
kathy@kathy:~/Documents/nvme$ qemu-img create -f ocssd -o num_grp=2,num_pu=4,num_chk=60 ocssd.img
##创建40G 的ubuntu.img文件
kathy@kathy:~/Documents/nvme$ qemu-img create -f qcow2 -o preallocation=full ubuntu.img 40G
为虚拟机qemu安装系统
从Ubuntu官网下载系统镜像文件
我下载了两个版本Ubuntu 18.04.5 LTS (Bionic Beaver) 和Ubuntu 16.04.6 LTS (Xenial Xerus)
因为之前使用的都是Ubuntu16.04.6版本,之前的主机也是这个系统,在虚拟机下使用Ubuntu 18.04.5版本有一些问题,这次主机的系统是Ubuntu 18.04.5版本,所以打算在这个版本日后做一些测试。
把下载好的移动到上述的~/Documents/nvme
路径下
安装VNC虚拟网络控制台
kathy@kathy:~$ sudo apt-get install xvnc4viewer
安装虚拟机的操作系统
##从boot启动并安装系统
kathy@kathy:~/Documents/nvme$ sudo qemu-system-x86_64 -hda ubuntu.img -boot d -cdrom ubuntu-18.04.5-desktop-amd64.iso -m 8G -smp 4 -cpu host --enable-kvm -vnc :2
##通过VNC操作
##打开新的终端,就能开到安装画面,按步骤安装即可
kathy@kathy:~$ vncviewer localhost:5902
安装成功后再次开启虚拟机,执行以下命令:
##启动虚拟机
kathy@kathy:~/Documents/nvme$ sudo qemu-system-x86_64 -hda ubuntu.img -m 8G -smp 4 -cpu host --enable-kvm -vnc :2
##挂载OCSSD启动虚拟机
kathy@kathy:~/Documents/nvme$ sudo qemu-system-x86_64 -hda ubuntu.img -m 8G -smp 4 -cpu host --enable-kvm -vnc :4 -blockdev ocssd,node-name=nvme01,file.driver=file,file.filename=ocssd.img -device nvme,drive=nvme01,serial=deadbeef,id=lnvm
##打开VNC控制台
kathy@kathy:~$ vncviewer localhost:5902
- 因为在4.19+版本的内核中已经有了LightNVM驱动
在虚拟机中检查内核版本uname -r
5.4.0-42-generic
因此可以直接跳转到 方法一:下载最新版本的内核部分:
in qemu
sudo dmesg -c
[ 0.910463] nvme nvme0: pci function 0000:00:04.0
[ 0.946460] nvm: registered nvme0n1 [4/8/60/8/2]
配置内核
安装编译内核所需的包
###在新的终端下执行命令
kathy@kathy:~$ sudo apt install build-essential libncurses5 libncurses5-dev libssl-dev bc bison flex libelf-dev
方法一:下载最新版本的内核
sudo qemu-system-x86_64 -hda ubuntu.img -m 8G -smp 4 -cpu host --enable-kvm -vnc :4 -blockdev ocssd,node-name=nvme01,file.driver=file,file.filename=ocssd.img -device nvme,drive=nvme01,serial=deadbeef,id=lnvm -kernel ./linux-5.13/arch/x86_64/boot/bzImage -append