◆案例1◆ 安装KVM虚拟机
1.配置宿主机为网桥
cd /etc/sysconfig/network-scripts cp -a ifcfg-eno16777728 ifcfg-br0 vim ifcfg-br0 TYPE=Bridge DEVICE=br0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.13 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 reboot
2.宿主机的软件安装和配置
yum install -y qemu-kvm libvirt virt-install bridge-utils
3.安装完毕之后,检查模块是否已经加载
lsmod | grep kvm
4.执行下列命令开启虚拟机
systemctl start libvirtd.service
systemctl enable libvirtd.service
◆案例2◆ KVM的创建及管理
1.创建一个虚拟机
virt-install -n lyshark -r 256 --vcpus 1 --disk /tmp/lyshark.img,format=qcow2,size=5 --network bridge=br0 --os-type=linux --os-variant=rhel7.0 --cdrom /tmp/rhel-server-7.0_x86_64-dvd.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 ------------------------------------------------------------------------------------------------- --n #指定虚拟机名称 --r #指定虚拟机内存,单位MB --disk #指定存储设备及其属性 size:新建磁盘映像的大小单位为GB;磁盘映像格式,如raw、qcow2、vmdk --os-type #操作系统类型,如linux、unix或windows等; --os-variant= #某类型操作系统的变体,如rhel5、fedora8等; --vcpus= #VCPU个数及相关配置 --cpu= #CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?来获取支持的CPU模式;
操作系统选型
--os-variant=freebsd8 --os-variant=win7 --os-variant=win7 --disk path=/var/lib/libvirt/iso/virtio-win.iso,device=cdrom --os-variant=win2k8 --os-variant=win2k8 --disk path=/var/lib/libvirt/iso/virtio-win.iso,device=cdrom --os-variant=rhel7 -------------------------------------------------------------------------------------------------
2.常用命令
virsh list --all #列出所有的虚拟机 virsh dominfo #显示虚拟机信息 yum install virt-top -y virt-top #显示虚拟机内存和cpu的使用情况 virt-df #显示虚拟机分区信息 virsh destroy #强制关闭 virsh undefine #删除虚拟机 virsh start #启动 virsh shutdown #关闭虚拟机 virsh autostart #设置虚拟机自启动 virsh autostart --disable #关闭虚拟机自启动 virsh console #通过控制窗口登录虚拟机
virsh attach-disk kvm-1 /dev/sdb vbd --driver qemu --mode shareable #给虚拟机添加硬盘
3.改变虚拟机的参数
@@@更改内存@@@ # 1. 查看虚拟机当前内存 [root@sh-kvm-1 ~]# virsh dominfo kvm-1 | grep memory Max memory: 4194304 KiB Used memory: 4194304 KiB # 2、动态设置内存为512MB,内存减少 virsh setmem kvm-1 524288 # 注意单位必须是KB # 3、查看内存变化 # virsh dominfo kvm-1 | grep memory Max memory: 14194304 KiB Used memory: 524288 kiB # 4、内存增加 virsh shutdown kvm-1 virsh edit kvm-1 #直接更改memory virsh create /etc/libvirt/demu/kvm-1/xml #之后操作1,2,3步骤增加内存
@@@更改CPU@@@ virsh shutdown kvm-1 virsh edit kvm-1 # <vcpu>2</vcpu> # 4 > 2 virsh create /etc/libvirt/demu/kvm-1/xml
@@@硬盘扩容@@@ 1. Create a 10-GB non-sparse file: # dd if=/dev/zero of=/vm-images/vm1-add.img bs=1M count=10240 2. Shutdown the VM: # virsh shutdown vm1 3. Add an extra entry for ‘disk’ in the VM's XML file in /etc/libvirt/qemu. You can look copy & paste the entry for your mail storage device and just change the target and address tags. For example: # virsh edit vm1 <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none' io='threads'/> <source file='/vm-images/vm1.img'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> Add: <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none' io='threads'/> <source file='/vm-images/vm1-add.img'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> # 这里建议使用上面的添加硬盘的方式添加
@@@虚拟机的克隆@@@ 将一个虚拟机克隆完毕之后,就可以以此为模板进行克隆,其它虚拟机就不必在一一进行创建,安装操作系统等操作。虚拟机克隆操作的代码如下: #!/usr/bin/env bash set -eux set -o pipefail vm_path="/var/lib/libvirt/images/vm_os" for (( i = 0; i <= 9; i ++ )) do vm_dir=$vm_path/vm$i if [ ! -d $vm_dir ]; then mkdir -p $vm_dir fi virt-clone --connect qemu:///system --original vm00 --name vm$i --file $vm_dir/vm"$i"system.img done
@@@虚拟机的磁盘挂载@@@ 虚拟机挂载磁盘的命令是virsh attach-disk , 卸载磁盘的命令是virsh detach-disk 同样,为了批量操作方便,我们写个脚本来进行处理 #!/usr/bin/env bash set -eux set -o pipefail vm_path="/var/lib/libvirt/images/vm_disk" for (( i = 0; i <= 9; i ++ )) do vm_dir=$vm_path/vm$i if [ ! -d $vm_dir ]; then mkdir -p $vm_dir fi fallocate -l 15G $vm_dir/disk_15G.img virsh attach-disk vm$i --source $vm_dir/disk_15G.img --target sdb --persistent #virsh detach-disk --domain vm$i --target sdb --persistent done