一、KVM环境搭建
1.检测系统是否支持
cat /proc/cpuinfo | egrep ‘vmx|svm’
KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。
有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
2.关闭SELinux
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
3.安装KVM环境
安装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)
重启宿主机,加载kvm相关模块
shutdown -r now
查看kvm模块是否被正确加载
lsmod | grep kvm
出现以下信息则表示正确加载
kvm_intel 162153 0
kvm 525259 1 kvm_intel
irqbypass 13503 1 kvm
查看操作结果,出现Active:active(running)字样则说明运行情况良好
systemctl status libvirtd
systemctl is-enabled libvirtd
二、网桥搭建
如果是在局域网内安装kvm虚拟机,为了方便连接和维护管理,kvm虚拟机的网络模式我们建议使用Bridge模式(另外还有NAT模式),这样kvm虚拟机和宿主机就处在同一个网段,局域网内其它主机就直接连接
1.查看宿主机网卡信息
ip a 或者 ifconfig a
一般物理网卡名称为eth0、eth1或ens开头的等等,我本机上的就是ens33
复制ens33网卡配置文件到br0文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
2.宿主机物理网卡配置
vim ifcfg-ens33
3.桥接网卡配置
vim ifcfg-br0
4.查看设置结果
关闭NetworkManager服务,也可以用service stop NetworkManager,systemctl是现在linux发行版通用的服务管理工具,CentOS中使用service命令会自动调用systemctl工具
systemctl stop NetworkManager.service
重启网络服务,如果重启不成功,一般是ens33和br0配置文件中配置项冲突造成的
systemctl restart network.service
查看网络配置是否正确,可以ip a查看是否ens33和br0信息,推荐使用brctl show命令,如果提示没有brctl命令,yum -y install bridge-utils安装
brctl show
如果结果中出现类似下面的信息,则表明桥接初步设置成功,主要是第一项,第二项,第四项,常见的情况是第四项为空,原因是物理网卡配置文件中Bridge=br0这一项缺少
三、VNC环境搭建
1.安装vnc服务
yum -y install tigervnc tigervnc-server
2.vnc服务配置——宿主机远程控制
配置vnc
将/lib/systemd/system/vncserver@.service文件复制一份到/etc/systemd/system/目录
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
编辑刚刚复制得到的文件,将文件中的
vim /etc/systemd/system/vncserver@:1.service
修改以后的文件部分内容(只修改文件下半部分)
设置vnc连接密码,输入命令vncpasswd以后连续输入两次密码,然后直接连续回车
vncpasswd
启动vncserver@:1.service并设置开机启动
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service
设置防火墙(VNC默认是被防火墙阻止的)
firewall-cmd –permanent –add-service=”vnc-server” –zone=”public”
firewall-cmd –reload
启动VNC服务
vncserver
会出现以下信息:其中说明VNC客户端连接账号为root,端口号为5901
New ‘dev:1 (root)’ desktop is dev:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/dev:1.log
测试
3.vnc服务配置——虚拟机远程控制
上面是VNC连接主机的VNC服务时设置的情况,如果是要远程连接主机安装虚拟机,可以不进行上面的设置,安装虚拟机的时候用主机ip,端口号5900(默认,可以进行设置,后面会说到),有权限的账号密码都可以连接。
这里也有一个坑:5900是VNC里面远程连接虚拟机用的端口(安装和安装好以后都用这个端口),能远程操作安装过程;5901,5902等端口是VNC中设置的远程连接主机的端口号,这里要做好区分。
还有一种用virt-manager虚拟机图形管理的方式安装虚拟机,这里有个前提,主机必须安装好GNOME等桌面环境,CentOS中安装有点复杂,很难安装成功(踩过的第一个坑),个人觉得还是用VNC的方式安装比较好,服务器安装桌面环境多少有点累赘。
四、虚拟机安装
这一步操作需要注意的几个点:
a、局域网内与主机传输文件用scp或ftp命令,要保证ISO镜像文件在主机上有操作权限的目录下,比如 /home等;
b、不管安装什么系统的虚拟机,创建的磁盘类型,分配的虚拟内存等参数可能有所不同,但有几个参数必须要正确对应,否则安装不成功。需要注意的几个参数:
–disk
–cdrom或者–location
–cpu ( 这个必须和主机的cpu型号一直 )
–network ( 首先要确定需要安装虚拟机网络的类型,是Bridge模式还是NAT模式 )
–graphics
–os-type
1.创建磁盘(kvm虚拟机的磁盘总大小)
创建类型为raw的磁盘,还有另外两种格式img和qcow2
qemu-img create -f raw /data/vms/win2008.raw 20G
检查磁盘是否创建成功
qemu-img info /data/vms/win2008.raw
看到类似以下信息表明磁盘创建成功
2.使用virt-install命令以及VNC远程控制安装虚拟机
Windows系统安装
执行上述命令后,虚拟机安装并未结束,接下来用上面配置的VNC连接主机进行后续操作
此时如果virt-install命令参数没有问题,会有提示信息:
开始安装……
域安装仍在进行,您可以重新连接
到控制台(virsh console)以便完成安装进程
执行以后只看到提示连接成功,其他没有变化,所以不用执行这个命令,暂时没发现有什么用处
局域网内的任意一台同网段的电脑通过vnc client或者vnc viewer连接虚拟机
CentOS系统安装
使用–graphics none说明安装过程不使用图形化的交互方式,直接在命令行终端操作安装即可
在命令行终端安装完毕后会提示回车继续,回车后虚拟机就会启动并进入到登陆界面
3.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 根据不同的安装方式设置不同的额外选项
五、VNC端口说明
Linux下的VNC可以同时启动多个vncserver,各个vncserver之间用显示编号(display number)来区分,每个vncserver服务监听3个端口,它们分别是:
5800+显示编号: VNC的httpd监听端口,如果VNC客户端为IE,Firefox等非vncviewer时必须开放。
5900+显示编号: VNC服务端与客户端通信的真正端口,必须无条件开放。
6000+显示编号: X监听端口,可选。
显示编号、开放的端口分别由/etc/sysconfig/vncservers文件中的VNCSERVERS和VNCSERVERARGS控制。
VNCSERVERS=”显示编号1:用户名1 …”
如:
VNCSERVERS=”1:root 2:aiezu”
VNCSERVERARGS的设置方式为:
VNCSERVERARGS[显示编号1]=”参数一 参数值一 参数二 参数值二 ……”
如:
VNCSERVERARGS[2]=”-geometry 800×600 -nohttpd”
VNCSERVERARGS的详细参数有:
-geometry 桌面分辨率,默认1024×768;
-nohttpd 不监听HTTP端口(58xx端口);
-nolisten tcp 不监听X端口(60xx端口);
-localhost 只允许从本机访问;
-AlwaysShared 默认只同时允许一个vncviewer连接,此参数允许同时连多个vncviewer;
!/bin/sh
Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
twm &
startkde &
gnome-session &
配置完各个用户根目录下的”.vnc/xstartup”后,执行service vncserver restart 重新启动vncserver使配置生效。
VNCSERVERS的设置方式为:
-SecurityTypes None 登录不需要密码认证VncAuth默认值,要密码认证。
VNC Server的默认设置下,客户端连接时启动的是xterm,如果想看到桌面,必须将用户根目录下的”.vnc/xstartup”文件中的最后两行注释掉,然后根据你安装的桌面坏境,添加一行”startkde &”或者”gnome-session &”。
Original: https://www.cnblogs.com/fjping0606/p/9922916.html
Author: 陌上归人的博客
Title: CentOS 7.5 安装KVM虚拟机(Windows)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543131/
转载文章受原作者版权保护。转载请注明原作者出处!