tar cvf networkConf.tar /etc/sysconfig/network-scripts/ifcfg-*
HWADDR=填写自己网口的mac地址(如果无法确认,直接删除或者注释此行)
DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=yes
BRIDGE=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为自己的相关地址
1、重启网卡命令:
systemctl restart network
2、重启系统命令:
systemctl reboot
reboot
init6
大家选一个就行
cat /proc/cpuinfo | grep vmx #Intel服务器使用这条命令进行验证(有输出就表示支持虚拟化)
cat /proc/cpuinfo | grep smv #AMD服务器使用这条命令进行验证
lsmod | grep kvm
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
## 注意此配置修改可以在最开始就修改,之后和配置完网桥一起重启
systemctl disable firewalld --now
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、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语言库和配套工具
#安装GNOME桌面环境
yum groupinstall -y "GNOME Desktop"
systemctl start libvirtd
systemctl enable libvirtd
#创建存储池目录
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、使用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、上传所需要的镜像或者以及安装好系统的硬盘文件(以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、使用命令查看刚创建的虚拟机用vnc登录的端口
virsh vncdisplay xxx(刚创建的虚拟机的名称)
#默认是从5900开始,第一个的话可以直接使用5900端口登录
#如果自己电脑上没有安装vnc客户端,使用以下连接下载
https://www.realvnc.com/en/connect/download/vnc/
2、打开安装好的vnc,如下图:
对话框里面输入ip:5900(上面查出来的端口号)
选择continue继续
到这里就可以直接安装系统了
这里只介绍常用的命令,以下虚拟机名称都以XXX代替
virsh list --all(查看所有的虚拟机,包括开机和关机的)
virsh list (查看已开机的虚拟机)
virsh start XXX
virsh shutdown XXX
virsh destroy XXX
virsh reboot XXX
virsh autostart XXX
virsh autostart --disable XXX
virsh suspend XXX
virsh resume XXX
virsh undefine XXX
virsh edit XXX
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
1、临时添加
virsh attach-interface XXX(需要添加的虚拟机名称) --type bridge --source br0
2、永久添加
virsh attach-interface XXX(需要添加的虚拟机名称) --type bridge --source br0 --config
virsh snapshot-list XXX(所要查看的虚拟机名称)
virsh snapshot-create-as XXX
virsh snapshot-revert XXX name(快照名称)
virsh snapshot-delete XXX
#将test01克隆为test02
virt-clone -o test01 -n test02 -f /home/kvm/images/test02.qcow2
虚拟机迁移主要有两部分组成,分别是配置文件和磁盘文件,详情见下文6.1(配置文件迁移)和6.2(磁盘文件迁移)
1、先关闭要迁移的虚拟机(其中centos7为已创建的虚拟机的名称,下同)
virsh shutdown centos7
注意:如果上述命令无法关闭虚拟机,首先可以进入虚拟机使用命令(init 0)关闭,如果还是不行,可以使用(virsh destroy centos7)强制关闭。
2、导出配置文件
virsh dumpxml centos7 > centos7.xml
“建议导出文件的文件名称和虚拟机名称相同或有备注,不然时间长了不好分辨”
1、找到需要迁移的虚拟机的磁盘位置,直接复制磁盘文件到需要迁移的地方,如果是同一个虚拟化,需要更改磁盘名称,为了后面方便,建议磁盘文件名称,磁盘名称,虚拟机名称保持一直,上面已经讲了磁盘文件导出,如果导出名称不是一致的,可用mv命令改名,磁盘文件也一样,下面说一下虚拟机名称和磁盘位置名称的更改:
使用命令:vi(vim) centos7.xml
修改内容如下:
centos7
......
...省略......
......
修改name标签的名称和配置文件,磁盘文件一致,修改磁盘文件位置此处标签为
上面已经导出并修改好了配置文件和磁盘文件,接下来就是导入了
导入命令:virsh define /etc/libvirt/qemu/centos7.xml
注意:后面的定义路径写全
然后使用命令(virsh start centos7)测试以下,正常运行就完成了虚拟机迁移