• KVM主机迁移




    新主机kvm初始环境的部署

    I.检查主机cpu是否支持虚拟化

    [root@10-110-157-44 network-scripts]# egrep '(vmx|svm)' --color=auto /proc/cpuinfo
    

    其中vmx是Intel-VT技术支持,svm是AMD-V技术支持

    如果有值,表示cpu支持虚拟化,一般公司的物理主机都支持cpu虚拟化

    II.宿主机软件安装

    [root@10-110-157-44 network-scripts]# yum -y install kvm kmod-kvm qemu python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools
    [root@10-110-157-44 network-scripts]# service libvirtd start
    [root@10-110-157-44 network-scripts]# chkconfig libvirtd on
    [root@10-110-157-44 network-scripts]# chkconfig --list |grep libvirtd
    libvirtd       	0:off	1:off	2:off	3:on	4:on	5:on	6:off
    

    III.检查kvm模块是否加载

    [root@10-110-157-44 network-scripts]# lsmod | grep kvm
    kvm_intel              55656  20 
    kvm                   345659  1 kvm_intel
    

    IV.网桥的搭建

    直接使用桥接方式,新建立桥接网卡br0,然后将物理网卡eth0(有的主机可能不是eth0)变更成bridge类型

    [root@10-110-157-44 network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@10-110-157-44 network-scripts]# cat ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    BRIDGE=br0				#指定桥接的网卡名称
    [root@10-110-157-44 network-scripts]# cat ifcfg-br0 
    DEVICE=br0
    BOOTPROTO=static
    IPADDR=10.110.157.44
    NETMASK=255.255.0.0
    GATEWAY=10.110.0.1
    ONBOOT=yes
    TYPE=Bridge				#类型变更
    NM_CONTROLLED=no
    [root@10-110-157-44 network-scripts]# 
    

    更改br0与eth0配置文件之后,重启网卡服务

    V.查看宿主机网络

    [root@10-110-157-44 network-scripts]# ifconfig 
    br0       Link encap:Ethernet  HWaddr EC:F4:BB:F0:68:30  
              inet addr:10.110.157.44  Bcast:10.110.255.255  Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:182591419 errors:0 dropped:0 overruns:0 frame:0
              TX packets:411766 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:9868491385 (9.1 GiB)  TX bytes:319978156 (305.1 MiB)
    
    eth0      Link encap:Ethernet  HWaddr EC:F4:BB:F0:68:30  
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:184253215 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4941290 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:12839319724 (11.9 GiB)  TX bytes:4949051578 (4.6 GiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:54307 errors:0 dropped:0 overruns:0 frame:0
              TX packets:54307 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:5785417 (5.5 MiB)  TX bytes:5785417 (5.5 MiB)
    
    

    迁移kvm主机数据

    I.查看宿主机上现有虚拟主机

    [root@10-110-157-41 qemu]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     6     ci.bigdata.letv.com            running
     7     gitlab.bigdata.letv.com        running
    

    说明有两台虚拟主机在运行

    II.虚拟主机配置文件

    [root@10-110-157-41 qemu]# pwd
    /etc/libvirt/qemu
    [root@10-110-157-41 qemu]# ll
    total 12
    -rw------- 1 root root 2433 Dec 26  2017 ci.bigdata.letv.com.xml
    -rw------- 1 root root 2425 Dec 14  2017 gitlab.bigdata.letv.com.xml
    drwx------ 3 root root 4096 Dec 14  2017 networks
    

    以上两个xml文件即为宿主机配置文件,需要copy至新宿主机之上同样路径的目录之下

    III.关停虚拟主机

    关停之前,最好先通过xshell连接至虚拟主机,更改其root密码(如果知道root密码,不用更改)并保存

    [root@10-110-157-41 qemu]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     6     ci.bigdata.letv.com            running
     7     gitlab.bigdata.letv.com        running
    [root@10-110-157-41 qemu]# virsh shutdown ci.bigdata.letv.com
    

    shutdown后面跟上虚拟主机的name或者id号均可

    关停之后virsh list --all查看虚拟主机运行状态,直至显示off即表示已经完全关机

    IV.虚拟主机镜像文件

    [root@10-110-157-41 qemu]# grep 'source file' ci.bigdata.letv.com.xml
          <source file='/data/jenkins/CI_SERVER.qcow2'/>
    [root@10-110-157-41 qemu]# ll -h /data/jenkins/
    total 898G
    -rw-r--r-- 1 qemu qemu 898G Jan 10 10:47 CI_SERVER.qcow2
    

    将以上qcow2的文件,copy至新的宿主机之上,按以上xml文件中定义的,将qcow2文件放至对应的目录,或者更改对应的xml中的指定路径均可

    V.启动虚拟主机

    [root@10-110-157-44 ~]# virsh start ci.bigdata.letv.com
    [root@10-110-157-44 qemu]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     1     ci.bigdata.letv.com            running
     2     gitlab.bigdata.letv.com        off
    

    VI.虚拟主机ip

    因为桥接方式,所以虚拟主机应该与其宿主机在同一网段,公司内部的网段比较好区分,比如上者10.110网段,可以将虚拟主机的ip设定为10.110.xxx.xxx即可。公司同一个网段中,一般不会选用到254,会预留一部分ip段,所以找到与宿主机同一网段的ip很容易,此处直接找云计算申请ip即可,务必要为虚拟主机申请ip,否则后续可能会存在ip冲突问题

    VI.虚拟主机ip的设定

    通过vnc,连接宿主机的ip,同时选择对应的端口,即可以连接至虚拟主机

    vnc的端口查看,可以通过/etc/libvirt/qemu中的配置文件来查看,也可以通过ps aux| grep kvm来查看

    [root@10-110-157-44 qemu]# ps aux | grep kvm
    root       1194  0.0  0.0      0     0 ?        S    Jan07   0:00 [kvm-irqfd-clean]
    qemu      38690 11.4 34.8 20556192 11406408 ?   Sl   Jan07 435:16 /usr/libexec/qemu-kvm -name ci.bigdata.letv.com -S -M rhel6.5.0 -enable-kvm -m 16384 -realtime mlock=off -smp 8,sockets=8,cores=1,threads=1 -uuid 26cd024b-0c8e-3cc0-6869-bd6f901bbe7a -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/ci.bigdata.letv.com.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/data/jenkins/CI_SERVER.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=21,id=hostnet0,vhost=on,vhostfd=22 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ee:e3:16,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 0.0.0.0:1 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -msg timestamp=on
    

    如上,ci.bigdata.letv.com的虚拟主机,其vnc端口为0.0.0.0:1,即vnc中连接地址为10.110.157.44:5901,进入之后,和普通主机一样更改至申请的ip即可。

    自建的kvm主机,不能加入系统的ump中,所以ssh白名单,只能通过chattr命令来进行控制

    VII.kvm虚拟主机忘记root密码

    [root@10-110-157-44 qemu]# yum -y install libguestfs-tools
    

    在宿主机安装以上软件,然后找到一台已知密码的主机的/etc/shadow文件中root的加密字串,先关闭虚拟主机,然后进行字符串替换

    [root@10-110-157-44 qemu]# virt-edit ci.bigdata.letv.com /etc/shadow
    

    通过以上,更改虚拟主机中的root密码,即可完成虚拟主机的更改

  • 相关阅读:
    cocos2dx 历史版本下载问题
    C++ 类之间的互相调用
    什么内网和外网
    c++网络编程2:TCP连接概念及编程
    Texturepack、physicsEditor、spriteilluminator的安装包下载
    逃离地心——齿轮旋转
    Cocos2d-x v3.0物理系统 利用PhysicsEditor创建多边形
    c#发送Http请求方法汇总
    代码大全知识点
    .Net技术方向
  • 原文地址:https://www.cnblogs.com/marility/p/10249247.html
Copyright © 2020-2023  润新知