1.图形化安装虚拟机
准备工作:(1)redhat的镜像文件,本次使用的是7.3版本。
(2)安装虚拟机管理命令:yum install qemu-kvm qemu-img
yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client。由于在安装系统是默认安装了这些命令,因此本次就不用再安装这些命令了。
(3)查看自己的cpu是否支持虚拟化:inter的cpu必须支持vmx,amd的cpu必须支持svm。可以使用cat /proc/cpuinfo查看cpu的信息。
安装步骤:(1)切换到root用户,打开virt-manager,打开虚拟机管理工具。点击高亮的图标,创建一个Create a new virtual machine。
(2)选择安装方式,由于本次下载了镜像文件,因此选择Local install media,点击Forward
(3)点击Browse选择镜像的路径,然后点击Browse Local ,找到镜像的位置,点击Open,然后再Forward。
(4)输入安装的内存大小和cpu的个数。如果要安装图形化(GUI)模式,内存必须大于768M,cpu个数至少为1个。本次保持默认设置,点击Forward。
(5)输入要安装的虚拟机的硬盘大小。硬盘最小为5G,本次使用10G,然后点击Forward。
(6)输入你要创建的虚拟机名称,并且勾选Customize configuration before install,然后点击Finish。
(7)选择硬盘的格式为VirtIO,点后点击Apply。
(8)选择网卡的模式也为virtio,点击apply,然后点击左上角的Begin Installation。
(9)然后到达Red Hat 的安装界面。选择第一个安装7.3版本。然后选择安装过程中的语言,选择English,然后点击右下角的Continue。
(10)选择LOCALIZATION中的DATE&TIME,选择的时区为Asia/Shanghai,然后点击左上角的Done。
(11)点击LOCALIZATION中的LANGUAGE SUPPORT,选择中文------>简体中文。点击Done.
(12)点击SOFTWARE中的SOFTWARE SELECTION,选择安装方式为Server with GUI,然后点击Done。
(13)点击SYSTEM中的INSTALLATION DESTINATION,选择安装方式为手动配置 I will configure partitioning。点击Done。然后partitioning scheme选择标准安装Standard Partition。再点击左下角的+号,然后挂载点为/boot为200M,以及swap 为500M,剩下的空间都给/,每个选择完之后都点击Add mount point,最后点击Done。在弹出的对话框中点击Accept changes。
(14)这些都配置完成之后,就可以安装了,点击右下角的Begin Installation。然后点击Root Password,设置密码。这样就开始安装了,等到进度条完成后reboot就可以使用了。
2.虚拟机的管理命令
a. 常用的虚拟机命令
命令 | 功能 |
---|---|
virt-manager | 打开虚拟机图形管理窗口 |
virsh list | 列出当前正在运行的虚拟机 |
virsh list --all | 列出系统中所有的虚拟机 |
virsh shutdown vmname | 正常关机当前真在运行的虚拟机。 |
virsh destroy vmname | 强制断电虚拟机 |
virsh start vmname | 开启虚拟机 |
virt-viewer vmnaem | 显示虚拟机 |
virsh undefine vmname | 删除虚拟机的xml文件 |
b.两台机器之间虚拟机的复制
安装的虚拟机主要有两个文件:硬件信息文件:/etc/libvirt/qemu/vmname.xml , 硬盘文件:
/var/lib/libvirt/images/vmname.qcow2。因此要实现虚拟机的复制,只需要从其他机器拷贝这两个文件。
事先从其他机器拷贝了这两个文件到/mnt目录下。
(1)只使用硬盘文件来恢复虚拟机
使用virt-manager打开虚拟机图形管理工具,点击创建新的虚拟机。选择导入已存在的硬盘文件,点击Forward。
输入硬盘文件所存放的路径,后面的步骤跟前面安装虚拟机一样,本次虚拟机命名为test。
可以看到虚拟机test就完成了安装。
(2)使用这两个文件恢复虚拟机
a.一次性恢复虚拟机
virsh create xxx.xml ##一次性打开虚拟机。当关闭时,虚拟机就会消失。
注意:需要将硬盘文件移动到/var/lib/libvirt/images目录下。
b.永久恢复虚拟机
virsh define xxx.xml ##永久恢复。
3.虚拟机的快照
虚拟机的快照就是产生一个新硬盘文件(硬盘文件前面的玻璃),所有的修改都是在新产生的文件上操作。目的是为了保护虚拟机的母盘。
qemu-img create -f qcow2 -b /var/lib/libvirt/images/FC.qcow2 /var/lib/libvirt/images/node.qcow2 ##产生名称为node的快照
然后使用创建新的虚拟机的方法,来新建虚拟机,导入硬盘文件为node,后面的步骤跟之前一样。
然后可以查看产生的新的虚拟机node。
注意:所有的配置都是在快照上修改,当通过快照新建的虚拟机中的文件被破坏后,可以删除快照,然后新建快照并安装,这样虚拟机就恢复到修改之前的样子。可以产生多个快照,来创建多个虚拟机。
4.使用命令和脚本来装虚拟机
这里的命令和脚本指的是虚拟机管理的命令,也就是系统安装之前的自动化,安装系统的自动化会在以后的博客中书写。
(1)使用命令来装虚拟机
virt-install --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso --vcpu 1 \
--memory 1024 --disk /var/lib/libvirt/images/test1.qcow2,size=10,bus=virtio \
--name test1 --network bridge=br0,model=virtio
它的操作和图形化界面的操作一样,即图形化安装第(1)至第(8)步的自动化。
(2)使用脚本来安装虚拟机
vim /usr/bin/vm_create.sh ##新建文件vm_create.sh用来编写脚本,可以通过文件名直接运行
文件中编写:
#!/bin/bash
virt-install \
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
--vcpus 1 \
--memory 1024 \
--disk /var/lib/libvirt/images/$1.qcow2,size=10,bus=virtio \
--name $1 \
--network bridge=br0,model=virtio &> /dev/null &
chmod +x /usr/bin/vm_create.sh #增加文件的可执行权限
测试:
vm_create.sh westos ##新建虚拟机的名称为westos
5.使用脚本创建快照进而新建虚拟机
vim /usr/bin/vm_snapshoot.sh ##用来产生快照的可执行文件
里面编写:
#!/bin/bash
##create snapshoot file ############
qemu-img creadte -f qcow2 -b /var/lib/libvirt/images/$1.qcow2 \
/var/lib/libvirt/images/$2.qcow2 &> /dev/null
### import snapshoot to vm####
virt-install \
--name $2 \
--vcpus 1 \
--memory 1024 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network bridge=br0,model=virtio \
--import &> /dev/null &
chmod +x /usr/bin/vm_snapshoot.sh ##给文件添加可执行的权限
测试:
vm_snapshoot.sh FC node1 #新建名为node1的虚拟机
6.应用
使用脚本完成所有的操作,新建,快照,删除,开始,查看等操作。
vim /usr/bin/vm_ctrl.sh #新建vm的控制文件
里面编写:
#!/bin/bash
case $1 in
install)
virt-install \
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \
--vcpu 1 \
--memory 1024 \
--disk /var/lib/libvirt/images/$2.qcow2,size=10,bus=virtio \
--name $2 \
--network bridge=br0,model=virtio &> /dev/null &
;;
vmsnap)
read -p "请输入要备粉的虚拟机名称:" vmname
read -p "请输入要生成的快照名称:" s_vmname
###产生快照
qemu-img create -f qcow2 -b /var/lib/libvirt/images/${vmname}.qcow2 \
/var/lib/libvirt/images/${s_vmname}.qcow2 &> /dev/null
##导入
virt-install \
--vcpus 1 \
--memory 1024 \
--disk /var/lib/libvirt/images/${s_vmname}.qcow2,bus=virtio \
--name ${s_vmname} \
--network bridge=br0,model=virtio \
--import &> /dev/null &
;;
delete)
virsh destroy $2 &> /dev/null
virsh undefine $2 &> /dev/null
;;
start)
virsh start $2
;;
stop)
virsh destroy $2
;;
view)
virt-viewer $2
;;
esac
chmod +x vm_ctrl.sh ###增加文件的可执行权限。
测试:
vm_ctrl.sh install haha #新建虚拟机为haha
vm_ctrl.sh vmsnap #快照
vm_ctrl delete node1 #删除虚拟机node1
vm_ctrl start node ##启动node
vm_ctrl stop node ##关闭node
vm_ctrl view node #查看node