zoukankan      html  css  js  c++  java
  • KVM管理平台openebula安装

    1.1opennebula控制台的安装

    (如果要添加映像需要给200G以上给/var/lib/one,本文是共享/var/lib/one实现监控,用映像出创建虚拟机原理是从opennebula控制平台datastores中的映像复制到主机 datastores,而且映像需APP那下载,自己做的映像不识别,故未使用网页创建虚拟机

    关闭selinux

    systemctl stop firewalld  #关闭防火墙

    systemctl disable firewalld

    yum -y install epel-release   (一定要有扩展库不然安装opennebula会报错依赖rubygem-nokogiri之类)

     

    增加opennebula

    cd /etc/yum.repos.d/

    vi opennebula.repo

    Opennebula的yum源:

    [opennebula]

    name=opennebula

    baseurl=http://downloads.opennebula.org/repo/5.0/CentOS/7/x86_64/

    enabled=1

    gpgcheck=0

    yum clean all

    yum install -y *libxslt-dev* *libxml2-dev*  openssl openssl-devel

    ###gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

    gem sources --add https://ruby.taobao.org/  --remove https://rubygems.org/

      #修改ruby源为国内源

    gem source –l

    gem update –system    升级 rubygems

    升级ruby(后面gem 要求ruby版本)

    wget -c https://ruby.taobao.org/mirrors/ruby/2.2/ruby-2.2.4.tar.gz

    tar -zxf ruby-2.2.4.tar.gz;cd ruby-2.2.4

    ./configure --prefix=/opt/ruby

    make -j4&&make install -j4    #根据CPU核数适当选择

    设置环境变量

    export RUBY_HOME=/opt/ruby

    export PATH=$RUBY_HOME/bin:$PATH

    ##export GEM_PATH=/usr/share/gems

    ####export GEM_HOME=/usr/share/gem

    yum install opennebula* -y

    安装可能报依赖报错

    yum install opennebula* -y --skip-broken

    根据提示安装各种依赖包

    我这需要安装以下包

    yum install -y atlas blas genisoimage glusterfs glusterfs-api glusterfs-client-xlators glusterfs-libs gperftools-libs gssproxy keyutils lapack libbasicobjects libcollection libevent libini_config libiscsi libnfsidmap libpath_utils librbd1 libref_array libtalloc libtevent libtirpc libunwind libusal libverto-tevent nfs-utils numpy python-backports python-backports-ssl_match_hostname python-nose python-setuptools qemu-img quota quota-nls rpcbind  tcp_wrappers xmlrpc-c

    yum install opennebula* -y

    /usr/share/one/install_gems    #组件包的安装

    在这个过程中会安装很多的组件:
    例如:

    gcc

    rubygem-rake

    libxml2-devel

    libxslt-devel

    sqlite-devel

    curl-devel

    mysql-devel

    ruby-devel

    Make

    Redhat 7 启动 opennebula的方式:
    /bin/systemctl start  opennebula.service

    /bin/systemctl start opennebula-sunstone.service  #(启动有问题可以oneadim用户尝试下one start ;sunstone-server start)

    systemctl start rpcbind.service

    systemctl start nfs.service

    Oneuser show #查看opennebula服务是否启动

    Lsof -i:9869   #查看web管理是否启动

    报错查看日志在/var/log/one   有些内核错误日志可能在messages中

     

    gem instal sinatra

    ruby -S gem which sinatra  #查看是否安装成功

    安装过程总结:

    安装的时候,会给opennebula创建一个管理员的用户,用户名是opennebula

    用户密码查看:在oneadmin用户的家目录里面可以查看到
    [root@front-end225 ~]# su -  oneadmin

    [oneadmin@front-end225 ~]$ cd .one/

     [oneadmin@front-end225 .one]$ cat one_auth

    oneadmin:c645814f036f9a90b581b769f73e3092

    当安装好了包以后,

    1,首先要修改 one的密码文件。

    2,修改 one.conf把数据库修改成为mysql

    3,创建mysql的库,(opennebula)

    4,nfs

    5,免秘SSH

    6,修改 数据仓库的值,以及修改配置文件DATASTORE_LOCAL

    1.2数据库安装:

    默认OpenNebula数据存储使用sqlite,如果需要使用MySQL,则需要做如下操作

    安裝 MySQL Repository:

    # rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    安裝 MySQL Server, MySQL client 已經包括在 server 套件內:

    # yum install mysql-community-server

    开机自动启动mysql

    # /usr/bin/systemctl enable mysqld

    启动mysql

    # /usr/bin/systemctl start mysqld

    创建数据库

     mysql -u root -p 

    mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '密码';

    mysql> flush privilege

    修改配置文件如下 [用户、端口、密码、库名和实际情况对应修改

    [root@front-end225 ~]# vi /etc/one/oned.conf

    DB = [ backend = "mysql",

            server  = "localhost",

            port    = 3306,

            user    = "oneadmin",

            passwd  = "oneadmin",

            db_name = "opennebula" ]

    这里的用户密码,就是上面创建数据库时创建的用户和密码。

    修改sunstone默认监听IP:(5.0已不用修改)

    [root@front-end225 ~]# vi /etc/one/sunstone-server.conf

    :host: 0.0.0.0

    :port: 9869

    这里是控制台前段的登录的地址,IP:端口

    汉化

    4.2版本以上官方包默认支持中文

    vim /etc/one/sunstone-server.conf

     

    sunstone-server restart

    修改datastore (5以上版本无需修改)

    Opennebula默认使用的是 Shared Transfer Driver 这种模式比较适合快速部署和热迁移,只是要配置网络文件系统。如果没有网络文件系统,不想做热迁移,那么可以换成SSH Transfer Driver 的部署方式:

    [oneadmin@front-end225 ~]$ onedatastore list

      ID NAME                SIZE AVAIL CLUSTER      IMAGES TYPE DS      TM      STAT

       0 system                 - -     DEV-vlan55-1      0 sys  -       ssh     on

       1 default             140G 34%   -                 6 img  fs      ssh     on

       2 files               140G 34%   DEV-vlan55-1      0 fil  fs      ssh     on

    修改方式:

    [oneadmin@front-end225 ~]$ onedatastore update 0

    BASE_PATH="/var/lib/one//datastores/"

    SHARED="NO"

    TM_MAD="ssh"

    TYPE="SYSTEM_DS"

    TM_MAD = “ssh”这里就是ssh的方式。我们自己的环境用这个方式的目的是。

    如果不用这种传输方式,那么创建的虚拟机镜像磁盘等,是创建的opennebla的本地上。用了这种方式以后,可以把磁盘,镜像等等,传输到想要创建的物理机上面。

    添加NFS共享存储目录

    [root@front-end225 ~]# cat  /etc/exports

    /var/lib/one *(rw,sync,no_subtree_check,root_squash,anonuid=9869,anongid=9869)

    启动服务

    systemctl start rpcbind.service

    systemctl start nfs.service

    添加SSH公共KEY

    # su - oneadmin 

    vi ~/.ssh/config 

    添加以下内容

    Host * 

    StrictHostKeyChecking no 

    UserKnownHostsFile /dev/null 

    修改文件权限

    chmod 600 ~/.ssh/config 

    修改oneadmin密码

     

    #su oneadmin 

    $passwd oneadmin 

    注释:这里最好不要修改密码,修改了多次都发现报错。而且查看密码方式很简单,在上面有介绍。

    节点安装:也就是存储kvm虚拟机的地方。

    [root@kvmhots61 ~]# cat /etc/yum.repos.d/opennebula.repo

    [opennebula]

    name=opennebula

    baseurl= http://downloads.opennebula.org/repo/5.0/CentOS/7/x86_64/

    enabled=1

    gpgcheck=0

    yum –y install opennebula-node-kvm

    启动

    /bin/systemctl start  messagebus.service

    /bin/systemctl start  libvirtd.service

    systemctl enable messagebus.service

    systemctl enable libvirtd.service

    给系统网卡做桥接

    [root@kvmhots61 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br2

    DEVICE=br2

    TYPE=Bridge

    BOOTPROTO=static

    NM_CONTROLLED=no

    ONBOOT=yes

    IPADDR=192.168.55.61

    PREFIX=24

    GATEWAY=192.168.55.254

    [root@kvmhots61 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0

    BOOTPROTO=none

    IPV6INIT=no

    NM_CONTROLLED=no

    ONBOOT=yes

    TYPE=Ethernet

    BRIDGE=br2

    挂载front-end 中共享出来的nfs文件夹:

    把下面写到分区表当中:

    192.168.55.225:/var/lib/one/ /var/lib/one/      nfs     soft,intr,rsize=8192,wsize=8192 0 0

    然后挂载:mount –a  检查挂载。

    到这里基本 搭建完毕。

    2使用opennebula创建kvm虚拟机

    2.1 后端操作

    这里就简要介绍部分功能。

    在平台上面添加host机器:

    onehost create 192.168.55.62 -i kvm -v kvm -n dummy

    命令介绍:添加192.168.55.62 ,-i 参数指定的是虚拟化驱动类型为kvm,-v指定虚拟化类型为kvm,-n 指定虚拟机的网络类型为 dummy,即默认使用桥接模式。

    查看:host机器

    [oneadmin@front-end225 ~]$ onehost list

      ID NAME            CLUSTER   RVM      ALLOCATED_CPU      ALLOCATED_MEM STAT

       5 192.168.55.72   DEV-vlan5   3   600 / 1000 (60%)  18G / 31.3G (57%) on

       6 192.168.55.73   DEV-vlan5   4   700 / 1000 (70%)  20G / 31.3G (63%) on

       7 192.168.55.74   DEV-vlan5   4   900 / 1000 (90%)  24G / 31.3G (76%) on

    在创建过程中 host有两个状态,首先是 init(初始化),然后是 on(开机)

    添加网络:

    [oneadmin@front-end225 ~]$ cat vm-network1.one

    NAME = "inside-network"

    BRIDGE = br2

    AR = [

        TYPE = IP4,

        IP = 192.168.55.100,

        SIZE = 30

    ]

    写好要添加的网络的配置文件;  NAME为名称,BRIDGE是用什么网络方式,TYPE是类型,IP是只该网络的起始IP地址,SIZE是指该网络配置文件的IP个数。此文件就表示,从192.168.55.100--192.168.55.129 的IP地址。

    后面还有很多后台操作的命令,比如:添加镜像,添加模板,创建虚拟机,这些都可以从网络上面找到,后面也有一个PDF,因此不详细介绍。

    2.2 前端介绍

    输入开始我们设置的监听的IP地址以及端口在浏览器中。然后在oneadmin下面找到用户和密码的配置文件并登陆网页。

     

    上面几个图就是创建好的opennebula前端。具体怎么在页面上面操作,可以参考opennebula的PDF,现在,介绍几个必要重要的地方。

    假设我们已经了解虚拟机创建,那么要注意如下问题,以及PDF里面没有提及到的问题:

    重点1:自动生成网卡的设置。

     

    Opennebula是可以自动给虚拟机创建网卡的,那么是通过什么方式创建网卡的呢?

    首先,在kvm的镜像模板里面必须要安装一个包:one-context_4.10.0.rpm

    这个包就是让opennebula的context和镜像之间的交互,可以在里面自动创建网卡,等等。

    在kvm的guest里面查看:

    [root@template home]# ll /etc/one-context.d/

    total 32

    -rwxr-xr-x. 1 root root 4433 Jan 15  2015 00-network

    -rwxr-xr-x. 1 root root 1991 Jan 15  2015 01-dns

    -rwxr-xr-x. 1 root root 1550 Jan 15  2015 02-ssh_public_key

    -rwxr-xr-x. 1 root root   28 Jan 15  2015 03-selinux-ssh

    -rwxr-xr-x. 1 root root   15 Jan 15  2015 04-mount-swap

    -rwxr-xr-x. 1 root root  614 Jan 15  2015 05-hostname

    -rwxr-xr-x. 1 root root  297 Jan 15  2015 99-execute-scripts

    这个黄色背景的是创建网络的配置文件。

    在opennebula的机器上面查看添加的网络地址:

    [oneadmin@front-end225 62]$ pwd

    /var/lib/one/vms/62

    [oneadmin@front-end225 62]$ cat

    context.sh         deployment.0       transfer.0.prolog

    [oneadmin@front-end225 62]$ cat context.sh

    # Context variables generated by OpenNebula

    DISK_ID='2'

    ETH0_GATEWAY='192.168.55.254'

    ETH0_IP='192.168.55.109'

    ETH0_MAC='02:00:c0:a8:37:6d'

    ETH0_MASK='255.255.255.0'

    ETH0_NETWORK='192.168.55.0'

    NETWORK='YES'

    TARGET='hda'

    因此配置自动创建网络的方式就是这样创建的。

    重点2:在创建模板的过程中尽量别使用下列配置:

     

    这个配置的主要意思可以百度查看到,但是这些主要是给物理机使用的,这样导致了,我们在vm的环境里面就不能热插拔或者电源选项等模式,然后在host机器里面有时候会导致报错。其中部分还是给Windows使用的配置。

    已有KVM虚拟机添加。

     

    开机后点主机

    添加之后就会出现在虚拟机列表

  • 相关阅读:
    HDOJ 1284 钱币兑换问题 (求多重背包恰好装满总方案数)
    linux sysfs(1)
    这三天低效率开发的总结,我都做了些什么啊?
    达内C++培训课程
    [置顶] 81——复数类运算符的重载 double数据与复数之间的运算 任务三
    编码问题
    【IPAACV】MarrHildreth边缘检测器
    HashMap中的内容进行迭代输出
    低调 、隐忍、善良应是最应该修炼的
    windows下php7.1安装redis扩展以及redis测试使用全过程
  • 原文地址:https://www.cnblogs.com/linxizhifeng/p/7269868.html
Copyright © 2011-2022 走看看