如何在centos7上部署kvm,最近做了一个总结。知识点不多说,直接上脚本来部署,大家跟着做就行,有问题可以下方留言,我会及时解答。
首先我们先更新一下我们的系统和安装一些基础软件,有epel、gcc、gcc-c++、 perl、 automake、zlib和openssl等,会chaun创建/data/softs和/data/env,大家可以根据自己的目录进行安装。
yum update -y && yum install -y epel-release && yum install -y gcc gcc-c++ perl automake autoconf libtool make yum-plugin-priorities sudo && yum install -y wget net-tools && mkdir -p /data/softs && mkdir -p /data/env && cd /data/softs && wget "http://zlib.net/zlib-1.2.11.tar.gz" && tar -zxf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure && make && make install && cd /data/softs && yum remove openssl -y && wget "https://codeload.github.com/openssl/openssl/tar.gz/OpenSSL_1_1_0e" && tar -zxf OpenSSL_1_1_0e && cd openssl-OpenSSL_1_1_0e && ./config --prefix=/usr/ --openssldir=/etc/ssl shared zlib && make && make install && rm -rf /data/softs/*
下面是一些查看是否支持虚拟化的命令,现在服务器基本都支持,给大家几条命令,可以自己执行一下
egrep -c '(vmx|svm)' /proc/cpuinfo
grep -E 'svm|vmx' /proc/cpuinfo
egrep 'ept|vpid' /proc/cpuinfo
/usr/sbin/sestatus -v
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=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
getenforce #查看状态,如果上一步重启之后会输出Disabled,如果想重启,则可以使用setenforce=0
下面是安装虚拟机的一些命令,直接用yum安装就可以
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager virt-viewer virt-top
virsh version #如果执行报错,则重启之后再次执行即可
yum install kvm libvirt virt-install qemu-kvm virt-manager xauth #安装一些管理命令
systemctl enable libvirtd && systemctl start libvirtd && systemctl status libvirtd #查看状态,此时应该为runrunning
libvirtd --version
lsmod | grep kvm
上面已经安装kvm相关命令,下面接着配置网桥,来使虚拟机间可以相互连接。
cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-em1.bak #这个是我的目录,大家可以根据自己的目录来配置
vi /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=em1
DEVICE=em1
ONBOOT=yes
BRIDGE=br0
cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.80
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
cat <<EOF >> /etc/sysctl.conf #设置网口转发
net.ipv4.ip_forward=1
EOF
cat /etc/sysctl.conf
systemctl restart network #重启网络
网桥配置好了,现在来执行一些部署kvm的相关操作
vi /etc/libvirt/qemu.conf # vnc_listen = "0.0.0.0" 将此行注释去掉,打开vnc服务监听端口
virsh -c qemu:///system list --all #现在执行,应该为空
mkdir -p /data/Iaas/ISO/CentOS #我用来存放ios镜像的
mkdir -p /data/Iaas/Storage/Primary #用来存放虚拟机文件的
qemu-img create -o compat=0.10 -f qcow2 /data/Iaas/Storage/Primary/Serv_puretmpt_centos7_sda.qcow2 100G #创建磁盘文件
qemu-img info /data/Iaas/Storage/Primary/Serv_puretmpt_centos7_sda.qcow2 #查看磁盘信息
大家注意下面这条命令:--cdrom /data/Iaas/ISO/CentOS/CentOS-7-x86_64-Minimal.iso代表我的系统镜像的路径,--disk path=/data/Iaas/Storage/Primary/Serv_puretmpt_centos7_sda.qcow2是大家刚刚创建的文件路径,--graphics vnc,password=test,port=5900这个是vnc的端口号和密码
virt-install --connect=qemu:///system --name Serv_puretmpt_centos7 --ram 8192 --vcpus=4 --disk path=/data/Iaas/Storage/Primary/Serv_puretmpt_centos7_sda.qcow2,device=disk,format=qcow2,bus=virtio,cache=none,size=100 --cdrom /data/Iaas/ISO/CentOS/CentOS-7-x86_64-Minimal.iso --graphics vnc,password=test,port=5900 --network bridge=br0,model=virtio,model=e1000 --os-type=linux --virt-type=kvm --accelerate --network bridge=br0 --noautoconsole
创建完毕之后大家执行:
virsh list --all #查看创建的虚拟机 1 Serv_puretmpt_centos7 running
大家创建成功之后,需要通过vnc客户端去连接,进入系统进行安装系统配置,但是如果不开放防火墙端口,是没有办法进行vnc连接的
firewall-cmd --zone=public --add-port=5900-5999/tcp --permanent #开放端口号段,以便vnc连接使用
firewall-cmd --reload #重启后生效
virsh autostart Serv_puretmpt_centos7 #开机自动启动 virsh autostart --disable Serv_puretmpt_centos7 #关闭开机启动
大家进去系统之后就是简单的安装系统了,如果有问题,欢迎大家给我留言。
最后,系统配置完毕,大家可以安装一些基础软件,例如和我上面的第一条命令一样,可以安装一些最基本的,这样以后再创建虚拟机直接可以克隆刚刚创建的这个了,大家需要通过
virsh edit XXXXX # 找到<graphics>标签来修改vnc端口号和密码,同一台主机下,vnc端口号不能重复,否则创建不成功 <graphics type='vnc' port='5901' autoport='no' passwd='test'/>
virt-clone -o Serv_puretmpt_centos7 -n Serv_app_centos7 --file /data/Iaas/Storage/Primary/Serv_app_centos7_sda.qcow2 #此命令用来克隆刚才创建的虚拟机,克隆完毕之后只需要修改ip即可
可能遇到的问题:如果进入vnc之后,发现错误,提示找不到启动镜像,大家要看镜像路径是否正确,如果正确,可以重新执行一下下面这条命令:
virt-install --connect=qemu:///system --name Serv_puretmpt_centos7 --ram 8192 --vcpus=4 --disk path=/data/Iaas/Storage/Primary/Serv_puretmpt_centos7_sda.qcow2,device=disk,format=qcow2,bus=virtio,cache=none,size=100 --cdrom /data/Iaas/ISO/CentOS/CentOS-7-x86_64-Minimal.iso --graphics vnc,password=test,port=5900 --network bridge=br0,model=virtio,model=e1000 --os-type=linux --virt-type=kvm --accelerate --network bridge=br0 --noautoconsole
其他问题暂未发现,欢迎大家留言!!!