管理 KVM 虚拟机

文章目录

    • 列出所有的虚拟机
    • 查看一个域的信息
    • 在线添加删除硬盘
    • 使用模板文件产生一个新的配置文件片段
    • 自动化找到我们需要创建的硬盘名称

列出所有的虚拟机

virsh list --all

查看一个域的信息

virsh dominfo rhel6
启动虚拟机
virsh start vhostname

正常关闭虚拟机
virsh shutdown  vhostname

强制关闭虚拟机
virsh destroy vhostname


取消定义一个域
virsh undefine vhostname

//编辑默认虚拟网络配置文件
virsh net-edit default
systemctl restart lirbvirtd

创建一个虚拟磁盘
qemu-img create -f qcow2 /home/virtimg/rhel6.img 10G

改变虚拟磁盘大小
qemu-img resize /home/virtimg/rhel6.img +1G
qemu-img info /home/virtimg/rhel6.img


改变虚拟内存的大小
1 设置一个虚拟机的最多使用内存,前提是此虚拟机关闭状态
   这里仅仅会更改配置文件中的设置
virsh setmaxmem centos3 4096M --config

2 启动虚拟机,当前实际使用的内存还是原来的大小
virsh start centos3

3  假如希望增加正在运行中的虚拟机的内存,使用如下命令
virsh setmem centos3 2048M
传文件到虚拟主机里
virt-install --filesystem /host/soource/dir,/dir/in/virthost

在线添加删除硬盘

可以查看虚拟机所有磁盘

virsh domblklist vmname
  • 准备一块虚拟磁盘
qemu-img create -f qcow2 /path/to/vm1-1.qcow2 2G

在线添加硬盘

  • 首先配置一份磁盘的xml文件,作为模板

配置需要的参数项,比如:
cache=writeback,io=third

disk_mod.xml
[root@kvm-shark ~]# cat disk_mod.xml
echo "
  
  
  

"

使用模板文件产生一个新的配置文件片段

[root@shark ~]# vdisk_path=/path/to/vm1-1.qcow2
[root@shark ~]# device_name=vdb
[root@shark ~]# source disk_mod.xml > disk.xml
  • 然后使用attach-device命令添加

attach-device - 从一个XML文件附加装置

virsh attach-device vm1 disk.xml --persistent

attach-device [–persistent] [–config] [–live] [–current]
选项
[–domain] domain name, id or uuid
[–file] XML 文件
--persistent 让实时更改并且持久生效。
--config 影响下一次引导,域无论是否运行,都可以直接修改配置文件,单独使用,不会影响当前正确运行中的域
--live 影响运行的域,只能用于域启动的时候
--current 影响当前域
当前域处于关机状态下,会直接修改配置文件
当前域处于开机状态下,不会修改配置文件,临时生效而已,和单独使用 --live 一样。

永久移除vdb磁盘

virsh detach-disk vmname vdb --persistent

自动化找到我们需要创建的硬盘名称

虚拟硬盘名一般都是 vda vdb vdc, 可以利用 a-z 的连续行找到我们新建磁盘的名称。

# 目前虚拟机已经存在的盘符
disk_name_w="vda vdb  vdc vde"

declare -A tmp_arr

for i in $disk_name_w
do
    tmp_arr[$i]=1
done


for i in {a..z}
do
   w=${tmp_arr[vd$i]}
   if [ -z "$w" ];then
       disk_name=vd$i
      echo "磁盘名称是$disk_name"
      break
   fi
done

你可能感兴趣的:(从零开始的KVM,1024程序员节,kvm)