zoukankan      html  css  js  c++  java
  • Xen入门系列四【Xen 管理实操】

    1. 克隆一台虚拟机

    # virt-clone -o base -n vm-clone -f /vm/vm-clone.img
    
    参数说明:
    
    -o 原虚拟机的名称;必须为关闭或者暂停状态。
    
    -n 新虚拟机的名称
    
    -f 作为新虚拟机端磁盘映像的新文件
    
    -u 新虚拟机的UUID;默认为随机生成UUID
    
    -m 新虚拟机的 MAC地址。默认为随机生成 MAC。

     

    克隆完成后可以通过 xm list 查看到新克隆的虚拟机,通过 xm start vm-clone 即可启动。克隆完成后会在路径 /vm 下生成 vm-clone.img,但不会自动生成配置文件,如果需要对新克隆的虚拟机重新进行配置操作则需要为其建立配置文件,那怎么创建呢,上一篇中我们提到 xm list 所能看到的虚拟机的配置信息都保存在 /var/lib/xend/domains 这个路径下。

     

    # cd /var/lib/xend/domains
    
    # ll
    
    drwx------. 2 root root 4096 5月   2 23:39 0967b939-4085-04ca-6896-34e5ef1e8fa8
    
    drwx------. 2 root root 4096 5月  22 04:08 74359c07-1e59-52e9-d29e-c33a68d24e77
    
    drwx------. 2 root root 4096 5月   2 18:14 7e30aa10-2ebf-035e-c033-a35728104213
    
    drwx------. 2 root root 4096 5月  21 05:48 889f7761-783b-6100-f71a-ea1cb8f4c591
    
    drwx------. 2 root root 4096 5月  21 05:46 ba09e174-26f7-5e96-1fe4-5c8537b83a29
    
    drwx------. 2 root root 4096 5月   2 19:14 baee7fd6-afcc-7d98-2d59-041456dfa693
    
    drwx------. 2 root root 4096 5月  24 19:07 c22307e2-035e-3e49-d42c-f141865aab21

    我们看到是一堆以uuid为名称的文件夹,每个文件夹下面保存对应虚拟机的配置信息,我们也可以在克隆的时候使用 -u 参数来指定虚拟机的uuid,这样更方便管理,下面我们来看看配置信息是什么样子的,刚刚克隆的虚拟机应该是时间最晚的那个喽。

    # cat ./c22307e2-035e-3e49-d42c-f141865aab21/config.sxp
    
    (domain
    
        (vcpus_params ((cap 0) (weight 256)))
    
        (PV_args '')
    
        (memory_static_min 0)
    
        (HVM_boot_policy '')
    
        (PV_bootloader /usr/bin/pygrub)
    
        (pool_name Pool-0)
    
        (auto_power_on False)
    
        (memory_static_max 536870912)
    
        (cpus (() ()))
    
        (actions_after_shutdown destroy)
    
        (memory_dynamic_max 536870912)
    
        (memory_sharing 0)
    
        (superpages 0)
    
        (is_a_template False)
    
        (PV_bootloader_args -q)
    
        (memory_dynamic_min 536870912)
    
        (VCPUs_live 1)
    
        (target 0)
    
        (actions_after_crash destroy)
    
        (uuid c22307e2-035e-3e49-d42c-f141865aab21)
    
        (PV_ramdisk '')
    
        (other_config ())
    
        (name_label vm-clone)
    
        (PV_kernel '')
    
        (actions_after_reboot restart)
    
        (VCPUs_at_startup 1)
    
        (HVM_boot_params ())
    
        (platform ((tsc_mode 0) (nomigrate 0) (localtime 0)))
    
        (VCPUs_max 2)
    
        (Description ' server ')
    
        (pool_name Pool-0)
    
        (bootloader /usr/bin/pygrub)
    
        (vcpus 2)
    
        (cpus (() ()))
    
        (on_poweroff destroy)
    
        (description ' server ')
    
        (on_crash destroy)
    
        (uuid c22307e2-035e-3e49-d42c-f141865aab21)
    
        (bootloader_args -q)
    
        (name vm-clone)
    
        (on_reboot restart)
    
        (maxmem 512)
    
        (memory 512)
    
        (shadow_memory 0)
    
        (vcpu_avail 3)
    
        (features '')
    
        (on_xend_start ignore)
    
        (on_xend_stop ignore)
    
        (image
    
            (linux
    
                (kernel '')
    
                (superpages 0)
    
                (localtime 0)
    
                (nomigrate 0)
    
                (tsc_mode 0)
    
            )
    
        )
    
        (status 0)
    
        (device
    
            (tap2
    
                (bootable 1)
    
                (uname tap2:aio:/vm/vm-clone.img)
    
                (mode w)
    
                (dev xvda)
    
                (uuid 9559d0d2-b2ce-3903-13f6-78c469a3e6d4)
    
            )
    
        )
    
        (device
    
            (vif
    
                (bridge br0)
    
                (mac 00:16:3e:55:85:ac)
    
                (uuid 9f8669f3-4201-1382-0bf0-937725d83226)
    
                (script vif-bridge)
    
            )
    
        )
    
    )

     

    接下来我们要做的就是从这个文件中摘取所需的信息做成我们的配置文件,如下:

    # 半虚拟化配置文件示例
    
    name="vm-clone"
    
    description=" server "
    
    uuid="c22307e2-035e-3e49-d42c-f141865aab21"
    
    memory=512
    
    maxmem=512
    
    vcpus=2
    
    on_poweroff="destroy"
    
    on_reboot="restart"
    
    on_crash="destroy"
    
    localtime=0
    
    keymap="en-us"
    
    builder="linux"
    
    bootloader="/usr/bin/pygrub"
    
    bootargs=""
    
    disk=[ 'tap2:aio:/vm/vm-clone.img,xvda,w' ]
    
    vif=[ 'mac=00:16:3e:55:85:ac,bridge=virbr0,script=vif-bridge']

     

    将文件保存为 /etc/xen/vm-clone.cfg 现在就可以使用该配置文件来启动虚拟机了,xm create /etc/xen/vm-clone.cfg

     

    2. 为虚拟机添加一块硬盘

    # 创建一个2G的硬盘文件
    
    # dd if=/dev/zero of=/vm/vm-clone-add.img bs=1024M count=2

    在配置文件disk 项中加入新建的硬盘文件

    disk=[ 'tap2:aio:/vm/vm-clone.img,xvda,w', 'tap2:aio:/vm/vm-clone-add.img,xvdb,w']

     

    # xm create /etc/xen/vm-clone.cfg
    
    # 登陆虚拟机之后通过 fdisk -l或ls /dev 即可查看到刚刚新添加的硬盘设备,对其进行分区格式化之后即可挂载使用。

     

     3. 为虚拟机添加网卡

    在配置文件vif项中加入加入新的网卡配置项,我通常的做法时直接复制前面的,然后将mac地址最后一位递增。

    vif=['mac=00:16:3e:55:85:ac,bridge=virbr0,script=vif-bridge','mac=00:16:3e:55:85:ad,bridge=virbr0,script=vif-bridge']
    # xm create /etc/xen/vm-clone.cfg
    
    # 登陆虚拟机之后通过ifconfig -a 可以查看到新增的网卡,在/etc/sysconfig/network-script/下为其创建配置文件后便可启动该网卡。

     

    4. 创建桥接网络

    注:以下操作均在Domain 0操作

    # 安装bridge-utils
    
    # yum install bridge-utils

     

    # 配置ifcfg-eth0
    
    DEVICE=eth0
    
    NM_CONTROLLED=no
    
    ONBOOT=yes
    
    TYPE=Ethernet
    
    BRIDGE="virbr1"
    
    USERCTL=no

     

    # 配置ifcfg-virbr1
    
    DEVICE=virbr1
    
    BOOTPROTO=none
    
    NM_CONTROLLED=no
    
    ONBOOT=yes
    
    TYPE=Bridge
    
    IPADDR=192.168.0.5
    
    PREFIX=24
    
    GATEWAY=192.168.0.1
    
    DNS1=8.8.8.8
    
    DNS2=8.8.4.4
    
    USERCTL=no

     

    # 重启网络服务生效
    
    # service network restart
    
    # 此时 ifconfig 可以看到桥接网络virbr1

     

    # 编辑要连接到 virbr1 的虚拟机配置文件,将桥接网卡设置为virbr1
    
    vif=['mac=00:16:3e:55:85:ac,bridge=virbr1,script=vif-bridge']
    
    # 登陆虚拟机之后虚拟机就可以通过桥接网络进行联网了

     

  • 相关阅读:
    python list添加元素的几种方法
    Python ---- list和dict遍历
    python 之 collections
    python list 中元素的统计与排序
    pandas dataframe 读取 xlsx 文件
    Python 缓存机制与 functools.lru_cache(zz)
    pip 使用
    python 中的异常处理
    python 时间日期处理
    python read txt file
  • 原文地址:https://www.cnblogs.com/hackboy/p/3749774.html
Copyright © 2011-2022 走看看