#yyds干货盘点#物理机上快速搭建kvm虚拟机

博观而约取,厚积而薄发。这篇文章主要讲述#yyds干货盘点#物理机上快速搭建kvm虚拟机相关的知识,希望能为你提供帮助。
1.下载虚拟机镜像文件
自己找镜像文件(cdsn下载一般需要积分),或者联系我(我用的是centos镜像,内核版本是2015年的比较老,后续需要升级)

wget filepath //下载文件


2.物理机开启虚拟化配置
grep vmx /proc/cpuinfo

如果有vmx信息输出,就说明支持VT?如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机
lsmod | grep kvm

没有输出信息则需要加载kvm

//卸载模块
modprobe -r kvm_intel //可以不用执行
//重新加载模块
modprobe kvm
modprobe kvm_intel //重新加载模块
lsmod | grep kvm


3.嵌套虚拟化(用不到请跳过)
cat /sys/module/kvm_intel/parameters/nested
Y
modprobe kvm-intel nested=1

4.更新yum仓库为阿里云
便于安装的包为最新的
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
& &
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

5.装virsh所需要的插件
yum install -y qemu-kvm qemu-kvm-tools
& & yum install -y libvirt
& & yum install -y virt-install
& & yum install -y python-urllib3
& & yum install libguestfs-tools
//libguestfs-tool是virt相关包
// 虚拟机安装日志查看
cat /var/log/libvirt/qemu/centos7_15.log
virsh list --all //报错请重启libvirtd
systemctl status libvirtd
//查看该服务状态
systemctl start libvirtd
//启动该服务
systemctl enable libvirtd
//开机自启动

6.设置虚拟机网络
brctl addbr br0
//192.168.66.254是网关,网段可以自己选择 192.168.66.0/24
ifconfig br0 192.168.66.254/24(yum install net-tools)
//访问外网 enp24s0f1是物理机网卡
iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o enp24s0f1 -j MASQUERADE
//192.168.103.50 是物理机ip,下面是远程做转发 192.168.66.1是第一台虚拟机
iptables -t nat -A PREROUTING -d 192.168.103.50 -p tcp --dport 53301 -j DNAT --to-destination 192.168.66.1:22

7.创建kvm
常用的kvm格式有raw跟qcow2
qemu-img create -f qcow2 /home/vm/vm1.qcow2 200G
virt-install \\
--virt-type kvm \\
--name vm1 \\
--vcpus 16 \\
--memory 32768 \\
--cdrom=/home/vm/CentOS-7-x86_64-Minimal-1511.iso \\
--disk path=/home/vm/vm1.qcow2 \\
--network bridge=br0 \\
--graphics vnc,listen=0.0.0.0 \\
--os-type=linux \\
--os-variant=rhel7

安装完成 
virsh list //查看虚拟机
virsh vncdisplay vm1 //查看vnc端口 vnc登录使用 VNC Server这栏填写 ip:port


需要下载一个vnc客户端去连接vm1部署操作系统(第一次安装需要用到vnc  后面的直接用virt-clone机器)
就跟VMware安装虚拟机一样的步骤,但是速度更快,因为没有图形化界面


常用的virsh命令:
virsh list
virsh start vm1
virsh shutdown vm1
virsh edit vm1 //可以修改配置文件
virsh vncdisplay vm1
virsh undefine vm1 //删除时候用 然后rm -rf vm1.qcow2
virsh destroy vm1 //强制关闭

8.网卡配置
eth0是网卡名
vi /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.66.1
NETMASK=255.255.255.0
GATEWAY=192.168.66.254

9.内核升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install kernel-ml -y

vi /etc/default/grub
# 设置 GRUB_DEFAULT=0, 意思是 GRUB 初始化页面的第一个内核将作为默认内核
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot //重新选择第一个为内核启动

10.克隆虚拟机
virt-clone -o vm1 -n vm2 -f /home/vm/vm2.qcow2

克隆后可以直接用ssh登录,前提是关闭克隆机,不然ip冲突
qemu-img convert -f raw -O qcow2 /home/vm/vm1.raw /home/vm/vm1.qcow2
//两种kvm格式转换 qcow2速度快 raw存储性能好

11.可能遇到的网络问题
【#yyds干货盘点#物理机上快速搭建kvm虚拟机】iptables命令参考:
iptables -t nat --line-number -nvL

iptables -t nat -D PREROUTING 1

//访问外网
iptables -t nat -A POSTROUTING -s 192.168.55.0/24 -o enp24s0f1 -j MASQUERADE

//ip route add default via 192.168.63.1

iptables -t nat -A PREROUTING -d 192.168.103.50 -p tcp --dport 53301 -j DNAT --to-destination 192.168.44.1:22
//vnc开放vnc访问端口
iptables -I INPUT -p tcp --dport 5900:5920 -j ACCEPT
//防火墙问题
iptables -I FORWARD -s 192.168.66.0/24 -j ACCEPT//dns不可用问题
iptables -I FORWARD -d 192.168.66.0/24 -j ACCEPT//本机533端口登录


    推荐阅读