zoukankan      html  css  js  c++  java
  • KVM的基本管理

     KVM的基本管理

    1.查看KVM虚拟机配置文件

    #Kvm虚拟机默认配置文件位置
    [root@kvm qemu]# pwd
    /etc/libvirt/qemu
    [root@kvm qemu]# ll
    total 12
    -rw------- 1 root root 3863 Nov  6 17:26 CentOS6.5.xml
    -rw------- 1 root root 3771 Nov  7 00:57 CentOS6u7.xml
    -rw------- 1 root root 3628 Nov  7 02:04 centos.xml
    drwx------ 3 root root   40 Nov  7 00:46 networks

    2 启动与关闭

    #显示正在运行的虚拟机
    [root@kvm ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
    #显示所有虚拟机
    [root@kvm ~]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     -     centos                         shut off
     -     CentOS6.5                      shut off
     -     CentOS6u7                      shut off
    
    #启动名字为CentOS6.5的虚拟机
    [root@kvm ~]# virsh start CentOS6.5
    
    #关闭名字为CentOS6.5的虚拟机
    [root@kvm ~]# virsh shutdown CentOS6.5
    
    #强制关闭名字为Centos6.5的虚拟机 
    [root@kvm ~]# virsh destroy CentOS6.5
    
    #移除名字为CentOS6.5的虚拟机 
    [root@kvm ~]# virsh undefine CentOS6.5
    
    #设置CentOS6.5虚拟机开机启动 
    [root@kvm ~]# virsh autostart CentOS6.5
    
    #默认情况下virsh工具不能对linux虚拟机进行关机操作
    
    #linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
    # yum -y install acpid
    # /etc/init.d/acpid start

    3 通过配置文件启动虚拟机

    [root@kvm ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml

    4 其它(挂起,恢复)virsh命令

    #挂起服务器
    [root@kvm qemu]# virsh suspend CentOS6.5
    #恢复服务器
    [root@kvm qemu]# virsh resume CentOS6.5

    5 重命名虚拟机

    1,停止虚拟机
    [root@kvm qemu]# virsh shutdown CentOS6u5
    
    1,导出虚拟机的配置文件
    [root@kvm qemu]# pwd
    /etc/libvirt/qemu
    [root@kvm qemu-img]# virsh dumpxml CentOS6u5 > test-CentOS6u5.xml
    2 更改配置文件
    [root@kvm qemu]# sed -i 's/CentOS6u5/test-CentOS6u5/g' test-CentOS6u5.xml
    #注 可以不用更改镜像名
    3 移除原有的虚拟机
    [root@kvm qemu]# virsh undefine CentOS6u5
    
    4 加载新建的虚拟机
    
    [root@kvm qemu]# virsh define test-CentOS6u5.xml
    
    5 启动虚拟机
    [root@kvm qemu]# virsh start test-CentOS6u5

    6 虚拟机创建快照

    1 转换磁盘镜像文件格式为qcow2
    
    [root@kvm ~]# virsh shutdown test-CentOS6u5
    [root@kvm qemu-img]# qemu-img convert -f raw CentOS6u5.raw -O qcow2 CentOS6u5.raw.qcow2
    快照一定需要qcow2格式 才行 
    
    我这边从新建立一个虚拟机 以qcow2
    2 创建快照
    [root@kvm qemu-img]# virsh snapshot-create CentOS6u5
    
    3 查看快照
    [root@kvm qemu-img]# virsh snapshot-list CentOS6u5
     Name                 Creation Time             State
    ------------------------------------------------------------
     1479043349           2016-11-13 08:22:29 -0500 shutoff
    
    4 恢复快照
    [root@kvm qemu-img]# virsh snapshot-revert CentOS6u5  1479043349
    
    5 删除快照
    [root@kvm qemu-img]# virsh snapshot-delete CentOS6u5 1479043349

    7 查看虚拟机IP地址

    [root@c5-op-dpdk05 ~]# virsh list                   
     Id    Name                           State
    ----------------------------------------------------
     5     router1                        running
     6     router2                        running
     292   eve                            running
    
    # 查看虚拟机配置文件,找到MAC地址
    
    [root@c5-op-dpdk05 ~]# virsh edit router1
    
    <mac address='52:54:00:9e:91:42'/>
    
    # 根据arp 确定IP地址
    [root@c5-op-dpdk05 ~]# arp -a
    ? (10.12.0.2) at 52:54:00:9e:91:42 [ether] on br1

    8 KVM 虚拟机登录管理

    新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。

    一、添加ttyS0的许可,允许root登陆

    [root@localhost ~]# echo "ttyS0" >> /etc/securetty

    二、编辑/etc/grub.conf中加入console=ttyS0

     
    [root@localhost ~]# less /etc/grub.conf
     
    # grub.conf generated by anaconda
     
    #
     
    # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0 initrd /initramfs-2.6.32-431.el6.x86_64.img

    三、编辑/etc/inittab,在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200

    [root@localhost ~]# less /etc/inittab
     
    # inittab is only used by upstart for the default runlevel.
     
    #
     
    # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
     
    #
     
    # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: S0:12345:respawn:/sbin/agetty ttyS0 115200

    四、重启服务器

    [root@localhost ~]# reboot

    五、在宿主机上测试连接

    [root@study ~]# virsh list
     
    Id Name State
     
    ----------------------------------------------------
     
    4 centos running
     
     
     
    [root@study ~]# virsh console 4
     
    Connected to domain centos
     
    Escape character is ^]
     
     
     
    CentOS release 6.5 (Final) Kernel 2.6.32-431.el6.x86_64 on an x86_64 localhost.localdomain login: root Password: Last login: Thu Oct 13 02:51:30 on ttyS0
    

     注:按 ctrl+] 组合键退出virsh console

    对于centos 7
    
    在虚机里运行
    
    [root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
    then
    
    [root@localhost ~]# reboot
    即可
    

      

  • 相关阅读:
    十个 PHP 开发者最容易犯的错误
    PHP 引用是个坑,请慎用
    Laravel 模型事件入门
    PHP 设计模式阅读清单
    《PHP 设计模式》翻译完毕
    数据库分库分表(sharding)系列(一) 拆分规则
    数据库Sharding的基本思想和切分策略
    学习JVM GarbageCollection
    数据库为什么要分库分表
    vue2.0 父子组件通信 兄弟组件通信
  • 原文地址:https://www.cnblogs.com/jiaojiner/p/14541882.html
Copyright © 2011-2022 走看看