半虚拟化驱动virtio的工作原理
为了提高内存、硬盘、网络的性能,需要支持半虚拟化
virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象,提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率,Windows 系统需要单独安装virtio驱 动,Linux系统自带virtio驱动。
libvirt 架构
如果libvirtd服务意外关闭,将导致相关工具,如:virt-manager等无法和虚拟机连接,但虚拟机仍会正常运行
[root@ubuntu2204 ~]#virsh list –all Id Name State———————————— 2 centos7-mooreyxia running – rocky8 shut off[root@ubuntu2204 ~]#systemctl status libvirtd● libvirtd.service – Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-12-31 17:53:28 CST; 17h agoTriggeredBy: ● libvirtd-ro.socket ● libvirtd.socket ● libvirtd-admin.socket Docs: man:libvirtd(8) https://libvirt.org Main PID: 871 (libvirtd) Tasks: 23 (limit: 32768) Memory: 72.6M CPU: 9.258s CGroup: /system.slice/libvirtd.service ├─871 /usr/sbin/libvirtd ├─987 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper └─988 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/lib/libvirt/libvirt_leaseshelperDec 31 17:53:30 ubuntu2204.wang.org dnsmasq[987]: using nameserver 127.0.0.53#53Dec 31 17:53:30 ubuntu2204.wang.org dnsmasq[987]: read /etc/hosts – 7 addressesDec 31 17:53:30 ubuntu2204.wang.org dnsmasq[987]: read /var/lib/libvirt/dnsmasq/default.addnhosts – 0 addressesDec 31 17:53:30 ubuntu2204.wang.org dnsmasq-dhcp[987]: read /var/lib/libvirt/dnsmasq/default.hostsfileJan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPDISCOVER(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPOFFER(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPREQUEST(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPACK(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:18:35 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPREQUEST(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:18:35 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPACK(virbr0) 192.168.122.23 52:54:00:18:b7:d2#停止libvirtd服务,socket还在运行,systemctl会自动激活socket,所以libvirtd会自动重启[root@ubuntu2204 ~]#systemctl stop libvirtdWarning: Stopping libvirtd.service, but it can still be activated by: libvirtd-ro.socket libvirtd.socket libvirtd-admin.socket[root@ubuntu2204 ~]#systemctl status libvirtd-ro.socket● libvirtd-ro.socket – Libvirt local read-only socket Loaded: loaded (/lib/systemd/system/libvirtd-ro.socket; enabled; vendor preset: enabled) Active: active (listening) since Sat 2022-12-31 17:53:24 CST; 17h ago Triggers: ● libvirtd.service Listen: /run/libvirt/libvirt-sock-ro (Stream) CGroup: /system.slice/libvirtd-ro.socketDec 31 17:53:24 ubuntu2204.wang.org systemd[1]: Listening on Libvirt local read-only socket.[root@ubuntu2204 ~]#systemctl status libvirtd○ libvirtd.service – Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: inactive (dead) since Sun 2023-01-01 11:27:32 CST; 1min 32s agoTriggeredBy: ● libvirtd-ro.socket ● libvirtd.socket ● libvirtd-admin.socket Docs: man:libvirtd(8) https://libvirt.org Process: 871 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=exited, status=0/SUCCESS) Main PID: 871 (code=exited, status=0/SUCCESS) Tasks: 2 (limit: 32768) Memory: 57.1M CPU: 9.370s CGroup: /system.slice/libvirtd.service ├─987 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper └─988 /usr/sbin/dnsmasq –conf-file=/var/lib/libvirt/dnsmasq/default.conf –leasefile-ro –dhcp-script=/usr/lib/libvirt/libvirt_leaseshelperJan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPREQUEST(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:11:55 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPACK(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:18:35 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPREQUEST(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:18:35 ubuntu2204.wang.org dnsmasq-dhcp[987]: DHCPACK(virbr0) 192.168.122.23 52:54:00:18:b7:d2Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: Stopping Virtualization daemon…Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: libvirtd.service: Deactivated successfully.Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: libvirtd.service: Unit process 987 (dnsmasq) remains running after unit stopped.Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: libvirtd.service: Unit process 988 (dnsmasq) remains running after unit stopped.Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: Stopped Virtualization daemon.Jan 01 11:27:32 ubuntu2204.wang.org systemd[1]: libvirtd.service: Consumed 9.370s CPU time.#彻底停掉libvirt服务,发现虚拟机还在运行,只是连接虚拟机的窗口失效[root@ubuntu2204 ~]#systemctl stop libvirtd libvirtd.socket libvirtdadmin.socket libvirtd-ro.socketFailed to stop libvirtdadmin.socket: Unit libvirtdadmin.socket not loaded.[root@ubuntu2204 ~]#virsh list –allerror: failed to connect to the hypervisorerror: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Connection refused[root@ubuntu2204 ~]#ps aux |grep kvmroot 1247 0.0 0.0 0 0 ? I 10:52 0:02 [kworker/5:0-kvm-irqfd-cleanup]libvirt+ 1575 5.8 3.2 3853876 532360 ? Sl 11:17 0:55 /usr/bin/qemu-system-x86_64 -name guest=centos7-mooreyxia,debug-threads=on -S -object {“qom-type”:”secret”,”id”:”masterKey0″,”format”:”raw”,”file”:”/var/lib/libvirt/qemu/domain-2-centos7-mooreyxia/master-key.aes”} -machine pc-q35-6.2,usb=off,vmport=off,dump-guest-core=off,memory-backend=pc.ram -accel kvm -cpu host,migratable=on -m 2048 -object {“qom-type”:”memory-backend-ram”,”id”:”pc.ram”,”size”:2147483648} -overcommit mem-lock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 3492dccc-468d-4fe9-8ec8-b4a251dccf00 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=33,server=on,wait=off -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -boot strict=on -device pcie-root-port,port=16,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 -device pcie-root-port,port=17,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 -device pcie-root-port,port=18,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 -device pcie-root-port,port=19,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 -device pcie-root-port,port=20,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 -device pcie-root-port,port=21,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 -device pcie-root-port,port=22,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 -device pcie-root-port,port=23,chassis=8,id=pci.8,bus=pcie.0,addr=0x2.0x7 -device pcie-root-port,port=24,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3 -device pcie-root-port,port=25,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1 -device pcie-root-port,port=26,chassis=11,id=pci.11,bus=pcie.0,addr=0x3.0x2 -device pcie-root-port,port=27,chassis=12,id=pci.12,bus=pcie.0,addr=0x3.0x3 -device pcie-root-port,port=28,chassis=13,id=pci.13,bus=pcie.0,addr=0x3.0x4 -device pcie-root-port,port=29,chassis=14,id=pci.14,bus=pcie.0,addr=0x3.0x5 -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.2,addr=0x0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0 -blockdev {“driver”:”file”,”filename”:”/var/lib/libvirt/images/centos7-mooreyxia.qcow2″,”node-name”:”libvirt-2-storage”,”auto-read-only”:true,”discard”:”unmap”} -blockdev {“node-name”:”libvirt-2-format”,”read-only”:false,”discard”:”unmap”,”driver”:”qcow2″,”file”:”libvirt-2-storage”,”backing”:null} -device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-2-format,id=virtio-disk0,bootindex=1 -device ide-cd,bus=ide.0,id=sata0-0-0 -netdev tap,fd=34,id=hostnet0,vhost=on,vhostfd=36 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:18:b7:d2,bus=pci.1,addr=0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,fd=32,server=on
,wait=off -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -audiodev {“id”:”audio1″,”driver”:”spice”} -spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device ich9-intel-hda,id=sound0,bus=pcie.0,addr=0x1b -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=audio1 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.5,addr=0x0 -object {“qom-type”:”rng-random”,”id”:”objrng0″,”filename”:”/dev/urandom”} -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.6,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=onroot 1581 0.0 0.0 0 0 ? S 11:17 0:00 [kvm-nx-lpage-re]root 1586 0.0 0.0 0 0 ? S 11:17 0:00 [kvm-pit/1575]root 1781 0.0 0.0 9696 2404 pts/1 S+ 11:33 0:00 grep –color=auto kvm#重启libvirtd服务,就可以继续连接kvm进行管理[root@ubuntu2204 ~]#systemctl start libvirtd [root@ubuntu2204 ~]#virsh list –all Id Name State———————————— 2 centos7-mooreyxia running – rocky8 shut off
virt-manager 管理虚拟机
virt-manager是一个图形化工具,主要功能:
定义和创建虚拟机
硬件管理
性能监视
控制台
在线和离线迁移
虚拟机的保存和恢复、暂停和继续、关闭和启动
virsh 命令行工具
virsh是使用libvirt managementAPI构建的管理工具,相比virt-manager可以提高效率
#virsh 主要功能[root@ubuntu2204 ~]#virsh –helpvirsh [options]… []virsh [options]… [args…]options:-c | –connect=URI hypervisor connection URI-d | –debug=NUM debug level [0-4]-e | –escape set escape sequence for console-h | –help this help-k | –keepalive-interval=NUMkeepalive interval in seconds, 0 for disable-K | –keepalive-count=NUMnumber of possible missed keepalive messages-l | –log=FILE output logging to file-q | –quiet quiet mode-r | –readonly connect readonly-t | –timing print timing information-v short version-V long version–version[=TYPE] version, TYPE is short or long (default short)….Domain Management (help keyword ‘domain’):Domain Monitoring (help keyword ‘monitor’):Host and Hypervisor (help keyword ‘host’):Interface (help keyword ‘interface’):Network Filter (help keyword ‘filter’):Networking (help keyword ‘network’):Node Device (help keyword ‘nodedev’):Secret (help keyword ‘secret’):Snapshot (help keyword ‘snapshot’):Storage Pool (help keyword ‘pool’):Storage Volume (help keyword ‘volume’):Virsh itself (help keyword ‘virsh’):#virsh 子命令说明help #打印基本帮助信息attach-device #使用XML文件中的设备定义在虚拟机中添加设备attach-disk #在虚拟机中附加新磁盘设备attach-interface #在虚拟机中附加新网络接口create #从 XML 配置文件生成虚拟机并启动新虚拟机define #为虚拟机输出XML配置文件destroy #强制虚拟机停止detach-device #从虚拟机中分离设备,使用同样的XML 描述作为命令attach-devicedetach-disk #从虚拟机中分离磁盘设备detach-interface #从虚拟机中分离网络接口domblkstat #显示正在运行的虚拟机的块设备统计domid #显示虚拟机IDdomifstat #显示正在运行的虚拟机的网络接口统计dominfo #显示虚拟机信息domname #显示虚拟机名称domstate #显示虚以机状态domuuid #显示虚拟机UUIDdumpxml #输出虚拟机 XML配置文件list #列出所有虚拟机migrate #将虚拟机迁移到另一台主机中nodeinfo #有关管理程序的输出信息quit #退出这个互动终端reboot #重新启动虚拟机restore #恢复以前保存在文件中的虚拟机resume #恢复暂停的虚拟机save #将虚拟机当前状态保存到某个文件中setmaxmem #为管理程序设定内存上限setmem #为虚拟机设定分配的内存setvcpus #修改为虚拟机分配的虚拟CPU数目shutdown #关闭某个虚拟机start #启动未激活的虚拟机suspend #暂停虚拟机undefine #删除与虚拟机关联的所有文件vepuinfo #显示虚以机的虚拟CPU信息vcpupin #控制虚拟机的虚拟CPU亲和性version #显示virsh版本#查看子命令 list 命令用法[root@ubuntu2204 ~]#virsh help list NAME list – list domains SYNOPSIS list [–inactive] [–all] [–transient] [–persistent] [–with-snapshot] [–without-snapshot] [–with-checkpoint] [–without-checkpoint] [–state-running] [–state-paused] [–state-shutoff] [–state-other] [–autostart] [–no-autostart] [–with-managed-save] [–without-managed-save] [–uuid] [–name] [–id] [–table] [–managed-save] [–title] DESCRIPTION Returns list of domains. OPTIONS –inactive list inactive domains –all list inactive & active domains –transient list transient domains –persistent list persistent domains –with-snapshot list domains with existing snapshot –without-snapshot list domains without a snapshot –with-checkpoint list domains with existing checkpoint –without-checkpoint list domains without a checkpoint –state-running list domains in running state –state-paused list domains in paused state –state-shutoff list domains in shutoff state –state-other list domains in other states –autostart list domains with autostart enabled –no-autostart list domains with autostart disabled –with-managed-save list domains with managed save state –without-managed-save list domains without managed save –uuid list uuid’s only –name list domain names only –id list domain IDs only –table list table (default) –managed-save mark inactive domains with managed save state –title show domain title例:[root@ubuntu2204 ~]#virsh list –all Id Name State———————————— 2 centos7-mooreyxia running – rocky8 shut off[root@ubuntu2204 ~]#virsh start rocky8Domain ‘rocky8’ started[root@ubuntu2204 ~]#virsh list –all Id Name State———————————– 2 centos7-mooreyxia running 3 rocky8 running[root@ubuntu2204 ~]#virsh shutdown 3Domain ‘3’ is being shutdown#列出开机状态虚拟机的UUID和名称[root@ubuntu2204 ~]#virsh list –uuid –name3492dccc-468d-4fe9-8ec8-b4a251dccf00 centos7-mooreyxia3a984e57-70f4-428d-8f30-3127dd4e9be2 rocky8
案例:查看虚拟机UUID,通过UUID启动关闭虚拟机
[root@ubuntu2204 ~]#virsh list –all Id Name State———————————– 2 centos7-mooreyxia running 3 rocky8 running[root@ubuntu2204 ~]#virsh domuuid 33a984e57-70f4-428d-8f30-3127dd4e9be2[root@ubuntu2204 ~]#virsh destroy 3a984e57-70f4-428d-8f30-3127dd4e9be2Domain ‘3a984e57-70f4-428d-8f30-3127dd4e9be2’ destroyed[root@ubuntu2204 ~]#virsh list –all Id Name State———————————— 2 centos7-mooreyxia running – rocky8 shut off
案例:暂停和恢复虚拟机
[root@ubuntu2204 ~]#virsh list Id Name State———————————– 2 centos7-mooreyxia running[root@ubuntu2204 ~]#virsh suspend centos7-mooreyxiaDomain ‘centos7-mooreyxia’ suspended[root@ubuntu2204 ~]#virsh list Id Name State———————————- 2 centos7-mooreyxia paused[root@ubuntu2204 ~]#ps aux|grep kvmroot 1247 0.0 0.0 0 0 ? I 10:52 0:02 [kworker/5:0-kvm-irqfd-cleanup]libvirt+ 1575 2.3 3.3 3862072 550556 ? Sl 11:17 1:13 /usr/bin/qemu-system-x86_64 -name guest=centos7-mooreyxia,debug-threads=on -S -object {“qom-type”:”secret”,”id”:”masterKey0″,”format”:”raw”,”file”:”/var/lib/libvirt/qemu/domain-2-centos7-mooreyxia/master-key.aes”} -machine pc-q35-6.2,usb=off,vmport=off,dump-guest-core=off,memory-backend=pc.ram -accel kvm -cpu host,migratable=on -m 2048 -object {“qom-type”:”memory-backend-ram”,”id”:”pc.ram”,”size”:2147483648} -overcommit mem-lock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 3492dccc-468d-4fe9-8ec8-b4a251dccf00 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=33,server=on,wait=off -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -boot strict=on -device pcie-root-port,port=16,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 -device pcie-root-port,port=17,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 -device pcie-root-port,port=18,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 -device pcie-root-port,port=19,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 -device pcie-root-port,port=20,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 -device pcie-root-port,port=21,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 -device pcie-root-port,port=22,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 -device pcie-root-port,port=23,chassis=8,id=pci.8,bus=pcie.0,addr=0x2.0x7 -device pcie-root-port,port=24,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3 -device pcie-root-port,port=25,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1 -device pcie-root-port,port=26,chassis=11,id=pci.11,bus=pcie.0,addr=0x3.0x2 -device pcie-root-port,port=27,chassis=12,id=pci.12,bus=pcie.0,addr=0x3.0x3 -device pcie-root-port,port=28,chassis=13,id=pci.13,bus=pcie.0,addr=0x3.0x4 -device pcie-root-port,port=29,chassis=14,id=pci.14,bus=pcie.0,addr=0x3.0x5 -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.2,addr=0x0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0 -blockdev {“driver”:”file”,”filename”:”/var/lib/libvirt/images/centos7-mooreyxia.qcow2″,”node-name”:”libvirt-2-storage”,”auto-read-only”:true,”discard”:”unmap”} -blockdev {“node-name”:”libvirt-2-format”,”read-only”:false,”discard”:”unmap”,”driver”:”qcow2″,”file”:”libvirt-2-storage”,”backing”:null} -device virtio-blk-pci,bus=pci.4,addr=0x0,drive=libvirt-2-format,id=virtio-disk0,bootindex=1 -device ide-cd,bus=ide.0,id=sata0-0-0 -netdev tap,fd=34,id=hostnet0,vhost=on,vhostfd=36 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:18:b7:d2,bus=pci.1,addr=0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,fd=32,server=on,wait=off -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -audiodev {“id”:”audio1″,”driver”:”spice”} -spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device ich9-intel-hda,id=sound0,bus=pcie.0,addr=0x1b -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=audio1 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.5,addr=0x0 -object {“qom-type”:”rng-random”,”id”:”objrng0″,”filename”:”/dev/urandom”} -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.6,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=onroot 1581 0.0 0.0 0 0 ? S 11:17 0:00 [kvm-nx-lpage-re]root 1586 0.0 0.0 0 0 ? S 11:17 0:00 [kvm-pit/1575]root 2244 0.0 0.0 9696 2268 pts/1 S+ 12:09 0:00 grep –color=auto kvm[root@ubuntu2204 ~]#virsh resume centos7-mooreyxiaDomain ‘centos7-mooreyxia’ resumed[root@ubuntu2204 ~]#virsh list Id Name State———————————– 2 centos7-mooreyxia running
案例:配置虚拟机开机自动启动
在virt-manager图形界面中可以设置宿主机启动时虚拟机自动开启
xml是这个虚拟机的所有配置文本
查看虚拟机配置
#未勾选开机启动时[root@ubuntu2204 ~]#virsh list –all Id Name State———————————— 2 centos7-mooreyxia running – rocky8 shut off#每个虚拟机配置都存放在/etc/libvirt/qemu目录下的xml文件中[root@ubuntu2204 ~]#ll /etc/libvirt/qemu/total 28drwxr-xr-x 3 root root 4096 Dec 31 00:18 ./drwxr-xr-x 7 root root 4096 Dec 29 20:24 ../-rw——- 1 root root 7673 Dec 29 21:36 centos7-mooreyxia.xmldrwxr-xr-x 3 root root 4096 Dec 29 19:10 networks/-rw——- 1 root root 7078 Dec 30 22:44 rocky8.xml#查看XML配置文件[root@ubuntu2204 ~]#cat /etc/libvirt/qemu/centos7-mooreyxia.xml
赞
收藏
评论
分享
举报
上一篇:Python爬虫-第三章-2-requests 进阶• 爬取某视频网相关视频
下一篇:44-KVM虚拟化-存储管理和磁盘扩容
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
全部评论
()
最热
最新
相关文章
KVM虚拟机管理配置——libvirt
一、关于libvirt1)libvirt简介Libvirt是目前使用最广泛的虚拟机管理工具和应用程序接口(API),常用的虚拟机管理工具(virsh、virt-install、virt-manager)和云计算架构平台(如:OpenStack、OpenNubula)等在底层都使用libvirt的应用程序接口。 Libvirt是一套开源的支持linux下虚拟化工具的函数库,为安全有效的管理
KVM
virt-install
libvirt
virsh
KVM libvirt 虚拟机快照技术
KVM libvirt 虚拟机快照技术
snapshot
libvirt
nova
openstack
libvirt
使用libvirt工具栈管理kvm虚拟机
libvirt介绍Libvirt是一个软件集合,便于使用者管理虚拟机和其他虚拟化功能,比如存储和网络接口管理等等。Libvirt概括起来包括一个API库、一个daemon(libvirtd)和一个命令行工具(virsh)。支持的虚拟化技术:KVM,XEN,VMWARE,Qemu,LXC,OpenVZ等libvirt中的术语:node:指物理节点hypervisor:domain:vminstanc
libvirt
kvm
qemu
virt
使用libvirt管理kvm虚拟机(更新中)
原文地址:http://blog.chinaunix.net/space.php?uid=14370162&do=blog&id=2982561使用libvirt管理kvm虚拟机(更新中) (2011-10-28 15:40)标签: 转载 原文地址:使用libvirt管理kvm虚拟机(更新中) 作者:xjc2694说明:这篇笔记为更好的管理虚拟化服务,如果仅仅是测
职场
虚拟机
休闲
kvm
KVM虚拟化笔记(四)——kvm虚拟机日常管理
一,查看KVM虚拟机配置文件及运行状态 1,KVM虚拟机默认的配置文件路径:/etc/libvirt/qemu/而autostart目录是配置kvm虚拟机开机自启动的目录。[root@KVM qemu]# cd /etc/libvirt/qemu[root@KVM qemu]# lltotal 24drwxr-xr-x&n
笔记
kvm
virsh
KVM管理虚拟机
笔记内容:KVM管理虚拟机笔记日期:2018-03-0828.9克隆虚拟机28.10快照管理28.11磁盘格式28.12磁盘扩容(raw)28.13磁盘扩容(qcow2)28.14调整cpu内存和网卡28.15迁移虚拟机在上一篇中,我们介绍了如何在CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统。本篇则是介绍在KVM里安装完虚拟机后,如何使用KVM来管理虚拟机。克隆虚拟机克隆虚
KVM
虚拟化
CentOS7
KVM虚拟机管理
一.虚拟机常用命令# virsh list //查看已打开虚拟机列表# virsh list –all &
linux
虚拟机
KVM
LVM
virsh
kvm利用kvm快照备份虚拟机
一、新建lvm快照: lvcreate -L 100M -s -n lvmsp1 /dev/vg1/lvmsp lvcreate -s /dev/vg1/lvmsp -n lvmsp1 -L 100M二、利用lvm快照,将修改xml配置文件,执行下文件路径。
kvm备份
kvm+libvirt虚拟机快照浅析
kvm+libvirt虚拟机快照浅析
kvm
snapshot
libvirt
KVM虚拟机支持虚拟化
kvm虚拟化
kvm虚拟化
KVM虚拟化之安装KVM虚拟机(一)
KVM虚拟化1、KVM虚拟化介绍与应用场景什么是KVM虚拟化?KVM,内核级虚拟化技术Kernel-basedVirtualMachine。KVM的虚拟化需要硬件支持(如IntelVT技术或者AMDV技术)。是基于硬件的完全虚拟化。虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,使每个操作系统之间都是互相隔离的,并且应用程序都可以在相互独
KVM虚拟化
KVM虚拟平台——迁移KVM虚拟机
一、KVM虚拟机迁移的方式KVM平台中的KVM虚拟机迁移分为以下两种:(1)冷迁移(静态迁移)我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘,进行冷迁移时,只要在目标主机上挂载这个nfs文件系统,就可以看到要迁移的那个虚拟机的磁盘文件,通常以.qcow2或.raw结尾的,然后,只需将虚拟机的.xml配置文件发送到目标服务器上,然后重新定义一下迁移过来的虚拟机即可!(2)热迁移(动态迁移
KVM虚拟平台——迁移KVM虚拟机
KVM虚拟化:使用qemu-kvm创建和管理虚拟机
CentOS 6加载了KVM模块后,我们是无法进行虚拟机的管理的,如果需要管理KVM虚拟机,还需要管理工具才可以。先看一下KVM的管理工具栈。yum grouplist |grep -i “virtualization” Virtualization: qemu-kvm V
KVM
qemu
kvm
kvm虚拟机
环境CentOS release 7.2 x86_64 4核8G内存查看是否支持虚拟技术# cat /proc/cpuinfo | egrep ‘vmx|svm’ ……eagerfpu pni pclmulqdq dte
kvm
KVM虚拟机存储管理
KVM的存储选项有多种,包括虚拟磁盘文件、基于文件系统的存储和基于设备的存储。当系统创建KVM虚拟机的时候,默认使用虚拟磁盘文件作为后端存储。安装后,虚拟机认为在使用真实的磁盘,但实际上看到的是用于模拟硬盘的虚拟磁盘文件。这一额外的文件系统层会降低系统速度。当然,基于磁盘镜像的虚拟磁盘并非全无益处,磁盘文件系统可以很轻松地用于其它的KVM虚拟化宿主机。但是如果您希望优化KVM虚拟化性能,最好考虑其它的存储方式。
KVM
虚拟化
存储
KVM虚拟机安装、管理
一、详解1、虚拟化产品对比表2、KVM简介KVM全称Kernel-basedVirtualMachine,翻译过来是基于内核的虚拟机,实际它是Linux内核的一个模块。该模块将Linux变为一个Hypervisor,由Quramnet开发,支持x86、s390、Powerpc等CPU。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。K
KVM
磁盘
文件操作
vnc
KVM管理虚拟机命令
KVM基本功能管理virsh-h查看命令帮助kvm的配置存放路径cd/etc/libvirt/qemu下有.xml的文件查看虚拟机的状态virshlist–all虚拟机关机与开启virshshutdownc1//关机virshstartc1//开机强行关闭虚拟virshdestroycc1强行关闭电源状态导出虚拟机配置virshdumpxmlcc1>/etc/libvirt/qemu/c1
kvm 基本管理
KVM之管理虚拟机
一、libvirt架构概述:libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API,libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统ibvirtd该后台进程主要实现以下功能:(1)远程代理所有remote client发送来的命令,由该进程监测执行 (2)本地环境初始化libvirt服
linux
centos7
KVM
KVM管理虚拟机(2)
利用virt-install 安装一个新虚拟机:virt-install –connect qemu:///system –virt-type kvm –name centos6 –ram 1024 –vcpus 2 –network bridge=br0 –disk path=/VMs/p_w_picpaths/centos6.img,size=20,sparse –pxe —
KVM添加虚拟机(2)
mooreyxia
关注
私信
分类列表
# SRE linux云计算44篇
# 云原生10篇
# C#2篇
# Python 爬虫22篇
近期文章
1. DELL R740服务器对RAID5进行扩容
2. 第二章:配置邮箱数据库邮件地址列表公共文件夹
3. 人工智能的8个有用的日常例子
4. 一台服务器最大能支持多少条TCP连接?
5.恒创科技:高防IP防御DDoS攻击的原理是什么?
文章来源于互联网:43-KVM虚拟化-利用libvirt服务进行KVM虚拟机管理