zoukankan      html  css  js  c++  java
  • openstack镜像制作详解

    一:本地部署KVM

    1.安装KVM

    1.1安装须知

    查看CPU是否支持kvm完全虚拟机。

    [root@LINUX ~]# grep "flags" /proc/cpuinfoflags          

     : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon

     pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx hypervisor 

    lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid

    注释:如果输出的信息中有vmx,说明intel处理器支持完全虚拟化。如果显示svm,说明是AMD的处理器支持虚拟化。

    vmware workstation安装kvm的时候,需要开启CPU支持虚拟化。在BIOS界面设置

    1.2在新机器上安装KVM

    安装操作系统时选择上虚拟包即可

    安装KVM包

              

    1.3在现有机器上安装KVM

    (1)安装kvm和其他虚拟化所需管理软件包。

    [root@LINUX ~]# yum install -y kvm virt-* libvirts bridge-utils qemu-img

    软件包名称介绍:

    Kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

    Libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。

    Bridge-utils:设置网络网卡桥接。

    Virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager

    Qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

    (2)加载kvm模块,查看kvm模块是否被加载

    [root@LINUX ~]# modprobe kvm-intel

    [root@LINUX ~]# lsmod | grep kvm

    kvm_intel              54285  0 

    kvm                   333172  1 kvm_intel

    (3)重启确实KVM是否被加载

    [root@LINUX ~]# reboot          

    [root@LINUX ~]# lsmod | grep kvm

    kvm_intel              54285  0 

    kvm                   333172  1 kvm_intel

    2.配置KVM

    2.1. 关闭iptables和selinux

    (1)关闭iptables防火墙和selinux。

    [root@LINUX ~]# /etc/init.d/iptables stop

    [root@LINUX ~]# chkconfig iptables off

    [root@LINUX ~]# chkconfig --list iptables

    iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

    [root@LINUX ~]# vim /etc/sysconfig/selinux

    SELINUX=disabled

    [root@LINUX ~]# setenforce 0

    2.2. 配置桥接

    (1)配置eth0、br0网卡

    [root@LINUX ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0     

    DEVICE=eth0

    HWADDR=00:0C:29:33:B3:E5

    TYPE=Ethernet

    UUID=142284ae-3173-4b0a-80d8-437c26a96719

    ONBOOT=yes

    NM_CONTROLLED=yes

    BOOTPROTO=none

    BRIDGE=br0

    [root@LINUX ~]# more /etc/sysconfig/network-scripts/ifcfg-br0     

    DEVICE=br0

    HWADDR=00:0C:29:33:B3:E5

    TYPE=Bridge

    UUID=142284ae-3173-4b0a-80d8-437c26a96719

    ONBOOT=yes

    NM_CONTROLLED=yes

    BOOTPROTO=static

    IPADDR=10.0.1.149

    NETMASK=255.255.255.0

    GATEWAY=10.0.1.1

    [root@LINUX ~]# /etc/init.d/network restart

    (2)查看目前所有的网桥接口

    [root@LINUX ~]# brctl show

    bridge name     bridge id               STP enabled     interfaces

    br0             8000.000c2933b3e5       no              eth0

    virbr0          8000.525400d969b8       yes             virbr0-nic

    2.3. 配置VNC服务

    (1)修改VNC服务端的配置文件

    [root@LINUX ~]# vim /etc/libvirt/qemu.conf  

    vnc_listen = "0.0.0.0"   第十二行,把vnc_listen前面的#号去掉。

    (2)重启libvirtd和messagebus服务

    [root@LINUX ~]# /etc/init.d/libvirtd restart

    Stopping libvirtd daemon:                                        [  OK  ]

    Starting libvirtd daemon: libvirtd: initialization failed  [FAILED]

    解决办法:

    [root@LINUX libvirt]# echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile

    [root@LINUX libvirt]# source /etc/profile

    [root@LINUX libvirt]# /etc/init.d/libvirtd restart

    Stopping libvirtd daemon:                                       [FAILED]

    Starting libvirtd daemon: 2014-08-15 16:14:18.595+0000: 2429: info : libvirt version: 0.10.2, package: 29.el6_5.11 (CentOS BuildSystem <http://bugs.centos.org>, 2014-07-31-18:52:08, c6b8.bsys.dev.centos.org)

    2014-08-15 16:14:18.595+0000: 2429: warning : virGetHostname:2294 : getaddrinfo failed for 'LINUX': Name or service not known

                                                                             [  OK  ]

    [root@LINUX ~]# /etc/init.d/messagebus restart

    Stopping system message bus:                            [  OK  ]

    Starting system message bus:                             [  OK  ]

    3.安装KVM上虚拟机

    3.1. 创建镜像文件目录和虚拟磁盘存放目录

    [root@LINUX ~]# mkdir -p /home/iso

    [root@LINUX ~]# mkdir -p /home/kvm

     

    3.2. 把Centos6.5系统的镜像文件拷贝到iso目录下

    此处将单机部署手册中的sucunOs_anydisk.iso放置/home/iso目录下

     

    3.3. 创建kvm虚拟机的磁盘文件

    本例创建的磁盘文件为10G,实际使用中应注意下/home的空间,可以设置为100G

    [root@LINUX ~]# cd /home/kvm/

    [root@LINUX ~]# qemu-img create -f qcow2 -o preallocation=metadata kvm_mode.img 10G        

    Formatting 'kvm_mode.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata'

     

    3.4. 安装虚拟机

    bridge网络模式(有独立IP时使用这种方式)

    [root@LINUX ~]# chmod -R 777 /etc/libvirt

    [root@LINUX ~]# chmod -R 777 /home/kvm

    [root@LINUX ~]#virt-install --name=kvm_test --ram 4096 --vcpus=4 -f /home/kvm/kvm_mode.img --cdrom /home/iso/sucunOs_anydisk.iso --graphics vnc,listen=0.0.0.0,port=7788, --network bridge=br0 --force --autostart

    Net模式(没有独立IP时使用这种方式)

    [root@LINUX ~]# chmod -R 777 /etc/libvirt

    [root@LINUX ~]# chmod -R 777 /home/kvm

    [root@LINUX ~]#virt-install --name=kvm_test --ram 4096 --vcpus=4 -f /home/kvm/kvm_mode.img --cdrom /home/iso/sucunOs_anydisk.iso --graphics vnc,listen=0.0.0.0,port=7788 --force --autostart

    用VNC连接,进行创建kvm虚拟机(VNC连上之后,跟安装linux Centos 6.5系统一样,重新装一次)

                  

       

          

    【注】出现上面页面说明客户端已经可以连接到kvm上安装的服务器,点击continue是如果出现闪退的情况,请修改Option->Expert->ColorLevel 的值为full

    二:制作镜像

    用VNC连接上创建的虚拟后,以SUSE12镜像为例,会进行重装系统和修改一些系统中配置文件。

    1.制作镜像注意事项

    1.1以suse镜像安装为例,在安装时需要注意磁盘分区一定要自动分区(LVM),否则上传到openstack环境还是无法识别硬盘。

    2.修改相关配置文件

    2.1.配置网卡

        #vim /etc/sysconfig/network/ifcfg-eth0

    按下图进行配置相关参数

        

    配置完成后重启网络配置

    #systemctl restart network.service

    2.2远程登录允许

    #vim /etc/sysconfig/SuSEfirewall2

    打开防火墙相关配置文件后,设置FW_SERVICES_EXT_TCP参数为ssh

    FW_SERVICES_EXT_TCP="ssh"

    配置完成后重启防火墙相关配置文件

    #rcSuSEfirewall2 restart

    2.3开启密码和秘钥登录

    #vim /etc/ssh/sshd_config

    打开文件后找到AuthorizedKeysFile和PasswordAuthentication相关配置

    AuthorizedKeysFile   .ssh/authorized_keys
    PasswordAuthentication yes

    配置完成后重新启动ssh服务

    #systemctl restart sshd

    配置完成后,可将本地 /home/kvm镜像上传至需要使用的远程openstack的controller节点使用。

  • 相关阅读:
    C++中的模板编程
    C++中的抽象类
    C++中的多态
    C++中的继承
    操作符重载(二)
    操作符重载(一)
    C++中的类与对象模型
    [八省联考2018] 劈配 (网络流+二分)
    CF51F Caterpillar (边双+树形DP)
    CF36E Two Paths (欧拉回路+构造)
  • 原文地址:https://www.cnblogs.com/yaohong/p/8196364.html
Copyright © 2011-2022 走看看