服务器之家

服务器之家 > 正文

详解CentOS7.2部署KVM虚拟机(图文)

时间:2021-01-13 20:26     来源/作者:think8848

前段时间学习了关于postgis、osm数据以及mapnik相关内容,接下来将利用假期重点学习postgresql-xl和瓦片服务器集群技术,因此先把环境搭好。计划采用kvm来充分利用家里不太宽裕的“服务器”资源,以便实现弹性计算:)

centos版本:64位 7.2  1511

一、安装kvm

1. 验证cpu是否支持kvm;如果结果中有vmx(intel)或svm(amd)字样,就说明cpu的支持的。

?
1
egrep '(vmx|svm)' /proc/cpuinfo

详解CentOS7.2部署KVM虚拟机(图文)

2. 关闭selinux,将 /etc/sysconfig/selinux 中的 selinux=enforcing 修改为 selinux=disabled

详解CentOS7.2部署KVM虚拟机(图文)

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

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

4. 安装kvm及其依赖项

?
1
yum install qemu-kvm libvirt virt-install bridge-utils -y

5. 验证安装结果,下图说明已经成功安装了

?
1
lsmod | grep kvm

详解CentOS7.2部署KVM虚拟机(图文)

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

?
1
2
3
systemctl start libvirtd
 
systemctl enable libvirtd

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

?
1
2
3
systemctl status libvirtd
 
systemctl is-enabled libvirtd

详解CentOS7.2部署KVM虚拟机(图文)

8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(不要备在当前目录以及子目录下,其他目录随意)

a. 创建 ifcfg-br0 文件,内容如下:

?
1
2
3
4
5
6
7
8
9
bootproto=static
device=br0
type=bridge
nm_controlled=no
ipaddr=192.168.1.95
netmask=255.255.255.0
gateway=192.168.1.1
dns1=61.177.7.1
dns2=8.8.8.8

b. 移除掉原来的 ifcfg-enp0s25 ,重新创建该文件,内容如下:

?
1
2
3
4
5
bootproto=none
device=enp0s25
nm_controlled=no
onboot=yes
bridge=br0

c. 重启网络服务

?
1
systemctl restart network

使用 ifconfig 验证操作结果,多了一块网卡br0,现在访问 think8848-srv02 使用 192.168.1.95 就可以了。

详解CentOS7.2部署KVM虚拟机(图文)

二、安装虚拟机

1. 准备操作系统安装镜像文件,在本文中将使用和宿主环境一样的centos7.2,把该文件放到 /home/iso 目录下

详解CentOS7.2部署KVM虚拟机(图文)

2. 创建虚拟机文件存放的目录

?
1
mkdir -p /home/kvm-bak

3. 使用 virt-install 创建虚拟机

 

复制代码 代码如下:

virt-install -n think8848-kvmbase -r 2048 --disk /home/kvm-bak/think8848-kvmbase.img,format=qcow2,size=20 --network bridge=br0 --os-type=linux --os-variant=rhel7.2 --cdrom /home/iso/centos-7-x86_64-dvd-1511.iso --vnc --vncport=5910 --vnclisten=0.0.0.0

 

操作结果显示:

详解CentOS7.2部署KVM虚拟机(图文)

不要理会里面提示的错误,接着往下走

4. 打开防火墙上的5910端口

?
1
2
3
firewall-cmd --zone=public --add-port=5910/tcp --permanent
 
firewall-cmd --reload

详解CentOS7.2部署KVM虚拟机(图文)

5. 使用vnc连接该虚拟机,进行虚拟机操作系统的安装,直接到vnc官网上下载最新版的vnc viewer即可

a. vnc viewer

详解CentOS7.2部署KVM虚拟机(图文)

b. 新建连接,提供宿主ip、端口号(在virt-install创建过程中指定的),以及名称

详解CentOS7.2部署KVM虚拟机(图文)

c. 在expert页签中,将colorlevel的值由原来的 pal8 修改为 rgb222 ,点击ok按钮保存

详解CentOS7.2部署KVM虚拟机(图文)

d. 如果你像我一样,边操作边还在做笔记,等你双击连接的名称后,安装界面都准备好了

详解CentOS7.2部署KVM虚拟机(图文)

接下来就安装centos吧,过程略。

6. 安装完centos,系统要求重启,这时候虚拟机没有重启(也不知是因为什么问题),vnc也连不上,先在宿主机上查看虚拟机状态,显示think8848-kvmbase为关闭状态

?
1
virsh list --all

详解CentOS7.2部署KVM虚拟机(图文)

7. 手动启动虚拟机

?
1
virsh start think8848-kvmbase

详解CentOS7.2部署KVM虚拟机(图文)

再次使用vnc连接,发现已经可以连进去了

详解CentOS7.2部署KVM虚拟机(图文)

三、简单配置kvm虚拟机

1. 网桥配置,这里值得一提的是,如果你在虚拟机中安装centos过程中,配置了合适的网格参数,那么这时虚拟机里应该就可以使用网络了。如果当时就采用系统安装包的默认参数,未启用网卡,那么此时你需要启动虚拟机的网卡,先看下虚拟机网卡的配置文件列表,貌似和普通电脑安装没啥区别,网卡的配置文件是 ifcfg-eth0

详解CentOS7.2部署KVM虚拟机(图文)

再查看 ifcfg-eth0配置文件,和普通电脑安装的也没啥区别,按照要求呢,貌似在一些文章中介绍,说需要添加一行配置 nm_controlled=no ,我没添加也没发现有什么问题。

详解CentOS7.2部署KVM虚拟机(图文)

2. 配置在宿主端登录虚拟机shell。当然在宿主端也是可以通过ssh登录,但是直接登录貌似也是一个不错的方式。这个配置主要有两个步骤:

a. 编辑 /etc/default/grub 文件,对照如下:

编辑前:

详解CentOS7.2部署KVM虚拟机(图文)

编辑后:

详解CentOS7.2部署KVM虚拟机(图文)

文本内容:

?
1
2
3
4
5
6
7
8
grub_distributor="$(sed 's, release .*$,,g' /etc/system-release)"
grub_default=saved
grub_disable_submenu=true
grub_terminal="console serial"
grub_serial_command="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
grub_cmdline_linux="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb"
grub_cmdline_linux_default="console=tty1 console=ttys0,115200"
grub_disable_recovery="true"

b. 运行下面一行的代码

?
1
grub2-mkconfig -o /boot/grub2/grub.cfg

详解CentOS7.2部署KVM虚拟机(图文)

c. 重启虚拟机 reboot

d. 在宿主机上进入虚拟机控制台,想退出时使用 ctrl 键+ ]  (左方括号)键退出。

?
1
virsh console think8848-kvmbase

详解CentOS7.2部署KVM虚拟机(图文)

四、迁移虚拟机

虚拟机建好后,最大的好处就是任由我们折腾,而不用担心重装系统的麻烦。所以一定要知道虚拟机怎么复制迁移,这里有两种情况,一种是本机上镜像复制,另一种是将本机镜像迁移到其他服务器上。

1. 本机复制

a. 先关闭虚拟机

?
1
virsh shutdown think8848-kvmbase

详解CentOS7.2部署KVM虚拟机(图文)

b. 在 /home 下新建文件夹 /home/kvm-img

?
1
mkdir -p /home/kvm-img

c. 使用 virt-clone 克隆think8848-kvmbase为新的虚拟机

 

复制代码 代码如下:

virt-clone -o think8848-kvmbase -n think8848-kvm01 -f /home/kvm-img/think8848-kvm01.img

 

详解CentOS7.2部署KVM虚拟机(图文)

克隆完成

详解CentOS7.2部署KVM虚拟机(图文)

使用 virsh list --all 查看

详解CentOS7.2部署KVM虚拟机(图文)

d. 开启think8848-kvm01,然后修改ip地址、主机名

?
1
2
3
4
5
6
7
8
9
10
11
12
virsh start think8848-kvm01
 
virsh console think8848-kvm01
 
#等虚拟机启动好后,用root登录
 
hostname think8848-kvm01
 
#编辑/etc/hostname文件,修改主机名为think8848-kvm01
vi /etc/hostname
 
#编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ipaddr

e.  reboot 重启虚拟机,重启后刚才修改的内容已经生效了。

详解CentOS7.2部署KVM虚拟机(图文)

2. 将虚拟机镜像迁移到其他服务器上

 a. 先将虚拟机的配置文件和镜像文件放到合适的位置(我搭了一台ftp服务器,方便测试时所有的文件传输,如下图所示)

详解CentOS7.2部署KVM虚拟机(图文)

b. 现在到服务器转战到think8848-srv01(ip:192.168.1.96),刚才虚拟机是在think8848-srv02(ip:192.168.1.95)上创建的。以下所有操作均是在think8848-srv01上进行的

c. 将ftp上的think8848-kvm01.img放到/home/kvm-img目录,将think8848-kvm01.xml放到/etc/libvirt/qemu目录中

详解CentOS7.2部署KVM虚拟机(图文)

d. 编辑think8848-kvm02.xml,将里面所有think8848-kvm01替换为think8848-kvm02,然后把uuid换为新的(直接使用这个在线工具生成吧)

详解CentOS7.2部署KVM虚拟机(图文)

e. 定义新虚拟机

?
1
virsh define /etc/libvirt/qemu/think8848-kvm02.xml

详解CentOS7.2部署KVM虚拟机(图文)

图中think8848-kvm01是我之前在宿主机中配置的虚拟机,恰好名称与之前的重复了。我在think8848-kvm01上没有安装ftp客户端,在新迁移的虚拟机里面安装了ftp,可以利用这个包验证虚拟机是否正确

详解CentOS7.2部署KVM虚拟机(图文)

ok,说明没有问题

f. 现在是时候再给新的虚拟机指定新主机名和ip了。刚才是我们重启生效的,这次我们不要重启了,先使用 systemctl restart network 使新ip生效,然后再 exit 注销用户使主机名生效,就可以了。

详解CentOS7.2部署KVM虚拟机(图文)

最后一个问题,如果在克隆或迁移后想使用vnc连接,那就需要重新指定vnc的端口号,将 /etc/libvirt/qemu/think8848-kvm02.xml 中的vnc端口号修改你需要的值即可。

详解CentOS7.2部署KVM虚拟机(图文)

详解CentOS7.2部署KVM虚拟机(图文)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/think8848/p/6308672.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部