首页 > 其他分享 >实验一·环境安装

实验一·环境安装

时间:2022-11-11 22:33:57浏览次数:45  
标签:zone zoned 安装 ubuntu 环境 实验 qcow2 qemu id

实验一·环境安装

安装QEMU Windows不能编译SPDK,还是要装虚拟机

因电脑上没有安装双系统,故选择安装Windows环境下的QEMU。下载最新版本的就可以了。

https://qemu.weilnetz.de/w64/

安装过程参考这篇文章。

https://linuxhint.com/qemu-windows/

windows安装完qemu后查看版本。


qemu-system-x86_64 --version

安装Ubuntu

新建一个用于存放虚拟磁盘文件的目录,并跳转进入。


mkdir qemulab
cd qemulab

创建一个虚拟磁盘,并且查看磁盘信息。


qemu-img create -f qcow2 ubuntu.qcow2 40G
qemu-img info ubuntu.qcow2

命令解释:

-f qcow2:磁盘格式(format)为qcow2

ubuntu.qcow2:磁盘名称

40G:磁盘的大小

安装Ubuntu


qemu-system-x86_64 -m 8G -smp 2 -boot order=dc -hda ./ubuntu.qcow2 -cdrom ../ubuntu-22.04.1-live-server-amd64.iso

命令解释:

-m 8G:分配8G的内存

-smp 2:模拟含有2个CPU的SMP体系(对称多处理系统)

-boot order=dc:先尝试从CD-ROM启动,再尝试从硬盘启动

-hda ./ubuntu.qcow2:虚拟硬盘的文件地址

-cdrom ../ubuntu-22.04.1-live-server-amd64.iso:CD-ROM的地址

SMP是什么:https://www.cnblogs.com/yubo/archive/2010/04/23/1718810.html

所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的锁机制去解决资源争用问题。

安装完成后,创建一块用于模拟ZNS SSD的虚拟硬盘。


qemu-img create -f qcow2 znsssd.qcow2 10G

启动虚拟机,并且挂载两块硬盘。


qemu-system-x86_64 -name znslab -m 8G -smp 4 -hda ./ubuntu.qcow2 -net user,hostfwd=tcp:127.0.0.1:7777-:22,hostfwd=tcp:127.0.0.1:2222-:2000 -net nic -drive file=./znsssd.qcow2,id=mynvme,format=qcow2,if=none -device nvme,serial=baz,id=nvme2 -device nvme-ns,id=ns2,drive=mynvme,nsid=2,logical_block_size=4096,physical_block_size=4096,zoned=true,zoned.zone_size=131072,zoned.zone_capacity=131072,zoned.max_open=0,zoned.max_active=0,bus=nvme2

命令解释:

-name znslab:设定虚拟机的名称是znslab

-m 8G:设定虚拟内存的大小是8G

-smp 4:设定模拟4个CPU的SMP体系

-hda ./ubuntu.qcow2:指出虚拟硬盘(系统盘)的地址

-net user:,hostfwd=tcp:127.0.0.1:7777-:22,hostfwd=tcp:127.0.0.1:2222-:2000 -net nic

:配置用户模式网络,将访问宿主机7777、2222端口的TCP/UDP连接重定向到客户机22、2000端口上

-drive file=./znsssd.qcow2,id=mynvme,format=qcow2,if=none:指出挂载的znsssd硬盘的地址,名称和格式

-device nvme,serial=baz,id=nvme2:添加NVMe设备,其序列号是baz,id是nvme2

-device nvme-ns,id=ns2,drive=mynvme,nsid=2,logical_block_size=4096,physical_block_size=4096,zoned=true,zoned.zone_size=131072,zoned.zone_capacity=131072,zoned.max_open=0,zoned.max_active=0,bus=nvme2:为了支持多个命名空间,需要添加nvme-ns设备

设备ID是ns2

节点名称叫mynvme

namespace id为2

逻辑块大小为4096(512B)

物理块大小:4096

后面5个参数和ZNS特性有关。

zone_size:zone大小

zone_capacity:zone容量。若设置为0,zone容量等于zone大小

max_open:最大打开的资源数目,为0允许所有zone都打开

max_active:最大有效的资源数目,为0允许所有zone都有效

bus:将namespace关联到nvme2设备

查看是否已经识别到nvme设备。

接下来安装nvme-cli。


sudo apt update
sudo apt install nvme-cli

用nvme cli命令查看zns ssd设备信息

尝试在云服务器上重新配置

宣告失败:云服务器配置太低,500M有点勉强

由于Windows平台上的种种不确定性,为了安全起见,我又在自己的云服务器上重装了一遍。

再次尝试虚拟机

由于直接用有问题,尝试用xshell连接。参考

https://blog.csdn.net/m0_38131863/article/details/121113603

Xshell登录

为了方便操作,我使用Xshell远程登陆云服务器,但是这样就没有图形界面了。切换到home目录,按照步骤重新下载。

安装QEMU

云服务器的好处在于不用手动换源,内置的源就是国内的。

下载安装包(通过apt等方式下载可能版本太旧):


wget https://download.qemu.org/qemu-7.1.0.tar.xz

解压


tar -xvJf qemu-7.1.0.tar.xz

在编译之前,如果没有安装make工具,要先安装。


sudo apt install make

此外,可能需要安装以下工具。


sudo apt install ninja-build gcc pkg-config gsettings-desktop-schemas libglib2.0-dev libpixman-1-dev

安装完后,进入qemu文件夹,执行以下命令。


cd qemu-7.1.0
./configure
make
sudo make install

注意:由于只有命令行,需要先安装SDL服务和VNC viewer,再编译安装QEMU。


sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
./configure
make
sudo make install

这段过程需要花很长的时间,最后查看是否安装成功。


qemu-system-x86_64 --version

出现版本号即成功,下面开始安装虚拟机,过程和上面windows大体相同,可惜使用的服务器不支持kvm优化。

下载镜像

下载本次实验需要的ubuntu镜像,注意下载后改名。


wget http://mirrors.ustc.edu.cn/ubuntu-releases/22.04.1/ubuntu-22.04.1-live-server-amd64.iso

安装Ubuntu

内容和之前相似。


qemu-system-x86_64 --enable-kvm -m 2G -smp 2 -boot order=dc -hda ./ubuntu.qcow2 -cdrom ../ubuntu-22.04.1-live-server-amd64.iso

注意:如下报错说明没有这么大的内存。我的服务器内存只有1GB。


qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory

注意:由于Xshell不能VNC连接新窗口,最好需要下载全套Xmanager,参考https://blog.csdn.net/qq_30540299/article/details/126953024。

注意:重启要开启ssh服务。


sudo service ssh start

开启kvm参考

https://blog.csdn.net/qq_35395195/article/details/125382505

开机挂载修改为2G内存


qemu-system-x86_64 -name znslab -m 2G -smp 4 -hda ./ubuntu.qcow2 -net user,hostfwd=tcp:127.0.0.1:7777-:22,hostfwd=tcp:127.0.0.1:2222-:2000 -net nic -drive file=./znsssd.qcow2,id=mynvme,format=qcow2,if=none -device nvme,serial=baz,id=nvme2 -device nvme-ns,id=ns2,drive=mynvme,nsid=2,logical_block_size=4096,physical_block_size=4096,zoned=true,zoned.zone_size=131072,zoned.zone_capacity=131072,zoned.max_open=0,zoned.max_active=0,bus=nvme2

尝试无界面启动,便于粘贴命令

先正常启动后修改GRUB参数sudo vim /etc/default/grub
在GRUB_CMDLINE_LINUX=""中添加console=ttyS0
更新GRUB:sudo update-grub
在QEMU启动参数中添加-nographic
在当前QEMU虚拟机中Quit后用加入-nographic参数的启动命令重新运行虚拟机即可

以 -nographic 启动的虚拟机退出时直接关机 sudo shutdown now 即可。也可以强制退出:键盘按 CTRL + A 然后按 x

开机参数:


qemu-system-x86_64 --enable-kvm -cpu qemu64,+ssse3,+ssse4.1,+sse4.2 -name znslab -m 2G -smp 4 -hda ./ubuntu.qcow2 -net user,hostfwd=tcp:127.0.0.1:7777-:22,hostfwd=tcp:127.0.0.1:2222-:2000 -net nic -drive file=./znsssd.qcow2,id=mynvme,format=qcow2,if=none -device nvme,serial=baz,id=nvme2 -device nvme-ns,id=ns2,drive=mynvme,nsid=2,logical_block_size=4096,physical_block_size=4096,zoned=true,zoned.zone_size=131072,zoned.zone_capacity=131072,zoned.max_open=0,zoned.max_active=0,bus=nvme2 -nographic

退出时关机:sudo shutdown now 强制退出:键盘按 CTRL + A 然后按 x

标签:zone,zoned,安装,ubuntu,环境,实验,qcow2,qemu,id
From: https://www.cnblogs.com/hushrush/p/16882194.html

相关文章

  • 【工具】RabbitMQ的安装
    安装安装erlang环境官网提示:https://www.erlang-solutions.com/resources/download.html安装erlang:yum-yinstallesl-erlang_23.0.2-1_centos_7_amd64.rpm检测erla......
  • Redis 集群模式的安装与配置【源码安装redis-7.0.5】
    Redis最新版下载地址:http://download.redis.io/releases/redis-7.0.5.tar.gz步骤如下:1)wget http://download.redis.io/releases/redis-7.0.5.tar.gz2)tar-zxf redis-7......
  • 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用
    问题描述使用微软API管理服务(AzureAPIManagement),简称APIM。因为公司策略要求只能内部网络访问,所以启用了VNET集成。集成方式见:(在内部模式下使用AzureAPI管理连......
  • centos安装zookeeper服务
    zookeeper介绍ZooKeeper是一个开源的分布式协调服务。它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命......
  • 实验7基于rest-api的sdn北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • CentOS中卸载安装JAVA
    一、卸载CentOS中原有JAVA1、查看原有JDKrpm-qa|grepjava2、卸载JDKsudoyum-yremovejava-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64sudoyum-yrem......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实验二
    一、题目要求我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设......
  • 一文搞懂Path环境变量
    什么是Path环境变量?在探讨这个问题之前,我们需要了解什么是环境变量。“环境变量”和“path环境变量”其实是两个东西,这一点大家一定要区分开,不要混为一谈。“环境变量”......
  • 安装oh-my-zsh(zsh)出错,raw.githubusercontent.com 无法连接
    最近换了个电脑,又开始倒腾了。安装oh-my-zsh官网地址是:https://ohmyz.sh/正常来说输入下面的指令就可以了sh-c"$(curl-fsSLhttps://raw.github.com/ohmyzsh/ohm......