#将原来的镜像备份 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
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 188644 0 kvm 621480 1 kvm_intel irqbypass 13503 1 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 2019-09-26 14:37:09 CST; 18min ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 42596 (libvirtd) Tasks: 19 (limit: 32768) CGroup: /system.slice/libvirtd.service ├─ 3501 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/... ├─ 3503 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/... └─42596 /usr/sbin/libvirtd Sep 26 14:37:09 bogon systemd[1]: Starting Virtualization daemon... Sep 26 14:37:09 bogon systemd[1]: Started Virtualization daemon. Sep 26 14:37:10 bogon dnsmasq[3501]: read /etc/hosts - 2 addresses Sep 26 14:37:10 bogon dnsmasq[3501]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses Sep 26 14:37:10 bogon dnsmasq-dhcp[3501]: 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-7382-4e79-b607-d72ca5594041 DEVICE=em2 ONBOOT=yes #HWADDR=44:A8:42: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-7382-4e79-b607-d72ca5594041 DEVICE=br0 ONBOOT=yes IPADDR="192.168.13.223" PREFIX="24" GATEWAY="192.168.13.1"
virt-install --name=node9 --memory=14000,maxmemory=14336 --vcpus=6,maxvcpus=5 --os-type=linux --os-variant=rhel7 --location=/iso/CentOS-7-x86_64-DVD-1908.iso --disk path=/kvm/node9.img,size=1500 --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里是图形界面罢了。
例如我要选Chinese就按数字68并回车即可,回车之后会让你选择是中文简体还是繁体,也是按下相应的数字并回车即可:
配置完成之后又会再次回到配置界面,这次我们来设置时区:
设置系统安装盘:
最后开始安装系统:
安装完成之后就会停止在以下这个界面,按一下回车即可,这时就会重启安装完的系统:
[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 ~]#
重启成功之后就会入到登录界面,可以看到我这里是成功登录的:
dhclient eth0 # 为虚拟机分配ip
编辑网卡配置文件将ip设置为静态的
systemctl restart network # 重启网络服务
安装好虚拟机的配置
iptables -F systemctl stop firewalld systemctl disable firewalld setenforce 0 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 # 进入指定的虚拟机,进入的时候还需要按一下回车