KVM 管理虚拟机

2018年12月29日11:32:58 发表评论 612 views
通过查阅资料和不断摸索,最终在CentOS7.3系统上成功安装Windows Server2016虚拟机,至于linux虚拟机安装大同小异,不同的地方应该是虚拟机安装和安装成功以后虚拟机里面的网络配置。安装过程中遇到了很多问题,但最终都一一解决,在这里做一个总结,后续遇到其他问题会不断补充完善,如有错误望批评指正,欢迎留言
准备工作
查看机器是否支持虚拟化:
# KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。
有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
cat /etc/cpuinfo | egrep 'vmx|svm'
关闭selinux和防火墙:
# 将 /etc/sysconfig/selinux 中的SELinux=enforcing修改为 SELinux=disabled
vi /etc/sysconfig/selinux****
[root@KVM ~]# systemctl stop firewalld.service
[root@KVM ~]# systemctl disable firewalld.service
KVM安装
yum -y install kvm
# 安装kvm核心包——虚拟操作系统模拟器加速模块
yum -y install qemu-kvm qemu-kvm-tools
# 安装kvm管理工具
yum -y install libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
# libvirt:必须要装的核心工具
# virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远程控制则不需要)
# bridge-utils:虚拟机与外界通信的命令管理工具
# virt-install:虚拟机安装工具
# pyhon-virtinst: 包含python模块和工具(virt-install,virt-clone和virt-image)
yum -y install qemu-kvm qemu-kvm-tools
yum -y install libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
yum -y install tigervnc tigervnc-server
yum -y groupinstall "X Window System"
yum -y groupinstall "X Window System"
yum -y groupinstall "GNOME"
yum -y groupinstall "fonts"

# 重启宿主机,加载kvm相关模块
reboot
# 查看kvm模块是否被正确加载
lsmod | grep kvm
# 出现以下信息则表示正确加载
# kvm_intel 162153 0
# kvm 525259 1 kvm_intel
# irqbypass 13503 1 kvm
# 开启kvm服务,并设置开机启动
systemctl start libvirtd.service
systemctl enable libvirtd.service
# 查看操作结果,出现Active:active(running)字样则说明运行情况良好
systemctl status libvirtd
systemctl is-enabled libvirtd

创建网桥

[root@KVM ~]# cd /etc/sysconfig/network-scripts/
新建网桥:
[root@KVM network-scripts]# vim ifcfg-em1
DEVICE="em1"
HWADDR="00:24:e8:33:90:21"
TYPE="Ethernet"
UUID="3dc86607-b26c-41b8-b5c4-ee5de8ede04e"
ONBOOT="yes"
NM_CONTROLLED="yes"
BOOTPROTO="none"
BRIDGE="br0
修改原来的网卡信息:
[root@KVM network-scripts]# cat ifcfg-em1
DEVICE="em1"
HWADDR="00:24:e8:33:90:21"
TYPE="Ethernet"
UUID="3dc86607-b26c-41b8-b5c4-ee5de8ede04e"
ONBOOT="yes"
NM_CONTROLLED="yes"
BOOTPROTO="none"
BRIDGE="br0
然后重启网络:
[root@KVM network-scripts]# systemctl restart network.service
查看:
[root@KVM network-scripts]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.30.254  netmask 255.255.255.0  broadcast 172.16.30.255
        inet6 fe80::24e5:3bff:fe56:9271  prefixlen 64  scopeid 0x20<link>
        ether 00:24:e8:33:90:21  txqueuelen 1000  (Ethernet)
        RX packets 6250014  bytes 8983105432 (8.3 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3243340  bytes 578143388 (551.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:24:e8:33:90:21  txqueuelen 1000  (Ethernet)
        RX packets 6843393  bytes 9802104299 (9.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3583233  bytes 640722469 (611.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnc服务配置——宿主机远程控制
yum -y install tigervnc tigervnc-server
启动VNC:
[root@KVM network-scripts]# vncserver :1  //提示输入密码,比如 111111  
win10安装VNC 客户端连接:
172.16.30.254:1     然后输入密码

上传iso 系统镜像文件到服务器

[root@KVM network-scripts]# cd /home/iso/
[root@KVM iso]# ll
总用量 12269068
-rw-r--r-- 1 qemu qemu  4329570304 10月 29 16:04 CentOS-7-x86_64-DVD-1511.iso
[root@KVM iso]#

VNC远程桌面图形化创建虚拟机

使用 图形化工具创建虚拟机并管理虚拟机,也可通过命令行创建。

virt-install命令安装虚拟机

virt-install \
--virt-type=kvm \
--name=centos \
--vcpus=2 \
--memory=4096 \
--location=/home/iso/CentOS-7-x86_64-DVD-1511.iso \
--disk path=/opt/centos.qcow2,size=40,format=qcow2 \
--network bridge=br0 \
--graphics none \
--extra-args='console=ttyS0' \
--os-type=linux \
--force


# 或者
virt-install --virt-type=kvm --name=centos --vcpus=2 --memory=4096 --location=/home/iso/CentOS-7-x86_64-DVD-1511.iso --disk path=/opt/centos.qcow2,size=40,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --os-type=linux --force


virsh 常用命令

virsh list # 查看在运行的虚拟机
virsh dumpxml vm-name # 查看kvm虚拟机配置文件
virsh edit vm-name # 修改虚拟机的配置文件(部分选项修改以后start虚拟机就可以生效)
virsh start vm-name # 启动kvm虚拟机
virsh shutdown vm-name # 正常关机
virsh destroy vm-name # 非正常关机,强制关闭虚拟机(相当于物理机直接拔掉电源)
virsh undefine vm-name # 删除vm的配置文件
ls /etc/libvirt/qemu
# 查看删除结果,Centos-6.6的配置文件被删除,但磁盘文件不会被删除
virsh define file-name.xml # 根据配置文件定义虚拟机
virsh suspend vm-name # 挂起,终止
virsh resumed vm-name # 恢复被挂起的虚拟机
virsh autostart vm-name # 开机自启动vm
virsh console <虚拟机名称> # 连接虚拟机
# 虚拟机启动的情况下先关闭虚拟机
virsh destroy vm-name
# 删除vm配置文件
virsh undefine vm-name
# 查看删除结果(是否删除了配置文件),如果没有vm-name.xml文件则删除成功
ls /etc/libvirt/qemu
# 删除虚拟机磁盘(安装的时候创建的kvm.raw文件)
rm /opt/kvm.raw
virt-install常用参数说明
–name指定虚拟机名称
–memory分配内存大小。
–vcpus分配CPU核心数,最大与实体机CPU核心数相同
–disk指定虚拟机镜像,size指定分配大小单位为G。
–network网络类型,此处用的是默认,一般用的应该是bridge桥接。
–accelerate加速
–cdrom指定安装镜像iso
–vnc启用VNC远程管理,一般安装系统都要启用。
–vncport指定VNC监控端口,默认端口为5900,端口不能重复。
–vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
–os-type=linux,windows
–os-variant=rhel6
# 新版本的写法
--name 指定虚拟机名称
--ram 虚拟机内存大小,以 MB 为单位
--vcpus 分配CPU核心数,最大与实体机CPU核心数相同
–-vnc 启用VNC远程管理,一般安装系统都要启用。
–-vncport 指定VNC监控端口,默认端口为5900,端口不能重复。
–-vnclisten 指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
--network 虚拟机网络配置
# 其中子选项,bridge=br0 指定桥接网卡的名称。
--os-type=linux,windows
--os-variant=rhel7.2
--disk 指定虚拟机的磁盘存储位置
# size,初始磁盘大小,以 GB 为单位。
--location 指定安装介质路径,如光盘镜像的文件路径。
--graphics 图形化显示配置
# 全新安装虚拟机过程中可能会有很多交互操作,比如设置语言,初始化 root 密码等等。
# graphics 选项的作用就是配置图形化的交互方式,可以使用 vnc(一种远程桌面软件)进行链接。
# 我们这列使用命令行的方式安装,所以这里要设置为 none,但要通过 --extra-args 选项指定终端信息,
# 这样才能将安装过程中的交互信息输出到当前控制台。
--extra-args 根据不同的安装方式设置不同的额外选项
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信打赏一下咯
  • 一分钱也是爱
  • weinxin
广告也精彩
暖先生
Samsung/三星 Galaxy S9+ SM-G9650/DS全网通手机
SONOS PLAY:1搜诺思智能音响美国原创进口WiFi无线音
ELK全套视频
VR眼镜3D虚拟现实头戴式游戏头盔rv眼睛4d手机专用ar苹果一体机

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: