知了堂|创建虚拟机(KVM)的步骤
时间:2023-07-15 20:45:01 | 来源:网站运营
时间:2023-07-15 20:45:01 来源:网站运营
知了堂|创建虚拟机(KVM)的步骤:
KVM虚拟机部署步骤1.KVM相关组件介绍kvm、qemu、libvirt的区别和联系
在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvm
kvm:
负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
qemu:
是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
因为用到了上面两个东西,所以一般都称之为qemu-kvm。
libvirt:
则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便,直接用qemu-kvm的接口太繁琐。
libvirt简介
KVM的管理工具,因为libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用程序接口(API),而且一些常用的虚拟机管理工具(如virsh、virt-install、virt-manager等)和云计算框架平台(如OpenStack、OpenNebula、Eucalyptus等)都在底层使用libvirt的应用程序接口。
3
.KVM部署2.1.KVM相关组件安装
需要在带有桌面环境的服务器中使用KVM技术:
# yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager
验证CPU是否支持虚拟化:
# cat /proc/cpuinfo | grep vmx //如出现信息则表示支持虚拟化
# cat /proc/cpuinfo | grep svm //此方式为验证AMD的CPU
vmx //inter
svm //AMD
#若查看不到信息,说明没有开启虚拟化,查看文档末尾进行修改虚拟化设置
验证KVM模块是否安装:
# lsmod | grep kvm //出现信息则表示已安装
kvm_intel 53484 0
kvm 316506 1 kvm_intel
# systemctl enable libvirtd
# systemctl start libvirtd
2.2.设置网卡:
使用桥接模式。
# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=20a84c35-af30-49be-9b30-7a4977980ab0
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.1.40
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
BRIDGE="br0" //增加此行
生成桥接网卡配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-br0 //加入以下内容
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
TYPE=Bridge
NAME=br0
IPADDR=192.168.1.40 //可以改为ens32的IP地址,也可以设置为其他IP地址,这里的IP地址可以与其他主机通信,而ens32的IP地址将会无效
NETMASK=255.255.255.0
关闭网络管理工具,否则无法正常使用桥接模式:
# systemctl stop NetworkManager
# systemctl disable NetworkManager
# systemctl restart network //重启网卡服务器
查看配置文件是否生效:
# ifconfig //出现了"br0 "、"virbr0"表示配置成功
通过CRT连接192.168.1.40 宿主机
2.3 创建虚拟机系统
在图形化界面下操作:
# virt-manager //打开kvm虚拟机管理界面,打不开未响应可以尝试 rpm -e卸载该程序并重新安装
或者应用程序---系统工具---虚拟系统管理器
通过图形化界面开始创建 新的系统并使用
可以先通过fdisk命令创建分区并挂载,再将安装数据存放在挂载点中。
# mount /dev/sdb1 /var/lib/libvirt/images/
使用KVM命令管理虚拟机:
# yum install -y acpid //安装"电源管理"服务
acpid为替代传统的APM电源管理标准而推出的新型电源管理标准。建议所有的笔记本用户开启它。一些服务可能不需要acpi。支持的通用操作有:“电源开关”,“电源监视”,“笔记本LID开关”,“笔记本显示屏亮度”,“休眠”,“挂机”等等。
# systemctl start acpid
# systemctl disable acpid
# virsh -h //查看命令帮助信息,KVM管理命令
/etc/libvirt/qemu //kvm虚拟机配置文件存放目录
# virsh list --all //查看虚拟机运行状态
Id 名称 状态
----------------------------------------------------
5 centos-1 running
# virsh shutdown centos-1 //关机"centos-1"这台服务器
# virsh destroy centos-1 //强制关机"centos-1"这台服务器
# virsh create /etc/libvirt/qemu/centos-1.xml //通过虚拟机配置文件位置启动该虚拟机
# virsh list --all
Id 名称 状态
----------------------------------------------------
6 centos-1 running
# virsh suspend centos-1 //挂起正在运行的虚拟机
域 centos-1 被挂起
# virsh resume centos-1 //恢复被挂起虚拟机
域 centos-1 被重新恢复
# virsh autostart centos-1 //设置该虚拟机开机自动启动
域 centos-1标记为自动开始
# virsh domiflist centos1 //查看指定虚拟机的网卡信息
配置宿主机中的虚拟机网卡:
# vi /etc/sysconfig/network-scripts/ifcfg-ens32 //修改网卡为启动,以及设置IP状态为静态获取以及相关IP参数。保存退出
DEVICE=ens32
HWADDR=52:54:00:02:3F:7D
TYPE=Ethernet
UUID=75e0081f-17fb-49be-ab4c-22ace4b8ac37
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.200
NETMASK=255.255.255.0
# systemctl restart network //重启网卡后即可通过该IP与宿主机通信,也可用该IP与真实机通信
给宿主机中的虚拟机添加多个网卡:
方法1:通过图形化界面添加
1.在宿主机中打开虚拟系统管理器,选中要添加网卡的虚拟机,并点击上方"打开"
2.点击第二个 蓝色背景感叹号图标,在最下方"添加硬件",选中第二个"network" 并记住该MAC地址,便于添加网卡配置文件使用
方法二:
也可使用命令行进行添加新网卡:
# virsh attach-interface --domain centos1 --type bridge --source br0
成功附加接口
# virsh domiflist centos1 //添加完后查看该指定虚拟机网卡列表
通过命令行添加的新网卡也需要生成新网卡配置文件,以及填写新网卡mac地址在网卡配置文件中。
3.生成新网卡配置文件:
图形化添加网卡 命令行添加网卡都需要执行以下操作:
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens32 ifcfg-ens33
# vi ifcfg-ens33 //修改新网卡配置文件参数
DEVICE=ens33
HWADDR=52:54:00:4f:5e:db //mac地址为最开始添加网卡时的mac地址
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.201 //IP改为新网卡IP地址
NETMASK=255.255.255.0
也可以在此文件下找新网卡的mac地址,便于生成新网卡配置文件:
# vi /etc/udev/rules.d/70-persistent-net.rules