KVM虚拟化

本文详细介绍了KVM虚拟化技术的原理及实践操作,包括硬件要求、安装配置、磁盘管理、虚拟机启动与管理、磁盘文件格式转换以及快照和克隆等高级功能。通过实例演示了如何在Linux环境中安装KVM,创建和管理虚拟机,以及调整存储和网络设置。
摘要由CSDN通过智能技术生成

什么是虚拟化

虚拟化使用软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活调度、跨域共享,提高 IT 资源利用率,使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求

简单点说,假如一台服务器有多余的资源,可以划分出来再部署一台服务器

部署KVM需要硬件的支持

1).安装前准备

服务器或者PC的CPU能支持 VT 技术

虚拟机中安装 KVM 要勾选:处理器:虚拟化 Intel VT-x/EPT 或 AMD-V/RVI(V)

安装一块60G硬盘(如果空间够大不加硬盘也是可以的)

处理器,内存给高点(本实验内存8G,处理器2,内核2)

硬盘空间必须要大!如果初始容量就不多的话建议加一块硬盘挂载到/目录使用

切记勾选虚拟化,否则不支持

硬件完成后开始软件搭建以及部署

因为添加了新磁盘,所以我们先创建分区以及格式化

[root@localhost ~]# fdisk /dev/sdb

//创建主分区其他全部默认即可,w保存退出

[root@localhost ~]# mkfs.ext4 /dev/sdb1

//将分区格式化为ext4

接着挂载镜像配置yum源

[root@localhost ~]# mount /dev/cdrom /media/

[root@localhost ~]# rm -rf /etc/yum.repos.d/*

[root@localhost ~]# vim /etc/yum.repos.d/yum.repo

2).安装 KVM 所需软件

[root@localhost ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils virt-manager libvirt groupinstall "GNOME Desktop"

[root@localhost ~]# cat /proc/cpuinfo | grep vmx

//查看一下cpu中是否有vmx等相关信息,如果没有则安装错误

[root@localhost ~]# lsmod |grep kvm

//查看内核支持的组件

kvm_intel             174841  0

kvm                   578518  1 kvm_intel

irqbypass              13503  1 kvm

3).绑定网卡--以太网通道--聚合链路--桥接网络

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

//切换至存放网卡目录

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-br0

//复制一块网卡出来,br0为Bridge(第一块)桥接网卡

[root@localhost network-scripts]# vim ifcfg-ens33

//更改网卡配置信息

更改为:(除了UUID,其他全部删除,然后添加)

UUID=2d39e38f-9fa9-47c5-b347-7f92b22797ed

BOOTPROTO=none

BRIDGE="br0"

TYPE=Ethernet

BOOTPROTO=dhcp

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=ens33

DEVICE=ens33

ONBOOT=none

BRIDGE="br0"

//绑定第一块桥接网卡

[root@localhost network-scripts]# vim ifcfg-br0

更改为:(还是除了UUID全部删除,然后添加)

UUID=2d39e38f-9fa9-47c5-b347-7f92b22797ed

DEVICE=br0

NAME=br0

TYPE=Bridge

ONBOOT=yes

BOOTPROTO=none

TYPE=Bridge

BOOTPROTO=none

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.1.1

NETMASK=255.255.255.0

[root@localhost network-scripts]# systemctl restart network

//重启下网卡(两块网卡,会有个缓存,重启完最好查看下br0为1.1,ens33没有IP)

4).启动虚拟机管理器

[root@localhost ~]# systemctl restart libvirtd

[root@localhost ~]# mkdir /cp

[root@localhost ~]# mount /dev/sdb1 /cp

//将sdb1磁盘挂载到/cp目录,扩大容量

[root@localhost ~]# virt-manager

//打开虚拟机管理器

双击红格处然后点击存储

然后点击左下角加号创建一个存储池,名称自定义然后点击前进

目标路径可以随便写,不过要记清楚(会自动创建对应目录)点击完成即可

但是我们的磁盘空间在cp目录下,所以必须得放在cp目录下,不然无法使用磁盘空间

同样的方式再创建一个iso镜像的存储池

接着打开iso存储池目录,将镜像放进去,如果一次没进去就多粘贴几次

再打开虚拟机管理器,找到第一个创建的存储池然后点击+号

自定义一个名称,文件格式选择qcow2,空间尽量给大一些

创建完成后点击虚拟机管理器左上角的文件,点击新建虚拟机,保持默认本地安装介质前进

再点击使用ISO镜像,然后浏览选择ISO存储池选择我们刚才上传好的镜像文件点击选择卷,勾选上根据安装介质自动侦测操作系统然后点击前进

如果ISO存储池里没有镜像就刷新一下

这一步保持默认

点击前进然后点击选择或创建自定义存储然后管理

找到第一个存储池然后找到我们创建的qcow2文件系统的文件

完成后下一步勾选在安装前自定义配置点击完成

最后点击引导选项勾选主机引导时启动虚拟机然后点击应用再点击左上角开始安装

接下来的安装就正常安装centos7,不做演示

5).查看一下虚拟机文件

[root@localhost ~]# ls /etc/libvirt/qemu/

autostart  centos7.0.xml  networks

//虚拟机文件目录

[root@localhost ~]# ls /var/lib/libvirt/images/

//虚拟机磁盘文件目录,当前是没有的,因为还没有给它添加磁盘

6).管理 KVM 虚拟机

virsh list //查看正在运行kvm虚拟机

virsh list –all //查看所有kvm虚拟机状态

virsh start 名字 //启动

virsh shutdown 名字 //关机

virsh destroy 名字 //强制关机

virsh autostart 名字 //自动启动

virsh suspend 名字 //挂起

virsh resume 名字 //恢复

virsh undefine 名字 //删除

virsh edit 名字 //编辑

7).转换磁盘文件格式

KVM 中有两种磁盘文件格式:raw 和 qcow2

raw 读写性能快 qcow2 节省磁盘空间

8.转换磁盘文件格式

KVM中有两种磁盘文件格式:raw和qcow2

raw 读写性能快   qcow2 节省磁盘空间

qemu-img info /datakvm/store/bdqn-kvm.qcow2 //查看当前磁盘格式

image: /datakvm/stor/bdqn-kvm.qcow2

file format: qcow2

virtual size: 9.0G (9663676416 bytes)

disk size: 4.2G

cluster_size: 65536

Format specific information:

    compat: 1.1

    lazy refcounts: true

如果虚机磁盘文件不是qcow2格式,可以通过“qemu-img”命令转换磁盘文件格式,如执行以下操作可以将tes01虚拟机raw格式磁盘转换至qcow2格式。

.img转换为.qcow2:

virsh shutdown

find /var/lib/ -name centos7.0.img

[root@localhost ~]# qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/bdqn1.img /var/lib/libvirt/images/bdqn1.qcow2(大欧)

修改XML文件使其生效:

virsh edit centos7.0 //修改<disk></disk>中的raw改为qcow2

<disk type='file' device='disk'>

      <driver name='qemu' type='qcow2'/>

      <source file='/datakvm/stor/bdqn-kvm.qcow2'/>

      <target dev='vda' bus='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <target dev='hda' bus='ide'/>

      <readonly/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

</disk>

删除源文件:

rm -rf /datakvm/stor/ bdqn1.img

[root@localhost ~]# qemu-img info /cp/store/huge_kvm.qcow2

//这条命令可以查看我们该磁盘的文件系统以及大小

如果file format:img,我们需要将它转换成qcow2文件系统

8).给 KVM 中的虚拟机添加硬盘

[root@localhost ~]# virsh destroy centos7.0

//注意:必须关机操作

添加磁盘:

[root@localhost ~]# qemu-img create -f raw /var/lib/libvirt/images/huge.img 5G

//carete创建,-f指定文件系统为raw,创建到这个目录下,磁盘名字叫huge.img,大小5G

Formatting '/var/lib/libvirt/images/huge.img', fmt=raw size=5368709120 //提示信息

将新设备添加到虚拟机的配置文件中:

[root@localhost ~]# virsh edit centos7.0

添加:

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw'/>

      <source file='/var/lib/libvirt/images/huge.img'/>

      <target dev='sdb' bus='ide'/>

</disk>

创建了一块raw磁盘,我们可以将文件系统进行更改,更改为qcow2文件系统

[root@localhost ~]# qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/huge.img /var/lib/libvirt/images/huge.qcow2

//-f:指定要更改的文件系统 -大o:指定要更改为的文件系统 默认存放在虚拟机磁盘文件目录里,原始文件名是huge.img,更改后是huge.qcow2(配置文件也要更改)

  1. 克隆虚拟机(必须为关机状态)

[root@localhost ~]# virt-clone -o centos7.0 -n centos7.1 -f /var/lib/libvirt/images/huge2.qcow2

-o:指定要克隆的虚拟机 -n:指定克隆出来的虚拟机名字

-f:指定克隆文件的存放位置,名字为huge2.qcow2

注意:克隆需要将刚才添加的磁盘从配置文件删掉,因为不支持克隆磁盘功能

  1. 快照管理(只支持 qcow2 存储格式)

创建快照virsh snapshot-create 虚拟机名字

创建指定名称的快照virsh snapshot-create-as 虚拟机名字 快照名称

查看快照列表virsh snapshot-list 虚拟机名字

查看虚拟机当前配置状态信息virsh snapshot-current 虚拟机名字

恢复快照virsh snapshot-revert linux1 linux1-bak

删除快照virsh snapshot-delete linux1 linux1-bak

  1. 使用命令行创建虚拟机

virt-install

参数选项:

--name指定 KVM 虚拟机的名字

--ram内存大小

--file磁盘文件的路径

--vcpus指定虚拟机的 CPU 数量

--file-size=30(默认单位是 G) 设置硬盘大小

--cdrom光驱提供 boot.iso 镜像

--location本地提供 boot.iso 镜像

--network network:default 设置网卡(使用默认)

--vnc --vncport=5911 连接桌面环境的 vnc 端口

virt-install --name=centos7.1 --ram=1024 --vcpus=1 --file=/kvm/centos77.img --file-size=30 --location=/iso/CentOS-7.5-x86_64-DVD-1804.iso --force

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值