Linux环境KVM布署学习
1、环境检查:
查看CPU是否支持虚拟化:
cat /proc/cpuinfo |grep -E "vmx|svm"
Vmware虚拟机centos需要开启cpu虚拟化支持:
与虚拟化相关的程序包:
qemu-kvm 主要的KVM程序包
libvirt 用于管理超级监视程序的libvirtd服务
libvirt-client 用于管理虚拟机的virsh命令和客户端API
virt-install 创建虚拟机所需要的命令行工具
virt-manager GUI虚拟机管理工具
virt-top 虚拟机统计命令
virt-viewer 用于连接到虚拟机的图形控制台
2、KVM安装布署
yum安装布署:
*本次yum安装的版本为libvirt-4.5.0-10.el7_6.6.x86_64
yum install qemu-kvm libvirt libvirt-client virt-install virt-manager virt-top virt-viewer -y
一般情况下,只要选择了正确的程序包,系统会自动加载合适的内核模块,查看是否加载相关的内核模块
lsmod |grep kvm
载入可应用的模块(AMD CPU为kvm_amd):
modprobe kvm_intel
/etc/libvirt/qemu.conf追加如下配置(标红部分为vnc连接密码):
vnc_listen = "0.0.0.0"
vnc_password = "bigdata"
remote_display_port_min = 5900
remote_display_port_max = 65535
/etc/libvirt/libvirtd.conf追加配置如下:
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "192.168.254.100"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_tcp = "none"
max_clients = 1024
min_workers = 100
max_workers = 200
max_requests = 20
max_client_requests = 50
配置桥接网卡br0:
物理网卡配置如下:
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
UUID=9936589f-50ac-4e23-b64a-a8a31abfdd91
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
桥接网卡br0配置如下:
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
TYPE=bridge
IPADDR=192.168.254.100
NETMASK=255.255.255.0
GATEWAY=192.168.254.2
启动服务:
systemctl start libvirtd
systemctl enable libvirtd
3、虚拟机安装布署
本次环境如下:
Windows机器上提前安装好vnc客户端、xmanager。
Xshell开启xmanager转发:
安装命令如下:
virt-install --name=centos_01 --memory 1024 --vcpus=1 --cdrom /disk2/iso/CentOS-7-x86_64-DVD-1804.iso --network bridge=br0,model=virtio --disk path=/disk2/kvm/centos_01.img,size=12,format=raw,bus=virtio --vnc --accelerate --force --autostart
参数含义:
--name 给虚拟机起个名字
--ram 分配给虚拟机的内存,单位MB
--vcpus 分配给虚拟机的cpu个数
--cdrom 指定安装文件的全路径
--disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size 虚拟机文件大小,单位GB
bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
cache 虚拟机磁盘的cache类型
--network bridge 指定桥接网卡
model 网卡模式,这里也是使用性能更好的virtio
--graphics图形参数
Centos会自动开放5900端口:
使用VNC客户端可进行连接,如果出现连接闪退现象,修改VNC客户端colorlevel设置为full:
安装win2012命令如下:
virt-install --name=win2012 --memory 2048 --vcpus=1 --cdrom /disk2/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_4051059.iso --network bridge=br0,model=virtio --disk path=/disk2/kvm/win2012.img,size=50,format=raw,bus=ide --vnc --accelerate --force --autostart
*win2012安装非常慢。。。
查看虚拟机VNC端口:
ps -ef |grep qemu |grep win2012 |grep vnc
:1可理解为5901,依次往上加。
4、常用命令说明
virt-install
常用参数说明
–name指定虚拟机名称
–memory分配内存大小。
–vcpus分配CPU核心数,最大与实体机CPU核心数相同
–disk指定虚拟机镜像,size指定分配大小单位为G。
–network网络类型,此处用的是默认,一般用的应该是bridge桥接。
–accelerate加速
–cdrom指定安装镜像iso
–vnc启用VNC远程管理,一般安装系统都要启用。
–vncport指定VNC监控端口,默认端口为5900,端口不能重复。
–vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
–os-type=linux,windows
–os-variant=rhel6
--name 指定虚拟机名称
--ram 虚拟机内存大小,以 MB 为单位
--vcpus 分配CPU核心数,最大与实体机CPU核心数相同
–-vnc 启用VNC远程管理,一般安装系统都要启用。
–-vncport 指定VNC监控端口,默认端口为5900,端口不能重复。
–-vnclisten 指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
--network 虚拟机网络配置
# 其中子选项,bridge=br0 指定桥接网卡的名称。
–os-type=linux,windows
–os-variant=rhel7.2
--disk 指定虚拟机的磁盘存储位置
# size,初始磁盘大小,以 GB 为单位。
--location 指定安装介质路径,如光盘镜像的文件路径。
--graphics 图形化显示配置
# 全新安装虚拟机过程中可能会有很多交互操作,比如设置语言,初始化 root 密码等等。
# graphics 选项的作用就是配置图形化的交互方式,可以使用 vnc(一种远程桌面软件)进行链接。
# 我们这列使用命令行的方式安装,所以这里要设置为 none,但要通过 --extra-args 选项指定终端信息,
# 这样才能将安装过程中的交互信息输出到当前控制台。
--extra-args 根据不同的安装方式设置不同的额外选项
virsh
基础命令
virsh list --all # 查看所有运行和没有运行的虚拟机
virsh list # 查看在运行的虚拟机
virsh dumpxml vm-name # 查看kvm虚拟机配置文件
virsh start vm-name # 启动kvm虚拟机
virsh shutdown vm-name # 正常关机
virsh destroy vm-name # 非正常关机,强制关闭虚拟机(相当于物理机直接拔掉电源)
virsh undefine vm-name # 删除vm的配置文件
ls /etc/libvirt/qemu
# 查看删除结果,Centos-6.6的配置文件被删除,但磁盘文件不会被删除
virsh define file-name.xml # 根据配置文件定义虚拟机
virsh suspend vm-name # 挂起,终止
virsh resumed vm-name # 恢复被挂起的虚拟机
virsh autostart vm-name # 开机自启动vm
virsh console <虚拟机名称> # 连接虚拟机