,亲测成功在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机

在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机

前提:服务器端安装桌面版的centos系统

CentOS Linux release 7.5.1804 (Core)

(1)

检测是否支持KVM

KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

'vmx|svm

SELinux=disabled

[root@healthserver ~]# nano /etc/sysconfig/selinux

最小安装的CentOS安装一些最基本的包(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)

yum install epel-release net-tools vim unzip zip wget ftp -y

# 安装 kvm 基础包# ------------------------

yum -y install kvm

# 安装 kvm 管理工具# ------------------------

yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

# qemu-kvm: KVM模块

# pyhon-virtinst: 包含python模块和工具(virt-install,virt-clone和virt-image),

# 用于安装和克隆虚拟机使用libvirt。 它完全支持paravirtulized客人和客人虚拟客人。

# 支持的虚拟机管理程序是Xen,qemu(QEMU)和kvm# libvirt: 虚拟管理模块# virt-manager: 图形界面管理虚拟机

# libguestfs* : virt-cat等命令的支持软件包

# 重启宿主机,以便加载 kvm 模块# ------------------------

reboot(也可不重启)

# 查看KVM模块是否被正确加载

[root@healthserver ~]# lsmod | grep kvm

kvm_intel 174841 0

kvm 578518 1 kvm_intel

irqbypass 13503 1 kvm

=========================================================

如果没有加载,运行以下命令:

[root@kevin ~]# modprobe kvm

[root@kevin ~]# modprobe kvm-intel

[root@kevin ~]# lsmod | grep kvm

kvm_intel 170086 0

kvm 566340 1 kvm_intel

irqbypass 13503 1 kvm

=========================================================

内核模块导出了一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。

[root@kevin ~]# ll /dev/kvm

crw-rw-rw-. 1 root kvm 10, 232 1月 29 11:56 /dev/kvm

开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd.service

systemctl enable libvirtd.service

查看状态操作结果,如下图所示,说明运行情况良好

systemctl status libvirtd

,说明运行情况良好

-enabled libvirtd

(5)

安装虚拟机

。这一步可不做,如果有影响在做。

如果没有brctl命令(用来管理网桥的工具),则需要安装bridge-utils ,

[root@healthserver ~]# yum -y install bridge-utils

然后为centos7配置网卡,由于我们安装的是centos桌面版系统,因此这一步可在服务器端图形界面进行设置,命令行也可以进行设置,此处我们不谈。

安装 epel 源

[root@healthserver ~]# yum install epel-release

libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机。

[root@healthserver ~]# yum install virt-manager libvirt libvirt-Python python-virtinst libvirt-client virt-viewer qemu-kvm

因为我的主机是服务器,没有图形化界面,想要用virt-manager图形化安装虚拟机,还需要安装X-window。

[root@healthserver ~]# yum install libXdmcp libXmu libxkbfile xkeyboard-config xorg-x11-xauth xorg-x11-xkb-utils

开启libvirt服务

[root@healthserver ~]# cd /etc/yum.repos.d/

]# service libvirtd start

至此,前期准备已经完成,下面开始安装虚拟机

检查模块是否有加载

[root@healthserver ~]# virsh -c qemu:///system

安装桥接管理的工具

yum install bridge-utils

的管理软件

yum install virt-manager

[root@healthserver ~]# /usr/libexec/qemu-kvm -version

), Copyright (c) 2003-2008 Fabrice Bellard

VNC

KVM

vncserver;

[root@healthserver ~]# yum install tigervnc-server -y

安装完毕后输入“vncserver”启动VNC。

[root@healthserver tmp]# vncserver

New 'healthserver:1 (root)' desktop is healthserver:1

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/healthserver:1.log

注意:启动后将自动在root/.vnc目录下创建xstartup文件。

输入“vncpasswd”并按回车键确定,开始输入VNC访问密码并按回车键确定。

密码为Elecspn

输入“netstat -tlup | grep vnc”查看VNC使用端口。

注意:VNC访问默认监听如下3个TCP端口:

RFB(Remote FrameBuffer)协议 默认端口 : 5900+显示器号

HTTP协议默认端口 : 5800+显示器号

X协议 默认端口 : 6000+显示器号

[root@healthserver tmp]# netstat -tlup | grep vnc

tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 41343/Xvnc

tcp 0 0 0.0.0.0:cpdlc 0.0.0.0:* LISTEN 39708/Xvnc

tcp 0 0 0.0.0.0:fis 0.0.0.0:* LISTEN 40578/Xvnc

tcp6 0 0 [::]:5901 [::]:* LISTEN 41343/Xvnc

tcp6 0 0 [::]:cpdlc [::]:* LISTEN 39708/Xvnc

tcp6 0 0 [::]:fis [::]:* LISTEN 40578/Xvnc

输入“iptables -I INPUT -p tcp --dport 5901 -j ACCEPT”添加5901端口到iptables,同理可添加5908 5909等端口(如果有)。

”重启iptables服务(不建议停止)。

确认iptables重启无误后输入“service iptables save”保存。

vncviewer;

安装省略

在执行:

[root@healthserver ~]# virt-manager

自动跳出vnc viewer操作界面,

Windows里面的VNC Viewer软件

“VNC Server”框里面输入服务器地址+端口:192.168.1.213:5901

“name”填写centos登录用户名root

确定,本例中为1。 1对应5901端口,以此类推9对应5909端口,如超过100则需使用完整端口号。

接续输入密码就可完成远程登录。

当我们推出vnc并重新登录时,执行步骤:

[root@healthserver ~]# vncserver

New 'healthserver:4 (root)' desktop is healthserver:4

Starting applications specified in /root/.vnc/xstartup

4.log

表明此时端口号变为5904 ,不是之前的5901

则VNC Server的地址变为:192.168.1.213:5904 密码Elecspn

在远程桌面中使用KVM创建虚拟机

启动服务

service libvirtd start

输入命令brctl show 显示一下信息表示OK

[root@healthserver ~]# brctl show

bridge name bridge id STP enabled interfaces

virbr0 8000.525400dd3c25 yes virbr0-nic

输入命令,启动kvm图形化管理界面,进行虚拟机的创建。

[root@healthserver ~]# virt-manager

kvm图形化管理界面。

选择好Ubuntu16.04桌面版的iso镜像文件(自己放进去),

设置虚拟机属性:

已有的存储卷容量不满足我们的存储要求,则新建存储池,如下:

[root@healthserver mapper]# virsh -c qemu:///system

欢迎使用 virsh,虚拟化的交互式终端。

输入:'help' 来获得命令的帮助信息

'quit' 退出

virsh # pool-list

名称 状态 自动开始

-------------------------------------------

default 活动 是

xlp 活动 是

查看某一存储池的具体信息(以XML形式存在)

virsh # pool-dumpxml xlp <pool type='dir'>

<name>xlp</name>

<uuid>ed5c8657-35ba-479d-80a3-27c03b7ec445</uuid>

<capacity unit='bytes'>53660876800</capacity>

<allocation unit='bytes'>16004517888</allocation>

<available unit='bytes'>37656358912</available>

<source> </source>

<target>

<path>/run/media/root/26f7078f-03f7-4e54-9142-66dc4e38a137/opt/xlp</path> <permissions>

<mode>0755</mode>

<owner>0</owner>

<group>0</group>

<label>unconfined_u:object_r:usr_t:s0</label>

</permissions>

</target>

</pool>

查看具体信息,结果类似于解析上面的XML:

virsh # pool-info xlp

名称: xlp

UUID: ed5c8657-35ba-479d-80a3-27c03b7ec445

状态: running

持久: 是

自动启动: 是

容量: 49.98 GiB

分配: 14.91 GiB

可用: 35.07 GiB

上述存储池大小不够!

创建一个新的存储池

这里仿照上面的XML文件,编写一个命为kvmstorage的XML文档,内容如下[位于/home/poolB]

此处省略,换用kvm图形化界面进行创建。步骤如下:

因为自带的存储池容量不足,所以选择“选择或创建自定义存储”选项。

名字取为“kvmstorage”。类型如下图所示。

目标路径选择硬盘中容量较大的,

在该硬盘目录下创建文件夹“kvmstorage”,以后数据都存储在该文件夹下。

此时就创建成功,查看:

[root@healthserver mapper]# virsh -c qemu:///system

欢迎使用 virsh,虚拟化的交互式终端。

输入:'help' 来获得命令的帮助信息

'quit' 退出

virsh # pool-info kvmstorage

名称: kvmstorage

UUID: ee843e5f-cf47-4502-a3f1-55c6d11548d9

状态: running

持久: 是

自动启动: 是

容量: 14.49 TiB

分配: 3.62 GiB

可用: 14.48 TiB

virsh #

现在在kvmstorage存储池下创建分存储卷,点击“+”,创建存储卷kvm1,设置如下

现在正式进入Ubuntu16.04桌面版的安装过程。

按照步骤进行安装即可。

注:如果安装时你选的镜像文件时Ubuntu16.04 的server版本的话,安装时几乎每一步都直接默认即可,安装语言默认英文,不要选中文,否则安装不成功!)

(7)重新打开KVM并创建虚拟机

在vnc远程界面的命令行中输入:

[root@healthserver ~]# virt-manager

弹出kvm界面。