有没有专门做美食的网站,王野摩托,网站建设开发服务费记账,站长网站建设虚拟化是一种资源管理技术#xff0c;是将计算机的各种资源#xff0c;如服务器#xff0c;网络#xff0c;内存及存储等#xff0c;以抽象#xff0c;转换后呈现出来#xff0c;打破物理设备结构见的不可切割的障碍#xff0c;使用户可以比原来的架构更好的方式来应用… 虚拟化是一种资源管理技术是将计算机的各种资源如服务器网络内存及存储等以抽象转换后呈现出来打破物理设备结构见的不可切割的障碍使用户可以比原来的架构更好的方式来应用 这些资源的虚拟部分是不受现有资源的架构方式地域或物理设备的限制 虚拟化创建了一个隔离层把硬件和上层应用分离开来允许在硬件资源上运行多个逻辑应用 虚拟化有服务器虚拟化应用程序虚拟化展现层虚拟化桌面虚拟化 虚拟机嵌套 window vmware 宿主机(centos7) 安装kvm 创建kvm虚拟机
部署kvm
装第一个
yum install libvirt virt-install qemu-kvm -y
#yum -y install qemu-kvm libvirt virt-manager virt-install
virt-viewer#yum install libvirt* virt-* qemu-kvm* -y#安装软件说明
libvirt 创建虚拟机管理
virt 虚拟机克隆
qemu 管理虚拟机硬盘qemu-kvm: 为kvm提供底层仿真支持
libvirt-daemon: libvirtd守护进程管理虚拟机
libvirt-client: 用户端软件提供客户端管理命令
libvirt-daemon-driver-qemu: libvirtd连接qemu的驱动
libvirt: 使用最多的KVM虚拟化管理工具和应用程序接口即通过libvirt调用KVM创建虚拟机
libvirt是KVM通用的访问API其不但能管理KVM还能管理VMware、Xen、Hyper-V、
virtualBox等虚拟化方案。
virt-manager: 图形界面管理工具,其底层也是调用libvirt API来完成对虚拟机的操作包括虚拟机的
创建、删除、启动、停止以及一些简单的监控功能等。
virt-install: 虚拟机命令行安装工具
virsh: 命令行工具是基于 libvirt API 创建的命令行工具它可以作为图形化的 virt-manager 应用的
备选工具。virsh 命令可以被用来创建虚拟化任务管理脚本如安装、启动和停止虚拟机
virt-viewer: 通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包
中virtviewer
cockpit: CentOS8 专门提供的基于Web的虚拟机管理界面启动服务
[roottest3 ~]# systemctl start libvirtd.service
[roottest3 ~]# systemctl status libvirtd.service
● libvirtd.service - Virtualization daemonLoaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2024-05-16 09:48:53 EDT; 3min 55s agoDocs: man:libvirtd(8)https://libvirt.orgMain PID: 1012 (libvirtd)Tasks: 19 (limit: 32768)Memory: 36.1M创建一个虚拟机
--virt-type HV_TYPE 要使用的管理程序名称kvm,qemu,xen,...
--os-type 系统类型
--os-variant DISTRO_VARIANT 在客户机上安装的操作系统例如fedora28、rhel6、winxp等
-n NAME,--name NAME 客户机实列名称
--memory MEMORY 配置客户机虚拟内存大小
--vcpus VCPUS 配置客户机虚拟cpuvcpu数据
--disk DISK 指定存储的各种选项
-cdrom CDROM 光驱安装介质
-w NETWORK,--network NETWORK 配置客户机网络接口
--graphics GRAPHICE 配置客户机现实设置虚拟化平台选项
-v,--hvm 这个客户机应该是一个全虚拟化的客户机
-p,--paravirt 这个客户机应该是一个半虚拟化的客户机
--container 这个客户机应该是一台容器客户机
--virt-type HV_TYPE 要使用容器的管理程序名称kvm,qemu,xen,..
--arch ARCH 模拟cpu架构
--machine MACHINE 机器类型为仿真类型其他选项
--noautoconsole 不要自动尝试连接到客户端控制台
--autostart 主机启动时自动启动域
--noreboot 安装完成后不启动客户机以上信息通过 virt-install --help 获取 安装操作系统的方式
装系统方式1. 基于现有完整的OS镜像重新装
2. 基于现有一个系统的硬盘开机即可#virt-install 安装虚拟机
# cpu,内存系统ISO选择网络模式(defalut nat ,kvm网络环境又是一个单独的 192.168.0.xx)
# networkdefault#kmv特性是在创建时候虚拟机的硬件上线就限制死了
#--memory 2048 -vcpus 2
#如果想动态修改kvm虚拟机的配置还得额外添加参数设置最大内存设置最大cpu才可以
# -vcpus 2 给当前虚拟机设置2核 2个工作的cpu线程top 看到 cpu0 cpu1
# maxvcpus8 当前虚拟机动态设置到最高8核cpu0 ~ cpu7
# -vcpus 2,maxvcpus8
# --memory 2048,maxmemory4096 给这个机器2G内存可动态设置到最大 4G内存
# --disk /data/linux0224_cento7.raw,formatraw,size10
# 虚拟机的磁盘文件放在/data/ 磁盘文件类型raw类型最大容量是 10G
# vmware用的虚拟磁盘类型是 vmdk格式存储工程师关心的了解即可# --cdrom /opt/CentOS-7-x86_64-DVD-1804.iso 制定安装os镜像#
# --network networkdefault # --graphics vnc,listen0.0.0.0 --noautoconsole # 网络模式选择是nat开启vnc功能 listen 虚拟机运行后会开启vnc端口绑定0.0.0.0 从外网去链接
# 阿里云的服务器也是这个参数一样样也开启vnc功能virt-install --virt-type kvm --os-typelinux --os-variant rhel7 --name linux0224_cento7 --memory 2048,maxmemory4096 --vcpus 2,maxvcpus8 --disk /data/linux0224_cento7.raw,formatraw,size10 --cdrom /opt/CentOS-7-x86_64-Minimal-2009.iso --network networkdefault --graphics vnc,listen0.0.0.0 --noautoconsole#查看运行中的kvm
[roottest3 data]# virsh listId Name State
----------------------------------------------------1 linux0224_cento7 running#查看运行中的kvm包括挂了的
[roottest3 data]# virsh list --allId Name State
----------------------------------------------------1 linux0224_cento7 running#查看虚拟机端口ip情况可以用ssh去连接
[roottest3 data]# virsh domifaddr linux0224_cento7Name MAC address Protocol Address
-------------------------------------------------------------------------------#用vnc连接
[roottest3 data]# virsh vncdisplay linux0224_cento7
:0
vnc默认产生的端口:0 即为5900 以此类推 :1 为5901
[roottest3 data]# netstat -tunlp|grep kvm
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 4591/qemu-kvm virsh dumpxml linux0224_cento7 导出虚拟机的配置文件
配置文件中就是定义了当前机器的一些信息如cpu磁盘网络等想修改虚拟机的信息就是该这个配置文件装完虚拟机之后
[rootlocalhost opt]# virsh list --allId Name State
----------------------------------------------------- linux0224_cento7 shut off#把他给开机
[rootlocalhost opt]# virsh --help|grep startautostart autostart a domaindefine define (but dont start) a domain from an XML filestart start a (previously defined) inactive domainiface-start start a physical host interface (enable it / if-up)net-autostart autostart a networknet-start start a (previously defined) inactive networkpool-autostart autostart a poolpool-start start a (previously defined) inactive pool
[rootlocalhost opt]# virsh start linux0224_cento7
Domain linux0224_cento7 started[rootlocalhost opt]#
[rootlocalhost opt]#
[rootlocalhost opt]# virsh listId Name State
----------------------------------------------------3 linux0224_cento7 running#查看ip情况
[rootlocalhost opt]# virsh domifaddr linux0224_cento7Name MAC address Protocol Address
-------------------------------------------------------------------------------vnet0 52:54:00:f2:60:4e ipv4 192.168.122.218/24#此时就可以通过ssh连接了
[rootlocalhost opt]# ssh root192.168.122.218
The authenticity of host 192.168.122.218 (192.168.122.218) cant be established.
ECDSA key fingerprint is SHA256:35qqgdpexAK2dXVHCJjhkIwXZS3Y11iqiL7Tkf9pt0.
ECDSA key fingerprint is MD5:7c:09:7c:d5:43:bd:b3:db:d4:ae:bf:78:67:78:23:6c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 192.168.122.218 (ECDSA) to the list of known hosts.
root192.168.122.218s password:
[rootlocalhost ~]# ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 52:54:00:f2:60:4e brd ff:ff:ff:ff:ff:ffinet 192.168.122.218/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0valid_lft 3164sec preferred_lft 3164secinet6 fe80::2ba4:e902:8dd3:7cc/64 scope link noprefixroute valid_lft forever preferred_lft forever强制删除就是删除这个路径下的文件配置用virsh list 看的也是这个文件有用命令就能现实出来没有就不能显示出来
[rootlocalhost ~]# ll /etc/libvirt/qemu/
total 8
-rw-------. 1 root root 4263 Jun 2 09:57 linux0224_cento7.xml
drwx------. 3 root root 42 Jun 2 09:53 networks#设置kvm开机自启每次宿主机启动 kvm就启动
[rootlocalhost ~]# systemctl enable libvirtd
[rootlocalhost ~]# systemctl is-enabled libvirtd
enabled
[rootlocalhost ~]# virsh autostart linux0224_cento7
Domain linux0224_cento7 marked as autostarted#开机自启会自动创建一个软连接
[rootlocalhost ~]# ll /etc/libvirt/qemu/autostart/linux0224_cento7.xml
lrwxrwxrwx. 1 root root 38 Jun 2 21:41 /etc/libvirt/qemu/autostart/linux0224_cento7.xml - /etc/libvirt/qemu/linux0224_cento7.xml#禁止开机自启此时那个软连接就没了
[rootlocalhost ~]# virsh autostart --disable linux0224_cento7
Domain linux0224_cento7 unmarked as autostarted[rootlocalhost ~]# ll /etc/libvirt/qemu/autostart/linux0224_cento7.xml
ls: cannot access /etc/libvirt/qemu/autostart/linux0224_cento7.xml: No such file or directory搜索镜像[rootlocalhost ~]# osinfo-query osShort ID | Name | Version | ID
-----------------------------------------------------------------------------------------------------------------------------alpinelinux3.5 | Alpine Linux 3.5 | 3.5 | http://alpinelinux.org/alpinelinux/3.5 alpinelinux3.6 | Alpine Linux 3.6 | 3.6 | http://alpinelinux.org/alpinelinux/3.6 alpinelinux3.7 | Alpine Linux 3.7 | 3.7 | http://alpinelinux.org/alpinelinux/3.7 alpinelinux3.8 | Alpine Linux 3.8 | 3.8 | http://alpinelinux.org/alpinelinux/3.8 alt.p8 | ALT p8 StarterKits | p8 | http://altlinux.org/alt/p8.starterkits alt.p9 | ALT p9 StarterKits | p9 | http://altlinux.org/alt/p9.starterkits alt.sisyphus | ALT regular | sisyphus | http://altlinux.org/alt/sisyphus alt8.0 | ALT 8 Education | 8.0 | http://altlinux.org/alt/8.0 alt8.1 | ALT 8.1 | 8.1 | http://altlinux.org/alt/8.1 console连接
#在没配置内核时时不能console的他会一直卡在那输入ctrl ] 退出
[rootlocalhost ~]# virsh console linux0224_cento7
Connected to domain linux0224_cento7
Escape character is ^][rootlocalhost ~]# 如何用 console 连接
用vnc连接更改内核参数
1.通过为内核传递参数 consolettyS0来让内核把输出定向至 ttyS0
grubby --update-kernelALL --argsconsolettyS0,115200n8
reboot此时再用console连接
[rootlocalhost ~]# virsh console linux0224_cento7
Connected to domain linux0224_cento7
Escape character is ^]#按回车
CentOS Linux 7 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64localhost login: ubuntu开启console
如下一个简单的命令就可以开启console了
RHEL/CentOS7和Ubuntu 15.04都使用了systemd所以也可以直接使用systemctl来启用Guest虚拟机的控制台方法相同systemctl enable serial-gettyttyS0.servicesystemctl start serial-gettyttyS0.service