虚拟化——KVM(安装Centos7测试)

KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它允许在一个物理主机上运行多个虚拟机(VMs)。KVM是Linux内核的一部分,并且利用了处理器的硬件虚拟化扩展(Intel VT或AMD-V),以实现更高效的虚拟化。

KVM虚拟化的主要组成部分包括:

  1. KVM模块:KVM模块是Linux内核的一部分,它允许内核成为虚拟机监视器(VMM)的一部分,即Hypervisor。这使得内核能够直接管理和监控虚拟机的运行。

  2. QEMU:QEMU(Quick Emulator)是一个开源的虚拟化工具,它允许在主机系统上运行不同体系结构的虚拟机。在KVM中,QEMU通常用作设备模拟器,负责模拟虚拟机所需的硬件设备。

  3. libvirt:libvirt是一个虚拟化管理工具,它提供了统一的API接口,允许管理员使用多种虚拟化技术(包括KVM)进行虚拟机的管理和监控。

KVM的工作原理是通过将Linux内核转换为Hypervisor,它通过虚拟化扩展来创建和管理虚拟机,并且在主机系统上实现硬件资源的分配和隔离。KVM虚拟化允许每个虚拟机在独立的环境中运行,就像在单独的物理服务器上一样。

优点:

  • 性能: KVM虚拟化借助硬件虚拟化扩展,提供接近原生性能的虚拟化体验,使虚拟机能够高效地运行。
  • 安全性: 每个虚拟机都在独立的环境中运行,隔离性较高,因此一个虚拟机的问题不会影响其他虚拟机或主机系统。
  • 资源隔离: KVM可以将主机的物理资源(CPU、内存、硬盘等)分配给每个虚拟机,确保它们得到适当的资源配额。

KVM虚拟化已经成为许多企业和云服务提供商的首选虚拟化解决方案,因为它提供了高性能、安全性和资源隔离,同时具备灵活性和易管理性。

安装KVM

1.虚拟机的环境准备

设置虚拟机的内存为2GB,并打开支持虚拟化

 添加一块60GB大小的硬盘

 最终配置完成的虚拟机的环境准备

 2.检查CPU参数

修改主机名,启动虚拟机,查看内存是否更改成功
hostnamectl set-hostname kvm #修改主机名为kvm
bash #生效
free #查看cpu参数

检查cpu是否开启虚拟化支持(如果显示为空,需要检查虚拟机设置虚拟化)

 3.挂载新硬盘

检查虚拟机是否新增一块60GB的硬盘
lsblk #检查磁盘

 格式化新增硬盘sdb,格式化为ext4格式
mkfs.ext4 /dev/sdb

 查看硬盘信息

blkid /dev/sdb #blkid+硬盘:查看硬盘信息

 格式化完成后,进行挂载(挂载目录为/kvm_data/)

mkdir /kvm_data #创建目录
mount /dev/sdb /kvm_data/
df -h #查看挂载信息

 4.关闭防火墙和selinux

关闭防火墙并设置开机不自启
systemctl stop firewalld
systemctl disable firewalld

 关闭selinux。编辑/etc/selinux/config, 将enforcing修改为disabled

cat /etc/selinux/config #查看selinux配置内容,查找更改内容

 

修改完成后,重启虚拟机使其生效。并使用getenforce查看

 5.安装KVM

使用yum安装KVM(本地yum源或者网络yum源)

yum install -y virt-* libvirt bridge-utils qemu-img

启动KVM

1.配置网卡

增加桥接网卡 ifcfg-br0

cd /etc/sysconfig/network-scripts/

cp ifcfg-eno16777736 ifcfg-br0
//ifcfg-eno16777736 为配置 IP 的网卡,你的网卡可能与我的不同

修改桥接网卡ifcfg-br0的内容

vi ifcfg-br0

 修改NAT网卡ifcfg-eno16777736

 2.启动libvirtd服务

Libvirt是管理虚拟机和其他虚拟化功能,比如存储管理,网络管理的软件集合。位于虚拟机和云管理中间的一个抽象管理层。它包括一个API库,一个守护程序(libvirtd)和一个命令行工具(virsh);libvirt本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的API。
libvirt的主要目标是为各种虚拟化工具提供一套方便、可靠的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式。

首先检查KVM模块是否加载

lsmod|grep kvm

 启动 libvirtd 并检查是否成功启动

systemctl start libvirtd
ps -ef |grep libvirt

 启动成功后使用brctl命令可以看到两个网卡

brctl show

3.命令行安装CentOS7

CentOS7 镜像下载地址: http://mirrors.163.com/centos/7/isos/x86_64/
首先,通过 SCRT 上传 CentOS 7 镜像到/tmp 目录下,如果没有镜像的可以 自行下载。上传后,使用 ll 命令查看/tmp 目录下是否存在 CentOS 7 镜像文件

 使用virt-install 进行CentOS7的安装

virt-install --name=test --memory=512,maxmemory=1024 
--vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1804.iso 
--disk path=/kvm_data/test.img,size=10 
--bridge=br0 --graphics=none --console=pty,target_type=serial 
--extra-args="console=tty0 console=ttyS0"

命令解释:
●--name:指定虚拟机的名称。
●--memory:指定分配给虚拟机的内存资源大小。
● maxmemory:指定可调节的最大内存资源大小,因为 KVM 支持热调整虚 拟机的资源。
●--vcpus:指定分配给虚拟机的 CPU 核心数量。
●maxvcpus:指定可调节的最大 CPU 核心数量。
●--os-type:指定虚拟机安装的操作系统类型。
● --os-variant:指定系统的发行版本。
● --location:指定 ISO 镜像文件所在的路径,支持使用网络资源路径,也就 是说可以使用 URL。
● --disk path:指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可 用大小,单位是 G。
● --bridge:指定使用哪一个桥接网卡,也就是说使用桥接的网络模式。
●--graphics:指定是否开启图形。
● --console:定义终端的属性,target_type 则是定义终端的类型。
● --extra-args:定义终端额外的参数。  

安装完成后出现以下界面, 这是系统基础设 置,带[!]基本都是需要配置的,接下来我们开始配置“Timezone settings”,输 入“2”,按 Enter 键
“Timezone settings”时区设置选择 5) Asia 亚洲,再选择城市 62) Shanghai 上海

 

 输入完毕后,可以发现 2 的[!]变成了[x],证明配置完毕。 接下来我们配置“Software selection”,选择“4”,在选择“c”,因为默 认就是 minimalinstall,按 Enter 键

 

 下面我们配置“Installation Destination”,选择“5”,其余的依次选择“c”, 按 Enter 键
然后接下来配置“Root password”,选择 8,按 Enter 键

 

 配置完成,选择“b”,按 Enter 键后,开始安装即可

 出现以下信息代表安装成功

按“Ctrl+]”键,退出终端,回到宿主机

 虚拟机管理

1.KVM的基本管理

完成虚拟机安装,退回到宿主机,接下来使用宿主机virsh命令进行管理刚才安装的CentOS虚拟机

virsh list #查看虚拟机列表,只能看到正在运行的虚拟机

virsh list --all
#查看虚拟机列表,包括未运行的虚拟机

virsh console test #进入指定虚拟机
 vrish常用的命令
virsh shutdown test 
//关闭虚拟机
virsh start test 
//开启虚拟机
virsh destroy test
//类似 stop,这个是强制停止
virsh undefine test
//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all 就看不到
virsh autostart test
//宿主机开机该虚拟机也开机
virsh autostart --disable test
//解除开机启动
virsh suspend test
//挂起
virsh resume test
//恢复

2.克隆虚拟机

克隆虚拟机之前,要先关闭虚拟机(test)。

virt-clone --original test --name test02 --file 
#--original test: 用于指定原始虚拟机的名称。在这里,test 是您希望克隆的原始虚拟机的名称。

--name test02: 用于指定新创建的克隆虚拟机的名称。在这里,test02 是您希望为克隆虚拟机设置的新名称。

--file <目标磁盘文件>: 用于指定新创建的克隆虚拟机的目标磁盘文件路径。在这里,您需要提供一个目标磁盘文件的路径,该文件将用于存储克隆虚拟机的磁盘镜像。

#会出现找不到命令,进行yum源下载

yum install libvirt-client

执行克隆命令后

成功克隆之后,在宿主机上查看虚拟机配置文件,看是否添加test02.xml文件

cd /etc/libvirt/qemu

virsh list -all #查看虚拟机列表
virsh start test02 #打开虚拟机test02

 3.快照管理

快照是在我们使用 Vmware 的时候,很常用的一个功能。它可以回到之前的 某一状态。在 KVM 中 RAW 格式的虚拟磁盘不支持做快照,qcow2 支持。
创建快照

virsh snapshot-create test #创建快照

查看磁盘镜像文件test.img的信息,同时也会反馈快照的列表

qemu-img info /kvm_data/test.img

 列出所有快照

virsh snapshot-list test

 查看当前快照版本

virsh snapshot-current test

 查看所有快照的配置文件

ls /var/lib/libvirt/qemu/snapshot/test/

 恢复指定快照

virsh snapshot-revert test 1691334489

 删除指定快照

virsh snapshot-delete test 1691334489

 删除后观察是否还有快照文件

ls /var/lib/libvirt/qemu/snapshot/test/

 4.磁盘格式

查看虚拟机磁盘格式

qemu-img info /kvm_data/test.img

创建2GB的RAW格式磁盘

qemu-img create -f raw /kvm_data/test_1.img 2G

RAW格式的磁盘转换为qcow2格式

qemu-img convert -O qcow2 /kvm_data/test_1.img

查看test1.img大小

ls -lh /kvm_data/test_1.img
ls -lh /kvm_data/test_1.qcow2
//可以看到 qcow2 文件比较小,raw 文件大小和我们指定空间大小一样是 2G

//raw 格式的磁盘性能比 qcow2 要好,但是 raw 格式的磁盘无法做快照

将test02转成raw格式

qemu-img convert -O raw /kvm_data/test02.img

更改磁盘格式和文件路径,然后启动test02虚拟机

virsh edit test02 #virsh edit 命令用于编辑虚拟机定义文件,其中 "test02" 是虚拟机的名称。虚拟机定义文件包含了虚拟机的配置信息,例如虚拟硬件设备、网络设置和启动选项

 查看磁盘所属用户和组

 调整CPU内存,网卡

   查看虚拟机配置信息

virsh dominfo test #用于查看有关虚拟机的基本信息,其中 "test" 是虚拟机的名称。这个命令不会编辑虚拟机定义文件,而是提供虚拟机的当前状态和基本属性的摘要信息

编辑虚拟机内存

virsh edit test

 

重启虚拟机
virsh destroy test
virsh start test
查看配置
virsh dominfo test #需要时间,十到十五秒修改完成

 

 

 第二种方法,动态修改

virsh setmem test 800m #动态修改内存
virsh setvcpus test 2 #动态修改cpu 只能增加不能减少

 virsh dominfo test #查看配置

 修改完配置后需要写入配置文件中

virsh dumpxml test > /etc/libvirt/qemu/test.xml
#dumpxml:这是 virsh 命令的一个子命令,用于导出虚拟机的配置信息。

查看网卡列表

virsh domiflist test

 增加一块新的网卡,并设置为NAT网络模式(virbr0 类似 VMware 的 VMnet8),这里如果写--source br0,则网络模式为桥接 )

virsh attach-interface test --type bridge --source virbr0

virsh domiflist test

virsh dumpxml test > /etc/libvirt/qemu/test.xml

进入test虚拟机,查看网卡信息

virsh console test
ip a

 迁移虚拟机

首先关闭虚拟机

virsh shutdown test

 查看虚拟机磁盘所在目录

virsh domblklist test
virsh dumpxml test > /etc/libvirt/qemu/test03.xml
//如果是远程机器,需要把该配置文件拷贝到远程机器上
rsync -av /kvm_data/test.img /kvm_data/test03.img
//-bash: rsync: command not found 则 yum install -y rsync
//如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上

因为是迁移到本机,配置文件用的是 test 子机的配置,不改会有冲突,所以 需要修改该文件。如果是远程机器不用修改

vi /etc/libvirt/qemu/test03.xml

 

 定义新虚拟机

virsh define /etc/libvirt/qemu/test03.xml

 查看虚拟机列表,会发现新迁移的虚拟机 test03

virsh list --all

 

virsh start test03
virsh list --all

 KVM管理完成

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在CentOS 7上进行KVM虚拟化部署,可以按照以下步骤进行操作: 1. 首先,部署KVM环境。这可以通过安装libvirt、virt和qemu-kvm等软件包来实现。 2. 将CentOS 7的ISO镜像拉入宿主机。这可以通过将ISO镜像文件复制到宿主机上的任意位置来完成。 3. 使用VMM GUI或命令行工具(如virt-install)创建KVM虚拟机。在创建虚拟机时,需要指定虚拟机的名称、内存大小、CPU数量和磁盘路径等参数。 4. 确保虚拟机的网络使用桥接模式,这样虚拟机可以与宿主机和其他虚拟机进行通信。 5. 可以在虚拟机关机状态下创建快照,以便在需要时可以恢复到该状态。这可以通过VMM GUI或命令行工具来完成。 需要注意的是,虚拟机的定义文件通常存储在`/etc/libvirt/qemu/`目录中。如果需要克隆虚拟机,可以复制定义文件并进行相应的修改。 总结起来,CentOS 7 KVM虚拟化部署的步骤包括:部署KVM环境、拉入ISO镜像、创建虚拟机、配置网络和创建快照。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CentOS部署kvm虚拟化机器](https://blog.csdn.net/weixin_45052781/article/details/125988357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Centos7 安装KVM](https://blog.csdn.net/justlpf/article/details/126720554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值