设为首页 收藏本站
查看: 1650|回复: 0

[经验分享] KVM虚拟机管理指南(纯命令行模式)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-11 13:17:07 | 显示全部楼层 |阅读模式
使用KVM需要以下几个前提条件:
    1. CPU必需支持虚拟化,可以在/proc/cpuinfo文件中想找flags,如果是inter的显示为vmx,amd的显示为svm

    2. CPU必需支持64位操作系统,可以在上述文件中查找lm标记,如果有则支持

    3. 系统必需为64为的RHEL,且系统版本为RHEL6.4及以上为最佳

    4. 必需在BIOS里开启CPU的VT功能

KVM虚拟机文件管理:
    默认的KVM虚拟机工作目录为/var/lib/libvirt
    配置文件存在于/etc/libvirt/qemu/目录下,以主机名称+xml结尾的文件即其相关虚拟机的配置文件,需要修改其配置,也可以直接修改xml文件实现(不建议)。其中autostart目录定义的配置文件会随主机一起启动,而network定义了虚拟机使用桥接网络时的网关网卡的相关配置。
KVM配置实例:
    1. 配置安装RHEL6/Centos 6服务器,并安装虚拟化软件
        #yum groupinstall -y "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
    2. 添加开机启动,并启动服务

        #chkconfig libvirtd on
        #service libvirtd start
    3. 镜像文件管理--直接创建
        创建一个镜像:# cd /var/lib/libvirt/images ; qemu-img create -f qcow2 test1.img 5G
        更改镜像格式:# qemu-img convert -f raw -o qcow2 test.img test1.img
        增加镜像文件空间: # qemu-img resize test1.img 1G
        查看镜像文件格式:# qemu-img info test1.img
    4. 除了镜像来管理存储,kvm还支持存储池
        定义存储池:virsh pool-define-as kvm_images dir "/kvm/images"
        查看存储池:virsh pool-list --all
        建立基于文件夹的存储池:virsh pool-build kvm_images
        使存储池生效:virsh pool-start kvm_images
        验证存储池:virsh pool-info kvm_images
        创建完存储池后,就可以通过创建卷的方法来创建虚拟机的磁盘:
        创建卷:virsh vol-create-as kvm_images test1.img 10G --format qcow2
        刷新池:virsh pool-refresh kvm_images
        查看存储池里面的卷信息:virsh vol-list kvm_images
        查看单个卷的信息:virsh vol-info test1.img kvm_images
        查看单个卷的详细信息:virsh vol-dumpxml test1.img kvm_images
    5. 使用virt-install初始化安装一个Centos系统
        # virt-install --connect qemu:///system \ #如果使用kvm安装,并且使用的root,默认为此,基于xen或者其它,可参考man virt-install
        --n test1 \    #指定虚拟机的显示名称
        --c /mnt/centos6.4-x86_64.iso    #指定安装镜像,也可以指定cdrom直接安装,如:-c /dev/sr0
        --r 2048 \    #指定内存,默认为MB
        --arch=x86_64 \    #指定arch模型
        --vcpus=2 --check-cpu --cpuset=0-1 \ #指定cpu0,1作为虚拟机的CPU,此处绑定了CPU
        --os-type=linux --os-variant=rhel6 \    #指定系统类型和版本
        --disk path=/var/lib/libvirt/images/test1.img,device=disk,bus=virtio,spare=true -s 10 \ #指定磁盘信息,使用virtio驱动加载
        --network bridge=br0 \    #指定桥接模式,并指定通过br0网卡进行桥接
        --noautoconsol --autostart \ #不自动开启控制台,并且随主机自启动
        --vnc    #提供vnc端口访问,在这里可以设置密码,也可以不设置
        --force
    6. 虚拟机管理--virsh
        虚拟机状态管理:
            开机:virsh start test1
            关机:virsh shutdown test1
            强制关机:virsh destroy test1
            重新启动:virsh reboot test1
            通过配置文档启动主机:virsh create /etc/libvirt/qemu/test1.xml
            查看主机状态:virsh list --all
            停止/挂机虚拟机:virsh suspend test1
            保存虚拟机:virsh save test1
            还原虚拟机:virsh resume test1
        从一个已存在的设备配置文件新建一个虚拟机:
            virsh dumpxml test1 >/etc/libvirt/qemu/test2.xml
            qemu-img create -f qcow2 test2.img 20G
            这时需要对其配置中的uuid,id,name,以及新的硬盘镜像文件,mac地址等信息进行更改,更改完成后,就可以通过下面的命令启动虚拟机的安安
            virsh create /etc/libvirt/qemu/test2.xml
        修改内存/CPU:
            修改内存大小:virsh setmem test1 4G    #默认单位为KB
            设置内存的最大值:virsh setmaxmem test1 8G
            增大VCPU数量:virsh setvcpus test1 8
        添加/删除设备:
            添加一块硬盘:
                首先需要创建一个镜像,但是qemu-img创建的镜像没有被处理过(分区及格式化),因此可以使用libguestfs插件创建一个可以直接使用的磁盘分区:
                    yum install -y libguestfs
                    virt-make-fs -F qcow2 -t ext4 -s 50G /var/lib/libvirt/image/test1-1.img
                然后将新的磁盘信息录入到test1.xml文件当中(通过命令virsh edit test1来修改为佳):
                    <disk type='file' device='disk'>
                        <driver name='qemu' type='qcow2'/>
                        <source file='/var/lib/libvirt/image/test1-1.img'/>
                        <target dev='hdf' bus='virtio' type='virtio'/>
                    </disk>
                最后执行添加设备的命令:
                    virsh attach-device test1 /etc/libvirt/qemu/test1.xml
                如果需要删除此设备,将xml文件中的设备信息删除后,执行以下命令即可:
                    virsh detach-device test1 /etc/libvirt/qemu/test1.xml
        备份/还原:
            备份:virsh save --bypass-cache test1 /var/lib/libvirt/save/test1_1.save --running
            还原:virsh restore /var/lib/libvirt/save/test1_1.save --bypass-cache --running
        快照管理:
            如果要使用kvm的快照功能,就必须使用qcow2的磁盘格式,而raw只支持内存快照,如果不是,请参考第3节内容修改
            查看快照:virsh snapshot-list test1
            创建快照:virsh snapshot-create test1 test1.snap1
            恢复到快照:virsh snapshot-revert test1 test1.snap1
            删除快照:virsh snapshot-delete test1 test1.snap1
    7. KVM虚拟机的迁移
        其实了解了上面的操作之后,就明白,KVM虚拟机依靠两个主要文件来启动,一个是img文件,一个是xml配置文件。因此迁移的时候,可以直接迁移这两个文件就能实现静态迁移。如果img文件存放在共享存储,则更为方便,只用迁移xml配置文件,就可以实现静态迁移。
        当然,virsh命令也可以迁移虚拟机,不过要求目标主机与当前主机的应用环境须保持一致,其命令格式如下:
            virsh migrate --live test1 qemu+tcp//destnationip/system tcp://destnationip

结语:KVM还有许多其它方面的功能,如与VM之间的迁移、windows的扩展支持等功能,如果有兴趣的同学,可以参考man手册,其中已经提供了非常详细的用法说明。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-189463-1-1.html 上篇帖子: 搭建convirt,遇到大问题,求高手指点!!! 下篇帖子: CentOS 7.0 配置KVM虚拟机桥接物理网络 虚拟机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表