zoukankan      html  css  js  c++  java
  • 云计算笔记

    云平台部署及实施----------》最终目的是-----------通过云平台创建和管理虚拟机
    
    云计算盈利方式:
        1、租虚拟机
        2、租服务---------》云平台   nginx  php  开发  mysql  tomcat dns
        3、租空间---------》百度云盘 
        4、租环境---------》java开发环境   lamp环境   lnmp环境  办公环境
        5、租集群---------》虚拟机组成的 
        6、租方案---------》游戏页面   pop2 电商商务
    总结:云平台核心内容------创建和管理虚拟机 
    
    
    
    
    
    软件及服务层(saas)   --------------》软件运行
    平台及服务层    (paas )-------------》云平台
    基础设施层(硬件   iaas)---------》提供运行资源
    
    
    云计算:
    优势:
    按需索取,随需而变、通用性、高可靠性(对外安全性高,对内比较薄弱)、低成本  、超大规模、虚拟化、高扩展(灵活性)
    
    
    openstack   Python (蟒蛇)
    1、开源免费
    2、二次开发(根据不同的公司需求、可以二次开发)-----灵活性高
    3、A   B  目前最新版本N版本
    
    
    kvm功能:
        提供虚拟化资源
    kvm虚拟机管理
    一、环境
    二、安裝kvm
    [root@target ~]# yum install -y qemu-kvm qemu-kvm-tools virt-install #安装kvm内核
    [root@target ~]# yum install libvirt libvirt-cim libvirt-client libvirt-java.noarch  libvirt-python #安装virt管理工具
    [root@computer002 ~]# systemctl start libvirtd
    #############################################################################################################################
    [root@target ~]# modprobe kvm         #加载kvm内核
    [root@target ~]# modprobe kvm-intel   #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。
    [root@target ~]# modprobe kvm-amd     #amd cpu加载kvm-intel
    [root@target ~]# modprobe -ls | grep kvm   #查看内核是否开启
    kernel/arch/x86/kvm/kvm.ko
    kernel/arch/x86/kvm/kvm-intel.ko
    kernel/arch/x86/kvm/kvm-amd.ko
    [root@target ~]# modprobe -ls | grep kvm-intel
    kernel/arch/x86/kvm/kvm-intel.ko
    ##############################################################################################################################
    三、安装guest虚拟机
    1、直接通过virt-manager安装、管理虚拟机(略)
    2、通过命令行安装guest虚拟机
    [root@target ~]# virsh iface-bridge eth0 br0 #创建桥接
    [root@target ~]# yum install virt-viewer   #开启图形控制台安装虚拟客户机需要,
    [root@target ~]# virt-install             #安装选项可用virt-install --help查看
    --name node4            #虚拟机名
    --ram=1024              #分配内存大小,MB
    --arch=x86_64           #模拟的CPU 构架
    --vcpus=1               #配置虚拟机的vcpu 数目
    --check-cpu             #检查确定vcpu是否超过物理 CPU数目,如果超过则发出警告。
    --os-type=linux         #要安装的操作系统类型,例如:'linux'、'unix'、'windows'
    --os-variant=rhel5      #操作系统版本,如:'fedora6', 'rhel5', 'solaris10', 'win2k'
    --disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true    #虚拟机所用磁盘或镜像文件,size大小G
    --bridge=br0            #指定网络,采用透明网桥
    --noautoconsole         #不自动开启控制台
    --pxe                    #网络安装
    ==============================================================================================================
    virt-install 
    --connect qemu:///system 
    --virt-type kvm 
    --name rhel6 
    --ram 1024 
    --vcpus 2 
    --network bridge=brnet0 
    --disk path=/VMs/images/rhel6.img,size=120,sparse 
    --location ftp://172.16.0.1/rhel6/dvd 
    --extra_args “ks=http://172.16.0.1/rhel6.cfg” 
    --os-variant rhel6 
    --force 
    2、通过命令行安装guest虚拟机
    qemu-img create -f qcow2 /images/centos6.3-x86_64.img 10G
    chown qemu:qemu /images/centos6.6-x86_64.img
    virt-install 
    --name centos6.5 
    --ram=2048 
    --arch=x86_64 
    --vcpus=2 
    --check-cpu 
    --os-type=linux 
    --os-variant='rhel6' -c /tmp/CentOS-6.5-x86_64-bin-DVD1.iso 
    --disk path=/images/centos6.8-x86_64.img 
    --noautoconsole 
    --vnc 
    --vncport=5903 
    --vnclisten=0.0.0.0 
    --bridge=br0
     
    二、利用virsh对虚拟机管理
    2、开关机
    virsh start centos6.3 #开机
    virsh create /etc/libvirt/qemu/centos6.3.xml #直接通过主机配置文档启动主机
    virsh shutdown centos6.3 #关机
    virsh destroy centos6.3 #强制关闭电源
    virsh list --all #查看虚拟机状态
    3、添加删除虚拟机
    virsh define /etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机
    virsh list --all #node5已经添加
    virsh undefine node5 #移除虚拟机
    ls /etc/libvirt/qemu
    virsh list --all #node5已经被移除
    四、利用virsh对虚拟机管理
    1、开关机
    [root@target ~]# virsh start node4      #开机
    [root@target ~]# virsh create /etc/libvirt/qemu/node4.xml #直接通过主机配置文档启动主机
    [root@target ~]# virsh shutdown node4   #关机
    [root@target ~]# virsh destroy node4    #强制关闭电源
    [root@target ~]# virsh list --all       #查看虚拟机状态         
     Id 名称               状态
    ----------------------------------
     18 node4                running
      - node5                关闭
      - win8                 关闭
    2、添加删除虚拟机
    [root@target ~]# virsh define /etc/libvirt/qemu/node5.xml   #根据主机配置文档添加虚拟机
    [root@target ~]# virsh list --all        #node5已经添加
     Id 名称               状态
    ----------------------------------
     18 node4                running
      - node5                关闭
      - win8                 关闭
     
    [root@target ~]# virsh undefine node5     #移除虚拟机
    [root@target ~]# ls /etc/libvirt/qemu
    networks  node4.xml  win8.xml
    [root@target ~]# virsh list --all         #node5已经被移除
     Id 名称               状态
    ----------------------------------
     18 node4                running
      - win8                 关闭
    =============================================================================================================================
    [root@target kvm_node]# qemu-img info node4.img   #查看镜像文件格式
        image: node4.img
        file format: qcow2
        virtual size: 20G (21495808000 bytes)
        disk size: 6.3G
        cluster_size: 65536
    [root@target kvm_node]# qemu-img convert -f raw -O qcow2 /virhost/kvm_node/node5.img /virhost/kvm_node/node5_qcow2.img  #把raw格式转换成qcow2格式:
    ##############################################################################################################################
    root@target kvm_node]# virsh snapshot-create-as node4 node4.snap1
    [root@target kvm_node]# qemu-img info node4.img
    image: node4.img
    file format: qcow2
    virtual size: 20G (21495808000 bytes)
    disk size: 6.3G
    cluster_size: 65536
    Snapshot list:
    ID        TAG                 VM SIZE                DATE       VM CLOCK
    1         node4.snap1            401M 2012-04-10 12:04:42   22:02:04.672
    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    [root@target kvm_node]# virsh snapshot-create-as node4 node4.snap2     #为虚拟机node4当前状态创建快照
    [root@target kvm_node]# virsh snapshot-list node4                      #查看node4的快照
     名称               Creation Time             状态
    ------------------------------------------------------------
     node4.snap1          2012-04-11 00:47:06 +0800 paused
     node4.snap2          2012-04-11 01:19:06 +0800 running
     [root@target kvm_node]# virsh snapshot-revert node4 node4.snap1    #从快照文件node4.snap1恢复node4
    [root@node4 ~]# ls /root/          #/root/下无文件,恢复成功
    [root@target kvm_node]# virsh snapshot-revert node4 node4.snap2  #从快照文件node4.snap2恢复node4
    [root@node4 ~]# ls                                               #恢复成功
    anaconda-ks.cfg  install.log.syslog   pcre-8.02.tar.gz               php-5.2.13.tar.gz
    install.log      nginx-0.7.65.tar.gz  php-5.2.13-fpm-0.5.13.diff.gz  webbench-1.5.tar.gz
    5、删除快照
    [root@target kvm_node]# virsh snapshot-delete node4 node4.snap1
    6、利用qemu-img创建镜像文件的snapshot
    qemu-img snapshot -c node4.snap1 /virhost/kvm_node/node4.img #创建快照
    qemu-img snapshot -l /virhost/kvm_node/node4.img    #查看快照
    qemu-img snapshot -a snapshot-name /path/to/os.img  #把虚拟机恢复到某个快照的状态:
    qemu-img snapshot -d snapshot-name /path/to/os.img  #删除某个快照:#
    3、远程管理虚拟机(qemu+ssh连接)
    [root@target ~]# yum install virt-viewer
    [root@target ~]# export DISPLAY=192.168.40.18:0.0
    [root@target ~]# virt-viewer -c qemu///system node4                          #本地管理虚拟机,system:获取system权限,注意qemu后是三个/
    [root@manager ~]# virt-viewer -c qemu+ssh://root@192.168.32.40/system node4  #远程linux通过virt-viewer+ssh管理虚拟机
    Xlib:  extension "RANDR" missing on display "192.168.40.18:0.0".
    root@192.168.32.40's password:
    root@192.168.32.40's password:
    #会弹出virt-viwer的gtk管理界面
    4、使用已存在的虚拟机配置文档安裝新的虚拟机
    [root@target ~]# qemu-img create -f qcow2 /virhost/kvm_node/node6.img 20G
    #为新建虚拟机生产磁盘镜像文件
    [root@target ~]# virsh list
     Id 名称               状态
    ----------------------------------
     18 node4                running
    [root@target ~]# virsh dumpxml node4 >/etc/libvirt/qemu/node6.xml
    #导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml
    [root@target ~]# vim /etc/libvirt/qemu/node6.xml 
    <domain type='kvm' id='20'>    #修改node6的id号
      <name>node6</name>           #虚拟机node6的name
      <uuid>4b7e91eb-6521-c2c6-cc64-c1ba72707fc7</uuid>  #uuid必须修改,否则会和node4的冲突
      <memory>524288</memory>
      <currentMemory>524288</currentMemory>
      <vcpu>1</vcpu>
      <os>
        <type arch='x86_64' machine='rhel5.4.0'>hvm</type>
        <boot dev='network'/>
      </os>
      <features>
        <acpi/>
        <apic/>
        <pae/>
      </features>
      <clock offset='utc'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/libexec/qemu-kvm</emulator>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='none'/>
          <source file='/virhost/node4.img'/>         #指定新虚拟机的硬盘文件
          <target dev='vda' bus='virtio'/>
        </disk>
        <interface type='bridge'>
          <mac address='54:52:00:69:d5:c7'/>
          <source bridge='br0'/>
          <target dev='vnet0'/>
          <model type='virtio'/>
        </interface>
        <interface type='bridge'>
          <mac address='54:52:00:69:d5:d7'/>
          <source bridge='br0'/>
          <target dev='vnet1'/>
          <model type='virtio'/>
        </interface>
        <serial type='pty'>
          <source path='/dev/pts/4'/>
          <target port='0'/>
        </serial>
        <console type='pty' tty='/dev/pts/4'>
          <source path='/dev/pts/4'/>
          <target port='0'/>
        </console>
        <input type='mouse' bus='ps2'/>
        <graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/>
      </devices>
    </domain>
    [root@target ~]# virsh define /etc/libvirt/qemu/node6.xml
    #使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件
    [root@target ~]# virsh start node6
    #启动虚拟机
    5 为虚拟机开启vnc
    [root@target ~]# virsh edit node4     #编辑node4的配置文件;不建议直接通过vim node4.xml修改。
    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
       #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
    改为
    <graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='xiaobai'/>
       #固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络
    2. 远程vnc访问地址:192.168.32.40:5904
    ame                           State
    ----------------------------------------------------
     1     centos7                        runni
    kvm功能:
        提供虚拟化资源
        kvm  :集成在linux内核当中的,2.4内核
        虚拟软件:
        虚拟化分类:
            全虚拟化:  虚拟机所需要资源全部虚拟出来的, vm个人版   VirtualBox   
            容易操作:
            速度慢:
            半虚拟化:   一部分虚拟机资源是虚拟出来的,另一部分直接使用物理机
            管理复杂:
            速度快:   企业    ----esxi----xen   安装在裸机      kvm-----linux 
            
            
        kvm 功能:把硬件资源虚拟成虚拟资源,   +   一套管理工具-------创建虚拟机以及管理虚拟机
        kvm 仅仅只能虚拟机部分资源 --------网卡不能虚拟     +  qemu(虚拟化软件)
        kvm 不能重复虚拟机--------不能虚拟再虚拟------   kvm 安装到物理机上   qemu 是可以
        
        虚拟资源 
        创建和管理虚拟机
    
    
    创建一个虚拟机  ---------1、虚拟资源(虚拟内存 cpu  硬盘 ) -----------------kvm+qemu  
        2、管理工具------通过已经虚拟出来的虚拟资源来创建虚拟机并且管理    -------三方工具  livirtd
        
    vm个人版
    
    kvm 部署:
        1、安装一个新的虚拟机
        2、配置静态IP地址
        3、设置yum
        [os]
        name=os
        baseurl=http://192.168.50.124/centos-yum/7/os/x86_64/
        gpgcheck=0
        enabled=1
        [update]
        name=update
        baseurl=http://192.168.50.124/centos-yum/7/updates/x86_64/
        gpgcheck=0
        enabled=1
        [ext]
        name=ext
        baseurl=http://192.168.50.124/centos-yum/7/extras/x86_64/
        gpgcheck=0
        enabled=1
        4、安裝kvm
    [root@target ~]# yum install -y qemu-kvm qemu-kvm-tools virt-install #安装kvm内核
    [root@target ~]# yum install libvirt libvirt-cim libvirt-client libvirt-java.noarch  libvirt-python #安装virt管理工具
    [root@computer002 ~]# systemctl start libvirtd
    5、创建永久性网桥
    
     [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=static
    IPADDR=192.168.40.148
    NETMASK=255.255.255.0
    GATEWAY=192.168.40.2
    ONBOOT=yes
    
    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=d86bcb18-7888-40bb-a087-e8c86d6ce323
    DEVICE=ens33
    ONBOOT=yes
    BRIDGE=br0
    IPADDR=192.168.40.148
    NETMASK=255.255.255.0
    GATEWAY=192.168.40.2
    
    [root@localhost ~]# mkdir /images
    [root@localhost ~]# qemu-img create -f qcow2 /images/centos7.img 10G     #创建空虚拟机硬盘
    [root@localhost ~]# chown qemu:qemu /images/centos7.img                        #赋予权限
    [root@localhost ~]# virt-install                                                               #创建虚拟机主命令
    --name centos7                                                                                   #指定虚拟机名称
    --ram=2048                                                                                         #指定虚拟机内存大小
    --arch=x86_64                                                                                     #指定CPU框架
    --vcpus=1                                                                                         #指定虚拟机cpu个数
    --check-cpu                                                                                         #检测cpu是否超用
    --os-type=linux                                                                                 #指定虚拟机类型
    --os-variant='rhel7' -c /tmp/CentOS-6.5-x86_64-bin-DVD1.iso                #指定虚拟机安装系统的系统盘
    --disk path=/images/centos7.img                                                         #指定虚拟机安装系统的虚拟机硬盘
    --noautoconsole                                                                                 #禁用控制台
    --vnc                                                                                                 #开vnc远程连接
    --vncport=5903                                                                                 #指定vnc的端口号
    --vnclisten=0.0.0.0                                                                             #监听的IP地址。允许所有网卡访问
    --bridge=br0                                    

     2017-02-11

    [root@localhost ~]# hostnamectl set-hostname    controller
    [root@localhost ~]# vim /etc/hosts
    192.168.40.148  controller
    [root@localhost ~]#  systemctl stop firewalld
    [root@localhost ~]#  systemctl disable firewalld
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# vim /etc/selinux/config
    SELINUX=disabled
    平台环境部署
    
    1、时间服务
    2、MySQL数据库服务
    3、消息队列服务
    4、memcached
    #########################openstack组件安装################################
    1、openstack安装组件==========keystone======================
    2、功能:
        1、用户认证(管理用户)
        2、各个组件之间认证
        3、租户认证
    依赖服务:1、MySQL  2、memcached     
    数据-------------数据库(keystone)
    keystone ------数据-(权限)------keystone 
    3、部署安装:
    1、
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' IDENTIFIED BY '123';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123';
    Query OK, 0 rows affected (0.00 sec)
    
    
    
    keystone ---(keystone用户)------ 数据库(mysql)keystone库
    
    export OS_USERNAME=admin
    export OS_PASSWORD=123
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_AUTH_URL=http://controller:35357/v3
    export OS_IDENTITY_API_VERSION=3
    
    
    
     keystone-manage bootstrap --bootstrap-password 123 
      --bootstrap-admin-url http://controller:35357/v3/ 
      --bootstrap-internal-url http://controller:35357/v3/ 
      --bootstrap-public-url http://controller:5000/v3/ 
      --bootstrap-region-id RegionOne
    
    
    
    [root@controller ~]# yum install python-openstackclient -y

     

  • 相关阅读:
    Azkaban的使用
    Azkaban安装
    Kafka 启动失败,报错Corrupt index found以及org.apache.kafka.common.protocol.types.SchemaException: Error reading field 'version': java.nio.BufferUnderflowException
    Kafka 消费者设置分区策略及原理
    Kafka利用Java API自定义生产者,消费者,拦截器,分区器等组件
    zookeeper群起总是有那么几个节点起不来的问题解决
    flume 启动agent报No appenders could be found for logger的解决
    Flume 的监控方式
    Flume 自定义 组件
    Source r1 has been removed due to an error during configuration java.lang.IllegalArgumentException: Required parameter bind must exist and may not be null & 端口无法连接
  • 原文地址:https://www.cnblogs.com/lliqiang/p/6380969.html
Copyright © 2011-2022 走看看