1.包的安装

2.虚拟机的创建安装

3.安装基本参数的说明

4.常用操作

一、包的安装

1.#yum install -y kvm qemu-kvm libvirt virt-install bridge-utils

说明:

kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

qemu-kvm:在用户空间需要QEMU来模拟所需要CPU和设备模型以及用于启动客户机进程,这样才有了一个完整的KVM运行环境。是为了KVM专门做了修改和优化的QEMU分支。

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。

bridge-utils:设置网络网卡桥接(centos7默认安装)。

qemu-img:安装qemu组件,使用qemu命令来创建管理磁盘等。

virt-manager:图形化管理工具(最好直接安装yum install virt*,需要用到的virt命令工具较为方便)

2.开启kvm服务,并且设置其开机自动启动。关闭防火墙和selinux。

systemctl start libvirtd

systemctl enable libvirtd

二、虚拟机的创建

在创建之前,需要系统镜像文件和创建虚拟机的磁盘文件

1.上传系统镜像iso文件

2.创建虚拟机img文件(也可以在下一步创建虚拟机的同时创建参数如:path=/opt/vimg/centos7.raw,format=raw,size=8,bus=virtio)

3.创建并安装虚拟机

1)#virt-install --name=node-1 --vcpus=4 --ram 2048 --disk path=/opt/vimg/centos7.raw --cdrom /opt/iso/centos7.5.iso --network bridge=virbr0,model=virtio --vnc --vncport=5910 --vnclisten=0.0.0.0 --accelerate --noautoconsole

2)创建成功后可以通过netstat -nltp来查看是否运行,然后再通过VNC viewer去连接(本机电脑下载安装好了VNC viewer之后输入ip:port就可以连接了。)来安装此虚拟机。

3)系统安装完成之后需要重启,此时需要回到linux系统终端来重启下虚拟机,需要用到virsh命令后面再说。

4)再次回到VNC viewer软件的页面打开,登陆进去并配置桥接。我在此使用的是默认的桥接网卡virbr0,所以其ip信息配置如下:

5)配置端口转发

iptables -t nat -A PREROUTING -p tcp --dport 210 -j DNAT --to-destination 192.168.122.10:22

iptables -t nat -A POSTROUTING -d 192.168.122.10 -p tcp --dport 22 -j SNAT --to 192.168.122.1

现在就可以使用了。可以通过ssh外网连接虚拟机。ssh -p 210 root@45.248.11.84

三、命令使用参数的说明

1.qemu-img磁盘管理命令

下面为常用的:

info  #查看镜像的信息

create  #创建镜像

check  #检查镜像

convert  #转化镜像的格式,(raw,qcow ……)

snapshot  #管理镜像的快照

rebase  #在已有的镜像的基础上创建新的镜像

resize  #增加或减小镜像大小

快照管理(在下面会讲到使用virsh命令来管理快照)

查看快照
qemu-img snapshot -l /opt/vimg/centos7.qcow2
注意:只有qcow2才支持快照

打快照
qemu-img snapshot -c booting centos7.qcow2

从快照恢复:
qemu-img snapshot -a 1 /opt/vimg/centos7.qcow2
然后从kvm启动这个虚拟机,会发现虚拟机又在打快照时的状态了

删除快照:
qemu-img snapshot -d 2 /opt/vimg/centos7.qcow2

格式转化命令:

#qemu-img convert -c -O qcow2 centos7.raw centos7.qcow2

qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname

-c:采用压缩,只有qcow和qcow2才支持

-f:源镜像的格式,它会自动检测,所以省略之

-O 目标镜像的格式

-o 其他选项

fname:源文件

out_fname:转化后的文件

一般kvm使用两种格式

对于qcow2的格式

  • qcow2的snapshot,可以在镜像上做N多个快照
  • 更小的存储空间,即使是不支持holes的文件系统也可以(这下du -h和ls -lh看到的就一样了)
  • Copy-on-write support, where the image only represents changes made to an underlying disk image(这个特性SUN ZFS表现的淋漓尽致)
  • 支持多个snapshot,对历史snapshot进行管理
  • 支持zlib的磁盘压缩
  • 支持AES的加密

对于raw的格式:

  • KVM默认格式,原生特性好,但不支持snapshot
  • 支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式

2.安装参数解释

--name  #虚拟机名字

--vcpus     #虚拟机cpu个数

--ram  #虚拟机内存,单位MB

--disk  #指定虚拟机img文件路径,如果虚拟机使用lvm分区,就指向到lvm的分区

size  #虚拟机文件大小,单位GB

format  #虚拟磁盘格式

bus  #虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio

cache  #虚拟机磁盘的cache类型

--network bridge  #指定桥接网卡

model  #网卡模式,这里也是使用性能更好的virtio

--cdrom  #指定安装文件的全路径

--graphics  #图形参数

--os-type  #系统类型

3.virsh命令使用

virsh list --all  #列出所有

virsh start server1  #开启

virsh shutdown server1  #关机

virsh destroy server1  #强制

virsh undefine server1  #删除  以上三个命令为删除虚拟机的操作步骤,彻底删除可另外删除磁盘qcow2和raw文件。

virsh suspend server1  #挂起

virsh resume server1  #恢复

virsh autostart server1  #自启

virsh autostart --disable server1  #去掉自启

virsh dumpxml server1  #得到配置文件

virsh edit server1 修改server1KVM的配置文件,效果等于先dumpxml,然后vi xml,最后define该xml文件(建议关机修改,修改完virsh define防止不生效)

virsh console <虚拟机名称> # 连接虚拟机(需要安装virt-manager图形化管理工具并且系统本身也要装了图形化。不然会一直卡在界面,按CTRL+Shift+5退出卡住的界面)

另外一些对内存和cpu等的操作以下。

四、kvm常用操作

1.查看虚拟机信息(三种角度方式)

#virsh dumpxml node-1 | head -n 10

#virsh dominfo node-1

#qemu-img info centos7.raw

显示虚拟机内存和cpu的使用情况

#yum install virt-top -y

#virt-top

2.在线调整虚拟机内存(增大或减小)
#调整为4G
virsh setmem node-2 4G

#能够在线调整的最大内存不能超过为虚拟机分配的最大内存(上面xml文件中设置的最大为4G),否则需要关闭虚拟机上调最大内存(可以关机之后直接修改xml文件,也可以通过命令来修改最大内存)。如下:

#virsh shutdown node-2

#virsh setmaxmem --size 8G node-2

#virsh start node-2

#virsh dominfo | grep mem 再次查看maxmem和mem,就可以在线调整内存了。

3.在线调整虚拟机CPU(只能增大,不能减小)
virsh setvcpus server1 8
#同样,能够动态调整的最大VCPU个数也不能超过为虚拟机设置的最大VCPU数量(关机之后直接修改xml文件即可调整)

4.在线添加硬盘
#添加qcow2格式硬盘
#创建qcow2格式的新磁盘,大小为40G
qemu-img create -f qcow2 /data/node1-add1.disk 40G
virsh attach-disk node-1 /data/node1-add1.disk vdb --cache none --subdriver qcow2 --config --persistent
#虚拟机根磁盘为vda,因此这里使用vdb表示新添加磁盘
#--config 参数同时更新虚拟机xml文件,确保重启后依然生效

#添加raw格式硬盘
#创建raw格式的新磁盘,大小为40G
qemu-img create -f raw /data/node1-add2.disk 40G
virsh attach-disk node-1 /data/node1-add2.disk vdc --cache none --subdriver raw --config --persistent

#查看虚拟机所有磁盘
virsh domblklist node-2

5.在线移除硬盘
virsh detach-disk node-1 vdb

6.将新添磁盘加入逻辑卷(我在此处使用node-2为例)

1)首先为node-2创建磁盘并添加

2)然后在node-2虚拟机上fdisk /dev/vdb创建分区(以下操作都在node-2虚拟机上)

fdisk -l可以查看创建好的

3)#加入逻辑卷

#vgextend centos /dev/vdb1

#lvextend -l +100%FREE /dev/mapper/centos-root

#resize2fs /dev/mapper/centos-root

4)此时使用命令 xfs_growfs /dev/mapper/centos-root 即可看到磁盘已经扩充完毕

7.在线添加网卡

virsh attach-interface --domain node-1 --type bridge --source virbr0 --model virtio --persistent
#--type bridge: 虚拟机使用桥接模式
#--source virbr0 指定使用的网桥

#查看新添加的网卡
virsh domiflist node-1

8.根据mac地址移除网卡

virsh detach-interface node-1 bridge 52:54:00:6f:0a:da --persistent

9.在线添加光盘
virsh attach-disk node-1 /data/iso/CentOS-6.4-x86_64-bin-DVD1.iso vdd

10.克隆虚拟机

virt-clone 参数介绍
--connect=URI 连接到虚拟机管理程序 libvirt 的URI。
-o 原始虚拟机名称 原始虚拟机名称,必须为关闭或者暂停状态。
-n 新虚拟机名称 --name 新虚拟机名称。
--auto-clone 从原来的虚拟机配置自动生成克隆名称和存储路径。
-u NEW_UUID, --uuid=NEW_UUID 克隆虚拟机的新的UUID,默认值是一个随机生成的UUID。
-m NEW_MAC, --mac=NEW_MAC 设置一个新的mac地址,默认为随机生成 MAC。
-f NEW_DISKFILE, --file=NEW_DISKFILE 为新客户机使用新的磁盘镜像文件地址。
--force-copy=TARGET 强制复制设备。
--nonsparse 不使用稀疏文件复制磁盘映像。

#virt-clone -o node-2 -n node-2.1 -f /opt/vimg/centos7_clone.qcow2

# 手动克隆
1)复制xml配置文件
2)复制img文件
3)更改xml配置
4)virsh define定义配置文件

11.使用virsh命令管理快照

同样的此快照也是支持qcow2磁盘格式的,不是此格式需要先转换格式。

virsh snapshot-create node-2  #创建快照

virsh snapshot-list  node-2  #查看快照

virsh snapshot-revert node-2 1551277410  #恢复快照,数字为快照的TAG,可通过上面查看快照命令知晓

virsh snapshot-current node-2  #查看最新的快照版本

virsh snapshot-delete  node-2   1551277410  #删除

virsh snapshot-create-as --domain node-2 --name webserver_snap  #对快照命名

以上。

KVM的安装使用的更多相关文章

  1. linux中kvm的安装及快照管理

    一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt2.启动libvirtd 报错,升级device-mapper-libs yum ...

  2. 在 KVM 上安装 Win7 虚拟机

    之前都是在用Linux 虚机,现在有需要用到Win7 虚机,才发现在 KVM 上安装 Win7 的过程远比想象中的复杂.本文就把其过程做个简单总结. 1. 在 Virtual Machine Mana ...

  3. kvm虚拟机安装

    KVM虚拟化技术介绍 概述 KVM是基于内核的虚拟化技术(Kernel-based Virtual Machine),于2007年的Linux 2.6.20被合并进Linux内核.KVM要求CPU支持 ...

  4. 烂泥:KVM中安装Windows Server 2008 R2系统

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在前一篇文章中,我介绍了有关在KVM中的安装Centos系统.接下来,就来介绍如何在KVM中安装Windows系统. 注意:在此我安装的是windows ...

  5. centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课

    centos vmware centos6.6 64位 kvm虚拟化安装配置     第四十二节课 上半节课 下半节课 f

  6. web管理kvm ,安装webvirtmgr

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  7. KVM 虚拟机 安装配置

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  8. Centos 6.7 KVM下安装windows 7系统

    装windows 虚拟机之前你需要做以下准备工作:A.下载windows 镜像文件和 windows 的驱动iso 文件到本地,然后上传至服务器的某个目录(当然你也可以直接在服务器上下载):B.你本地 ...

  9. kvm的安装使用技巧

    KVM参考网址 http://www.server110.com/kvm/201403/8321.html http://www.2cto.com/os/201511/451650.html http ...

  10. KVM虚拟机安装报错 KVM is not available

    在linux系统上使用kvm安装系统时,如果你的cpu不支持虚拟化技术那么可能会报以下错误: Warning:KVM is not available. This may mean the KVM p ...

随机推荐

  1. LEMP平台全编译搭建

    1.安装nginx1.13 1.1解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Librar ...

  2. kubernetes进阶之三:Pod

    一:Pod 是什么 Pod是Kubernetes的最重要最基本的概念.它是能够被创建,调度和管理的最小部署单元.一个Pod代表集群中一个运行的进程. 二:Pod的组成 一个Pod由一个特殊的根容器Pa ...

  3. 流式大数据计算实践(4)----HBase安装

    一.前言 1.前面我们搭建好了高可用的Hadoop集群,本文正式开始搭建HBase 2.HBase简介 (1)Master节点负责管理数据,类似Hadoop里面的namenode,但是他只负责建表改表 ...

  4. 一统江湖的大前端(7)React.js-从开发者到工程师

    目录 一. 前端打怪升级指南 1.1 我应该从哪个框架开始学? 1.2 一次转职 1.3 二次转职 1.4 转职-其他 二. 为什么你应该学习React 2.1 技术栈的延伸 2.2 组件化开发 2. ...

  5. VBA批量导入图片到多Word文档并加标题(会飞的鱼)

    感谢会飞的鱼大牛~ Public fp$, obmapp As Object Sub kk() 文件夹浏览器 Application.ScreenUpdating = False Set fso = ...

  6. 初识 MongoDB,MongoDB 的安装运行

    1.  MongoDB 非关系型数据库  MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.目的是为WEB应用提供扩展的高性能的数据存储解决方案.MongoDB是一个介于关系型数据库和 ...

  7. [PHP] 控制反转依赖注入的日常使用

    控制反转:控制权交给了自己的类 依赖注入:依赖另一个类,我没有手动去new它 <?php /*我自己要用的类*/ class User { private $name; private $age ...

  8. Java基础篇——线程、并发编程知识点全面介绍(面试、学习的必备索引)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10739579.html,希望大家多多支持!!! 一.线程基础 1.线程与进程 线程是指进程 ...

  9. Java 连续子数组的最大和(超容易理解)

    题目: {6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止).给一个数组,返回它的最大连续子序列的和 解题思路 ​ 万物皆可使用暴力法,暴力法还是比较容易的 ...

  10. java开发环境配置——IDEA SVN的使用

    一.安装svn客户端,在idea中配置svn 装小乌龟,TortoiseSVN ,就下图一个要注意的地方,这里默认 command line client tools是不安装的,选上.如果已经安装过了 ...