1 安装阿里云的镜像站
#将原来的镜像备份
cd /etc/yum.repos.d/
mkdir back
mv CentOS-Base.repo ./back/
# 安装阿里的镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2 安装KVM
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer -y yum install -y virt-* libvirt bridge-utils qemu-img
安装包的解释
qemu-kvm:qemu模拟器
qemu-img:qemu磁盘image管理器
virt-install:用来创建虚拟机命令的工具
libvirt:提供libvirtd daemon来管理虚拟机和控制hypervisor
libvirt-client:提供客户端Api用来访问server和提供管理虚拟机命令行工具的virsh实体
virt-viewer:图形控制台
校验
# lsmod命令用于显示已载入系统的模块。
lsmod | grep kvm
kvm_intel
kvm kvm_intel
irqbypass kvm
3 开启KVM 并设置开机自动启动
systemctl start libvirtd # 开启kvm
systemctl enable libvirtd # 开机自启
查看kvm运行的状态
systemctl status libvirtd Unit vlibvitd.service could not be found.
[root@bogon yum.repos.d]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu -- :: CST; 18min ago
Docs: man:libvirtd()
https://libvirt.org
Main PID: (libvirtd)
Tasks: (limit: )
CGroup: /system.slice/libvirtd.service
├─ /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/...
├─ /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/...
└─ /usr/sbin/libvirtd Sep :: bogon systemd[]: Starting Virtualization daemon...
Sep :: bogon systemd[]: Started Virtualization daemon.
Sep :: bogon dnsmasq[]: read /etc/hosts - addresses
Sep :: bogon dnsmasq[]: read /var/lib/libvirt/dnsmasq/default.addnhosts - addresses
Sep :: bogon dnsmasq-dhcp[]: read /var/lib/libvirt/dnsmasq/default.hostsfile
进入/etc/sysconfig/network-scripts,将em2网卡备份
修改em2网卡
TYPE=Ethernet
BRIDGE=br0 # 新加的
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
UUID=0cd14e14--4e79-b607-d72ca5594041
DEVICE=em2
ONBOOT=yes
#HWADDR=:A8::4A:BF:3C
创建br0网卡写如下内容,或将em2网卡的配置文件复制一份给br0网卡并修改
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
#UUID=0cd14e14--4e79-b607-d72ca5594041
DEVICE=br0
ONBOOT=yes
IPADDR="192.168.13.223"
PREFIX=""
GATEWAY="192.168.13.1"
4 安装虚拟机
virt-install --name=node9 --memory=,maxmemory= --vcpus=,maxvcpus= --os-type=linux --os-variant=rhel7 --location=/iso/CentOS--x86_64-DVD-.iso --disk path=/kvm/node9.img,size= --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0" 命令说明:
--name 指定虚拟机的名称
--memory 指定分配给虚拟机的内存资源大小
maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源
--vcpus 指定分配给虚拟机的CPU核心数量
maxvcpus 指定可调节的最大CPU核心数量
--os-type 指定虚拟机安装的操作系统类型
--os-variant 指定系统的发行版本
--location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
--disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G
--bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
--graphics 指定是否开启图形
--console 定义终端的属性,target_type 则是定义终端的类型
--extra-args 定义终端额外的参数
开始安装后,正常的情况下会进入到这样一个界面:
这是让你配置语言、时区、安装源、网络、密码等信息,就和我们在VMware里安装CentOS虚拟机是一样的,只不过这个是命令行形式,而VMware里是图形界面罢了。
首先设置语言,按数字1,回车进入以下界面:
例如我要选Chinese就按数字68并回车即可,回车之后会让你选择是中文简体还是繁体,也是按下相应的数字并回车即可:
配置完成之后又会再次回到配置界面,这次我们来设置时区:
设置系统安装盘:
最后开始安装系统:
安装完成之后就会停止在以下这个界面,按一下回车即可,这时就会重启安装完的系统:
5 虚拟机管理
查看虚拟机配置文件
[root@localhost ~]# ls /etc/libvirt/qemu/
networks node1.xml
[root@localhost ~]# ls /etc/libvirt/qemu/networks/
autostart default.xml
[root@localhost ~]# ls /etc/libvirt/qemu/networks/autostart/
default.xml
[root@localhost ~]#
重启成功之后就会入到登录界面,可以看到我这里是成功登录的:
这时我们是处于一个虚拟终端的,因为安装了虚拟机,如果要退出来的话,应该说是切出来,按 Ctrl + ]
即可。
dhclient eth0 # 为虚拟机分配ip
编辑网卡配置文件将ip设置为静态的
systemctl restart network # 重启网络服务
安装好虚拟机的配置
iptables -F
systemctl stop firewalld
systemctl disable firewalld
setenforce
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
systemctl stop NetworkManager
systemctl disable NetworkManager
yum -y install vim
管理虚拟机的常用命令
# virsh list //查看已打开虚拟机列表 # virsh list --all //查看所有虚拟机列表 # virsh version //查看virsh版本号 # virsh start node1 //启动node1虚拟机 # virsh shutdown node1 //关机node1虚拟机 # virsh destroy node1 //强制关机node1虚拟机 # virsh dumpxml node1 > node1.xml //导出node1虚拟机配置文件 # virsh undefine node1 //取消node1定义 # virsh define node1.xml //重新定义node1 # virsh autostart node1 //设置开机自启动node1 # virt-clone -o node1 -n node1-clone-f /data/images/node1-clone.img //克隆虚拟机 [root@localhost ~]# virsh console node1 # 进入指定的虚拟机,进入的时候还需要按一下回车