码迷,mamicode.com
首页 > 其他好文 > 详细

kvm常用操作

时间:2016-07-11 01:23:19      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:kvm

libguestfs-tools 比较好的kvm管理工具
虚拟机的管理工具   convirts
虚拟化:xen(半虚拟化)宿主和客服机都需要该系统内核,系统内核替换接管系统管理 不需要cpu支持虚拟化
        kvm(仅全虚拟化)提供完整的硬件资源且不知道宿主存在


grep --color=auto ‘vmx|svm‘ /proc/cupinfo
如果输出的信息中有vmx,说明intel处理器支持完全虚拟化。如果显示svm,说明是AMD的处理器支持虚拟化。


通过yum安装虚拟化的软件包::yum install -y kvm virt-*  libvirt  bridge-utils qemu-img gcc*
说明:
kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序
libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
bridge-utils:设置网络网卡桥接。
virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager
qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。
启动libvirtd出现一下情况:
   Starting libvirtd daemon: libvirtd: relocation error: libvirtd: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference   需安装:yum update device-mapper-libs 更新库


如出现  Starting libvirtd daemon: libvirtd: initialization failed  [FAILED]需echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile 并source /etc/profile
打开:/etc/init.d/messagebus start 服务
必须关闭 service NetworkManager stop  否则会出现错误
安装虚拟系统:
virt-install \
--name  www \
--ram 512 \
--disk path=/mnt/www.img,size=30 \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location ‘cdrom=/root/test‘ \
--extra-args ‘console=ttyS0,115200n8 serial‘


带图形vnc的配置
--vnclisten=0.0.0.0   ##指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0
--vncport=自定义   指定VNC监听端口(默认为5900)
--vnc   启用vnc管理
--accelerate 加速


                         
克隆时间同步问题
01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.com >> /dev/null 2>$1



virsh一些常用的操作
virsh -c qemu:///system list    查看当前的虚拟系统
brctl show 列出当前所有的网桥接口
virsh list   列出运行的虚拟机
virsh list --all   列出所有的虚拟机
virsh console     名字 ssh ip地址   进入指定名字的 虚拟机
virsh pool-list  查看当前磁盘情况
virsh pool-info+磁盘 显示这块磁盘的详细信息
yum -y install acpid     与virsh shutdown 名字  连用
virsh showdown 名字    不是正的关闭虚拟机
virsh start 名字 --console    开启机子并进入控制模式
virsh suspend 名字   挂起子机
virsh resume  名字   恢复子机
virsh destroy 名字   删除一个子机    强制关闭电源
virsh define 名字   删除子机名 与virsh destroy 连用
virsh start  名字   开启一个子机
virsh create /etc/libvirt/qemu/子机名    通过配置文件开启关闭的子机名
virsh autostart 名字  配置开机自动开启一个子机
virsh autostart --disable 名字   配置开机不自动运行子机
virsh dumpxml 名字 > /etc/libvirt/qemu/新名.xml 导出kvm虚拟机配置文件
virsh edit 子机名字 == vi /etc/libvirt/qemu/名字   编辑虚拟机配置文件
virsh snapshot-create 元文件名   克隆文件名          创建一个快照
virsh snapshot-current    元文件名   克隆文件名  显示当前文件快照的详细信息并激活快照版
virsh snapshot-info   源文件名   显示当前文件下的快照
virsh snapshot-delete   源文件名   克隆文件名    删除一个快照



直接克隆虚拟机
需关闭子机
virt-clone -o 子机名 -n 新的子机名 -f 新子机名镜像文件存放的位置(通过cat /etc/libvirt/qemu/原子机名)
通过复制配置文件和磁盘克隆
1.复制镜像文件。2.导出复制子机的数据库 virsh dumpxml 子机 > /etc/libvirt/qemu/新子机.xml
3.修改新子机.xml文件:包括主机名 镜像名  mac地址



qemu-img create -f qcow2 子文件镜像位置 5G   指定硬盘分区的格式为qcow2
该配置文件信息添加磁盘
qemu-img create -f qcow2 子文件镜像位置 -o preallocation=metadata


现有的虚拟磁盘扩容
qemu-img resize 子文件镜像位置 +5G 表示对现有磁盘增加5G容量
pvcreate /dev/vda3 创建物理卷
portprobe 使分区表生效 无需重启
pvs 查看物理卷
vgextend VolGroup /dev/vda3 创建卷组
vgs 显示卷组
lvs 逻辑卷
lvextend -l +100%FREE /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root



磁盘快照:在关闭虚拟机的状态下
1.。。现有磁盘镜像格式与转换(raw--qcow2)
查看现有磁盘文件格式:qemu-img info 子文件镜像位置
2.。。qemu-img convert -f raw -O qcow2 子文件镜像位置/data/centos1.img  目标子文件镜像位置名 /data/centos1.qcow2
-f 源文件 -O目标文件格式    這里只是拷贝了一份并将格式转换成qcow2


3.。。修改磁盘文件格式(源镜像文件)   virsh edit centos1 (包括:磁盘类型(qcow2),文件格式(/data/centos1.qcow2)
4.。。对虚拟机进行快照管理:
qemu-img resize 子文件镜像位置 +5G 表示对现有磁盘增加5G容量


快照:
virsh snapshot-create-as 源子机名 快照子机名    进行快照复制
virsh snapshot-list+源子机名      查看虚拟机镜像快照的版本
virsh snapshot-current 查看当前虚拟机镜像快照的版本
virsh snapshot-info 源子机名  快照子机名   查看源主机下的快照主机
virsh snapshot-delete 源子机名 快照子机名  删除源主机下的快照主机
virsh domstate 子机名 确认虚拟机是否关机
virsh snapshot-revert 源子机 恢复的快照子机名    执行快照主机恢复


如何添加虚拟磁盘:
qemu-img create -f qcow2 /data/子机名.qcow2  2G  添加一块2G的硬盘
ll /data
virsh destroy 子机名 强制关闭电源
virsh edit 子机名  
复制硬盘信息并做好磁盘类型和地址列的修改
virsh start 子机名
格式,挂载就可以使用了



调整内存和网卡
virsh domiflist 子机名 查看现有网卡信息
virsh attach-interface 子机名 --type bridge --source br0  创建新的一块网卡
virsh dumpxml test > /etc/libvert/qemu/test.xml


虚拟机迁移
关闭迁移机


LVM操作的相关命令:  配置lvm 扩展磁盘
partprobe 解决建立分区后重新刷新分区的功能,防止重启。
fdisk -l :查看系统中都认到了那些物理硬盘    
pvdisplay:查看系统中已经创建好的物理卷  =pvs   
pvcreate:创建一个新的物理卷    
pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)    
vgdisplay:查看系统中的卷组    
vgcreate:创建一个新的卷组    
vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)    
vgremove:删除一个卷组    
lvdisplay:查看系统中已经创建好的逻辑卷    
lvcreate:创建一个新的逻辑卷    
lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)    
lvremove:从系统中删除一个逻辑卷    
mkfs:基于逻辑卷创建一个相应类型的文件系统    
mkdir -p $mount_piont:创建一个挂载目录    
创建好的文件系统位于:     /dev/$create_vg_name/$lv_name    
mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统


vgscan:读取系统中创建的所有卷组   
vgchange -a y :激活所有卷组  (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)    vgchange -a n :关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行


虚拟机在线添加现有磁盘
virsh domblklist 虚拟机   查看现有虚拟机磁盘
qemu-img create -f qcow2 www1.qcow 2G   添加2G的一块磁盘  
qemu-img info www1.qcow  查看添加磁盘的格式以及信息
virsh attach-disk www1 磁盘文件存放的位置 vdb --cache=none --subdriver=qcow2    在线添加虚拟磁盘
进入虚拟机 通过ispci查看磁盘设备





镜像文件考到mnt下的情况
virt-install \
 --name  aming1 \
 --ram 512 \
 --disk path=/data/aming1.img,size=30 \
 --vcpus 1 \
 --os-type linux \
 --os-variant rhel6 \
 --network bridge=br0 \
 --graphics none \
 --console pty,target_type=serial \
 --location ‘/mnt/镜像文件‘ \   镜像文件需放在mnt下 否则会出错。
光盘:--location ‘/mnt/‘     mount /dev/cdrom /mnt
 --extra-args ‘console=ttyS0,115200n8 serial‘












本文出自 “10846468” 博客,谢绝转载!

kvm常用操作

标签:kvm

原文地址:http://10856468.blog.51cto.com/10846468/1818141

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!