Centos7安装部署KVM
一、配置网桥1、备份原来的配置文件2、修改配置文件a、修改已连接的网卡配置文件(以ifcfg-eno1为例)b、配置网桥配置文件(以ifcfg-br0为例)c、重启网卡(建议直接重启系统) 重启后网桥就配置完成了二、开始安装KVM1、安装命令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=eno1TYPE=EthernetBOOTPROTO=noneONBOOT=yesNM_CONTROLLED=yesBRIDGE=br0
b、配置网桥配置文件(以ifcfg-br0为例)
DEVICE=br0ONBOOT=yesTYPE=BridgeNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=xxx.xxx.xxx.xxxNETMASK=xxx.xxx.xxx.xxxGATEWAY=xxx.xxx.xxx.xxxDNS1=xxx.xxx.xxx.xxx#STP=no #此配置我这里加了之后会有报错,有要研究的可以试试DELAY=0.0## 特别说明:xxx.xxx.xxx.xxx为自己的相关地址
c、重启网卡(建议直接重启系统)
1、重启网卡命令:systemctl restart network2、重启系统命令:systemctl rebootrebootinit6大家选一个就行
重启后网桥就配置完成了
二、开始安装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状态getenforce2、修改配置文件修改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=enforcingSELINUX=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* -y2、安装KVMyum 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虚拟机进行管理的工具和API2、qemu-kvm#安装kvm模块3、virt-viewervirt-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 StoragePool2、查看存储池列表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 qcow22、使用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 --noautoconsoleb、使用已有的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:硬盘格式为qcow2size=50:初始化大小bus=virtio:硬盘接入格式--cdrom:添加的DVD驱动器,后面跟iso镜像文件的绝对路径--network:配置网络bridge=br0:之前创建的网桥,必须和之前创建的网桥名称保持一致model=virtio:定义网卡的接入模式--autostart:配置开机自启(看个人需要)--graphics vnc:配置vnclisten=0.0.0.0:配置vnc监听--noautoconsole:不自动运行控制台(默认是走console口安装)################################################################################################
1.3直接使用vnc登录
1、使用命令查看刚创建的虚拟机用vnc登录的端口
virsh vncdisplay xxx(刚创建的虚拟机的名称)#默认是从5900开始,第一个的话可以直接使用5900端口登录#如果自己电脑上没有安装vnc客户端,使用以下连接下载/en/connect/download/vnc/
2、打开安装好的vnc,如下图:
对话框里面输入ip:5900(上面查出来的端口号)
选择continue继续
到这里就可以直接安装系统了
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 100Gb、在线添加virsh attach-disk XXX(需要添加硬盘的虚拟机名称) /home/kvm/images/XXX.qcow2 vdb --cache=none --subdriver=qcow2
3.2、添加网卡
1、临时添加virsh attach-interface XXX(需要添加的虚拟机名称) --type bridge --source br02、永久添加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 XXXname(快照名称)
4.4、删除快照
virsh snapshot-delete XXX
5、克隆虚拟机
#将test01克隆为test02virt-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 修改内容如下:<domain type='kvm'><name>centos7</name>...... ...省略............<disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/KVM/images/centso7.qcow2'/><target dev='vda' bus='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/></disk>修改name标签的名称和配置文件,磁盘文件一致,修改磁盘文件位置此处标签为<source>的file为迁移后的磁盘文件位置,名称和前面两者保持一致
6.3、添加导出的虚拟机到定义域
上面已经导出并修改好了配置文件和磁盘文件,接下来就是导入了导入命令:virsh define /etc/libvirt/qemu/centos7.xml注意:后面的定义路径写全然后使用命令(virsh start centos7)测试以下,正常运行就完成了虚拟机迁移