CentOS7.4使用KVM

  

[root@node1 ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
[root@node1 ~]# uname -r
3.10.0-693.el7.x86_64


虚拟机IP:192.168.1.201

查看CPU是否支持VT功能
[root@node1 ~]# egrep '(vmx|svm)' /proc/cpuinfo
注:如返回内容则说明已经开启,如未返回内容则需要在主板的BIOS中开启虚拟化
[root@node1 ~]# lsmod |grep kvm         # 确定是否正确加载kvm模块


在CentOS 7上安装KVM
yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer
注:
qemu-kvm = QEMU模拟器
qemu-img = QEMU磁盘映像管理器
virt-install = 用于创建虚拟机的命令行工具。
libvirt = 提供管理虚拟机和控制虚拟机管理程序的libvirtd守护程序。
libvirt-client = 提供用于访问服务器的客户端API,还提供virsh实用程序,该实用程序提供命令行工具来管理虚拟机。
virt-viewer = 图形控制台


[root@node1 ~]# systemctl enable libvirtd      # 将libvitd服务加入开机自启
[root@node1 ~]# systemctl start libvirtd       # 启动libvitd服务
[root@node1 ~]# systemctl status libvirtd       # 查看libvitd服务的状态


检查桥网模块:
[root@node1 ~]# modprobe --first-time bridge
modprobe: ERROR: could not insert 'bridge': Module already in kernel
安装桥网模块:
[root@node1 ~]# yum -y install bridge-utils
创建网桥:
[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-virbr0
DEVICE="virbr0"
BOOTPROTO="static"
IPADDR="192.168.1.201"     #改成这个IP才能使用类似xshell的工具连上去
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1=192.168.1.1
NBOOT="yes"
TYPE="Bridge"

扫描二维码关注公众号,回复: 5848695 查看本文章

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=virbr0


[root@node1 ~]# systemctl restart network


开启转发功能并修改ulimit参数
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@node1 ~]# /bin/echo "* soft nproc 65500" >>/etc/security/limits.conf
[root@node1 ~]# /bin/echo "* hard nproc 65500" >>/etc/security/limits.conf
[root@node1 ~]# /bin/echo "* soft nofile 65500" >>/etc/security/limits.conf
[root@node1 ~]# /bin/echo "* hard nofile 65500" >>/etc/security/limits.conf

拷贝镜像:
[root@node1 ~]# dd if=/dev/sr0 of=/mnt/usb2/centos7.iso
注:/dev/sr0里面是centos7的iso镜像,of后面是输出到哪里并自定义一个以iso结尾的名字

[root@node1 ~]# sed -i "s/#spice_tls = 1/spice_tls = 1/" /etc/libvirt/qemu.conf
[root@node1 ~]# sed -i "s/#spice_listen/spice_listen/" /etc/libvirt/qemu.conf
[root@node1 ~]# sed -i "s/#vnc_listen/vnc_listen/" /etc/libvirt/qemu.conf

创建虚拟机
virt-install用于使用命令行模式创建虚拟机,此命令需要我们的多个输入来创建虚拟机,如CPU,内存,磁盘,网络,安装介质位置,操作系统变体等。
[root@node1 ~]# virt-install --name toto2 --ram 512 --vcpus=1 --cdrom=/mnt/usb2/centos7.iso --os-variant=rhel7 \
--boot=cdrom --disk=/toto2.dsk,cache=none,size=5 --network default,model='e1000' \
--graphics vnc,password=123456,port=5900,keymap=ja,listen=0.0.0.0 --noautoconsole --os-type=lnux

注意:上述命令使用桥接网络“virbr0”允许虚拟机与外部网络通信,您可以找到有关使用Virt Manager创建桥接网络的教程。

--name = 虚拟机的名称
--ram = 以MB为单位的内存大小
--vcpus = 虚拟CPU的数量
--cdrom = ISO映像的位置
--os-type = Linux,Windows等操作系统类型
--os-variant = 操作系统变体,如RHEL 6,Solaris
--boot = 客户机引导设置
--disk = 指定客户机的硬盘位置,没有缓存,大小为5G
--network = 网络,网卡的定义和速率
--graphics = 访客显示设置,密码、端口等
--os-type = 客户机的系统类型

#=============================================================================================================
报错1:
ERROR internal error: process exited while connecting to monitor: Cannot set up guest memory 'pc.ram': Cannot allocate memory
解决办法:
# vim /etc/libvirt/qemu.conf
user = “root”      # 该项去星号
group = "root"    # 该项去星号
# 这个问题是你的虚拟机的内存有点小,虚拟机的内存小的同时还再来带一台机器,肯定带不起来所以会报错。
#刚开始我设置的内存是24G(出错),后来设置成16G(出错),后来设置成10G(也出错了),后来设置成2G能起来了
#后来我把VMware的内存调到32G后就能正常的创建4G内存的虚机了
报错2:
错误:将插槽连接到 '/var/run/libvirt/libvirt-sock' 失败: 没有那个文件或目录
解决办法:
systemctl status libvirtd           查看该服务状态
systemctl start libvirtd              启动该服务
systemctl enable libvirtd          开机自启动
#=======================================================================================================

使用VNC连接:

注:上面不用写Username

 

kvm文件默认路径:
    cd /etc/libvirt/qemu
磁盘文件默认路径:
    cd /var/lib/libvirt/images/
kvm虚拟机开机自启动目录:
    /etc/libvirt/qemu/autostart
    virsh autostart <虚机名>       # 这个是命令
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务:
    chkconfig acpid on
    service acpid restart
关机:
    virsh shutdown <虚机名>
强制关闭电源
    virsh destroy <虚机名>
导出KVM虚拟机配置文件
    virsh dumpxml <虚机名> > /etc/libvirt/qemu/wintest02.xml   # 可以通过这种方式进行备份
删除kvm虚拟机
    virsh undefine <虚机名>
编辑KVM虚拟机配置文件:
    vim /etc/libvirt/qemu/<虚机名>.xml 或者 virsh edit <虚机名>
挂起虚拟机:
    virsh suspend <虚机名>
恢复服务器
    virsh resume <虚机名>

只要你是专门搜关于KVM文章的,相信往后的操作都已经明白了

微笑哥与你一起每天进步一点点

 

猜你喜欢

转载自www.cnblogs.com/smlile-you-me/p/10689602.html
今日推荐