kvm详解【1】:部署篇
一、搭建kvm虚拟化平台
检验当前主机是否满足KVM的运行条件
cat /proc/cpuinfo | egrep -o "vmx|smv" # intel 过滤vmx,AMD 过滤smv
modprobe kvm # 在linux内核中加载kvm模块
lsmod | grep kvm # 显示已载入系统的模块 | 过滤kvm
安装kvm所需软件
yum -y install libvirt virt-install qemu-kvm
# libvirt: 虚拟化服务
# virt-install : 虚拟机的实用工具 。比如 virt-clone 克隆工具就是这个包安装的
# qemu-kvm : kvm 主程序, KVM 虚拟化模块
# virt-manager: KVM 图形化管理工具
# libguestfs-tools : 虚拟机的系统管理工具
# libvirt-python : python 调用 libvirt 虚拟化服务的 api 接口库文件
启动虚拟化服务
systemctl start libvirtd #开启虚拟化服务
systemctl enable libvirtd #设置 libvirtd 服务开机启劢
二、创建一台虚拟机
virt-install --virt-type qemu --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
--virt-type kvm # 虚拟化的类型(qemu)
--os-type=linux # 系统类型
--os-variant rhel7 # 系统版本
--name centos7 # 虚拟机的名字
--memory 1024 # 虚拟机的内存
--vcpus 1 # 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10 # 指定磁盘路径、格式、大小
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso # 指定安装源
--network network=default # 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0
--noautoconsole # 没有此项,在虚拟机安装完成前,kvm宿主机会卡在bash界面
三、使用虚拟机
3.1、vnc登录
查询端口号
[root@localhost /]# virsh vncdisplay <虚拟机名称>
3.2、console登录(centos7)
如果是10网段想远程控制172网段的宿主机,是无法使用VNC的(10网段只能访问10网段的,不可以访问172网段)。那这个时候我们有修改宿主机的需求,就可以使用console登录的方式。
通过连接跳板机,再通过跳板机,远程控制宿主机。
实现方式一:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8" # 虚拟机上执行该命令
#重启后生效
virsh console <虚拟机名称> # 宿主机上 console 登录
范例:
[root@localhost ~]# virsh console centos7
连接到域 centos7
换码符为 ^]
----- Tip:回车继续!!! -----
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
localhost login:
实现方式二:
在虚拟机 /boot/grub2/grub.cfg 下,内核处添加指定参数“console=ttyS0,115200n8”
# 重启后生效
virsh console <虚拟机名称> # 宿主机上 console 登录
范例:
[root@localhost ~]# virsh console centos7
连接到域 centos7
换码符为 ^]
----- Tip:回车继续!!! -----
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
localhost login: