Centos7安装KVM虚拟化

Centos7安装部署KVM

  • 一、配置网桥
    • 1、备份原来的配置文件
    • 2、修改配置文件
      • a、修改已连接的网卡配置文件(以ifcfg-eno1为例)
      • b、配置网桥配置文件(以ifcfg-br0为例)
      • c、重启网卡(建议直接重启系统)
  • 重启后网桥就配置完成了
  • 二、开始安装KVM
    • 1、安装命令
      • 1.1、验证cpu是否支持虚拟化
      • 1.2、检查KVM是否安装
      • 1.3、检查selinux状态
      • 1.4、关闭防火墙
      • 1.5、安装所需插件
      • 1.6、安装软件详解
      • 拓展(安装linux桌面)
    • 2、启动服务
      • 2.1、启动服务
      • 2.2、设置开机自启
    • 3、配置存储池
      • 扩展
  • 三、虚拟机管理
    • 1、创建虚拟机
      • 1.1创建虚拟机硬盘
      • 1.2、创建虚拟机
      • 1.3直接使用vnc登录
    • 2、相关操作命令
      • 2.1、查看虚拟机列表
      • 2.2、开机
      • 2.3、关机
      • 2.4、强制关机
      • 2.5、重启
      • 2.6、设置虚拟机开机自启
      • 2.7、取消虚拟机开机自启
      • 2.8、挂起
      • 2.9、从挂起状态恢复
      • 2.10、删除虚拟机
      • 2.11、编辑虚拟机
    • 3、添加常用设备
      • 3.1、添加硬盘
      • 3.2、添加网卡
    • 4、创建快照
      • 4.1、查看已有的快照
      • 4.2、创建快照
      • 4.3、恢复快照
      • 4.4、删除快照
    • 5、克隆虚拟机
    • 6、虚拟机迁移
      • 6.1、磁盘文件迁移
      • 6.2、导出磁盘文件
      • 6.3、添加导出的虚拟机到定义域

一、配置网桥

1、备份原来的配置文件

tar cvf networkConf.tar  /etc/sysconfig/network-scripts/ifcfg-*

2、修改配置文件

a、修改已连接的网卡配置文件(以ifcfg-eno1为例)

HWADDR=填写自己网口的mac地址(如果无法确认,直接删除或者注释此行)
DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=yes
BRIDGE=br0

b、配置网桥配置文件(以ifcfg-br0为例)

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
#STP=no  #此配置我这里加了之后会有报错,有要研究的可以试试
DELAY=0.0

## 特别说明:xxx.xxx.xxx.xxx为自己的相关地址

c、重启网卡(建议直接重启系统)

1、重启网卡命令:
systemctl restart network
2、重启系统命令:
systemctl reboot
reboot
init6
大家选一个就行

重启后网桥就配置完成了

二、开始安装KVM

1、安装命令

1.1、验证cpu是否支持虚拟化

cat /proc/cpuinfo | grep vmx     #Intel服务器使用这条命令进行验证(有输出就表示支持虚拟化)
cat /proc/cpuinfo | grep smv     #AMD服务器使用这条命令进行验证

1.2、检查KVM是否安装

lsmod | grep kvm

1.3、检查selinux状态

1、查看selinux状态
getenforce
2、修改配置文件
修改SELINUX=enforcing为SELINUX=disabled,如下:
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

## 注意此配置修改可以在最开始就修改,之后和配置完网桥一起重启

1.4、关闭防火墙

systemctl disable firewalld --now

1.5、安装所需插件

1、安装epel源
yum install epel* -y
2、安装KVM
yum install  libvirt  qemu-kvm virt-viewer  bridge-utils avahi dmidecode qemu-kvm-tools virt-manager qemu-img virt-install net-tools libguestfs-tools -y

1.6、安装软件详解

1、libvirt
目前使用最为广泛的对KVM虚拟机进行管理的工具和API
2、qemu-kvm
#安装kvm模块
3、virt-viewer
virt-viewer是“Virtual Machine Viewer”(虚拟机查看器)工具的软件包和命令行工具名称,它是一个显示虚拟化客户机的图形界面的工具。
4、bridge-utils
网桥管理工具
5、avahi 
是符合zoreconf的标准的,zoreconf是苹果公司搞出来的一个零配置协议。自动生成可用IP地址的网络技术,不需要额外的手动配置和专属的配置服务器。
6、dmidecode
在 Linux 系统下获取有关硬件方面的信息的软件
7、qemu-kvm-tools
安装KVM调试工具(可以不安装)
8、virt-manager
安装图形界面管理虚拟机,通常在安装了图形界面的系统上安装使用
9、qemu-img 
安装qemu组件,创建磁盘、启动虚拟机等
10、virt-install 
安装构建虚拟机的命令行工具
11、net-tools 
网络工具套件
12、libguestfs-tools
一组使用于硬件虚拟化中旨在用于访问及修改磁盘映像的C语言库和配套工具

拓展(安装linux桌面)

#安装GNOME桌面环境
yum groupinstall -y "GNOME Desktop"

2、启动服务

2.1、启动服务

systemctl start libvirtd

2.2、设置开机自启

systemctl enable libvirtd

3、配置存储池

#创建存储池目录
mkdir -p /home/kvm/images
#更改目录为root用户所属
chown root:root /home/kvm/images
#分配权限
chmod 755 /home/kvm/images
#定义一个存储池并绑定目录
virsh pool-define-as StoragePool --type dir --target /home/kvm/images
#建立基于文件夹的存储池
virsh pool-build StoragePool
#激活存储池
virsh pool-start StoragePool
#设置开机自启
virsh pool-autostart StoragePool

扩展

1、查看存储池信息
virsh pool-info StoragePool
2、查看存储池列表
virsh pool-list

三、虚拟机管理

1、创建虚拟机

1.1创建虚拟机硬盘

此处说两种方式,都可以
1、使用virsh命令创建
#创建名称为XXX.img,所在存储池为StoragePool,容量为100G,初始分配1G,文件格式类型为qcow2,硬盘文件的格式必须为qcow2格式。
virsh vol-create-as --pool StoragePool -name XXX.img --capacity 100G --allocation 1G --format qcow2
例如:
virsh vol-create-as --pool StoragePool --name name.img --capacity 100G --allocation 1G --format qcow2
2、使用qemu-img创建
#使用qemu-img命令使用参数create创建
qemu-img create -f qcow2 /KVM/images/XXX.qcow2 100G

1.2、创建虚拟机

1、上传所需要的镜像或者以及安装好系统的硬盘文件(以img或者qcow2结尾的文件)到指定的位置,
如果是镜像文件(以iso结尾的文件)则建议单独防止一个目录(如“/ISO”),
如果是硬盘文件则需要放到上面建立的存储池中(/home/kvm/images);
2、安装vnc以便图形化安装
安装命令:yum -y install tigervnc*
3、安装虚拟机
a、直接使用iso镜像安装
virt-install --name=fuliwenKylin --vcpus=8 --memory=8G --disk path=/home/kvm/images/XXX.img,format=qcow2,size=50,bus=virtio --cdrom /ISO/XXX.iso --network bridge=br0,model=virtio --autostart --graphics vnc,listen=0.0.0.0 --noautoconsole
b、使用已有的qcow2或img的硬盘文件
virt-install --name=wudapengKylinV10 --vcpus=8 --ram=16384 --disk path=/KVM/images/wudapengKylin.qcow2,format=raw,bus=virtio  --network bridge=br0,model=virtio --force  --import  --graphics vnc,listen=0.0.0.0  --noautoconsole
和a不一样的地方在不需要--cdrom参数,同时添加--import参数直接添加虚拟机
###############################################################################################
#其中
--name:虚拟机名称
--vcpus:cpu核心数
--memory:内存大小
--disk:path后面跟存储池的路径加创建的硬盘文件
format=qcow2:硬盘格式为qcow2
size=50:初始化大小
bus=virtio:硬盘接入格式
--cdrom:添加的DVD驱动器,后面跟iso镜像文件的绝对路径
--network:配置网络
bridge=br0:之前创建的网桥,必须和之前创建的网桥名称保持一致
model=virtio:定义网卡的接入模式
--autostart:配置开机自启(看个人需要)
--graphics vnc:配置vnc
listen=0.0.0.0:配置vnc监听
--noautoconsole:不自动运行控制台(默认是走console口安装)
################################################################################################

1.3直接使用vnc登录

1、使用命令查看刚创建的虚拟机用vnc登录的端口

virsh vncdisplay xxx(刚创建的虚拟机的名称)
#默认是从5900开始,第一个的话可以直接使用5900端口登录
#如果自己电脑上没有安装vnc客户端,使用以下连接下载
https://www.realvnc.com/en/connect/download/vnc/

2、打开安装好的vnc,如下图:
Centos7安装KVM虚拟化_第1张图片
对话框里面输入ip:5900(上面查出来的端口号)
Centos7安装KVM虚拟化_第2张图片
选择continue继续
Centos7安装KVM虚拟化_第3张图片
到这里就可以直接安装系统了

2、相关操作命令

这里只介绍常用的命令,以下虚拟机名称都以XXX代替

2.1、查看虚拟机列表

virsh  list --all(查看所有的虚拟机,包括开机和关机的)
virsh list (查看已开机的虚拟机)

2.2、开机

virsh start XXX

2.3、关机

virsh shutdown XXX

2.4、强制关机

virsh destroy XXX

2.5、重启

virsh reboot XXX

2.6、设置虚拟机开机自启

virsh autostart XXX

2.7、取消虚拟机开机自启

virsh autostart  --disable  XXX

2.8、挂起

virsh suspend XXX

2.9、从挂起状态恢复

virsh resume XXX

2.10、删除虚拟机

virsh  undefine XXX

2.11、编辑虚拟机

virsh  edit  XXX

3、添加常用设备

3.1、添加硬盘

a、创建需要添加的硬盘
qemu-img create -f qcow2 /home/kvm/images/XXX.qcow2 100G
b、在线添加
virsh attach-disk XXX(需要添加硬盘的虚拟机名称) /home/kvm/images/XXX.qcow2  vdb --cache=none --subdriver=qcow2

3.2、添加网卡

1、临时添加
virsh attach-interface XXX(需要添加的虚拟机名称) --type bridge --source br0
2、永久添加
virsh attach-interface XXX(需要添加的虚拟机名称) --type bridge --source br0  --config

4、创建快照

4.1、查看已有的快照

virsh snapshot-list  XXX(所要查看的虚拟机名称)

4.2、创建快照

virsh snapshot-create-as XXX

4.3、恢复快照

virsh snapshot-revert    XXX     name(快照名称)

4.4、删除快照

virsh snapshot-delete  XXX

5、克隆虚拟机

#将test01克隆为test02
virt-clone -o test01 -n test02 -f /home/kvm/images/test02.qcow2

6、虚拟机迁移

虚拟机迁移主要有两部分组成,分别是配置文件和磁盘文件,详情见下文6.1(配置文件迁移)和6.2(磁盘文件迁移)

6.1、磁盘文件迁移

1、先关闭要迁移的虚拟机(其中centos7为已创建的虚拟机的名称,下同)
virsh shutdown centos7
注意:如果上述命令无法关闭虚拟机,首先可以进入虚拟机使用命令(init 0)关闭,如果还是不行,可以使用(virsh destroy centos7)强制关闭。
2、导出配置文件
virsh dumpxml  centos7 > centos7.xml
“建议导出文件的文件名称和虚拟机名称相同或有备注,不然时间长了不好分辨”

6.2、导出磁盘文件

1、找到需要迁移的虚拟机的磁盘位置,直接复制磁盘文件到需要迁移的地方,如果是同一个虚拟化,需要更改磁盘名称,为了后面方便,建议磁盘文件名称,磁盘名称,虚拟机名称保持一直,上面已经讲了磁盘文件导出,如果导出名称不是一致的,可用mv命令改名,磁盘文件也一样,下面说一下虚拟机名称和磁盘位置名称的更改:
使用命令:vi(vim)  centos7.xml 
修改内容如下:

  centos7
  ......  
   ...省略......
  ......
  
      
      
      
      
修改name标签的名称和配置文件,磁盘文件一致,修改磁盘文件位置此处标签为的file为迁移后的磁盘文件位置,名称和前面两者保持一致

6.3、添加导出的虚拟机到定义域

上面已经导出并修改好了配置文件和磁盘文件,接下来就是导入了
导入命令:virsh define /etc/libvirt/qemu/centos7.xml
注意:后面的定义路径写全
然后使用命令(virsh start centos7)测试以下,正常运行就完成了虚拟机迁移

你可能感兴趣的:(虚拟化,KVM,环境配置,linux,运维)