关于我们
技术分享
技术分享
Linux-KVM虚拟机的创建和快照命令
Linux-KVM虚拟机的创建和快照命令
2021-06-04
KVM:Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。
安装虚拟机脚本:
虚拟机的安装可以通过virt-manager管理工具新建,也可以使用命令来创建。图形界面创建和其他场上的虚拟化产品并无太大差异,这里我们使用命令创建虚拟机:
通过命令创建,我们将命令写入文件保存为一个.sh脚本文件,以便多次使用 [root@foundation80 ~]# cat > vm-create.sh << "EOF" #!/bin/bash virt-install \ --cdrom /iso/rhel-server-7.0-x86_64-dvd.iso \ ##安装介质## --ram 1024 \ ##内存## --cpus 1 \ ##CPU## --disk /var/lib/libvirt/images/$1.qcow2,size=9,bus=virtio \ ##虚拟磁盘文件、大小、运行模式## --name $1 \ ##名称## --network source=br0,model=virtio \ ##配置网络,运行模式##
## 脚本运行格式:vm-create.sh 虚拟机名
执行脚本创建虚拟机:
[root@foundation80 ~]# ./vm-create.sh jinx [root@foundation80 ~]# WARNING No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results. Starting install... Allocating 'jinx.qcow2' | 10 GB 00:00 Creating domain...
弹出虚拟机窗口,进行系统的安装
虚拟机快照:
快照就是记录当前虚拟机的状态,以便随时恢复虚拟机
[root@foundation80 images]# cd /var/lib/libvirt/images/ ##默认虚拟磁盘文件存储目录 [root@foundation80 images]# qemu-img create -f qcow2 -b jinx.qcow2 node1.qcow2 ##qemu-img create创建 -f格式 qcow2 -b 源文件 镜像文件 Formatting 'node1.qcow2', fmt=qcow2 size=9663676416 backing_file='jinx.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 我们可以将上面的命令写成sh文件,方便后期使用 [root@foundation80 images]#vim ~/vm-snapshot.sh #!/bin/bash qemu-img create -f qcow2 \ ##创建快照,-f格式qcow2 -b /var/lib/libvirt/images/$1.qcow2 \ ##-b 源虚拟机磁盘文件 /var/lib/libvirt/images/$2.qcow2 ##目标路径 [root@foundation80 images]#chmod +x ~/snapshot.sh ##添加执行权限 ## 脚本运行格式:vm-snapshot.sh 虚拟机名 快照名
[root@foundation80 images]# cd /etc/libvirt/qemu/ ##虚拟机配置文件目录 [root@foundation80 qemu]# ls desktop.xml jinx.xml networks server.xml
虚拟机控制命令:
[root@foundation80 qemu]# virsh list --all ##显示所有虚拟机 Id Name State ---------------------------------------------------- - desktop shut off - jinx shut off - server shut off [root@foundation80 qemu]# virsh start jinx ##打开指定虚拟机 Domain Jinx started [root@foundation80 qemu]# virt-viewer jinx ##显示指定虚拟机 (virt-viewer:7666): GSpice-WARNING **: PulseAudio context failed Connection refused (virt-viewer:7666): GSpice-WARNING **: pa_context_connect() failed: Connection refused (virt-viewer:7666): GSpice-WARNING **: Error calling 'org.gnome.SessionManager.Inhibit': GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files [root@foundation80 qemu]# virsh destroy jinx ##关闭指定虚拟机 Domain Jinx destroyed [root@foundation80 qemu]# systemctl restart libvirtd.service ##重启虚拟机服务
一个虚拟机至少由两个文件组成,默认存放位置:
/etc/libvirt/qemu ##虚拟机配置文件
/var/lib/libvirt/images/ ##虚拟机磁盘文件
使用这两个文件,就可以对虚拟机完成迁移或恢复
[root@foundation80 qemu]# vim jinx.xml ##查看虚拟机配置文件的内容 </disk> 45 <disk type='file' device='disk'> 46 <driver name='qemu' type='qcow2'/> 47 <source file='/var/lib/libvirt/images/jinx.qcow2'/> ##配置文件中记录的虚拟机磁盘位置 48 <target dev='vda' bus='virtio'/> 49 <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> 50 </disk> ##可以通过修改虚拟机配置文件中的磁盘路径,或移动虚拟机磁盘文件至配置文件中的路径,恢复虚拟机 命令示例: [root@foundation80 qemu]# virsh create jinx.xml ##通过配置文件启动虚拟机 Domain jinx created from jinx.xml [root@foundation80 qemu]# virsh define Jinx.xml ##通过配置文件添加虚拟机 Domain jinx defined from jinx.xml [root@foundation80 qemu]# virsh undefine Jinx ##删除虚拟机配置文件 Domain jinx has been undefined
- 标签:
-
云计算
您可能感兴趣的新闻 换一批
热门文章
现在下载,可享30天免费试用