标签: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
原文地址:http://10856468.blog.51cto.com/10846468/1818141