KVM虚拟化

  简介

  KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机。

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

 安装KVM

     调整虚拟机

  修改虚拟机内存,至少设置成2GB,双击“编辑虚拟机设置”按钮,如下图所示:

  

 

    将虚拟机的内存修改为“2048”,如图所示:

    

 

    在“硬件”选项卡中单击“处理器”,在虚拟化引擎中勾选虚拟化cpu性能计数器和虚拟化Intel VT,如下图所示:

  

 

   接下来,我们添加一块50G的硬盘

  

 

   

 

   

 

   

 

  

 

   

 

   到这里虚拟机设置就完成了。

 检查CPU参数

[root@kvm ~]# free

[root@kvm ~]# grep -Ei 'vmx|svm' /proc/cpuinfo        #//vmx为英特尔的cpu;svm为AMD的cpu。

 

  如果显示为空,就要检查你虚拟机设置虚拟化引擎那里有没有打上√。

  挂载磁盘

  lsblk查看我们新添加的磁盘

  

 

 可以看到一块大小为50G名字为sdb的磁盘

 接下来格式化这块磁盘,格式化成ext4格式

 

 

//blkid+磁盘:查看磁盘信息

格式化完成后,挂载磁盘,创建挂载目录/kvm_data,然后进行挂载。

 

 这种方式挂载后,重启虚拟机后需要重新挂载,我们可以设置一下开机自动挂载。

编写/etc/fstab文件,在最后一行添加/dev/sdb     /kvm_data           ext4      defaults    0 0

 

 关闭防火墙和selinux

 

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

 

安装KVM

[root@kvm ~]# yum install -y  virt-*  libvirt  bridge-utils qemu-img vim

启动KVM

配置网卡

增加桥接网卡ifcfg-br0,命令如下

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

[root@kvm network-scripts]# cp ifcfg-eth0 ifcfg-br0      //ifcfg-eth0是配置的IP网卡,注意自己的网卡名字。

 

 

 修改桥接网卡ifcfg-br0和NAT网卡ifcfg-eth0的内容,修改后service network restart 重启网卡

 

启动libvirtd服务

 

 检查kvm模块是否加载

[root@kvm ~]#lsmod|grep kvm

 

 

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

 

 

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

 

 

 命令行安装Centos7

通过xshell或者CRT把centos7镜像上传到tmp目录下,上传后使用ll命令查看是否存在。

 

 

 镜像存在,接下来使用virt-install进行CentOS 7的安装

[root@kvm ~]# 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-1511.iso --disk path=/kvm_data/test.img,size=10  --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"
 

命令解释:

l --name:指定虚拟机的名称。

l --memory:指定分配给虚拟机的内存资源大小。

l maxmemory:指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源。

l --vcpus:指定分配给虚拟机的CPU核心数量。

l maxvcpus:指定可调节的最大CPU核心数量。

l --os-type:指定虚拟机安装的操作系统类型。

l --os-variant:指定系统的发行版本。

l --location:指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL。

l --disk path:指定虚拟硬盘所存放的路径及名称,size则是指定该硬盘的可用大小,单位是G。

l --bridge:指定使用哪一个桥接网卡,也就是说使用桥接的网络模式。

l --graphics:指定是否开启图形。

l --console:定义终端的属性,target_type 则是定义终端的类型。

l --extra-args:定义终端额外的参数。

打完上面那条命令后,等一会,就可以看见下面这段命令,这是系统基础设置,带[!]基本都是需要配置。

 

 

1“Language settings”语言设置选择68中文,简体中文。

 

 

 

回车开始设置“Timezone settings”时区设置,选择Asia 亚洲,在选择城市上海

 

 

 接下来我们配置“Software selection”,选择“4”,在选择“c”,因为默认就是minimalinstall,按Enter键

 

 接下来我们配置“Installation Destination”,选择“5”,其余的依次选择“c”默认,按Enter键

 

 

接下来配置“Root password”,选择8,按Enter键 依次输入两次密码,密码相同,我设置的是000000,

Would you like to use it anyway?

//这句话的意思:你的密码太过简单,是否使用它,输入yes即可。

 

 

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

 Installation complete.  Press return to quit     //按回车

 

 

 输入用户名root,密码为刚才设置的000000.

 

 到这里kvm虚拟化就完成了。

 

posted @   王路飞飞飞  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示