Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

创建虚拟机的步骤为:

1、创建虚拟机磁盘

qemu-img create -f qcow2 yunxiazi-v2.9.2-360-for-360-200G.qcow2 200G

磁盘格式介绍

raw 裸磁盘不支持快照

qcow2,不保存原始镜像只会记录操作和原始镜像不同的内容,做快照。写时拷贝的一种技术,这种技术把所做的操作记录在一个文件中,只对这个文件镜像。Openstack使用的方式推荐使用这个

区别:

qcow2 数据的基本组成单元是cluster

raw性能比qcow2快

raw创建多大磁盘,就占用多大空间直接分配,qcow2动态的用多大占用多大空间。

2、创建虚拟机主机

virt-install --name yunxiazi --ram=2048 --arch=x86_64 --vcpus=1 --check-cpu --os-type=linux -c /home/product_download/yunxiazi/云匣子镜像/2.9.2/iso/yunxiazi_v2.9.2-360_x86_64_180110.iso --disk path=/home/yunxiazi_qcow2/yunxiazi-v2.9.2-360-for-360-200G.qcow2,device=disk,bus=ide,format=qcow2 --network network=default,model=e1000 --noautoconsole --vnc --vncport=59001 --vnclisten=0.0.0.0 --clock offset=localtime

创建完成之后,我们用VNC连接进行测试。

KVM下面管理虚拟机的基本命令:

virsh list --all 查看虚拟机状态

virsh start kvm01 开机

virsh shutdown kvm01 关机(虚拟机需开启acpid服务)

virsh destroy kvm01 强制关机

virsh suspend kvm01 挂起虚拟机

virsh resume kvm01 恢复挂起的虚拟机

virsh snapshot-create kvm01 建虚拟机快照(建快照镜像格式要为qcow2格式)

virsh snapshot-list kvm01 查看虚拟机快照

virsh snapshot-revert kvm01 1489386302 恢复虚拟机快照

virsh edit kvm01 编辑配置文件

virsh autostart kvm01 设置物理机开机自动启动虚拟机

virsh dumpxml kvm01 > kvm01.xml 导出虚拟机配置文件

/etc/libvirt/qemu/ 虚拟机配置文件默认目录

virsh undefine kvm01 删除一个虚拟机(会一起删除配置文件,镜像不删除)

virsh define /etc/libvirt/qemu/kvm01.xml 重新定义一个虚拟机

virt-clone -o kvm01 -n kvm02 -f /var/lib/libvirt/images/kvm02.img 克隆虚拟机(/etc/udev/rules.d/70-persistent-net.rules启动后删除)

qemu-img info kvm01 查看虚拟机镜像格式

qemu-img convert -f raw -O qcow2 kvm01.img kvm01.qcow2 转换虚拟机镜像格式

qemu-img create -f qcow2 /var/lib/libvirt/images/kvm01-1.img 20G 新建虚拟机镜像磁盘

virsh attach-disk kvm01 /var/lib/libvirt/images/kvm01-1.img vdb --cache=none --subdriver=qcow2 在线添加虚拟机镜像硬盘

在linux下创建KVM虚拟机的更多相关文章

  1. [图文] Fedora 28 使用 Virt-Manager 创建 KVM 虚拟机以及 配置 KVM 虚拟机

    实验说明: 往后的许多实验都将以Linux平台下的 KVM虚拟机为主,所以不可少的就是 Virt-Manager 虚拟机管理器. 本章将对如何安装和使用Virt-Manager管理器进行讲解,并且会对 ...

  2. centos创建kvm虚拟机

    1.检查kvm模块是否已经加载 lsmod |grep kvm 上图已经加载 没有加载 2.加载kvm 模块至内核 modprobe kvm modprobe kvm-intel modprobe: ...

  3. 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用

    基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...

  4. linux下创建用户

    linux下创建用户(一) Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系 ...

  5. linux下创建和删除软、硬链接

    linux下创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制 ...

  6. Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

    刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...

  7. linux下创建用户并且限定用户主目录

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号 一方面可以帮助系统管理员对使用系统的用户进 ...

  8. 4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作

    进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts ...

  9. 【搬运工】linux下创建用户(一)

    转载:http://www.cnblogs.com/ylan2009/articles/2321177.html linux下创建用户(一) Linux 系统是一个多用户多任务的分时操作系统,任何一个 ...

  10. Linux 下创建 sftp 用户并限定目录

    Linux 下创建 sftp 用户并限定目录 1.创建 sftpUser 用户组 [root@XXX ~]# groupadd sftpUser 2.创建 sftpUser 用户并指定目录 [root ...

随机推荐

  1. PPT导出高分辨率tif图片——用于学术论文

    PPT导出的图片默认分辨率只有96dpi,但要到印刷品要求的图片分辨率最好是300dpi,学术论文也需要高清晰度的图片.要让PPT导出的图片分辨率达到300dpi,其实可以不用PS,直接修改系统注册表 ...

  2. dendrogram

    https://ww2.mathworks.cn/help/stats/dendrogram.html

  3. 什么是bootstrap?

    In computing, the term bootstrap means to boot or to load a program into a computer using a much sma ...

  4. 每日一抄 Go语言聊天服务器

    server.go package main import ( "bufio" "fmt" "log" "net" ) ...

  5. Token过期处理

    Token用于进行接口鉴权,但是Token具有由后端设置的过期时间,当Token过期以后,就无法再请求数据了 项目中后端设置的过期时间为24h,测试时我们可以手动修改token值让Token失效 处理 ...

  6. TypeScript Array(数组)

    TypeScript Array(数组) 数组对象是使用单独的变量名来存储一系列的值. 数组非常常用. 假如你有一组数据(例如:网站名字),存在单独变量如下所示: var site1="Go ...

  7. css - object-fit ie兼容

    css - object-fit ie兼容 参考资料 github 解决object-fit兼容IE浏览器实现图片自适应 demo <!-- * @createDate: 2022-08-30 ...

  8. C++ 读取文本, 读取( 单字符/ 一行/ 全部 )

    C++ 读取文本 介绍三种读取方式: 逐字符读取(注意不是字节) 读取一行 读取全部 示例代码: #include <iostream> #include <string> # ...

  9. iOS开发之检测项目是否包含UIWebView

    应苹果审核要求不能包含UIWebView,所以我们上线之前应该扫一下项目是否包含UIWebView 我们直接打开终端 cd 到工程文件下面 执行命令 grep -r UIWebView .  在扫描结 ...

  10. ansible-file

    path参数 :必须参数,用于指定要操作的文件或目录,在之前版本的ansible中,使用dest参数或者name参数指定要操作的文件或目录,为了兼容之前的版本,使用dest或name也可以. stat ...